1. 程式人生 > >自動化工具制作PASCAL VOC 數據集

自動化工具制作PASCAL VOC 數據集

進行 每一個 size 分享 jpeg make 內容 truncated 方法

自動化工具制作PASCAL VOC 數據集

1. VOC的格式

VOC主要有三個重要的文件夾:AnnotationsImageSetsJPEGImages
技術分享

JPEGImages 文件夾

該文件夾下存放著所有的訓練集圖片,格式都是.jpg

技術分享

需要註意的是命名格式,雖然對命名沒有特別要求,但是最好按照官方的命名方法,如000001.jpg000123.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.txttest.txttrainval.txtval.txt

技術分享

test.txt中保存的是測試所用的所有樣本的名字,不過沒有後綴(下同),一般測試的樣本數量占總數據集的50%

train.txt中保存的是訓練所用的樣本名,樣本數量通常占trainval

的50%左右

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 數據集