Windows下實現(xiàn)將Pascal VOC轉(zhuǎn)化為TFRecords
前言
由于TensorFlow常用TFrecords作為輸入格式,我們需要將制作好的Pascal VOC轉(zhuǎn)為TFrecords格式。使用 object detection API 內(nèi)提供的腳本。
TFRecords格式如下:
-uint64 length
-uint32 masked_crc32_of_length
-byte data[length]
-uint32 masked_crc32_of_data
前置要求:
Anaconda3(使用python3.x)
制作好的Pascal VOC數(shù)據(jù)集
1、配置protobuf
Google的protobuf是一種輕便高效的結構化數(shù)據(jù)存儲格式,結構擴展性高,速度快,密度大。我們下載對應的protoc-3.4.0-win32.zip版本。解壓之后的文件內(nèi)容如下:
將bin文件夾所在路徑添加到環(huán)境變量PATH,再將bin下的protoc.exe移動到C:\Windows\System32目錄下。
cmd下進入~models/reseach目錄下,輸入:
protoc object_detection/protos/*.proto --python_out=.
2、設置搜索路徑
Windows下的API使用時會出現(xiàn)圖示bug,需要創(chuàng)建xx.pth文件,將以下兩條路徑添加進去:
~\models\research
~\models\research\slim
接著,將pth文件移動到python安裝目錄的site-packages下。
最后,我們利用cmd運行model_builder_test.py文件,測試環(huán)境是否搭建成功。
3、修改pascal_label_map.pbtxt
打開~models/research/object_detection/data/pascal_label_map.pbtxt,修改其中的name為自己的分類名。
如圖所示,這里我要識別分類的是圖片數(shù)字0~3,所以修改了對應的name。
4、修改create_pascal_tf_record.py文件
(1)47行:根據(jù)自己的VOC數(shù)據(jù)集格式,修改年份,如果是2007,則保持默認;
(2)49行:將data/pascal_label_map.pbtxt改為絕對路徑
(3)81行:改為img_path = os.path.join('JPEGImages', data['filename'])
(4)82行:改為full_path =os.path.join(dataset_directory, 'VOC2012',img_path+'.jpg')
(5)163行 : 改為examples_path =os.path.join(data_dir, year, 'ImageSets', 'Main','xx' + FLAGES.set + '.txt')
xx里的內(nèi)容是~VOCdevkit\VOC2012\ImageSets\Main目錄下的文件前綴名稱,如果沒有,留空就可以。
5、運行
cmd下輸入:
python ~/models/research/object_detection/dataset_tools/create_pascal_tf_record.py\
--data_dir=~/VOCdevkit \
--year=VOC2012 \
--output_path=~/xx.record
其中,波浪線的地方分別為自己的py文件位置、VOC數(shù)據(jù)位置、轉(zhuǎn)換的record文件存儲位置。
注:
1、protoc必須使用3.4版本而非3.5,否則會出現(xiàn)找不到*.proto的bug;
2、運行時出現(xiàn)很多bug,根據(jù)bug一步一步回推代碼修改。
以上這篇Windows下實現(xiàn)將Pascal VOC轉(zhuǎn)化為TFRecords就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python不相等的兩個字符串的 if 條件判斷為True詳解
這篇文章主要介紹了python不相等的兩個字符串的 if 條件判斷為True詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03關于Django ForeignKey 反向查詢中filter和_set的效率對比詳解
今天小編就為大家分享一篇關于Django ForeignKey 反向查詢中filter和_set的效率對比詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12詳解用Python調(diào)用百度地圖正/逆地理編碼API
這篇文章主要介紹了詳解用Python調(diào)用百度地圖正/逆地理編碼API,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07python+pygame實現(xiàn)坦克大戰(zhàn)
這篇文章主要為大家詳細介紹了python+pygame實現(xiàn)坦克大戰(zhàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09