自動化工具制作PASCAL VOC 數據集
自動化工具制作PASCAL VOC 數據集
1. VOC的格式
VOC主要有三個重要的文件夾:Annotations、ImageSets和JPEGImages
JPEGImages 文件夾
該文件夾下存放著所有的訓練集圖片,格式都是.jpg
需要註意的是命名格式,雖然對命名沒有特別要求,但是最好按照官方的命名方法,如000001.jpg
,000123.jpg
,然後在這個文件夾裏就沒有其他東西了。
Annotations 文件夾
該文件夾下存放的是每一個圖片的標註信息,文件都是.xml
格式,文件名和圖片名是一致的對於該xml
的格式,可以參考一下示例:
以上是使用標註工具標註的人臉,(在下面會提到,自己寫的一個比較簡陋的標註工具 ^^),該圖片的名字是000001.jpg
然後會在Annotations
文件夾下面生成一個000001.xml
文件與之對應:
<annotation>
<folder>VOCType</folder>
<filename>000001.jpg</filename>
<source>
<database>VOC</database>
</source>
<size>
<width>485</width>
<height>324</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>face</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>287</xmin>
<ymin>57</ymin>
<xmax>351</xmax>
<ymax>150</ymax>
</bndbox>
</object>
</annotation>
這是一個基本的格式,其中的object
標簽保存的就是人臉的位置信息,對於一個圖片裏面有多個對象的話,在該xml中就有多個object
。然後Annotations
文件夾裏面就是這樣的一堆xml文件,其他沒什麽。
ImageSets 文件夾
在這個文件夾中還有一個Main
文件夾,其他的文件夾不太重要(對於我目前的需求來說),這個文件夾中主要有四個.txt
文件,分別是train.txt
、test.txt
、trainval.txt
、val.txt
test.txt
中保存的是測試所用的所有樣本的名字,不過沒有後綴(下同),一般測試的樣本數量占總數據集的50%
train.txt
中保存的是訓練所用的樣本名,樣本數量通常占trainval
val.txt
中保存的是驗證所用的樣本名,數量占trainval
的50%左右
trainval.txt
中保存的是訓練驗證樣本,是上面兩個的總和,一般數量占總數據集的50%
2.自動化標註工具
根據VOC的格式可以寫一個標註工具。例如我使用Python和C++制作的一個工具:github
首先是rename.py
,該腳本用來生成三個基本文件夾並將圖片重新命名為VOC格式保存在JPEGImages中
然後打開VS2013工程,運行後可以開始進行圖片的標註
標註完成後可以執行txt.py
腳本,用來生成test.txt,train.txt,val.txt,trainval.txt
四個文件並保存在Main文件夾中。
相關內容請見github。
自動化工具制作PASCAL VOC 數據集