轉載:我的caffe練習(四)--faster-rcnn的caffe實現

轉載:https://blog.csdn.net/zhou894509/article/details/81220603

 

之前是做的分類,接下來要做檢測。

對於目標檢測:從一開始的R-CNN、OverFeat到後面的Fast/Faster R-CNN,SSD,YOLO系列,再到2018年最近的Pelee,檢測的效果和性能越來越出色。

目前流行的論文以及說明詳見:https://zhuanlan.zhihu.com/p/40047760

 

在這裏就先實現faster-rcnn,需要安裝py-faster-rcnn

windows下的安裝參照:https://blog.csdn.net/zhangzm0128/article/details/71698880

照着這篇文章一步步來,這都正常。

因爲py-faster-rcnn只支持python2,而我用的是python3.5版本,將py-faster-rcnn改成支持python3.5版本,需要要對其進行修改。還要本人顯卡太挫,無奈只能選擇cpu。以下是需要修改的地方。

1.編譯py-faster-rcnn依賴庫的時候,要將setup.py下的iteritems改成items,還要刪除nms文件夾下原來自帶的cpu_nms.pyd 和gpu_nms.pyd兩個文件。

2.代碼中最多的修改是裏面的print函數都要加上括號

3.修改lib/rpn/proposal_layer.py文件,

找不到generate_anchors的話,將

from generate_anchors import generate_anchors

改爲

from rpn.generate_anchors import generate_anchors

 
  1. Traceback (most recent call last):

  2. File "tools/demo.py", line 135, in <module>

  3. net = caffe.Net(prototxt, caffemodel, caffe.TEST)

  4. File "F:\WorkSpace\caffe_net\py-faster-rcnn\tools\..\lib\rpn\proposal_layer.py", line 26, in setup

  5. layer_params = yaml.load(self.param_str_)

  6. AttributeError: 'ProposalLayer' object has no attribute 'param_str_'

將param_str_改爲param_str

4.有幾處有xrange錯誤,python3.5用的是range

5.cPickle改爲pickle

6.


 
  1. Traceback (most recent call last):

  2. File "tools/demo.py", line 142, in <module>

  3. _, _= im_detect(net, im)

  4. File "F:\WorkSpace\caffe_net\py-faster-rcnn\tools\..\lib\fast_rcnn\test.py", line 154, in im_detect

  5. blobs_out = net.forward(**forward_kwargs)

  6. File "F:\WorkSpace\caffe_net\py-faster-rcnn\tools\..\caffe-fast-rcnn\python\caffe\pycaffe.py", line 131, in _Net_forward

  7. self._forward(start_ind, end_ind)

  8. File "F:\WorkSpace\caffe_net\py-faster-rcnn\tools\..\lib\rpn\proposal_layer.py", line 65, in forward

  9. pre_nms_topN = cfg[cfg_key].RPN_PRE_NMS_TOP_N

  10. KeyError: '1'

在64行改成

#cfg_key = str(self.phase) # either 'TRAIN' or 'TEST'
cfg_key = str('TRAIN' if self.phase == 0 else 'TEST')

7.

因爲是用的cpu,所以會出現:ImportError: No module named gpu_nms,修改lib/fast_rcnn/nms_wrapper.py,

#from nms.gpu_nms import gpu_nms
from nms.cpu_nms import cpu_nms
def nms(dets, thresh, force_cpu=True):

 

最後在目錄 py-faster-rcnn 下運行python tools/demo.py --cpu。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章