当你使用支付宝“刷脸支付”时,你是否好奇过你的手机是如何认出你的?这得益于计算机视觉的蓬勃发展。计算机视觉是一门教计算机如何“看”世界的学科。计算机视觉包含多个分支,其中图像分类、目标检测、图像分割、目标跟踪等是计算机视觉领域最重要的研究课题。本文将介绍目标检测的相关知识,并提供一些有趣的实例帮助理解。
一、什么是目标检测
目标检测,用通俗的语言来讲,就是通过编写程序,让计算机从一张图片中找出感兴趣的目标,并确定它们的位置和类别的方法。目标检测包含两个任务:(1)判定图像上有哪些目标物体,将它们进行分类。(2)判定图像中目标物体在哪里,并确定它们的准确位置。如图1-1所示,目标检测算法关注的是“猫”这一特定目标物体,图像中不但检测出了一只猫,还准确地框出了这只猫在图像中的位置。
二、目标检测中的核心问题
目标检测共有以下四个核心问题:(1)目标可能出现在图像的任何位置;(2)目标有各种不同的大小;(3)目标有各种不同的形状;(4)光照、遮挡等因素的干扰。如图2-1所示,在这幅图中,人脸被口罩所遮挡。
三、目标检测算法简介
首先我们来介绍深度学习方法。简单来说,深度学习就是把计算机要学习的东西看成一大堆数据,把这些数据丢进一个复杂的、包含多个层级的数据处理网络(深度神经网络),然后检查经过这个网络处理得到的结果是否符合要求——如果符合,就保留这个网络作为目标模型,如果不符合,就一次次地、锲而不舍地调整网络的参数设置,直到输出满足要求为止。
图3-1 深度学习体系[1]
随着深度学习的发展,目标检测领域也开始使用深度学习方法。基于深度学习的目标检测方法总共分为两类:一阶段目标检测算法和两阶段目标检测算法,如图所示。
图3-2 目标检测算法分类
一阶段目标检测算法可以实时检测,不需要产生候选区域,可以直接输出目标的位置和类别。最具代表性的一阶段目标检测算法有YOLO系列算法。
YOLOv1(You only look once)算法在2016年首次提出,YOLOv1算法只进行一次预测,却能直接输出目标的位置和类别,比其他基于深度学习的目标检测方法速度更快,缺陷在于准确度不算很高。后续提出的YOLOv2与YOLOv3在YOLOv1基础上做了很大的改进,提升了目标检测的准确度,YOLO系列算法在多个领域都得到了广泛的应用。图3-3是使用YOLO系列算法进行目标检测的一个实例,仅仅使用了一个非常简单的卷积网络,就可以同时标出目标的位置和所属类别的可能性大小。
图3-30YOLO算法检测系统[2]
两阶段目标检测算法将目标检测分为两个阶段:首先对原图进行处理,产生较多的候选框,在各个候选框内寻找目标的位置并分类。这种方法精度较高,但是速度较慢,不能实现实时目标检测。最具代表性的两阶段目标检测方法是R-CNN, Fast-RCNN,Faster-RCNN, FPN等。图3-4是两阶段目标检测算法R-CNN的检测系统图,它先在图像上产生大于2000个候选框,再通过一个卷积网络,最后得到目标的精确位置和目标的类别。
图3-4 R-CNN算法检测系统[3]
综上,一阶段目标检测算法适合对实时性要求较高、但对精度无过高要求的应用场景,而二阶段目标检测算法与此相反,适合对精度有较高要求,但不要求实时检测的应用场景。随着技术的发展,二阶段目标检测算法也越来越追求速度与精度的平衡。
✦ +
+
四、目标检测的应用场景
目标检测是计算机视觉最基本的问题之一,具有极为广泛的应用,下面简单介绍三种典型的应用场景,分别是人脸识别、智能交通和工业检测。
1.人脸识别
使用支付宝进行“刷脸支付”就是一种典型的人脸识别技术。人脸识别是基于人的面部特征进行身份识别的一种生物识别技术,通过采集含有人脸的图像或视频,对检测到的人脸进行识别。图是使用支付宝进行“刷脸支付”的示意图。
图4-1 刷脸支付示意图
人脸识别系统主要包括四个部分,分别为人脸图像检测、人脸图像预处理、人脸图像特征提取以及身份匹配与识别,流程如图所示。其中人脸图像检测是进行后续识别的基础,这就是目标检测在人脸识别中的应用。
图4-2人脸识别系统流程图
近年来,人脸识别技术已经取得了长足的发展,目前广泛应用于公安、交通、支付等多个实际场景。
2. 智能交通
自动驾驶技术是一种广为人知的智能交通应用。如图所示,自动驾驶技术中的目标检测主要包含对道路、车辆以及行人的检测,对交通标志物以及路旁物体的检测识别。主流的人工智能公司,如百度、华为、大疆等,都很重视自动驾驶方面的研发,目前已经初步实现了受限路况条件下的自动驾驶,但距离实现不受路况、天气等因素影响的自动驾驶(L4级别),还有相当长的一段距离。
图4-3 目标检测在自动驾驶中的应用
除了自动驾驶技术,目标检测也可以帮助解决道路拥堵问题。通过目标检测算法,对道路上的相机采集的视频图像进行分析,根据相应路段的车流量调整红绿灯的时间,可以避免大规模的拥堵。
目标检测也可以帮助公安部门追踪嫌疑人或嫌疑车辆。如图,通过目标检测算法,锁定嫌疑车辆的特征,可对他们进行全程轨迹追踪。
图4-4 目标检测在公安侦察方面的应用[6]
从根本上看,交通场景中各种具体应用的底层实现,都是以目标检测技术为基础的。
3.工业检测
在产品的生产过程中,由于原料、制造业工艺、环境等因素的影响,产品有可能产生各种各样的问题。其中一部分是外观缺陷,即人眼可识别的缺陷。在传统生产流程中,外观缺陷大多采用人工检测的方式进行识别,不仅消耗人力成本,也无法保障检测效果。图4-5是利用YOLO算法对电路板外观缺陷进行检测的示意图,利用目标检测算法,可以准确地锁定 哪里产生了缺陷,产生了什么缺陷。
图4-5 YOLO算法检测电路板的外观缺陷[7]
工业检测利用计算机视觉技术中的目标检测算法,把产品在生产过程中出现的裂纹、形变、部件丢失等外观缺陷检测出来,可以提升工厂的生产效率。
全部0条评论
快来发表一下你的评论吧 !