天天看点

coco数据集80个分类是哪些_目标分类定位,实时速度检测...目标检测5大挑战与解决方案...

图像分类是指计算机根据图像内容对图像进行分类或分配标签,通常只需利用预先训练好的神经网络,对最后几个吞吐量层进行微调,然后就可以看到很好的结果。

然而,仅在几年前,对图像中的单个目标进行分类和查找未知数量是极其困难的。

现在,这项被称为目标检测的任务是可行的,甚至已经被谷歌、IBM产品化。

但取得这些进展并不容易!除了图像分类的要求外,目标检测还面临着许多严峻挑战。

近期发表在medium上的一篇博文,深入研究了这些问题所带来的挑战以及各种解决方案。

coco数据集80个分类是哪些_目标分类定位,实时速度检测...目标检测5大挑战与解决方案...

为什么要做目标检测?

目标检测的最终目的是发现重要的项目,在它们周围绘制矩形包围框,并确定每个项目的类别。

目标检测的应用出现在许多不同领域,包括自动驾驶汽车的行人检测,农作物监测,甚至体育运动中对球的实时跟踪。

多年来,为了实现这一目标,研究人员做了大量努力:从2001年发布的Viola和Jones人脸检测算法,到2017年发布的RetinaNet (一种快速、高精度的单状态检测框架)。

由于几乎所有现代系统都在使用CNN, CNN的引入是目标检测历史上的重要时刻。

尽管其他方法也面临类似的挑战,但本文的其余部分将集中讨论用于目标检测的深度学习解决方案。

1. 双重优先:目标分类和定位

目标检测复杂之处首先是它的附加目标:我们不仅要对图像目标进行分类,还要确定目标的位置,通常称为目标定位任务。

为了解决这个问题,研究人员通常使用多任务丢失函数来惩罚错误分类和定位错误。

基于区域的CNN代表了一类流行的目标检测框架。这些方法包括生成定位目标的区域建议,然后CNN对目标位置进行分类和进一步细化。

Ross Girshick等人开发了Fast R-CNN。

顾名思义,Fast R-CNN有了显著的提升,但由于使用了统一的多任务丢失函数优化了分类和定位任务,因此准确度也得到了提高。

将每个包含目标的候选区域与图像的真实目标进行比较。然后,候选区域会因为错误分类和边界框未对齐而受到惩罚。

coco数据集80个分类是哪些_目标分类定位,实时速度检测...目标检测5大挑战与解决方案...

在这里,分类项将对数损失强加在真实物体类别u的预测概率上,而定位项是定义矩形的四个位置分量的平滑L₁损失。

注意,当不存在任何目标(u = 0)时,本地化惩罚不适用于background类。还应注意,可以调整参数λ,以便更好地区分分类或定位的优先级。

2.实时检测速度

目标检测算法不仅需要对重要目标进行精确分类和定位,预测时间上还需要惊人的速度,以满足视频处理的实时性要求。

多年来,几项重要的改进提高了算法的速度,将测试时间从R-CNN 的0.02帧每秒(fps)提高到了Fast YOLO的155帧每秒。

Fast R-CNN和Faster R-CNN旨在加快R-CNN的速度。

R-CNN使用选择性搜索生成2000个感兴趣的候选区域(RoIs),每个RoI都单独通过一个CNN base,因为CNN的处理速度相当慢,所以造成了很大的问题。

相反,Fast R-CNN通过CNN base将图像只发送一次,然后通过选择性搜索创建的RoIs与CNN feature map匹配,处理时间减少了20倍。

虽然Fast R-CNN比R-CNN快得多,但仍然存在另一个速度障碍。当对单个图像进行目标检测时,Fast R-CNN大约需要2.3秒,而选择性搜索就占了2秒!

Faster R-CNN用一个单独的子神经网络代替选择性搜索以生成RoI,从而将速度提高了10倍,因此测试速度约为7-18帧每秒。

尽管这些改进令人印象深刻,但视频通常至少拍摄24帧,这意味着Faster R-CNN可能会跟不上。基于区域的方法包括两个单独的阶段:提出区域和处理区域。事实证明,这种任务分离效率并不高。

另一种目标检测系统依赖于统一的单状态方法。这些所谓的单步检测器,在通过图像的过程中完全定位和分类目标,大大减少了测试时间。

单步检测器YOLO首先在图像上放置一个网格,允许每个网格单元检测固定数量的大小不同的物体。

对于图像中出现的真实物体,与物体中心关联的网格单元负责预测该目标。然后,复杂的多分类损失函数可确保所有定位和分类都在一个过程中发生。

Fast YOLO甚至达到了155帧的速度;然而,速度的提升却伴随着分类和定位精度的急剧下降。

如今,目标检测算法试图在速度和精度之间取得平衡。检测框架之外的设计选择会影响速度和精度的结果。

例如,YOLOv3允许不同分辨率的图像:高分辨率图像通常具有更高的准确性,但处理时间较慢,反之亦然。

CNN base的选择也会影响速度和精度的权衡。像Inception-ResNet-V2中使用的164层的深度网络,具有极高的准确性,但与速度上无法与VGG-16的框架相比。

必须根据速度或准确性优先考虑目标检测设计的选择。

3. 多重空间比例和长宽比

