机器学习经典模型(二)目标检测

1.图像中单个目标的定位

标签为:中心点,方块的长宽

2.图像中多个目标检测——滑窗法

训练一个目标识别网络Net,能够判断是不是car。

用滑窗法遍历图片,每一次都用Net来做预测,因为知道滑窗的位置和大小,所以可以预测出图片中物体的种类的位置。

受细粒度、滑动步长影响大,计算量太大

3.通过卷积来减少计算量

1)通过卷积代替全连接

机器学习经典模型(二)目标检测

 2)通过卷积实现滑窗操作

机器学习经典模型(二)目标检测

有很多计算是共享的,通过卷积通过“并行”的方式,一次从前到后的计算就预测了所有滑窗的结果。 卷积的步长决定了滑窗的步长

4. YOLO

之前的滑窗是以窗口大小作为bounding box的,不够精确。

机器学习经典模型(二)目标检测

输入100x100x3图像,输出3x3x8的预测,3x3中每一个格子对应一个8的预测标签。

相对于当个目标的定位,这个可以实现多个目标的bouding box定位。

相比滑窗法的pipeline式检测流程,这个是更贴近端到端的方法。

好处:

1、因为用了bounding box目标定位的标签,所以更精确 ,而不是滑窗中只能按照滑窗大小来

2、采用了卷积实现,计算效率高,可以实时

机器学习经典模型(二)目标检测

注意:

这里的3x3网格并没有真正地把图片分割成9块,不存在如果一个物体横跨了两个格子就识别不出来的情况,只是输出限制成了3x3的区域,不同格子的输入并没有应为划分格子而相互解耦,并不等价于分割成9个图片,然后单独做目标定位。

5. 评价指标 IoU 交并比

机器学习经典模型(二)目标检测

 6. 非极大值抑制

机器学习经典模型(二)目标检测

图中高亮的被选中,变暗的被抑制。 

机器学习经典模型(二)目标检测

因为有多个物体,所以需要循环遍历: 

1.选一个概率Pc最大的框,挑出来,作为第一个物体的预测

2.遍历剩下的框,和这个框IoU大于0.6(某个阈值)的框就不要了

3.遍历剩下的框,找一个Pc最大的,作为第二个物体的预测

4.遍历剩下的,和这个框IoU大于0.6(某个阈值)的框就不要了

.......如此循环

参考链接:https://blog.****.net/shuzfan/article/details/52711706

7.处理重合物体Anchor Boxes

机器学习经典模型(二)目标检测

输入的预测每个格子不再是只有一组预测值,而是对应不同类别的物体有不同的anchor box 

输出3x3x(8x2)

机器学习经典模型(二)目标检测

 下面列举了一个格子中有两种、有一种物体的情况时,标签是什么样的

 机器学习经典模型(二)目标检测

这种方法无法处理:

1、一个格子中有三个物体,却只有两个anchor box

2、一个格子中同一类物体有两个以上 

参考链接:https://blog.****.net/weixin_43384257/article/details/100974776 

8.YOLO

机器学习经典模型(二)目标检测

机器学习经典模型(二)目标检测

这部分还需要看代码仔细研究一下

https://docs.google.com/presentation/d/1aeRvtKG21KHdD5lg6Hgyhx5rPq_ZOsGjG5rJ1HP7BbA/pub?start=false&loop=false&delayms=3000&slide=id.g137784ab86_4_4611

9.R-CNN系列

基于区域建议的,不是滑窗,而是先建议在哪些区域里找,然后在那些区域里执行卷积网络预测bounding box,缺点是太慢了。

这里边区域建议还是很慢。