博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
_bbox_pred函数
阅读量:5930 次
发布时间:2019-06-19

本文共 1297 字,大约阅读时间需要 4 分钟。

fast中的_bbox_pred函数和faster中的bbox_transform_inv是一样的,是将框进行4个坐标变换得到新的框坐标。fast中是将selective search生成的框坐标进行回归变换,faster中用了两个地方,一个是把根据rpn滑动机制生成的anchor框进行回归变换,另一个是在fast rcnn网络中把rpn生成的region proposal进行回归变换。

def _bbox_pred(boxes, box_deltas):    """Transform the set of class-agnostic boxes into class-specific boxes    by applying the predicted offsets (box_deltas)    """    if boxes.shape[0] == 0:        return np.zeros((0, box_deltas.shape[1]))    boxes = boxes.astype(np.float, copy=False)    widths = boxes[:, 2] - boxes[:, 0] + cfg.EPS    heights = boxes[:, 3] - boxes[:, 1] + cfg.EPS    ctr_x = boxes[:, 0] + 0.5 * widths    ctr_y = boxes[:, 1] + 0.5 * heights    dx = box_deltas[:, 0::4]    dy = box_deltas[:, 1::4]    dw = box_deltas[:, 2::4]    dh = box_deltas[:, 3::4]    pred_ctr_x = dx * widths[:, np.newaxis] + ctr_x[:, np.newaxis]    pred_ctr_y = dy * heights[:, np.newaxis] + ctr_y[:, np.newaxis]    pred_w = np.exp(dw) * widths[:, np.newaxis]    pred_h = np.exp(dh) * heights[:, np.newaxis]    pred_boxes = np.zeros(box_deltas.shape)    # x1    pred_boxes[:, 0::4] = pred_ctr_x - 0.5 * pred_w    # y1    pred_boxes[:, 1::4] = pred_ctr_y - 0.5 * pred_h    # x2    pred_boxes[:, 2::4] = pred_ctr_x + 0.5 * pred_w    # y2    pred_boxes[:, 3::4] = pred_ctr_y + 0.5 * pred_h    return pred_boxes

 

转载地址:http://soktx.baihongyu.com/

你可能感兴趣的文章
ios3和ios4退出时的区别
查看>>
BugSense in iOS
查看>>
软件工程与项目管理
查看>>
从零开始理解JAVA事件处理机制(1)
查看>>
redis基础学习---1
查看>>
ASP.NET Core 一步步搭建个人网站(1)_环境搭建
查看>>
雅虎面试题─有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中data值相同的结点删除...
查看>>
微软等公司数据结构+算法面试100题---字符串
查看>>
matlab的基本操作(1)
查看>>
3.Java基础面试题(一)
查看>>
Java学习入门篇_流程控制语句
查看>>
0617 主存空间的分配和回收
查看>>
提升 LaTeX 效率的小工具:Detexify LaTeX handwritten symbol recognition
查看>>
C++类中的静态成员变量和静态成员函数的作用
查看>>
Spring容器装配bean的方式
查看>>
String详解
查看>>
线程 不安全,
查看>>
sql-server学习:索引
查看>>
常用安全资源整理(持续更新)
查看>>
【转】JMS的规范,以及MQ中p2p和publish/subscriber2中模式
查看>>