代码目录:https://github.com/chenyuntc/simple-faster-rcnn-pytorch
详细解读:https://blog.csdn.net/qq_31355669/article/details/96832027
train.py没什么说的,主要的训练,每次epoch进行验证。
主要是trainer,将模块的加载以及loss的计算,都在这块
rpn中的propasal creator使用nms模块
roi_indices:在本项目中没有作用
bbox = bboxes[0]#bbox维度( R, 4)
label = labels[0]#labels维度为(R,1)
rpn_score = rpn_scores[0] #(H/16*W/16*9,2)
rpn_loc = rpn_locs[0] #(H/16*W/16**9,4)
roi = rois #(大约2000,4)(应图片的大小的不同而不同)
此代码确定了每次只有一张图片参加训练。。。。。。。。。。。
RPN:得到nms后的前大约2000个bbox的中心点以及的长宽,(NMS:锚点加上偏移值,得到目标bbox,后使用前景的概率进行排序,训练选前12000个roi,nms则是分别计算两两的iou,iou太高则排除,留下iou低的(可自己设置阀值))
rpn_scores:网络输出后,softmax后二分类的概率
rpn_scores:torch.size(batch,H/16W/169,2)
rpn_locs:直接是网络的输出的值,即:网络的回归值 #torch.size((batch,H/16W/169,4))
RPN Losses:
loss计算,去除了batch,batch为1
调用anchor_target_creator函数,bbox为(R,4)
ious:(H/16W/169,R)
inside_index:在图片范围内的锚点的索引
argmax_ious:(inside_index,1)获得每