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_*^T\phi_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. 总结

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

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

bounding box的简单理解的更多相关文章

  1. 3D空间中的AABB(轴向平行包围盒, Aixe align bounding box)的求法

    引言 在前面的一篇文章中讲述了怎样通过模型的顶点来求的模型的包围球,而且还讲述了基本包围体除了包围球之外,还有AABB包围盒.在这一章,将讲述怎样依据模型的坐标求得它的AABB盒. 表示方法 AABB ...

  2. Latex 中插入图片no bounding box 解决方案

    在windows下,用latex插入格式为jpg,png等图片会出现no bounding box 的编译错误,此时有两个解决办法: 1.将图片转换为eps格式的图片 \usepackage{grap ...

  3. 第二十六节,滑动窗口和 Bounding Box 预测

    上节,我们学习了如何通过卷积网络实现滑动窗口对象检测算法,但效率很低.这节我们讲讲如何在卷积层上应用这个算法. 为了构建滑动窗口的卷积应用,首先要知道如何把神经网络的全连接层转化成卷积层.我们先讲解这 ...

  4. elasticsearch Geo Bounding Box Query

    Geo Bounding Box Query 一种查询,允许根据一个点位置过滤命中,使用一个边界框.假设以下索引文档: PUT /my_locations { "mappings" ...

  5. Bounding Box回归

    简介 Bounding Box非常重要,在rcnn, fast rcnn, faster rcnn, yolo, r-fcn, ssd,到今年cvpr最新的yolo9000都会用到. 先看图 对于上图 ...

  6. 目标检测中的bounding box regression

    目标检测中的bounding box regression 理解:与传统算法的最大不同就是并不是去滑窗检测,而是生成了一些候选区域与GT做回归.

  7. Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression

    Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression 2019-05-20 19:3 ...

  8. 【54】目标检测之Bounding Box预测

    Bounding Box预测(Bounding box predictions) 在上一篇笔记中,你们学到了滑动窗口法的卷积实现,这个算法效率更高,但仍然存在问题,不能输出最精准的边界框.在这个笔记中 ...

  9. git的简单理解及基础操作命令

    前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...

随机推荐

  1. Windows elasticsearch1.5.1安装

    http.cors.enabled: true http.cors.allow-origin: /.*/ network.host: 192.168.2.200 http.port: cluster. ...

  2. Vuex 存储||获取后台接口数据

    如果你对 Vuex 有一定的了解的话呢,可以继续这一篇的学习了,如果没有的话, 建议先看一看我的上一篇 Vuex基础:地址在下面 Vuex的详解与使用 Vuex刷新数据不丢失 这篇接着上一篇: 这篇将 ...

  3. 【MySQL 读书笔记】RR(REPEATABLE-READ)事务隔离详解

    这篇我觉得有点难度,我会更慢的更详细的分析一些 case . MySQL 的默认事务隔离级别和其他几个主流数据库隔离级别不同,他的事务隔离级别是 RR(REPEATABLE-READ) 其他的主流数据 ...

  4. Oracle查看表实际占用空间和实际行数

    select t.table_name,t.num_rows from user_tables t ORDER BY NUM_ROWS DESC;//实际行数 analyze table emp co ...

  5. 「Algospot」龙曲线DRAGON

    一道考验思维的好题,顺便总结求第k大问题的常规思路: 传送门:$>here<$ 题意 给出初始串FX,每分形一次所有X替换为X+YF,所有Y替换为FX-Y.问$n$代字符串第$p$位起长度 ...

  6. Docker Dockerfile

    镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么之前提及的无法重复的问题.镜像构建透明性的问题.体积的 ...

  7. babel7-按需加载polyfill

    babel7 babel7发布了. 在升级到 Babel 7 时需要注意几个重大变化: 移除对 Node.js 6 之前版本的支持: 使用带有作用域的 @babel 命名空间,以防止与官方 Babel ...

  8. opencv + cuda编译

    #获取最新代码git clone "https://github.com/opencv/opencv.git" #build目录mkdir buildcd build #使用ccm ...

  9. 关于SDK_JDK_JRE_JVM的关系

    SDK JDK JRE JVM 四者的关系 一:SDK与JDK的关系(可以认为jdk只是sdk的一种子集) SDK是Software Development Kit的缩写,中文意思是“软件开发工具包” ...

  10. PHP RSA加解密详解(附代码)

    前言:RSA加密一般用在涉及到重要数据时所使用的加密算法,比如用户的账户密码传输,订单的相关数据传输等. 加密方式说明:公钥加密,私钥解密.也可以  私钥加密,公钥解密 一.RSA简介 RSA公钥加密 ...