怎么看mmdetection版本_修改mmdetection支持Cascade-rcnn使用OHME

LZ使用mmdetection2.0.0,奈何cascade rcnn的rcnn阶段的OHME并没有完善,一跑报错

TypeError: __init__() missing 1 required positional argument: 'context'

根据mmdetection的github上的这个issue和这个issue,发现没有是context参数缺失,根据这个页面的显示,定位到mmdet/models/detectors/two_stage.py,发现目标行if语句块在2.0.0版本上没有出现,于是根据报错信息

  File "mmdetection/mmdet/models/roi_heads/cascade_roi_head.py", line 89, in init_assigner_sampler
    self.bbox_sampler.append(build_sampler(rcnn_train_cfg.sampler))

找到了目前版本的build_sampler()的地方,位于mmdet/models/roi_heads/cascade_roi_head.py的88行,于是,将

self.bbox_sampler.append(build_sampler(rcnn_train_cfg.sampler))

改为

self.bbox_sampler.append(build_sampler(rcnn_train_cfg.sampler, context=self))

运行训练程序,发现报错:

AttributeError: 'CascadeRoIHead' object has no attribute 'current_stage'

回到mmdet/models/roi_heads/cascade_roi_head.py的88行,设置断点查看self属性,确实没有'current_stage'。在本py文件搜索'current_stage',发现其在215行的forward_train方法内,考虑self.current_stage在执行init_assigner_sampler方法的时候没有初始化。

通过调试信息发现self.current_stage的意义为指示目前是rcnn的第几个阶段。于是,问题迎刃而解,在遍历self.train_cfg训练配置的时候,要指出其是rcnn的第几阶段,所以在遍历的时候使用enumerate()获得目前遍历的索引,赋予self.current_stage即可,代码如下:

def init_assigner_sampler(self):
    # build assigner and smapler for each stage
    self.bbox_assigner = []
    self.bbox_sampler = []
    if self.train_cfg is not None:
        for i, rcnn_train_cfg in enumerate(self.train_cfg):  # changed
            self.current_stage = i  # add
            self.bbox_assigner.append(
                build_assigner(rcnn_train_cfg.assigner))
            self.bbox_sampler.append(build_sampler(rcnn_train_cfg.sampler, context=self))  # add 'context=self'

添加一行代码以及更改两行代码,就能够愉快的使用cascade-rcnn的OHME啦。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值