目标检测 到目前为止,我们处理的图像分类模型都是输入一张图片并产生一个类别结果,比如在MNIST问题中的数字类别。然而,在许多情况下,我们不仅希望知道图片中是否包含物体,还希望能够确定它们的确切位置。这就是目标检测的核心。 课前测验 目标检测 图片来自YOLO v2 网站 目标检测的朴素方法 假设我们要在图片中找到一只猫,一个非常朴素的目标检测方法可以是这样的: 将图片分解成若干个格子(或称为“瓷砖”)。 对每个格子运行图像分类。 那些产生足够高激活值的格子可以被认为包含所寻找的对象。 朴素的目标检测 图片来自练习笔记本 然而,这种方法远非理想,因为它只允许算法粗略地定位对象的边界框。为了更精确的定位,我们需要运行某种形式的回归来预测边界框的坐标——为此,我们需要特定的数据集。
到目前为止,我们处理的图像分类模型都是输入一张图片并产生一个类别结果,比如在MNIST问题中的数字类别。然而,在许多情况下,我们不仅希望知道图片中是否包含物体,还希望能够确定它们的确切位置。这就是目标检测的核心。

图片来自YOLO v2 网站
假设我们要在图片中找到一只猫,一个非常朴素的目标检测方法可以是这样的:

图片来自练习笔记本
然而,这种方法远非理想,因为它只允许算法粗略地定位对象的边界框。为了更精确的定位,我们需要运行某种形式的回归来预测边界框的坐标——为此,我们需要特定的数据集。
这篇博客文章对检测形状有很好的入门介绍。
你可能会遇到以下这些数据集:

虽然对于图像分类来说,很容易衡量算法的表现,但对于目标检测,我们需要同时衡量类别的正确性和推断出的边界框位置的精度。对于后者,我们使用所谓的交并比(IoU),它衡量两个区域(或两个任意面积)的重叠程度。

图2来自这篇关于IoU的优秀博客文章
简单地说,我们把两个图形的交集面积除以它们的并集面积。对于完全相同的区域,IoU为1;对于完全不相交的区域,IoU为0。否则,IoU将在0到1之间变化。通常,我们只考虑那些IoU超过一定阈值的边界框。
假设我们要测量某一类物体C的识别效果。为了衡量这一点,我们使用平均精度指标,计算方法如下:
图片来自NeuroWorkshop
给定类C的平均精度是该曲线下的面积。更确切地说,召回率轴通常被分为10个部分,并且在所有这些点上取精度的平均值:
我们将只考虑那些IoU超过一定阈值的检测。例如,在PASCAL VOC数据集中,通常假定\mbox{IoU阈值} = 0.5,而在COCO数据集中,AP是在不同\mbox{IoU阈值}下测量的。
图片来自NeuroWorkshop
目标检测的主要指标称为平均平均精度,或mAP。它是所有对象类别的平均精度,有时也包括\mbox{IoU阈值}。更详细地说,计算mAP的过程在这篇博客文章中有描述,还有这里附带代码示例。
有两种广泛类别的目标检测算法:
R-CNN 使用选择性搜索生成层次结构化的ROI区域,然后通过CNN特征提取器和SVM分类器来确定对象类别,并使用线性回归来确定边界框坐标。官方论文

图片来自van de Sande等人,ICCV'11

图片来自这篇博客
这种方法与R-CNN类似,但区域是在卷积层应用之后定义的。

这种方法的主要思想是使用神经网络来预测ROI——所谓的区域建议网络。论文,2016

图片来自官方论文
这个算法甚至比Faster R-CNN还要快。主要思想如下:

图片来自官方论文
YOLO是一种实时的一次通过算法。主要思想如下:

图片来自 官方论文
请继续在以下笔记本中学习:
在这节课中,你快速了解了实现目标检测的各种方法!
阅读这些关于 YOLO 的文章并亲自尝试它们。
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。