Faster rcnn学习:caffe windows 训练

本文详细记录了在Windows环境下使用Python3部署Fast R-CNN的过程,包括配置环境、解决Python版本不匹配引发的问题及编译过程中的各类错误,并最终成功运行demo.py。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、运行demo.py

配置环境:windows7,caffe,python3

【所以过程中会更改一些Python的语法问题(因为我用的是python 3,faster rcnn代码用的是Python 2)

1.我是在安装好caffe以后来运行faster rcnn,可以看我之前的博客,我用caffe就是为了跑rcnn,所以安装caffe时我已经添加了额外的层,将caffe编译下的文件复制到py-faster-rcnn中的caffe-faster-rcnn去就可以了


额外的层:


2.下载py-faster-rcnn-master:https://github.com/rbgirshick/py-faster-rcnn

3.下载models放到data文件中去,我是百度云下载的


4.编译lib文件中的setup:

Windows下不能使用自带的lib,把自带的lib删了,重新下载lib,这里给出git的地址https://github.com/MrGF/py-faster-rcnn-windows。【python 语法会有一些错误,谁让作死得用Python3 QAQ】

1)cmd python setup.py install完成安装:


2)运行setup_cuda.py出现的问题,该博客都有解决:

https://blog.youkuaiyun.com/jacke121/article/details/79284083

将build文件下的nums和utlis分别复制到lib文件下的nums和utlis

PS:别忘记改名字将名字中的‘.cp35-win_amd64’删除,如:cpu_nms.cp35-win_amd64.pyd   ->cpu_nms.pyd

如果是Python2,这里应该是.cp27-win_amd64






5.遇到的问题:

1)一开始我的..\py-faster-rcnn-master\lib\rpn文件中的proposal_layer出现

from generate_anchors import generate_anchors

no module named 'generate_anchors'


还引发了SystemError:<Boost.python.function at ....>return null without setting an error without setting an error[回忆是这么个错误,之前一直盯着这个问题,忽略简单问题,急死我了半天不知道咋回事]

解决方法:


2)AttributeError: 'ProposalLayer' object has no attribute 'param_str_'


解决方法:找到对应文件,修改param_str_为param_str ,完成编译。

3)KeyError: '1'


解决方法:

1. 暴力地将第64行改为cfg_key = ‘TEST’#str(self.phase), demo可以正常运行。 

2. 直接做个判断,phase ==1 为 TEST 0则为TRAIN就可以了

        if self.phase:
            cfg_key = 'TEST'
        else:
            cfg_key = 'TRAIN'

6.终于运行demo.py啦!!!


候选框可多可多!!!


明天解决!!!暴风哭泣!

关于很多红框的问题,我感觉是编译setup_cuda.py通过gpu_nms.pyx和nms_kernel.cu生成gpu_nms.pyd文件的时候有问题,然而我太没用了,我不知道怎么从根本改,所以选择采用Fast rcnn中的nms(极大值抑制)--cython_nms.pyd

s

解决方法:

将fast rcnn 中的..\fast-rcnn-master\lib\utils下的cython_nms.pyd复制到faster rcnn 中的..\py-fast-rcnn-master\lib\utils文件下


然后将demo.py中:from fast_rcnn.nms_wrapper import nms改为:from utils.cython_nms import nms

改后:


得到结果:


但其实我感觉识别的时候效果可能没有那么好,比如说蓝笔这个人就没识别出来,我不知道是什么导致这个问题,暂且看来是极大值抑制算法的问题,我想从fast rcnn到faster rcnn中nms算法有改变应该是有他改变的原因吧,我现在还没弄清楚...等继续学习,看能不能弄清楚。



============Update==============

QAQ,就是极大值抑制的问题,把NMS_THRESH 的值改一下就好,NMS_THRESH = 0.5


结果:


终于结束啦!!!!撒花!!!明天开始自己的数据集训练!!!!!

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值