anchor_target_layer.py代码解读

本文详细解读了在network.py中定义的anchor_target_layer函数,该函数用于处理RPN(区域建议网络)的输出,对anchor进行标注并计算与groundtruth的偏差,为损失函数的计算做准备。此外,还介绍了辅助该函数的两个内部方法。
摘要由CSDN通过智能技术生成


anchor_target_layer函数,在network.py中作为一个层被调用到,network并且还加了一些其他的处理,封装在_anchor_target_layer函数里面。
这里面有三个函数方法,一个主要的就是anchor_target_layer,其他两个方法都是为这个函数方法服务的。
anchor_target_layer主要针对RPN的输出进行处理,对RPN的输出结果加工,对anchor打上标签,然后通过与groundtrue的信息比对,计算出与真实框的偏差,这些都指向了为计算loss误差做准备。

# --------------------------------------------------------
# Faster R-CNN
# Copyright (c) 2015 Microsoft
# Licensed under The MIT License [see LICENSE for details]
# Written by Ross Girshick and Xinlei Chen
# --------------------------------------------------------
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import os
from model.config import cfg
import numpy as np
import numpy.random as npr
from utils.cython_bbox import bbox_overlaps
from model.bbox_transform import bbox_transform
#输入:rpn分类得分,gt、图像、所有框坐标和索引、总框数量
def anchor_target_layer(rpn_cls_score, gt_boxes, im_info, _feat_stride, all_anchors, num_anchors):
  """Same as the anchor target layer in original Fast/er RCNN """
  A = num_anchors#A=总anchor数量
  total_anchors = all_anchors.shape[0]#用shape[0]来统计行数从而统计框数量
  K = total_anchors / num_anchors#框数量和anchor数量的比例,统计一下平均每一个anchor center 有几个框被选取。

  # allow boxes to sit over the edge by a small amount
  _allowed_border = 0#允许框是紧贴图像边缘的

  # map of shape (..., H, W)
  height, width = rpn_cls_score.shape[1:3]#RPN输出得分图的长和宽,应该是第二个reshape之后的,wxh是特征图的大小,代表的是anchor的数量。

  # only keep anchors inside the image
  #过滤掉不在图像范围内的Boxes,首先用where函数加条件筛选出索引
  inds_inside = np.where(
    (all_anchors[:, 0] >= -_allowed_border) &
    (all_anchors[:, 1] >= -_allowed_border) &
    (all_anchors[:, 2] < 
  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值