从简单的图像分类到3D姿势估计,计算机视觉中不乏有趣的问题。 我们最感兴趣的问题之一就是物体识别。 像许多其他计算机视觉问题一样,现在仍然没有明显“最佳”的方法来解决问题,这意味着仍有很大的改进空间。 在进入物体识别之前,让我们快速了解该领域中最常见的问题。
物体检测与其他计算机视觉问题
分类
图片分类可能是计算机视觉中最着名的问题。 它包括将图像分类为许多不同类别中的一个。 学术界最常用的数据集之一是ImageNet,由数百万个分类图像组成。部分被用于每年的ImageNet大规模视觉识别挑战赛(ILSVRC)。 近年来,分类模型的表现已经超越了人类,并且这个问题已经被认为基本解决。 虽然图像分类存在很多挑战,但也很多关于如何解决这些挑战的文章。
定位
与分类类似,定位就是查找图像内单个对象的位置。
定位可用于许多有用的现实问题。 例如,智能裁剪(知道基于对象所在位置裁剪图像的位置),或者甚至是使用不同技术,进行进一步处理的常规对象提取。 它可以与分类相结合,不仅可以定位对象,还可以将其分类为许多可能的类别之一。
实例细分
从物体识别更进一步,我们不仅希望在图像中找到对象,而且还要找到每个检测到的对象的逐像素标记。 我们将此问题称为实例或对象分割。
物体识别
同时考虑定位和分类的问题,那么我们最终需要同时检测和分类多个对象。 物体识别是在图像上查找和分类可变数量的对象的问题。 重要的区别是“可变”部分。 与分类等问题相反,物体识别的输出长度可变,因为识别到的物体数量可能会因图像而异。 在这篇文章中,我们将详细介绍实际应用,作为机器学习问题的物体识别的主要问题是什么,以及在过去的几年中如何通过深度学习来解决它的方法。
物体检测的实际用途
尽管物体识别在某种程度上仍然是业界的新工具,但已经有许多有用且令人兴奋的应用程序使用它。
人脸识别
自2000年代中期以来,一些傻瓜相机开始具备检测面部的功能,以实现更高效的自动对焦。 虽然它是一种较窄类型的对象检测,但所使用的方法适用于其他类型的对象,我们稍后将对其进行描述。
计数
物体识别的一个简单但经常被忽略的用法是计数。 计算人,汽车,花朵甚至微生物的能力是对使用图像的不同类型系统广泛需要的现实世界需求。 最近,随着视频监控设备的不断涌现,使用计算机视觉将原始信息转化为结构化数据的需求比以往任何时候都要大。
可视化搜索引擎
最后,我们喜欢的一个用例是Pinterest的视觉搜索引擎。 他们使用对象检测作为工作流程的一部分来索引图像的不同部分。 这样,当搜索特定钱包时,您可以在不同的上下文中找到类似于您想要的钱包的实例。 这比仅仅找到类似的图像要强大得多,就像Google Image的反向搜索引擎一样。
航空影像分析
在廉价无人机和(接近)经济实惠的卫星发射时代,我们的世界从未有过如此多的数据。 已经有公司使用来自Planet和Descartes Labs等公司的卫星图像,应用物体检测来计算汽车,树木和船只。 这导致了一般民众也能访问到在以前是不可能的(或非常昂贵)高质量的数据。
一些公司正在使用无人机镜头对难以到达的地方(例如BetterView)进行自动检查,或使用物体识别进行通用分析(例如TensorFlight)。 除此之外,一些公司在不需要人为干预的情况下添加自动检测和问题定位。
物体检测存在的问题和挑战
让我们开始深入了解物体识别的主要问题。
可变数量的对象
我们已经提到了关于可变数量的对象的部分,但是我们省略了为什么它根本是一个问题。 在训练机器学习模型时,通常需要将数据表示为固定大小的向量。 由于事先不知道图像中的对象数量,因此我们不知道正确的输出数量。 因此,需要进行一些后处理,这增加了模型的复杂性。
历史上,使用基于滑动窗口的方法来处理可变数量的输出。通过为所有不同位置生成该窗口的固定大小的特征。 获得所有预测后,一些被丢弃,一些被合并以获得最终结果。