【51CTO.com快译】近年来,随着人工智能技术的发展和进步,计算机视觉和深度学习受到了业界广泛的关注。值得称道的是,以前被认为极具挑战性的对象检测应用程序现在变得更容易创建。
对象检测可以定义为一种计算机视觉技术,旨在识别和定位图像或视频中的对象。虽然计算机通常能够比人类更快地处理信息,但是计算机仍然很难检测到图像或视频上的各种对象。这是因为计算机只能以二进制语言解释大部分输出。
本文旨在简要讨论:
- 对象检测的基础知识
- 对象检测模型
- 对象检测的好处
- 挑战和解决方案
在讨论这几点之前,需要了解图像分类和对象检测之间的区别。初学者容易混淆。
对象检测和图像分类的区别
先对对象检测和图像分类进行一下分析以了解它们之间的区别。当人工智能系统查看狗的图片时,可以立即指出是动物的图像,也就是说出图像的内容。这就是图像分类的全部内容。
而只要有一个对象,就可以使用图像分类技术。但是如果有多个对象,那就是对象检测技术发挥作用的时候。通过围绕感兴趣的对象构建矩形框,可以帮助人工智能系统识别每个框包含的对象。还可以使用这一方法指示对象的确切位置。而一张图片可能包含多个对象,因此可能会显示多个边界框。
对象检测的应用是无限的,但它们通常识别和检测真实物体,例如人类、建筑物、汽车等等。此外,人工智能系统需要大量不同类型对象的标记数据,以便将来识别这些对象。这意味着在标记数据集上训练的机器学习模型将有更多的机会做出准确的预测。
有一些行业厂商提供了数据注释服务,用户只需要根据其要求选择合适的服务。这种技术广泛应用于人物/物体跟踪和视频监控摄像头的应用中,以下将进一步详细说明。
对象检测模型
现在大家已经清楚了对象检测的定义,那么来看看一些流行的对象检测模型。
(1)R-CNN、Faster R-CNN、Mask R-CNN
最流行的对象检测模型属于基于区域的CNN模型系列。该模型彻底改变了对象检测领域过去的工作方式。在过去的几年,它们不仅变得更加准确,而且更加高效。
(2)SSD和YOLO
2016年发布的单发探测器系列有很多模型。虽然单次多盒检测(SSD)模型的检测速度比CNN模型快,但它们的准确率远低于CNN。
YOLO模型与基于区域的算法有很大不同。就像SDD模型一样,YOLO模型比R-CNN模型更快,但由于精度低而有些落后。对于移动或嵌入式设备,SDD模型是很好的选择。
(3)CenterNet
近年来,这些对象检测模型越来越受欢迎。CentreNet遵循基于关键点的对象检测方法。
与SSD模型或R-CNN模型相比,该模型被证明更高效、更准确。这种方法的唯一缺点是训练过程缓慢。
对象检测对现实世界的好处
对象检测与其他类似的计算机视觉技术(例如图像分割和图像识别)完全相互关联,可帮助人们理解和分析视频和图像中的场景。如今,在对象检测市场中有一些实际用例,对不同行业领域产生了巨大影响。
(1)自动驾驶汽车
自动驾驶汽车成功背后的主要原因是基于实时对象检测人工智能的模型。这些系统使人们能够定位、识别和跟踪周围的物体,以确保安全和效率。
(2)视频监控
实时对象检测和跟踪物体运动使视频监控摄像头能够跟踪特定位置(例如机场)的场景记录。这种最先进的技术可以准确识别和定位视频中给定对象的多个实例。当对象实时地穿过给定场景或穿过特定帧时,视频监控系统会存储带有实时跟踪源的信息。
(3)人群计数
对于购物中心、机场、城市广场和主题公园等人口稠密地区,这一应用程序的优异表现令人难以置信。事实证明,这个对象检测应用程序有助于大型企业和市政当局跟踪特定时间范围内的道路交通、违法行为和车辆数量。
(4)异常检测
有多种异常检测应用程序可用于使用对象检测的不同行业。例如在农业领域,对象检测模型可以准确识别和发现植物病害的潜在实例。在这些技术的帮助下,农民将会得到通知,能够防止他们的农作物受到病害威胁。
作为另一个例子,该模型已被用于识别皮肤感染和有症状的病变。一些应用程序已经将对象检测模型用于皮肤护理和痤疮治疗。
需要记住的是,在创建任何类型的对象检测模型时都会遇到一些问题。但是可以使用一些解决方案来解决这些挑战。
对象检测建模的挑战和解决方案
(1)对象定位
对象检测的第一个挑战是对物体的图像和位置进行分类,这称为对象定位。为了解决这个问题,大多数开发人员经常使用多任务损失函数来惩罚定位和分类错误。
解决方案:基于区域的卷积神经网络显示一类对象检测框架,其中包含对象可能位于的区域生成方案,然后是CNN模型处理以对对象位置进行分类和纠正。Fast-RCNN模型可以改善R-CNN的初始结果。顾名思义, FastR-CNN模型提供了惊人的速度,并且准确度也提高了,因为定位和对象分类任务使用多任务损失函数进行了优化。
(2)实时检测速度
快速的对象检测算法一直是同时准确地对关键目标进行分类和定位以满足实时视频处理的主要问题。多年来,一些算法已经将测试时间从每秒0.02帧提高到每秒155帧。
解决方案:Faster R-CNN和Fast R-CNN模型旨在加快R-CNN方法的原始速度。由于R-CNN使用选择性搜索来生成2000个候选感兴趣区域并单独通过每个基于CNN的模型,因此这可能会导致模型处理失败后的严重瓶颈。而Fast R-CNN模型通过CNN base传输一次图像,然后将通过选择性搜索创建的ROI匹配到特征图,同时将处理时间减少20倍。
(3)多纵横比和大小
对于多个对象检测应用程序,人们感兴趣的项目可能会出现在多个纵横比和不同的大小。研究人员证明了多种方法可以确保检测算法能够识别不同视角和大小的不同对象。
解决方案:不是采用选择性搜索,而是使用区域提议网络更新Faster R-CNN,该网络在图片的卷积特征图上使用一个小的滑动窗口来生成感兴趣的候选区域。可以在不同位置预测多个兴趣区域,并相对于参考锚框进行描述。选择这些锚框的大小和形状以跨越一系列的纵横比和不同的大小。它允许多种类型的对象进行识别,希望在定位任务期间不需要调整边界框坐标。
(4)带注释的数据数量有限
需要考虑的不可否认的事实之一是带注释的数据数量有限,这成为构建应用程序的障碍。这些数据集专门包含数十到数百个对象的真实示例,而图像分类数据集包含大约10万个不同的类。
解决方案:市场上现在提供了一些图像数据集,例如由微软公司提供的COCO Dataset,它目前采用一些对象检测注释数据。该数据集包含30万张根据精确位置标签具有80个不同对象类别的分割图片。每个图像平均包含7个对象和项目,它们以非常大的比例出现。减少数据稀缺的最主要的方法之一是YOLO9000(YOLO的第二个版本)。YOLO9000处理了YOLO的许多关键更新,但它也旨在缩小图像分类和对象检测之间的数据集差距。此外,它同时训练ImageNet和COCO,这是一个具有数万个对象类的图像分类数据集。 结语
根据来源,对象检测被认为比图像分类困难得多,特别是为了解决上述问题。研究人员继续努力减少这些障碍,有时会产生惊人的成果,然而仍然存在重大问题。当然,所有的对象检测模型都在努力处理更小的对象,尤其是那些被部分遮挡在一起收集的对象。具有对象分类和定位精度的实时检测仍然是一个值得注意的问题,研究人员在做出设计决策时通常会优先考虑其中一件事。从乐观的角度来看,视频跟踪技术可能会在未来在其他应用场景中会看到一些进展。
原文标题:Beginner’s Guide to Object Detection for Computer Vision Project,作者:Analytics Insight
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】