日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 目标检测 >内容正文

目标检测

【机器学习】 - 目标检测 - VOC格式数据集介绍与自己制作

發布時間:2023/12/10 目标检测 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】 - 目标检测 - VOC格式数据集介绍与自己制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、VOC數據集

?

PASCAL VOC 挑戰賽主要有?Object Classification 、Object Detection、Object Segmentation、Human Layout、Action Classification?這幾類子任務。每年都有新的數據集供參賽者進行訓練。公布了2007和2012兩年的數據集,分別稱之為VOC2007和VOC2012,

VOC2012數據集下載地址:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar

VOC數據集下載地址:https://pjreddie.com/projects/pascal-voc-dataset-mirror/

所有的標注圖片都有Detection需要的label, 但只有部分數據有Segmentation Label。
VOC2007中包含9963張標注過的圖片, 由train/val/test三部分組成, 共標注出24,640個物體。
VOC2007的test數據label已經公布, 之后的沒有公布(只有圖片,沒有label)。
對于檢測任務,VOC2012的trainval/test包含08-11年的所有對應圖片。 trainval有11540張圖片共27450個物體。
對于分割任務, VOC2012的trainval包含07-11年的所有對應圖片, test只包含08-11。trainval有 2913張圖片共6929個物體。

?二、VOC格式數據集

因為標簽不再是唯一的(因為VOC數據集需要進行很多任務,對每個任務都需要有至少一個標簽來進行標注),因此VOC數據集有自己固定的組織格式,以 VOC 2007 為例,解壓后的文件為:

. ├── Annotations 進行 detection 任務時的標簽文件,xml 形式,文件名與圖片名一一對應 ├── ImageSets 包含三個子文件夾 Layout、Main、Segmentation,其中 Main 存放的是分類和檢測的數據集分割文件 ├── JPEGImages 存放 .jpg 格式的圖片文件 ├── SegmentationClass 存放按照 class 分割的圖片 └── SegmentationObject 存放按照 object 分割的圖片├── Main │ ├── train.txt 寫著用于訓練的圖片名稱, 共 2501 個 │ ├── val.txt 寫著用于驗證的圖片名稱,共 2510 個 │ ├── trainval.txt train與val的合集。共 5011 個 │ ├── test.txt 寫著用于測試的圖片名稱,共 4952 個

在大家進行目標檢測的時候,可能需要針對某一特定任務進行訓練和檢測,因此可能需要重構成自己的VOC格式數據集,即在保證組織形式不變的前提下,更換成自己的數據集。文件格式和組織形式的統一,是為了后序代碼處理的統一性。

?

三、制作自己的數據集

解壓VOC2007數據集后可以看到VOC2007文件夾下有以下5個文件夾:

Annotations文件夾
該文件下存放的是xml格式的標簽文件,每個xml文件都對應于JPEGImages文件夾的一張圖片。
JPEGImages文件夾
改文件夾下存放的是數據集圖片,包括訓練和測試圖片。
ImageSets文件夾
該文件夾下存放了三個文件,分別是Layout、Main、Segmentation。在這里我們只用存放圖像數據的Main文件,其他兩個暫且不管。
SegmentationClass文件和SegmentationObject文件。
這兩個文件都是與圖像分割相關。

我們只關注三個文件夾(目標檢測)

annotation 和 JPEGImages 一一對應。

?

開始制作:
制作自己的VOC2007格式數據集其實不需要上述那么多內容,我們只要做三個部分即可:Annotations文件夾、JPEGImages文件夾、ImageSets文件夾下的Main文件。


