記pytorch版faster rcnn配置運行中的一些坑
-
項目地址
https://github.com/jwyang/faster-rcnn.pytorch
一般安裝配置參考README.md文件
-
配置詳情
- Python3.6
- pytorch1.0
- GPURTX2080
- CUDA10.0
-
參考博客
https://blog.csdn.net/weixin_43380510/article/details/83004127
1. 分支爬取錯誤
git clone -b pytorch-1.0 https://github.com/jwyang/faster-rcnn.pytorch.git
不同分支的項目需求配置不一樣,比如主分支是支持pytorch-0.4.0,上述克隆的分支是支持pytorch-1.0的
2.ImportError: cannot import name '_mask'
訓練時遇到無法導入_mask的問題
https://github.com/jwyang/faster-rcnn.pytorch/issues/410
https://github.com/cocodataset/cocoapi/issues/59#issuecomment-469859646
原因應該是項目中/lib/pycocotools里的文件過於老舊,將https://github.com/cocodataset/cocoapi/tree/master/PythonAPI/pycocotools中的文件復制到/lib/pycocotools文件中,然后進入lib目錄下,執行下列代碼
python setup.py build develop
3.訓練過程發生assert(boxes[:,2]>=boxes[:,0]).all()
這個問題是由於標注框中含有0導致的,網上有很多的解決辦法,比如https://blog.csdn.net/xzzppp/article/details/52036794,但是個人覺得這樣其實改變了代碼原本用意,所以沒有采用。我所采用的解決方法其實很簡單,就是在自己制作數據集,寫XML文件的時候,遇到邊框為0的時候+1,也就是起始從1開始,而不是從0開始。
4.修改檢測類別
修改/lib/datasets/pascal_voc.py文件
將上述代碼修改成你需要的檢測的類別。
例:
self._classes = ('__background__', # always index 0
'apple', 'banana)
5.清空緩存
當重新訓練的時候,往往會遇到圖片讀取錯誤的問題,這個便是因為緩存沒有清空。原因是當訓練數據集的時候,會讀取data/cache目錄下的.pkl緩存文件,所以每次重新訓練的時候,一定要記得刪除data/cache文件夾下的緩存文件。
6.運行demo.py文件模型數量過多
修改demo.py文件
對應4,修改成對應檢測類別