滑窗:1. 设定一个固定大小的窗口 2. 为了检测不同大小、不同形状的物体,可以使用不同大小、长宽比的窗口扫描图片 3. 遍历图像所有位置,所到之处用分类模型(假设已经训练好)识别窗口中的内容
改进思路1:区域提议
基于图像颜色或底层特征,找出可能含有物体 的区域,再送给神经网络识别 相比于普通滑窗,减少框的个数且保证召回率
改进思路2:分析滑窗中的重复计算
改进思路:用卷积一次性计算所有特征,再取出对应位置的特征完成分类
![](https://i-blog.csdnimg.cn/blog_migrate/00b05efc342d8be3b308459dbac0e063.png)
原图滑窗 👉 重叠区域重复计算卷积 ❌ 特征图滑窗 👉 重叠区域只计算一次卷积特征,与窗的个数无关 ✔️
置信度(Confidence Score):模型认可自身预测结果的程度,通常需要为每个框预测一个置信度 大部分算法取分类模型预测物体属于特定类别的概率 ,部分算法让模型独立于分类单独预测一个置信度 我们倾向认可置信度高的预测结果
滑窗类算法通常会在物体周围给出多个相近的检测框 ,这些框实际指向同一物体,只需要保留其中置信度最高的
输入:检测器产生的一系列检测框 𝐵 = 𝐵1, … , 𝐵𝑛 及对应的置信度 𝑠 = 𝑠1, … , 𝑠𝑛 ,IoU 阈值 𝑡(通常0.7) 步骤: 1. 初始化结果集 𝑅 = ∅ 2. 重复直至 𝐵 为空集 ① 找出 𝐵 中置信度最大的框 𝐵𝑖 并加入 𝑅 ② 从 𝐵 中删除 𝐵𝑖 以及与 𝐵𝑖 交并比大于 𝑡 的框 输出:结果集 𝑅
问题 滑窗(或其他方式产生的基准框)与物体精准边界通常有偏差 处理方法 ,让模型在预测物体类别同时预测边界框相对于滑窗的偏移量。 多任务学习:
![](https://i-blog.csdnimg.cn/blog_migrate/ccd13c43dcc54f15778b453254c073a9.png)
多尺度检测的必要性
图像中物体大小可能有很大差异 (10 px ~ 500 px) 多尺度技术出现之前,模型多基于单级特征图进行预测,通常为主干网络的倒数第二层,受限于结构 (感受野)和锚框的尺寸范围,只擅长中等大小的物体 另一方面,高层特征图经过多次采样,位置信息逐层丢失,小物体检测能力较弱,定位精度较低
![](https://i-blog.csdnimg.cn/blog_migrate/8c3d92add2432de2eefac8d7db664254.png)
层次化特征
基于主干网络自身产生的多级特征图产生预测结果 ,由于不同层的感受大小不同,因此不同层级的特征天然适用于检测不同尺寸的物体
改进思路:高层次特征包含足够抽象语义信息。将 高层特征融入低层特征,补充低层特征的语义信息
![](https://i-blog.csdnimg.cn/blog_migrate/c759c628eb1c8efc55a5701e60871ad9.png)
两阶段算法
![](https://i-blog.csdnimg.cn/blog_migrate/8952ec3736f97ae9c5501312dee77bd3.png)
单阶段算法
![](https://i-blog.csdnimg.cn/blog_migrate/097d55834ec9dd86a3fce5f79ede91ed.png)