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)进行缩放
$\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$
$\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)$四个参数
$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的简单理解的更多相关文章
- 3D空间中的AABB(轴向平行包围盒, Aixe align bounding box)的求法
引言 在前面的一篇文章中讲述了怎样通过模型的顶点来求的模型的包围球,而且还讲述了基本包围体除了包围球之外,还有AABB包围盒.在这一章,将讲述怎样依据模型的坐标求得它的AABB盒. 表示方法 AABB ...
- Latex 中插入图片no bounding box 解决方案
在windows下,用latex插入格式为jpg,png等图片会出现no bounding box 的编译错误,此时有两个解决办法: 1.将图片转换为eps格式的图片 \usepackage{grap ...
- 第二十六节,滑动窗口和 Bounding Box 预测
上节,我们学习了如何通过卷积网络实现滑动窗口对象检测算法,但效率很低.这节我们讲讲如何在卷积层上应用这个算法. 为了构建滑动窗口的卷积应用,首先要知道如何把神经网络的全连接层转化成卷积层.我们先讲解这 ...
- elasticsearch Geo Bounding Box Query
Geo Bounding Box Query 一种查询,允许根据一个点位置过滤命中,使用一个边界框.假设以下索引文档: PUT /my_locations { "mappings" ...
- Bounding Box回归
简介 Bounding Box非常重要,在rcnn, fast rcnn, faster rcnn, yolo, r-fcn, ssd,到今年cvpr最新的yolo9000都会用到. 先看图 对于上图 ...
- 目标检测中的bounding box regression
目标检测中的bounding box regression 理解:与传统算法的最大不同就是并不是去滑窗检测,而是生成了一些候选区域与GT做回归.
- 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 ...
- 【54】目标检测之Bounding Box预测
Bounding Box预测(Bounding box predictions) 在上一篇笔记中,你们学到了滑动窗口法的卷积实现,这个算法效率更高,但仍然存在问题,不能输出最精准的边界框.在这个笔记中 ...
- git的简单理解及基础操作命令
前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...
随机推荐
- Object.clone()方法与对象的深浅拷贝
转载:[https://www.cnblogs.com/nickhan/p/8569329.html] 引言 在某些场景中,我们需要获取到一个对象的拷贝用于某些处理.这时候就可以用到Java中的Obj ...
- pypinyin, jieba分词与Gensim
一 . pypinyin from pypinyin import lazy_pinyin, TONE, TONE2, TONE3 word = '孙悟空' print(lazy_pinyin(wor ...
- Redis快问快答
本随笔的回答来自 http://www.runoob.com/redis/redis-tutorial.html 另一个不错的教程: https://www.yiibai.com/redis/redi ...
- CentOS7使用yum安装MySQL8.0
1.yum仓库下载MySQL:sudo yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch. ...
- Retrofit原理
Retrofit原理解析最简洁的思路 Retrofit 工作原理总结 从架构角度看Retrofit的作用.原理和启示 Retrofit主要是在create方法中采用动态代理模式实现接口方法:这个过程构 ...
- JetBrain系列IDE提示Filesystem Case-Sensitivity Mismatch的解决
目录 解决方法 1. 用文本编辑器修改APP包文件中的属性文件(不推荐) 2. 复制或新建属性文件到APP的启动目录,添加对应的属性项(推荐) 解决方法1 1. 用文本编辑器修改APP包文件中的属性文 ...
- 【BZOJ4029】[HEOI2015]定价(贪心)
[BZOJ4029][HEOI2015]定价(贪心) 题面 BZOJ 洛谷 题解 每次加上十进制下的\(lowbit\)就行了??? #include<iostream> #include ...
- P4180 严格次小生成树[BJWC2010] Kruskal,倍增
题目链接\(Click\) \(Here\). 题意就是要求一个图的严格次小生成树.以前被题面吓到了没敢做,写了一下发现并不难. 既然要考虑次小我们就先考虑最小.可以感性理解到一定有一种次小生成树,可 ...
- Exp3 免杀原理与实践
一.实验过程 1.编码器 (1)使用msf编码器,直接生成meterpreter可执行文件(跟Exp2中生成backdoor.exe的过程一样,生成后门文件),送到Virscan.VirusTotal ...
- 使用Docker安装Nginx
启动命令 docker run -d -p : --name nginx -v $PWD/nginx.conf:/etc/nginx/nginx.conf -v $PWD/conf.d/:/etc/n ...