Faster R-CNN(Tensorflow版) 訓練自己的數據集需要修改的地方。皮膚病相關的數據集

我使用的代碼鏈接在這里 https://github.com/smallcorgi/Faster-RCNN_TF
我處理自己數據的標記工具在這里 https://github.com/tzutalin/labelImg

為了最小程度的修改源代碼,我把自己的數據處理成和 VOC2007 文件格式一模一樣的結構。這樣,只需要修改 classes 里的類別就可以了,路徑的問題完全不用管。

修改的文件路徑

/home/deep/jcx/Faster-RCNN_TF/lib/datasets/pascal_voc.py
修改為自己數據的類

pascal_voc.py

/home/deep/jcx/Faster-RCNN_TF/lib/networks/VGGnet_train.py
修改類的個數

VGGnet_train.py

/home/deep/jcx/Faster-RCNN_TF/lib/networks/VGGnet_test.py
修改類的個數

VGGnet_test.py

以上就是我修改的所有地方,簡單吧 :D

訓練我們的數據

訓練前要把官方的數據替換掉,如果你拿原始VOC數據訓練過,還需要把load的數據和模型刪掉。

需要刪除這兩個目錄下的文件:

/home/deep/jcx/Faster-RCNN_TF/data/cache
/home/deep/jcx/Faster-RCNN_TF/output/faster_rcnn_end2end

開始訓練

首先要到根目錄 Faster-RCNN_TF
然后到lib目錄下執行:

export PATH=$PATH:/usr/local/cuda-8.0/bin/
make
退回到Faster-RCNN_TF執行:
./experiments/scripts/faster_rcnn_end2end.sh gpu 0 VGG16 pascal_voc

demo.py

★注意:訓練到最后會報錯,提示 --weights: expected one argument, 這時候需要添加我們訓練好的模型路徑。在訓練階段。

開始測試

執行test_net.py 并添加了--weights 的參數。
執行前查看 /home/deep/jcx/Faster-RCNN_TF/data/VOCdevkit2007/annotations_cache/annots.pkl 的緩存文件是不是清空的。

python ./tools/test_net.py --device gpu --device_id 0 --weights /home/deep/jcx/Faster-RCNN_TF/output/faster_rcnn_end2end/voc_2007_trainval/VGGnet_fast_rcnn_iter_70000.ckpt --imdb voc_2007_test --cfg experiments/cfgs/faster_rcnn_end2end.yml --network VGGnet_test

使用 demo.py 檢測從網上找到的相關皮膚病圖片

直接用模型對相關圖片進行目標檢測
首先要把 demo.py 文件里的 CLASSES 要與之前修改的類別保持一致
/home/deep/jcx/Faster-RCNN_TF/tools
在文件根目錄下面執行此命令,開始生成結果:

python ./tools/demo.py --model /home/deep/jcx/Faster-RCNN_TF/output/faster_rcnn_end2end/voc_2007_trainval/VGGnet_fast_rcnn_iter_70000.ckpt

保存標記好的圖片

demo.py 里添加我們要保存圖片的路徑

demo.py.png

結果展示

疣1.jpg

疣2.jpg

疣29.jpg

疣35.jpg
疣45.jpg
疣101.jpg
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容