目標檢測 – 解析VOC和COCO格式並制作自己的數據集


http://www.xyu.ink/3612.html

 

 

  相對其他計算機視覺任務,目標檢測算法的數據格式更為復雜。為了對數據進行統一的處理,目標檢測數據一般都會做成VOC或者COCO的格式。
  VOCCOCO都是既支持檢測也支持分割的數據格式,本文主要分析PASCAL VOCCOCO數據集中物體識別相關的內容,並學習如何制作自己的數據集。

VOC格式

目錄結構

  VOC格式數據集一般有着如下的目錄結構:

 

 

  其中JPEGImages目錄中存放的是源圖片的數據,(當然圖片並不一定要是.jpg格式的,只是規定文件夾名字叫JPEGImages);
  Annotations目錄中存放的是標注數據,VOC的標注是xml格式的,文件名與JPEGImages中的圖片一一對應;
  ImageSets/Main目錄中存放的是訓練和驗證時的文件列表,每行一個文件名(不包含擴展名),例如train.txt是下面這種格式的:

 

 

XML標注格式

  xml格式的標注格式如下:

 

 

制作自己的VOC數據集

  制作自己數據集的步驟為:

  ① 新建一個JPEGImages的文件夾,把所有圖片放到這個目錄。(或者使用ln -s把圖片文件夾軟鏈接到JPEGImages);

  ② 由原來的數據格式生成xml,其中posetruncateddifficult沒有指定時使用默認的即可。bounding box的格式是[x1,y1,x2,y2],即[左上角的坐標, 右下角的坐標]x是寬方向上的,y是高方向上的。

  ③ 隨機划分訓練集和驗證集,訓練集的文件名列表存放在ImageSets/Main/train.txt,驗證集的文件名列表存放在ImageSets/Main/val.txt

參考代碼

  附一個由csvvoc格式的腳本:

 

 

COCO格式

目錄結構

  COCO格式數據集的目錄結構如下:

 

 

  這里的train2017val2017稱為set_nameannnotations文件夾中的json格式的標注文件名要與之對應並以instances_開頭,也就是instances_{setname}.json

json標注格式

  與VOC一個文件一個xml標注不同,COCO所有的目標框標注都是放在一個json文件中的。
這個json文件解析出來是一個字典,格式如下:

 

 

  制作自己的數據集的時候infolicenses是不需要的。只需要中間的三個字段即可。

  其中images是一個字典的列表,每個圖片的格式如下:

 

 

  自己的數據集只需要寫file_name,height,widthid即可。id是圖片的編號,在annotations中也要用到,每張圖是唯一的。

  categories表示所有的類別,格式如下:

 

 

  annotations是檢測框的標注,一個bounding box的格式如下:

 

 

  其中segmentation是分割的多邊形,如果不知道直接填寫[[x1, y1, x2, y1, x2, y2, x1, y2]]就可以了,area是分割的面積,bbox是檢測框的[x, y, w, h]坐標,category_id是類別id,與categories中對應,image_id圖像的id,idbboxid,每個檢測框是唯一的。

參考代碼

  附一個VOC轉COCO格式的參考代碼

 

 

參考鏈接

https://cocodataset.org/#format-data


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM