0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文带你读懂目标检测

自行科技 来源:自行科技 作者:自行科技 2022-09-01 18:59 次阅读

计算机视觉众多的技术领域中,目标检测(Object Detection)是一项非常基础的任务,图像分割、物体追踪、关键点检测等通常都需要借助于目标检测。目标检测作为基础任务通常和图像分类、图像分割相关联,我们简单看一下它们之间的区别与联系。

图像分类:图像分类侧重于输入图像中只有单个物体,用来判断这个图像属于什么类别,比如人、动物等大类别,也可以是不同种类的动物小类别等,这些图像级别的任务,相对比较简单,容易理解,所以最先得到发展与运用。

目标检测:目标检测偏向于一张输入图像中包含多个类别的很多物体,我们经常拍摄或者看到的图像往往都是具有多个类别的物体,比较复杂,目的是找出图像中不同物体的位置并判断其类别。

图像分割:图像分割与目标检测的输入类似,不同的是,它把图像中像素作为基本单位,判断每一个像素的类别,属于像素级别分类,一般图像分割与目标检测互相关联,很多模型与方法可以相互借鉴。

一、目标检测的基本概念

目标检测是对图像中所有感兴趣的目标进行分类并检测出它们各自的位置坐标。

如下图所示,目标检测到的图像中包括dog、bicycle、truck三个目标,并且识别了它们各自的位置信息

当然目标检测可以检测到各种类别信息,只要我们想检测某一图像当中是否有我们所需要的目标,我们都可以按照对预先标注类别的图像进行特征信息训练,使网络模型学习到已知目标特征,进而对其它图像进行目标类别与位置的识别。

15da6e51dbaf4700a2bb778fa9c6cdd1~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=np7sryi2yhpl0Ze2Mm6VFZdmD0w%3D

二、目标检测的发展历程

目标检测一开始是基于手工特征的传统算法,传统算法对于目标检测通常分为3个阶段:区域选取、特征提取和特征分类

7931545365ab4b7885365e05a5729d0d~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=0bVOh5edXHJ%2Fs%2B3DDS8VUACSGUQ%3D

随着近年来计算机的发展,深度学习得到了广泛的运用,基于深度学习的目标检测成为目前流行的检测方法。

目标检测算法经过历年的研究和对网络模型不断改进与优化,出现了许多优秀的算法模型。

6c983295366a444e85f25370edfc4e8f~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=rbYx7keumtnaRFFV1%2BkdMlKj3TU%3D

这些模型按照过程的不同主要分为两种类型

如以R-CNN系列为主的两阶段(2-stage)检测模型和以SSD系列、YOLO系列为主的单阶段(1-stage)检测模型。

自从Faster-RCNN提出了anchor机制之后,后续的改进算法很多都沿用了这一方法,因此,模型还有另一种划分方式,按照是否应用 anchor机制划分为anchor-baseanchor-free

1.Two stage与One stage

1)Two stage

常见two stage目标检测算法有:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。

在two-stage的⽬标检测领域中,以faster R-CNN模型为典型代表。

首先算法会先经过主网络提取特征,然后提取的特征图经过会先通过Region proposal network(RPN网络)来生成候选区域(Region Proposal,简称RP,包含检测目标的区域建议框),根据特征图和RP⽣成感兴趣区域(ROI)来完成后续位置坐标信息的回归的分类。

d6830ece0bcb4267870a6aca21e6e403~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=Nx3Axtt8qcd08Qk0BRb3s%2FBLZ0c%3D

2)One Stage

常见的one stage目标检测算法有:OverFeat、YOLOv1~YOLOv7、SSD和RetinaNet等。

目前最新出来的著作YOLOv7在 5-160 FPS 范围内速度和精度超过所有已知目标检测器。

one stage检测模型不存在RPN部分,而是一步到位地在卷积网络中提取特征来预测目标的类别和位置。

所以在拥有特征提取网络的预训练权重后,整个one-stage是可以直接进⾏端到端的训练的。

1e9c91cbaa0a4b7395d457ba93d410a2~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=JeRDmmZwNYj4nmn%2F17H4ryBnDeA%3D

总而言之,one stage检测器大大简化了模型结构的框架,提升了推理速度和简化了训练步骤。

2.anchor-base和anchor-free

目前基于深度学习的目标检测逐渐发展成为anchor-based、anchor-free和两者融合类型,区别就在于有没有利用anchor提取候选目标框。

首先让我们了解下什么是anchor?

anchor也叫做锚,其实是预设一组不同尺度,不同大小的边界框,在网络训练的时候,真实的边框位置相对于预设边框的偏移。

通俗点说就是预先在目标可能存在的位置设置预设框,然后再在这些预设边框的基础上进行细微调整。而它的本质就是为了解决标签分配的问题。

62561e7dccf0460f8d5f1f6475cb078d~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=DqFeHYzvn2tSPtPOVbFIrf3iBEc%3D

锚作为一系列先验框信息,其生成以下几个部分:

(1)用网络提取特征图的点来定位边框的位置;

(2)用锚的尺寸来设定边框的大小;

(3)用锚的长宽比来设定边框的形状。

1)anchor-base

近几年,anchor在目标检测领域应用十分广泛,使用anchor机制的模型有很多,包括Faster-RCNN、SSD、YOLOV2~ YOLOV7等。

这类算法的流程可以分为三步:

(1)在图像或者点云空间预设大量的anchor(2D/3D);

(2)回归目标相对于anchor的四个偏移量;

(3)用对应的anchor和回归的偏移量修正精确的目标位置。

以目标检测算法中one stageanchor base的目标检测模型为例。

模型获取的过程主要包括训练测试两个部分。

训练的主要目的是利用训练数据集进行检测网络的参数学习,训练数据集包含大量的视觉图像及标注信息(物体位置及类别)。

训练阶段的主要过程包括数据预处理、检测网络、以及标签匹配与损失计算等部分。

测试阶段主要利用得到的训练模型对输入图像进行预测,经过后处理得到检测结果。

5425ab2894754a39a209a744359ef9c5~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=TK0FANfBxT%2FCpoGNfqjQLj6dQzI%3D

(Ⅰ)训练过程

1404ea2905ef4be8b23af3a23206fba5~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=yqTAiD9%2Ft3rSMNsMxoHFKo0V1ZQ%3D

(Ⅱ)测试过程

(Ⅱ)测试过程

目标检测得到的是各个类别的名称与矩形框位置信息,在网络中通常用数字代替类别,比如用0代表Dog,1代表Cat,物体的位置信息通常用矩形边界框(Bounding Box)来表示。以边界框的四个点确定目标的位置信息。

非极大值抑制

(Non-Maximum-Suppression,NMS)

模型预测阶段,我们给图像生成多个锚框,并分别预测类别与位置偏移量,但是会生成很多冗余的没有完全包含目标的预测框,也可能一个目标输出多个相似的预测框,因此,我们需要NMS操作得到跟真实目标最匹配的目标框。

先通过对预测框之间进行IOU(交并比)比较,通过设置阈值除去一些重叠较多的预测框,最终得到每个类别最高得分单个预测框。

如图所示为交并比定义和NMS处理前后的目标检测输出目标框的示意图

b928a27b86944566b76e52260c2ef080~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=vQFku4OA1CPuwgOjp1ku9Qf7wsw%3D

59c546c01c3446119e54d79df5049f17~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=%2FKUuCYGaNhP7UHSgbIAGGaEJoNY%3D

2)Anchor-free

anchor-free类算法代表是CornerNet、ExtremeNet、CenterNet、FCOS等。

Anchor-Free的目标检测算法有两种方式:

(1)基于多关键点联合表达的方法

(2)基于单中心点预测的方法

基于多关键点联合方法,是通过定位目标物体的几个关键点来限定它的搜索空间。例如 Grid R-CNN算法基于RPN找到候选区域,对每个ROI区域提取特征图。

将特征图传到全卷积网络层里面输出概率的热度图,用于定位与目标对齐的边界框的网格点,利用网格点进行特征图融合,最终确定目标的边界框。

ec4c059805d04f9ea9f792500646b164~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=QxOBiMQMOw6C3%2F%2BGslgv5Qpzm0k%3D

而基于单中心点预测的方法,是通过目标物体的中心点来定位,然后预测中心到边界的距离。例如CenterNet将目标当成一个点来检测,即用目标box的中心点来表示这个目标,预测目标的中心点偏移量(offset),宽高(size)来得到物体实际box,而heatmap则是表示分类信息。

每一个类别都有一张heatmap,每一张heatmap上,若某个坐标处有物体目标的中心点,即在该坐标处产生一个keypoint(用高斯圆表示),如下图所示

f2396f4b22414c55ba2bfa53f984c99d~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=R9k%2BsmHBVI9%2BWbGAFXDkod9X7HU%3D

由上可见,anchor-base和anchor-free的最主要区别在于定义正负样本和回归的方式。在anchor-free中,物体落到哪个网格,哪个网格就是正样本,其余都是负样本。anchor-base则计算每个anchor预选框和实际框的IOU,超过多少阈值就算正样本。

在回归部分中,anchor-free是基于point做回归的,而anchor-base是基于anchor box和ground truth之间的偏移做回归的。

这也导致了发展了融合anchor-basedanchor-free分支的方法,如FSAF、SFace、GA-RPN等。

三、目标检测在车载中的应用场景

目标检测应用在我们生活的方方面面,随着自动驾驶领域的快速发展,目标检测算法在此领域也得到了极大的应用。

其中应用场景包括道路行人与车辆检测、驾驶员疲劳监测中的人脸检测、智能座舱内遗留物检测、乘员位置检测等。

1.舱外行人与车辆检测

对道路上来往的行人与车辆进行检测,实时观察道路的运行状况。

e8114af6d95547d494699e22ea0d0aab~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=zt2H0a4LLMZuXy7Psaq5rMMFgmo%3D

4795d8ae3d8a43e2b2772eadffae78a9~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=DS2KREd8165JFZ6e%2FTD51hH1Qns%3D

6679d79dcf574b019fd9969eda6625c7~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=1pSl5Gws2Jt0hHeoQgB0hUnZkhs%3D

2.舱内驾驶员人脸检测

检测驾驶员人脸框的位置,作为为实时监测驾驶员的状态的基础。

76049854900d4536809700769dbd9b18~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=mEwHoW7CLuJT2ZcQBT%2FabGH2rJQ%3D

3.舱内后排遗留物检测

检测下车后座舱内遗留的的物品,方便提醒驾驶员注意停车后座舱安全。

5adb131892f942dd949c3ad5702dac32~noop.image?_iz=58558&from=article.pc_detail&x-expires=1662631563&x-signature=n19kQTcWgkqD4M1gVPKvMb4%2BKno%3D

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    26

    文章

    1242

    浏览量

    56097
  • 人工智能
    +关注

    关注

    1781

    文章

    44856

    浏览量

    232250
  • 智能驾驶
    +关注

    关注

    3

    文章

    2207

    浏览量

    48319
  • 目标检测
    +关注

    关注

    0

    文章

    186

    浏览量

    15527
  • 计算机视觉
    +关注

    关注

    8

    文章

    1611

    浏览量

    45713
收藏 人收藏

    评论

    相关推荐

    目标读懂linux内核,有同努力的朋友不?

    。准备用ARM11来作为移植linux的平台现在在做什么:linux的内核太复杂,牵扯到很多数据结构,我还是刚上大三的本科生,很多数据结构得自己补习。给自己的短期目标就是:读懂个轻量级的操作系统内核
    发表于 09-19 13:01

    目标读懂linux内核,有同努力的朋友不?

    。准备用ARM11来作为移植linux的平台现在在做什么:linux的内核太复杂,牵扯到很多数据结构,我还是刚上大三的本科生,很多数据结构得自己补习。给自己的短期目标就是:读懂个轻量级的操作系统内核
    发表于 09-19 13:08

    读懂电阻和电容的不同

    要了解它们的主要参数。般情况下,对电阻器应考虑其标称阻值、允许偏差和标称功率;对电容器则需了解其标称容量、允许偏差和耐压。读懂电阻和电容的不同  电阻器和电容器的标称值和允许偏差
    发表于 11-14 10:25

    读懂接口模块的组合应用有哪些?

    读懂接口模块的组合应用有哪些?
    发表于 05-17 07:15

    读懂如何去优化AC耦合电容?

    读懂如何去优化AC耦合电容?
    发表于 06-08 07:04

    带你了解步进电机的相关知识

    带你了解步进电机的相关知识:相、线、极性和步进方式2017-09-07 16:45这里不说步进电机的 “细分” 实验,只说下有关步进电机的基础概念以及步进电机的三种工作方式——单
    发表于 07-08 06:48

    【原创】带你读懂RFID

    本帖最后由 松山归人 于 2021-8-10 09:28 编辑 作者:黄忠老师(张飞实战电子高级工程师)RFID又称无线射频识别,通过无线电信号识别并读写特定目标数据,很容易就可完成识别与读写
    发表于 08-09 17:18

    读懂什么是NEC协议

    读懂什么是NEC协议?
    发表于 10-15 09:22

    带你读懂OpenHarmony数字管家

    、愿景闹钟准时响起,起床时间到,窗帘自动拉开,伴随着清晨的第缕阳光,新的天开始了;电子屏开始播报今天的天气状况与空气质量,温馨提示着我们今天的着装以及日程安排;洗漱完成后,设置
    发表于 11-05 16:11

    读懂中断方式和轮询操作有什么区别吗

    读懂中断方式和轮询操作有什么区别吗?
    发表于 12-10 06:00

    读懂传感器的原理与结构

    读懂传感器传感器在原理与结构上千差万别,如何根据具体的测量目的、测量对象以及测量环境合理地选用传感器,是在进行某个量的测量时首先要解决的问题。当传感器确定之后,与之相配套的测量方法和测量设备也就
    发表于 01-13 07:08

    带你读懂数字管家

    、愿景 闹钟准时响起,起床时间到,窗帘自动拉开,伴随着清晨的第缕阳光,新的天开始了;电子屏开始播报今天的天气状况与空气质量,温馨提示着我们今天的着装以及日程安排;洗漱完成后,设置
    发表于 03-31 16:58

    一张图读懂软件定义存储

    什么是软件定义存储?杉岩老司机带你一张图读懂软件定义存储!
    发表于 03-10 11:21 736次阅读

    一文带你读懂耦合与退耦,上拉与下拉资料下载

    电子发烧友网为你提供一文带你读懂耦合与退耦,上拉与下拉资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-21 08:50 23次下载
    一文<b class='flag-5'>带你</b><b class='flag-5'>读懂</b>耦合与退耦,上拉与下拉资料下载

    一文读懂方壳电池仓段差缺陷检测

    一文读懂方壳电池仓段差缺陷检测
    的头像 发表于 01-12 15:46 673次阅读
    一文<b class='flag-5'>读懂</b>方壳电池仓段差缺陷<b class='flag-5'>检测</b>