• bounding box的简单理解


    1. 小吐槽

    OverFeat是我看的第一篇深度学习目标检测paper,因为它是第一次用深度学习来做定位、目标检测问题。可是,很难懂。。。那个bounding box写得也太简单了吧。虽然,很努力地想理解还找了很多博客、论文什么。后来,还是看RCNN,总算有点理解。

    2. 对bounding box的误解

    我一直以为卷积网络最后可以得到四个值:分别表示学习到的bounding box坐标,然后回归的目标是将这四个坐标与ground truth的四个坐标进行比较回归。其实不是这样的!正文如下

    3. bounding box

    (1) 一开始会有预测的边框值输入。原来的分类问题只是输入一张图,但是现在对于输入的图还有它在原图中的位置信息。比如滑动窗口、RCNN中selective search给出的区域提案等,产生用于分类判断的区域$P$

    (2) 输入的图会通过卷积网络学习提取出特征向量$phi_5(P)$

    (3) 目标检测的一个目标是希望最后的bounding box(P)和ground truth(G)一致,但是实现方法并不是学习坐标,而是学习变形比例:包括两个部分,一个是对边框(x, y)进行移动,一个是对边框大小(w, h)进行缩放

    • 假设原来的bounding box为P(x, y, w, h),ground truth G(x, y, w, h)
    • 直观的变形计算为

    $hat{G}_x = P_x + d_x\ hat{G}_y = P_y + d_y\ hat{G}_w = P_w * d_w\ G_h'=P_h * d_h$

    • RCNN中给出的变形转换关系

    $hat{G}_x = P_wd_x(P) + P_x\ hat{G}_y = P_hd_y(P) + P_y\ hat{G}_w = P_wexp(d_w(P))\ hat{G}_h = P_hexp(d_h(P))$

    所以目标是要计算得到$d_x(P),d_y(P),d_w(P),d_h(P)$四个参数

    • 把这几个写成学习到的特征向量$phi_5(P)$的线性关系

    $d_*(P) = w_*^Tphi_5(P)$

    目标变成学习$w_*^T$参数

    • 学习的目标

    $w_*=underset{argmin}{hat{w}_*}sum_i^N(t^i_*-hat{w}^T_*phi_5(P^i))^2+lambda||hat{w}_*||^2$

    其中$t_*^i$和上面定义的转换关系中的$d_*^i$是对应的,也就是

    $t_x=(G_x-P_x)/P_w\ t_y = (G_y-P_y)/P_h\t_w=log(G_w/P_w)\t_h=log(G_h/P_h)$

    • 如何学习

    回归问题

    4. 总结

    不懂的问题不要一直在一个地方一直想,还是要多去看看其它相关的。一个看不懂就再看一个。有时主观的下意识的理解会有偏差,然后就很难去接受新的,没法跳出误区

    如果有哪里写得不对,还请多多指教,有些细节部分,还不是完全确定 ̄□ ̄||

  • 相关阅读:
    tomcat配置和原理(转)
    maven install、maven clean、project clean
    spring注解的(List&Map)特殊注入功能
    React父子组件传值
    使用Ant Design的Upload上传删除预览照片,以及上传图片状态一直处于uploading的解决方法。
    使用react-redux
    URLSearchParams生成和解析URL或者参数字符串
    Ant Design的Table组件去除“取消排序”选项
    React Hooks的useState和useEffect
    webpack配置alias简化相对路径
  • 原文地址:https://www.cnblogs.com/coolqiyu/p/9445673.html
Copyright © 2020-2023  润新知