目标检测的相关知识

描述

当你使用支付宝“刷脸支付”时,你是否好奇过你的手机是如何认出你的?这得益于计算机视觉的蓬勃发展。计算机视觉是一门教计算机如何“看”世界的学科。计算机视觉包含多个分支,其中图像分类、目标检测、图像分割、目标跟踪等是计算机视觉领域最重要的研究课题。本文将介绍目标检测的相关知识,并提供一些有趣的实例帮助理解。

 

一、什么是目标检测

目标检测,用通俗的语言来讲,就是通过编写程序,让计算机从一张图片中找出感兴趣的目标,并确定它们的位置和类别的方法。目标检测包含两个任务:(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]

工业检测利用计算机视觉技术中的目标检测算法,把产品在生产过程中出现的裂纹、形变、部件丢失等外观缺陷检测出来,可以提升工厂的生产效率。

  
      审核编辑:彭静
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分