本文介绍 LightHeadRCNN实现细节思考与Debug

LightHeadRCNN实现细节思考与Debug

This article was original written by Jin Tian, welcome re-post, first come with https://jinfagang.github.io . but please keep this copyright info, thanks, any question could be asked via wechat: jintianiloveu

lightheadRCNN当中存在一个Proposal模块,这个与SSD是不同的。最近在训练LightHeadRCNN过程中频繁出现一些小问题。这里做一个记录。

## Proposal模块

proposal这里的nms,注意有很多次。所谓的提建议模块,说白了,就是给网络提出候选框的。这里候选框一般称作为ROIs。ROI和anchors有啥区别呢?其实就是一个坐标转换的关系。但凡是anchors都是坐标归一化的东西,从anchors转换到ROI,那么就需要进行decode,解码坐标,从而将坐标转换到图片尺寸下。

其实proposal实际上做的工作就是,将RPN网络输出的anchors(筛选之后的anchor),进行nms之类的工作,是得它更加的纯净。那Proposal之后出来的ROI实际上就已经差不多是比较准确的物体位置了(但仅仅限于anchor所能产生的位置,对于anchor无法覆盖的区域是不准确的,需要微调)。

发现的一些问题:

  1. 使用Resnet101作为后端,如何网络从0开始训练,在最开始的时候roi很多宽度为0,这样的话你很可能给到loss计算的roi就没有了(被min_size给filter掉了)此时应该怎么办?当然用与训练权重是可以的。