目录
从零开始实现 SSD 目标检测(pytorch)
第一章 相关概念概述
1.1 检测框表示
1.2 交并比
第二章 基础网络
第三章 先验框设计
第四章 LOSS 设计
从零开始实现 SSD 目标检测(pytorch)
特别说明:
本系列文章是 Pytorch 目标检测手册的翻译 + 总结
知其然知其所以然, 光看论文 https://arxiv.org/abs/1512.02325 不够, 得亲自实现
第一章 相关概念概述
1.1 检测框表示
边界宽 (bounding box) 是包围一个物体 (objective) 的框, 用来表示这个物体的位置, 形状, 大小等信息. 不是最小外接矩形, 仅仅是一个转动角度为 0 的框. 如下图 1-1 所示:
表示框的方法有很多(不赘述), 图 1-1 的方式为框的边界四个极值坐标 \(x_{min},y_{min},x_{max},y_{max}\).
但是这样做的有点缺点:
知道 \(x_{min},y_{min},x_{max},y_{max}\), 我们无法知道这个目标的更多信息(比例), 必须画出来才有感官
如果没有图像的宽高, 像素值毫无用处(其实还是无法知道比例信息)
改进方式如下图 1-2 所示
图 1-2 使用比例的方式, 很直观的知道目标更多的信息
但是还有一个缺点:
直接看这个信息, 我们不知道目标长宽信息(当然你自己可以另外计算)
也不知道中心位置(相对于边界, 我们更关心中心)
再次改进的方式如下图 1-3 所示:
\(c_x,c_y,w,h\), 中心点 + 宽高的方式, 满足视觉信息最大化.
1.2 交并比
如何用来判断一个框检测的好与坏?
使用交集 \(A \cap B\)
直接使用交集的大小去判断好坏, 大尺度和小尺度不对等
比如: A 和 B 大小都为 100, 交集 50. C 和 D 大小都为 10, 交集 5.
如何说明这两组哪个好坏?
通过上述的例子, 我们发现少了一个比例问题...
使用 \(\frac{A{\cap}B}{A{\cup}B}\)交集除以并集
完全解决上诉问题
注意: 这里还存在一个关于 LOSS 的问题, 具体可参考 GIOU https://www.cnblogs.com/wjy-lulu/p/11669556.html
第二章 基础网络
第三章 先验框设计
第四章 LOSS 设计
从零开始实现 SSD 目标检测(pytorch)(一)
来源: http://www.bubuko.com/infodetail-3279971.html