用于物体检测的锚盒

使用深度学习神经网络的对象检测提供了一种快速且准确的方法,以预测图像中对象的位置和大小。理想情况下,无论对象的比例如何,网络都在及时返回有效对象。锚盒的使用提高了深度学习神经网络框架的检测部分的速度和效率。

什么是锚盒?

锚箱是一定的一定高度和宽度的预定义边界框。这些框被定义为捕获要检测的特定对象类的比例和宽高比,并且通常基于训练数据集中的对象大小选择。在检测期间,预定义的锚盒在图像上铺张。该网络预测每个瓷砖锚盒的概率和其他属性,例如背景,与联盟(iou)和偏移的偏移。预测用于改进每个单独的锚盒。您可以定义几个锚框,每个锚框为不同的对象大小。锚盒是固定的初始边界框猜测。

网络不直接预测边界框,而是预测与瓷砖锚盒对应的概率和改进。该网络返回一个定义的每个锚框的唯一预测集。最终的特征贴图表示每个类的对象检测。锚框的使用使网络能够检测多个对象,不同尺度的对象和重叠对象。

使用锚箱的优势

使用锚框时,您可以立即评估所有对象预测。锚盒消除了使用滑动窗口扫描图像的需要,该滑动窗口在每个潜在位置计算单独的预测。使用滑动窗口的检测器的示例是基于聚合信道特征(ACF)或梯度(HOG)特征的直方图的示例。使用锚盒的对象检测器可以一次处理整个图像,使实时对象检测系统成为可能。

因为卷积神经网络(CNN)可以以卷积方式处理输入图像,所以输入中的空间位置可以与输出中的空间位置有关。这种卷积对应意味着CNN可以一次提取整个图像的图像特征。然后,提取的特征可以回到该图像中的位置。锚盒的使用取代并大大降低了从图像中提取特征的滑动窗口方法的成本。使用锚盒,您可以设计高效的深度学习对象探测器,以包含基于滑动窗口的对象检测器的所有三个阶段(检测,功能编码和分类)。

锚盒如何工作?

通过将网络输出的位置映射回输入图像来确定锚盒的位置。每个网络输出复制该过程。结果在整个图像上产生一组瓷砖锚箱。每个锚框表示类的特定预测。下面有两个锚盒,每个位置进行两次预测。

每个锚箱都在图像上铺平。网络输出的数量等于平铺锚盒的数量。网络为所有输出产生预测。

本地化错误和细化

距离,或步行,在瓷砖锚箱之间是CNN中存在的下采样量的函数。在4和16之间的下采样因子是常见的。这些下采样因子产生粗瓷砖锚箱,可以导致定位误差。

为了修复本地化错误,深度学习对象探测器学习偏移,以应用于精炼锚箱位置和尺寸的每个瓷砖锚箱。

通过去除下采样层可以减少下采样。减少下采样,降低'步行'卷积或最大池层的财产(如Convolution2Dlayer.Convolution2Dlayer.。)您还可以在网络中选择特征提取层。来自网络前面的特征提取层具有更高的空间分辨率,但可以与网络进一步下行相比提取更少的语义信息

生成对象检测

为了生成最终的对象检测,删除属于背景类的瓷砖锚框,并且其余的送息由其置信度得分过滤。使用非最大抑制(NMS)选择具有最大置信度分数的锚盒。有关NMS的更多详细信息,请参阅selectstrongestbboxmulticlass.功能。

锚箱尺寸

多尺度处理使网络能够检测不同尺寸的对象。为了实现多尺度检测,必须指定不同尺寸的锚框,例如64×64,128×128和256×256。指定尺寸,密切构成培训数据中对象的比例和宽高比。有关估计大小的示例,请参阅从训练数据估算锚盒

相关例子

更多关于