轉載:VOC2007數據集製做

轉載自:https://blog.csdn.net/gaohuazhao/article/details/60871886python

另外,可參考:https://blog.csdn.net/dcxhun3/article/details/52923310git

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

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

1)JPEGImages文件夾學習

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

2)Annatations文件夾spa

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

3)ImageSets文件夾xml

Action存放的是人的動做,咱們暫時不用blog

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,至於怎麼用相信你打開就知道了。(https://github.com/puzzledqs/BBox-Label-Tool

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

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

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

直接上一個代碼給你:

[python] view plain copy
  1. import os  
  2. import random  
  3.   
  4. trainval_percent = 0.66  
  5. train_percent = 0.5  
  6. xmlfilepath = 'Annotations'  
  7. txtsavepath = 'ImageSets\Main'  
  8. total_xml = os.listdir(xmlfilepath)  
  9.   
  10. num=len(total_xml)  
  11. list=range(num)  
  12. tv=int(num*trainval_percent)  
  13. tr=int(tv*train_percent)  
  14. trainval= random.sample(list,tv)  
  15. train=random.sample(trainval,tr)  
  16.   
  17. ftrainval = open('ImageSets/Main/trainval.txt', 'w')  
  18. ftest = open('ImageSets/Main/test.txt', 'w')  
  19. ftrain = open('ImageSets/Main/train.txt', 'w')  
  20. fval = open('ImageSets/Main/val.txt', 'w')  
  21.   
  22. for i  in list:  
  23.     name=total_xml[i][:-4]+'\n'  
  24.     if i in trainval:  
  25.         ftrainval.write(name)  
  26.         if i in train:  
  27.             ftrain.write(name)  
  28.         else:  
  29.             fval.write(name)  
  30.     else:  
  31.         ftest.write(name)  
  32.   
  33. ftrainval.close()  
  34. ftrain.close()  
  35. fval.close()  
  36. ftest .close()  

OK,製做完成,就是這麼簡單,那麼解釋一下這四個txt文檔是幹嗎的,看名字就知道,就是分分多少圖片做爲訓練,多少圖片做爲測試,,,,

相關文章
相關標籤/搜索