物体识别:在深度学习时代的回顾

原链接: https://community.bwbot.org/topic/509
运行测试平台:小强ROS机器人

从简单的图像分类到3D姿势估计,计算机视觉中不乏有趣的问题。 我们最感兴趣的问题之一就是物体识别。 像许多其他计算机视觉问题一样,现在仍然没有明显“最佳”的方法来解决问题,这意味着仍有很大的改进空间。 在进入物体识别之前,让我们快速了解该领域中最常见的问题。

物体检测与其他计算机视觉问题

分类

图片分类可能是计算机视觉中最着名的问题。 它包括将图像分类为许多不同类别中的一个。 学术界最常用的数据集之一是ImageNet,由数百万个分类图像组成。部分被用于每年的ImageNet大规模视觉识别挑战赛(ILSVRC)。 近年来,分类模型的表现已经超越了人类,并且这个问题已经被认为基本解决。 虽然图像分类存在很多挑战,但也很多关于如何解决这些挑战的文章

0_1532175534442_511ebf79-162c-462b-874d-f8e293cd2aaf-image.png

定位

与分类类似,定位就是查找图像内单个对象的位置。

0_1532175584947_28d53732-2a51-4c57-ba15-e27893da846d-image.png

定位可用于许多有用的现实问题。 例如,智能裁剪(知道基于对象所在位置裁剪图像的位置),或者甚至是使用不同技术,进行进一步处理的常规对象提取。 它可以与分类相结合,不仅可以定位对象,还可以将其分类为许多可能的类别之一。

实例细分

从物体识别更进一步,我们不仅希望在图像中找到对象,而且还要找到每个检测到的对象的逐像素标记。 我们将此问题称为实例或对象分割。

物体识别

同时考虑定位和分类的问题,那么我们最终需要同时检测和分类多个对象。 物体识别是在图像上查找和分类可变数量的对象的问题。 重要的区别是“可变”部分。 与分类等问题相反,物体识别的输出长度可变,因为识别到的物体数量可能会因图像而异。 在这篇文章中,我们将详细介绍实际应用,作为机器学习问题的物体识别的主要问题是什么,以及在过去的几年中如何通过深度学习来解决它的方法。

0_1532176022007_8f3ddfd8-2f58-4961-a4e8-4c6ee8496665-image.png

物体检测的实际用途

尽管物体识别在某种程度上仍然是业界的新工具,但已经有许多有用且令人兴奋的应用程序使用它。

人脸识别

自2000年代中期以来,一些傻瓜相机开始具备检测面部的功能,以实现更高效的自动对焦。 虽然它是一种较窄类型的对象检测,但所使用的方法适用于其他类型的对象,我们稍后将对其进行描述。

计数

物体识别的一个简单但经常被忽略的用法是计数。 计算人,汽车,花朵甚至微生物的能力是对使用图像的不同类型系统广泛需要的现实世界需求。 最近,随着视频监控设备的不断涌现,使用计算机视觉将原始信息转化为结构化数据的需求比以往任何时候都要大。

可视化搜索引擎

最后,我们喜欢的一个用例是Pinterest的视觉搜索引擎。 他们使用对象检测作为工作流程的一部分来索引图像的不同部分。 这样,当搜索特定钱包时,您可以在不同的上下文中找到类似于您想要的钱包的实例。 这比仅仅找到类似的图像要强大得多,就像Google Image的反向搜索引擎一样。

0_1532176274604_96abf038-2dd7-41d3-b57f-e5f01494bdb8-image.png

航空影像分析

在廉价无人机和(接近)经济实惠的卫星发射时代,我们的世界从未有过如此多的数据。 已经有公司使用来自PlanetDescartes Labs等公司的卫星图像,应用物体检测来计算汽车,树木和船只。 这导致了一般民众也能访问到在以前是不可能的(或非常昂贵)高质量的数据。

一些公司正在使用无人机镜头对难以到达的地方(例如BetterView)进行自动检查,或使用物体识别进行通用分析(例如TensorFlight)。 除此之外,一些公司在不需要人为干预的情况下添加自动检测和问题定位。

0_1532176499244_412ce015-f050-4bc1-b0c4-6332235b9526-image.png

物体检测存在的问题和挑战

让我们开始深入了解物体识别的主要问题。

可变数量的对象

我们已经提到了关于可变数量的对象的部分,但是我们省略了为什么它根本是一个问题。 在训练机器学习模型时,通常需要将数据表示为固定大小的向量。 由于事先不知道图像中的对象数量,因此我们不知道正确的输出数量。 因此,需要进行一些后处理,这增加了模型的复杂性。

历史上,使用基于滑动窗口的方法来处理可变数量的输出。通过为所有不同位置生成该窗口的固定大小的特征。 获得所有预测后,一些被丢弃,一些被合并以获得最终结果。

尺寸

另一个重大挑战是不同的物体尺寸。 在进行简单分类时,您希望并希望对覆盖大部分图像的对象进行分类。 另一方面,您可能想要找到的一些对象可能是十几个像素(或原始图像的一小部分)。 传统上,这已经可以通过使用不同尺寸的滑动窗口来解决,这是简单但非常低效的。

建模

第三个挑战是同时解决两个问题。 我们如何将两种不同类型的要求结合起来:位置和分类,理想情况下,单个模型?