第一步:我們參照原始VOC2007數據集的文件層次創建上述四個文件夾,也就是創建一個VOCdevkit文件夾,下面再創建Annotations、JPEGImages、ImageSets三個文件夾,最后在ImageSets文件夾下再創建一個Main文件夾。
創建好所有文件夾后,我們將自己的數據集圖片都放到JPEGImages文件夾下。按照習慣,我們將圖片的名字修改為000001.jpg這種格式的(參照原始數據集圖片命名規則),統一命名方法網絡上有很多,網上很多,這里就不多贅述了。
另外強調兩點:第一點是圖片的格式,圖片需是JPEG或者JPG格式,其他格式需要轉換一下。第二點是圖片的長寬比,圖片長寬比不能太大或太小,這個參考原始VOC2007數據集圖片即可。


第二步:我們來制作Annotations文件夾下所需要存放的xml文件。這里我們需要借助大神帶給我們的福利了:LabelImg工具,可以按照上面的說明進行安裝和使用。看到滿篇的英文是不是很暈,那這里有個簡單的方法可以幫助到大家!當然lxml 庫文件還是要裝的,但如果你用的是Anaconda環境,那么你什么都不用做,只需要點擊這里:LabelImg標注工具,根據自己的情況選擇下載window版本還是linux版本,然后解壓使用就行了!
關于如何使用,這里以window版本的為例說明。下載解壓后會得到一個exe可執行文件,另一個是data文件夾,這里面有個txt文件,內容是預定義的分類標簽名,里面的標簽可以根據自己的需要進行修改。執行exe文件打開標注界面就可以進行操作了,操作方法可以參考這篇文章:使用方法
這里給張標注工具的參考圖:

下面就進行漫長的標注工作吧。。。
說明:每標注完一張圖片后進行保存,保存的xml文件名要與對應圖片名一致,大家可以參考原始VOC2007數據集中JPEGImages文件夾下圖片的命名和Annotations文件夾中的xml文件命名規則。
備注:這里還有個制作工具? VOC2007數據格式制作工具 也很好用,大家也可以試一試。


第三步:我們來制作ImageSets文件夾下Main文件夾中的4個文件(test.txt、train.txt、trainval.txt、val.txt)。
首先我們先來了解下這四個文件到底是干什么用的,當然從文件的命名上我們也都能大體猜得上來他們的作用,不過這里還是簡單的說明一下吧。
test.txt:測試集
train.txt:訓練集
val.txt:驗證集
trainval.txt:訓練和驗證集

在原始VOC2007數據集中,trainval大約占整個數據集的50%,test大約為整個數據集的50%;train大約是trainval的50%,val大約為trainval的50%。所以我們可參考以下代碼來生成這4個txt文件:

import os import random trainval_percent = 0.5 train_percent = 0.5 xmlfilepath = 'Annotations' txtsavepath = 'ImageSets/Main' total_xml = os.listdir(xmlfilepath) num=len(total_xml) list=range(num) tv=int(num*trainval_percent) tr=int(tv*train_percent) trainval= random.sample(list,tv) train=random.sample(trainval,tr) ftrainval = open(txtsavepath+'/trainval.txt', 'w') ftest = open(txtsavepath+'/test.txt', 'w') ftrain = open(txtsavepath+'/train.txt', 'w') fval = open(txtsavepath+'/val.txt', 'w') for i in list: name=total_xml[i][:-4]+'\n' if i in trainval: ftrainval.write(name) if i in train: ftrain.write(name) else: fval.write(name) else: ftest.write(name) ftrainval.close() ftrain.close() fval.close() ftest .close()

注意:上述代碼中涉及到的路徑要寫全,另外各個數據集所占比例根據實際數據集的大小調整比例。

至此,我們自己的VOC2007格式數據集就全部制作完成了。

?

?

參考資料:

https://blog.csdn.net/qq_41185868/article/details/79927556

https://blog.csdn.net/weixin_35653315/article/details/71028523

https://blog.csdn.net/mzpmzk/article/details/88065416

https://blog.csdn.net/gulingfengze/article/details/79639111

總結

以上是生活随笔為你收集整理的【机器学习】 - 目标检测 - VOC格式数据集介绍与自己制作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。