对于许多目标检测的应用程序,感兴趣的项目可能以各种尺寸和长宽比出现。研究者利用多种技术来确保检测算法能够在多个尺度和视图中捕获目标。

Anchor boxes

更新后的Faster R-CNN区域建议网络使用一个小的滑动窗口,通过图像的卷积特征图生成候选RoI,而不是选择性搜索。

可以在每个位置预测多个RoI,并相对于参考Anchor boxes进行描述。

Anchor boxes的形状和大小经过精心选择,可以跨越不同比例和长宽比。

这允许检测各种类型的目标,并且在定位任务期间,无需过多调整边界框坐标。其他框架包括单步检测器,也采用Anchor boxes初始化关注区域。

coco数据集80个分类是哪些_目标分类定位,实时速度检测...目标检测5大挑战与解决方案...

精心选择的各种大小和纵横比的Anchor boxes有助于创建感兴趣的不同区域。

多个特征图

单步检测器必别强调多尺度的问题,因为通过CNN框架,它们一次就可以检测到物体。

如果仅从最后的CNN层检测目标,则只会发现较大的项,因为较小的项在池层下行采样时可能丢失太多信号。

为了解决这个问题,单步检测器通常会在多个CNN层中寻找目标,包括早期仍然保持较高分辨率的层。

单步探测器在探测小物体时异常困难,尤其是那些密集地聚集在一起的物体,比如一群鸟。

coco数据集80个分类是哪些_目标分类定位,实时速度检测...目标检测5大挑战与解决方案...
coco数据集80个分类是哪些_目标分类定位,实时速度检测...目标检测5大挑战与解决方案...

来自多个CNN的特征图有助于预测多个尺度的对象

特征金字塔网络

特征金字塔网络(FPN)进一步提出了多特征映射的概念。图像首先通过CNN路径,生成语义丰富的最终层。

然后为了获得更好的分辨率,FPN通过对该特征图进行上采样来创建自上而下的路径。

虽然自上而下的路径有助于检测不同大小的物体,但空间位置可能会倾斜。

在原始特征图和相应的重建图层之间增加横向连接,以提高目标定位。

目前,FPN提供了一种领先的检测多种尺度物体的方法,YOLO在其V3中增加了此技术。

coco数据集80个分类是哪些_目标分类定位,实时速度检测...目标检测5大挑战与解决方案...

特征金字塔网络是通过从具有更高语义强度的图层中重建高分辨率图层来检测大小不同的对象

4.有限的数据

当前,可用于目标检测的带注释的数据数量有限,这是另一个大的障碍。

目标检测数据集通常包含大约12到100个目标类的ground turth示例,而图像分类数据集可以包含超过100,000个类别。

此外,众包通常会免费生成图像分类标签(例如,通过解析用户提供的照片标题的文本)。

然而,为目标检测收集真实标签和准确边界框仍是一项繁琐的工作。

由微软提供的COCO数据集目前是最好的目标检测数据。

COCO包含300,000张具有80个不同类别目标的分段图像,具有非常精确的位置标签。

每张图像平均包含7个目标。尽管此数据集很有用,但是如果仅对COCO进行训练,则无法识别这80个类别之外的目标类型。

YOLO9000是YOLO的V2,可以缓解数据稀缺。

YOLO9000将许多重要的更新合并到YOLO中,但其目的还在于缩小目标检测和图像分类之间的数据集差距。

YOLO9000同时在COCO和ImageNet上进行训练,ImageNet是一个包含数万个目标类别的图像分类数据集。

COCO信息有助于精确定位目标,而ImageNet可以增加YOLO的分类“词汇”。

分层的WordTree允许YOLO9000首先检测目标的概念(比如“动物/狗”),然后再深入到细节(比如“西伯利亚哈斯基狗”)。

coco数据集80个分类是哪些_目标分类定位,实时速度检测...目标检测5大挑战与解决方案...

5.类不平衡

类不平衡存在于多数分类问题,目标检测也不例外。

最近,RetinaNet中采用了一种焦点损失的新方法,有助于减少类不平衡的影响。

在优化损失函数中,当对错误分类进行惩罚时,焦点损代替了传统的对数损失

其中pᵤ是真实类别的预测类别概率,且γ>0。附加因子(*)减少了高概率、分类良好的示例损失,并且总体效果降低了模型所熟悉的示例类的重要性,例如background类。

因此,占据少数类别的目标有更大的意义,并看到了更高的准确性。

结论

通常认为目标检测比图像分类困难得多,特别是由于以下挑战的存在:双重优先级,速度,多尺度,有限数据和类不平衡。

为了克服这些困难,研究人员付出了大量的努力,结果往往不错,但挑战仍然存在。

基本上所有的目标检测框架都在持续与小目标斗争,特别是那些与部分遮挡捆绑在一起的小目标。

具有顶级分类和定位精度的实时检测仍然具有挑战性,在进行设计决策时,研究者通常必须优先考虑其中一个。

如果假设帧之间具有某种连续性,而不是单独处理每个帧,则在将来,视频跟踪可能会有所改进。

此外,一个有趣的增强将当二维边界框扩展为三维边界立方体。

尽管许多目标检测障碍已经有了解决方案,但这些额外的考虑因素—以及更多的信号表明,目标检测研究肯定还没有完成!