【pytorch-ssd目標檢測】制作類似pascal voc格式的目標檢測數據集


pascal voc目標檢測數據集格式如下:

其中:

  • Annotations為圖像標注信息xml文件
  • ImageSets為訓練集、測試集、驗證、訓練驗證集圖像名的txt文件 
  • JPEGImages為原始的圖片

pascal voc或yolo格式的數據可以使用labelimg進行標注:下載地址:

鏈接:https://pan.baidu.com/s/1r8x7tu0sdO_UUuCXKVfELQ
提取碼:l325 

操作挺簡單的,就不介紹了。

標注好的xml文件類似如下:

<annotation>
    <folder>JPEGImages</folder>
    <filename>test_00000002.jpg</filename>
    <path>E:\detection\pascal voc\maskornot\JPEGImages\test_00000002.jpg</path>
    <source>
        <database>Unknown</database>
    </source>
    <size>
        <width>480</width>
        <height>600</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>mask</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>112</xmin>
            <ymin>7</ymin>
            <xmax>352</xmax>
            <ymax>325</ymax>
        </bndbox>
    </object>
</annotation>

其對應的圖像如下:

然后划分訓練集、測試集、驗證集、訓練驗證集:在原始VOC2007數據集中,trainval大約占整個數據集的50%,test大約為整個數據集的50%;train大約是trainval的50%,val大約為trainval的50%

import os
import random
 
trainval_percent = 0.5
train_percent = 0.5
xmlfilepath = '/content/drive/My Drive/pytorch_ssd/data/maskornot/Annotations'
txtsavepath = '/content/drive/My Drive/pytorch_ssd/data/maskornot/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()

運行之后:

其中tranval.txt的部分結果為:

test_00000002
test_00000003
test_00000006
test_00000009
test_00000008
test_00000012
test_00000013
test_00000014
test_00000020

至此,目標檢測數據集的創建就完成了。

 

下一節,使用pytorch-ssd訓練自己創建的數據集。


免責聲明!

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



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