要訓練ssd基本都是在liu wei框架下改,生成lmdb這一關照葫蘆畫瓢總遇坑,記錄之:
1. labelmap_voc.prototxt要根據自己的分類修改,比如人臉檢測改成這樣:
item { name: "none_of_the_above" label: 0 display_name: "background" } item { name: "face" label: 1 display_name: "face" }
這里只有兩類:背景、臉,因此訓練的時候也要記得num_classes改成2(20分類的voc是21)
2. 路徑一定要寫對,確認路徑寫對的情況下如果還是報找不到的錯可能是字符問題。
解決方案是在兩行sed中間加上一行:
sed -i "s/^/$name\/JPEGImages\//g" $img_file sed -i 's/^M//g' $img_file sed -i "s/$/.jpg/g" $img_file
其中^M不是鍵盤直接輸入的,是ctrl+v ctrl+M連續輸入
3. 默認是jpg格式文件,如果是png,需要改兩個地方:
creat_list.sh里:
sed -i "s/$/.jpg/g" $img_file
creat_data.sh
extra_cmd="--encode-type=jpg --encoded"
剩下的可能就是xml格式不對,比如<name>face<name>等處在生成xml時候搞錯了;
執行creat_data.sh時經常會報bounding box irregular,不知道對結果有什么影響,能用。
-------------------------------------------------------------------------
faster rcnn給了python腳本處理,在./lib/dataset目錄下,所以不用提前生成lmdb,把pascal_voc格式的數據拷貝到./data/VOCdevkit2007目錄下即可,參考這里修改基本上可以滿足訓練要求。