在深入学习以及如何应对这些挑战之前,让我们快速了解一下经典方法。

经典方法

虽然这些年来有许多不同类型的方法,但我们希望关注两个最受欢迎的方法(仍然广泛使用)。

第一个是Paul Viola和Michael Jones在2001年Robust Real-time Object Detection中提出的Viola-Jones框架。这种方法快速且相对简单,以至于它是在傻瓜相机中实现的算法,它允许以很小的处理能力进行实时面部检测。

我们不会详细介绍它是如何工作的以及如何训练它,但在高层次上,它通过使用Haar特征生成不同的(可能是数千个)简单二元分类器来工作。这些分类器使用级联的多尺度滑动窗口进行评估,并在负分类的情况下提前下降。

另一种传统和类似的方法是使用方向梯度直方图(HOG)特征和支持向量机(SVM)进行分类。它仍然需要一个多尺度的滑动窗口,即使它优于Viola-Jones,它也要慢得多。

深度学习方法

深度学习一直是机器学习中真正改变游戏规则的技术,尤其是在计算机视觉领域。 类似于深度学习模型已经破坏了其他经典模型的图像分类任务,深度学习模型现在也是物体识别的最新技术。

现在您可能对挑战是什么以及如何解决它们有了更好的直觉,我们将概述深度学习方法在过去几年中如何演变。

OverFeat

使用深度学习进行物体检测的最先进之一是2013年发布的纽约大学的OverFeat。他们提出了一种使用卷积神经网络(CNN)的多尺度滑动窗口算法。

R-CNN

在OverFeat之后,Ross Girshick等人推出了R-CNN。 在加州大学伯克利分校出版,对物体检测挑战提高了近50%。 他们提出的是一个三阶段的方法:

  • 使用区域提议方法(最常用的方法是选择性搜索)提取可能的对象。
  • 使用CNN从每个区域提取要素。
  • 使用SVM对每个区域进行分类。

0_1532177272559_b5651913-6fda-4a52-bbfd-1705b38578d9-image.png

Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation.” 2014.

虽然它取得了很好的成果,但训练数据有很多问题。 为了训练它,您首先必须为训练数据集生成建议,将CNN特征提取应用于每一个(对于Pascal 2012训练数据集通常需要超过200GB),然后最终训练SVM分类器。

Fast R-CNN

这种方法很快演变成一种更纯粹的深度学习方法,一年后,Ross Girshick(现在的微软研究院)发布了Fast R-CNN。 与R-CNN类似,它使用选择性搜索生成对象提议,但不是独立地提取所有这些并使用SVM分类器,而是在完整图像上应用CNN,然后在特征上使用感兴趣区域(RoI)池映射与最终前馈网络进行分类和回归。 这种方法不仅更快,而且拥有RoI Pooling层和完全连接的层允许模型端到端可区分且更容易训练。 最大的缺点是该模型仍然依赖于选择性搜索(或任何其他区域提议算法),这在使用它进行推理时成为瓶颈。

image

Girshick, Ross. “Fast R-CNN” 2015.

YOLO

不久之后,由Joseph Redmon发表了实时物体检测(YOLO)的论文(Girshick为共同作者)。 YOLO提出了一种简单的卷积神经网络方法,它具有很好的结果和高速度,第一次允许实时物体检测。

image

Redmon, Joseph, et al. “You only look once: Unified, real-time object detection.” 2016.

Faster R-CNN

随后,由Shaoqing Ren撰写的Faster R-CNN(也由Girshick合著,现在在Facebook Research),R-CNN系列的第三次迭代。 Faster R-CNN添加了他们所谓的区域提议网络(RPN),试图摆脱选择性搜索算法并使模型完全可以端到端训练。 我们不会详细介绍RPN的功能,但在摘要中,它的任务是根据“对象”分数输出对象。 这些对象由RoI Pooling和完全连接的层用于分类。 我们将在后续文章中详细介绍架构。

image

Ren, Shaoqing, et al. “Faster R-CNN: Towards real-time object detection with region proposal networks.” 2015.

SSD 和 R-FCN

最后,有两篇值得注意的论文,单镜头检测器(SSD)通过使用多个尺寸的卷积特征图来实现YOLO,实现更好的结果和速度,以及基于区域的全卷积网络(R-FCN),它采用了Faster R-CNN的架构但只用了卷积网络。

数据集的重要性

数据集在研究中起着非常重要(有时被低估)的作用。 每次发布新数据集时,都会发布论文,并对新模型进行比较并进行改进,从而进一步提高算法。

不幸的是,没有足够的数据集用于物体识别。 数据生成起来比较困难(而且成本更高),公司可能不喜欢放弃投资,大学也没有那么多资源。

但是还是一些很棒的数据集,下面是主要可用数据集的列表。

名称图片数量对象种类更新时间
ImageNet450k2002015
COCO120K802014
Pascal VOC12k202012
Oxford-IIIT Pet7K372012
KITTI Vision 7K32014

结论

总之,无论是在仍未发现的应用中还是在用于推动现有技术结果的新方法中, 物体识别方面都存在许多机会。 尽管这只是物体识别的一般概述,但我们希望它能为您提供基本的理解和基础,以获得更深入的知识(没有双关语意)。

文章翻译自tryolabs

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值