VOC數據集製作和比例設置(轉)

相信看這篇文章的人都在做深度學習吧,此數據集是爲目標檢測做的數據集,有錯誤處請海涵

代碼見我的github上:https://github.com/EddyGao/make_VOC2007
第一步:首先了解VOC2007數據集的格式

1)JPEGImages文件夾

文件夾裏包含了訓練圖片和測試圖片,混放在一起

2)Annatations文件夾

文件夾存放的是xml格式的標籤文件,每個xml文件都對應於JPEGImages文件夾的一張圖片

3)ImageSets文件夾

Action存放的是人的動作,我們暫時不用

Layout存放的人體部位的數據。我們暫時不用

Main存放的是圖像物體識別的數據,分爲20類,當然我們自己製作就呵呵呵不一定了,如果你有精力,Main裏面有test.txt , train.txt, val.txt ,trainval.txt.這四個文件我們後面會生成

Segmentation存放的是可用於分割的數據

4)其他的文件夾不解釋了,分割XXX等用的

如果你下載了VOC2007數據集,那麼把它解壓,把各個文件夾裏面的東西刪除,保留文件夾名字。如果沒下載,那麼就仿照他的文件夾格式,自己建好空文件夾就行。

第二步:搞定JPEGSImages文件夾

1)把你的圖片放到JPEGSImages裏面,在VOC2007裏面,人家的圖片文件名都是000001.jpg類似這樣的,我們也統一格式,把我們的圖片名字重命名成這樣的,如果你的文件太多怎麼辦,請看我的另一篇文章http://blog.csdn.net/gaohuazhao/article/details/60324715 能批量重命名文件

第三步:搞定Annatations文件夾

網上很多教程,但是我覺得都很麻煩,直到我遇到了一位大神做的軟件,手動標註,會自動生成圖片信息的xml文件

1)在這裏下載:https://github.com/tzutalin/labelImg,至於怎麼用相信你打開就知道了

2)保存的路徑就是我們的Annatations文件夾,別保存別的地方去了,,,

3)一張張的慢慢畫框。。。。。。。。。大約過了幾個小時,好繼續下一步

第四步:搞定ImageSets文件夾中的Main文件夾中的四個文件

直接上一個代碼給你:

import os
import random
 
trainval_percent = 0.66
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('ImageSets/Main/trainval.txt', 'w')
ftest = open('ImageSets/Main/test.txt', 'w')
ftrain = open('ImageSets/Main/train.txt', 'w')
fval = open('ImageSets/Main/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()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章