目标检测(ObjectDetection)

更新时间:2023-05-26 11:39:41 阅读: 评论:0

⽬标检测(ObjectDetection)
⽂章⽬录
⽬标检测(Object Detection)
⼀、基本概念
1. 什么是⽬标检测
⽬标检测(Object Detection)的任务是找出图像中所有感兴趣的⽬标(物体),确定它们的类别和位置,是计算机视觉领域的核⼼问题之⼀。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的⼲扰,⽬标检测⼀直是计算机视觉领域最具有挑战性的问题。
计算机视觉中关于图像识别有四⼤类任务:
(1)分类-Classification:解决“是什么?”的问题,即给定⼀张图⽚或⼀段视频判断⾥⾯包含什么类别的⽬标。
桃子的品种
(2)定位-Location:解决“在哪⾥?”的问题,即定位出这个⽬标的的位置。
(3)检测-Detection:解决“在哪⾥?是什么?”的问题,即定位出这个⽬标的位置并且知道⽬标物是什么。
(4)分割-Segmentation:分为实例的分割(Instance-level)和场景分割(Scene-level),解决“每⼀个像素属于哪个⽬标物或场景”的问题。
所以,⽬标检测是⼀个分类、回归问题的叠加。
2. ⽬标检测的核⼼问题
(1)分类问题:即图⽚(或某个区域)中的图像属于哪个类别。
(2)定位问题:⽬标可能出现在图像的任何位置。
(3)⼤⼩问题:⽬标有各种不同的⼤⼩。
(4)形状问题:⽬标可能有各种不同的形状。
3. ⽬标检测算法分类
基于深度学习的⽬标检测算法主要分为两类:Two stage和One stage。
1)Tow Stage
先进⾏区域⽣成,该区域称之为region proposal(简称RP,⼀个有可能包含待检物体的预选框),再通过卷积神经⽹络进⾏样本分类。任务流程:特征提取 --> ⽣成RP --> 分类/定位回归。
常见tow stage⽬标检测算法有:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。
2)One Stage
优秀的的英文不⽤RP,直接在⽹络中提取特征来预测物体分类和位置。
任务流程:特征提取–> 分类/定位回归。
常见的one stage⽬标检测算法有:OverFeat、YOLOv1、YOLOv2、YOLOv3、SSD和RetinaNet等。
4. ⽬标检测应⽤
1)⼈脸检测
智能门控
员⼯考勤签到
智慧超市
⼈脸⽀付
车站、机场实名认证
公共安全:逃犯抓捕、⾛失⼈员检测
2)⾏⼈检测
智能辅助驾驶
智能监控
暴恐检测(根据⾯相识别暴恐倾向)
移动侦测、区域⼊侵检测、安全帽/安全带检测
3)车辆检测
⾃动驾驶
违章查询、关键通道检测
⼴告检测(检测⼴告中的车辆类型,弹出链接)
4)遥感检测
⼤地遥感,如⼟地使⽤、公路、⽔渠、河流监控
农作物监控
军事检测
⼆、⽬标检测原理
⽬标检测分为两⼤系列——RCNN系列和YOLO系列,RCNN系列是基于区域检测的代表性算法,YOLO是基于区域提取的代表性算法,另外还有著名的SSD是基于前两个系列的改进。
1. 候选区域产⽣
影忍之足
很多⽬标检测技术都会涉及候选框(bounding boxes)的⽣成,物体候选框获取当前主要使⽤图像分割与区域⽣长技术。区域⽣长(合并)主要由于检测图像中存在的物体具有局部区域相似性(颜⾊、纹理等)。⽬标识别与图像分割技术的发展进⼀步推动有效提取图像中信息。
1)滑动窗⼝
通过滑窗法流程图可以很清晰理解其主要思路:⾸先对输⼊图像进⾏不同窗⼝⼤⼩的滑窗进⾏从左往右、从上到下的滑动。每次滑动时候对当前窗⼝执⾏分类器(分类器是事先训练好的)。如果当前窗⼝得到较⾼的分类概率,则认为检测到了物体。对每个不同窗⼝⼤⼩的滑窗都进⾏检测后,会得到不同窗⼝检测到的物体标记,这些窗⼝⼤⼩会存在重复较⾼的部分,最后采⽤⾮极⼤值抑制(Non-Maximum
Suppression, NMS)的⽅法进⾏筛选。最终,经过NMS筛选后获得检测到的物体。
滑窗法简单易于理解,但是不同窗⼝⼤⼩进⾏图像全局搜索导致效率低下,⽽且设计窗⼝⼤⼩时候还需要考虑物体的长宽⽐。所以,对于实时性要求较⾼的分类器,不推荐使⽤滑窗法。
2)选择性搜索
① 什么是选择性搜索
滑窗法类似穷举进⾏图像⼦区域搜索,但是⼀般情况下图像中⼤部分⼦区域是没有物体的。学者们⾃然⽽然想到只对图像中最有可能包含物体的区域进⾏搜索以此来提⾼计算效率。选择搜索(lective arch,简称SS)⽅法是当下最为熟知的图像bounding boxes提取算法,由Koen E.A于2011年提出。
选择搜索算法的主要思想:图像中物体可能存在的区域应该是有某些相似性或者连续性区域的。因此,选择搜索基于上⾯这⼀想法采⽤⼦区域合并的⽅法进⾏提取bounding boxes。⾸先,对输⼊图像进⾏分割算法产⽣许多⼩的⼦区域。其次,根据这些⼦区域之间相似性(相似性标准主要有颜⾊、纹理、⼤⼩等等)进⾏区域合并,不断的进⾏区域迭代合并。每次迭代过程中对这些合并的⼦区域做bounding boxes(外切矩形),这些⼦区域外切矩形就是通常所说的候选框。
② 选择搜索流程step0:⽣成区域集R step1:计算区域集R⾥每个相邻区域的相似度S={s1, s2,…}step2:找出相似度最⾼的两个区域,将其合并为新集,添加进R step3:从S中移除所有与step2中有关的⼦集step4:计算新集与所有⼦集的相似度
step5:跳⾄step2,直⾄S为空
③ 选择搜索优点计算效率优于滑窗法由于采⽤⼦区域合并策略,所以可以包含各种⼤⼩的疑似物体框
合并区域相似的指标多样性,提⾼了检测物体的概率婷婷五月天丁香
2. 数据表⽰经过标记后的样本数据如下所⽰:
预测输出可以表⽰为:
y =,y =⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡p c b x b y b w b h C 1C 2C 3⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤true ,y =⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡140458060010⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤pred ⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡0.88414682590.010.950.04
⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
其中,为预测结果的置信概率,为边框坐标,为属于某个类别的概率。通过预测结果、实际结果,构建损失函数。损失函数包含了分类、回归两部分组成。
李白写的古诗
3. 效果评估
使⽤IoU(Interction over Union,交并⽐)来判断模型的好坏。所谓交并⽐,是指预测边框、实际边框交集和并集的⽐率,⼀般约定0.5为⼀个可以接收的值。
4. ⾮极⼤值抑制
预测结果中,可能多个预测结果间存在重叠部分,需要保留交并⽐最⼤的、去掉⾮最⼤的预测结果,
这就是⾮极⼤值抑制(Non-Maximum Suppression,简写作NMS)。如下图所⽰,对同⼀个物体预测结果包含三个概率0.8/0.9/0.95,经过⾮极⼤值抑制后,仅保留概率最⼤的预测结果。
三、⽬标检测模型
1. R-CNN 系列
1)R-CNN
① 定义
R-CNN(全称Regions with CNN features) ,是R-CNN系列的第⼀代算法,其实没有过多的使⽤“深度学习”思想,⽽是将“深度学习”和传统的“计算机视觉”的知识相结合。⽐如R-CNN pipeline中的第⼆步和第四步其实就属于传统的“计算机视觉”技术。使⽤lective arch提取region proposals,使⽤SVM实现分类。
② 流程预训练模型。选择⼀个预训练 (pre-trained)神经⽹络(如AlexNet、VGG)。重新训练全连接层。使⽤需要检测的⽬标重新训练(re-train)最后全连接层(connected layer)。
提取 proposals并计算CNN 特征。利⽤选择性搜索(Selective Search)算法提取所有proposals(⼤
约2000幅images),调整(resize/warp)它们成固定⼤⼩,以满⾜ CNN输⼊要求(因为全连接层的限制),然后将feature map 保存到本地磁盘。训练SVM。利⽤feature map 训练SVM来对⽬标和背景进⾏分类(每个类⼀个⼆进制SVM)
边界框回归(Bounding boxes Regression)。训练将输出⼀些校正因⼦的线性回归分类器
③ 效果
R-CNN在VOC 2007测试集上mAP达到58.5%,打败当时所有的⽬标检测算法
④ 缺点
重复计算,每个region proposal,都需要经过⼀个AlexNet特征提取,为所有的RoI(region of interest)提取特征⼤约花费47秒,占⽤空间lective arch⽅法⽣成region proposal,对⼀帧图像,需要花费2秒
三个模块(提取、分类、回归)是分别训练的,并且在训练时候,对于存储空间消耗较⼤
2)Fast R-CNN
① 定义
Fast R-CNN是基于R-CNN和SPPnets进⾏的改进。SPPnets,其创新点在于只进⾏⼀次图像特征提取(⽽不是每个候选区域计算⼀次),然后根据算法,将候选区域特征图映射到整张图⽚特征图中。
② 流程
p c b ,b ,b ,b x y w h C ,C ,C 123
使⽤lective arch⽣成region proposal,⼤约2000个左右区域候选框(joint training)缩放图⽚的scale得到图⽚⾦字塔,FP得到conv5的特征⾦字塔
(joint training)对于每个scale的每个ROI,求取映射关系,在conv5中剪裁出对应的patch。并⽤⼀个单层的SSP layer来统⼀到⼀样的尺度(对于AlexNet是6*6)
(joint training) 继续经过两个全连接得到特征,这特征⼜分别共享到两个新的全连接,连接上两个优化⽬标。第⼀个优化⽬标是分类,使⽤softmax,第⼆个优化⽬标是bbox regression,使⽤了⼀个平滑的L1-loss
测试时需要加上NMS处理:利⽤窗⼝得分分别对每⼀类物体进⾏⾮极⼤值抑制提出重叠建议框,最终得到每个类别中回归修正后的得分最⾼的窗⼝
③ 改进
个性手机铃声
栗粒疹和RCNN相⽐,训练时间从84⼩时减少为9.5⼩时,测试时间从47秒减少为0.32秒。在VGG16上,Fast RCNN训练速度是RCNN的9倍,测试速度是RCNN的213倍;训练速度是SPP-net的3倍,测试速度是SPP-net的3倍Fast RCNN在PASCAL VOC 2007上准确率相差⽆⼏,约在66~67%之间加⼊RoI Pooling,采⽤⼀个神经⽹络对全图提取特征
在⽹络中加⼊了多任务函数边框回归,实现了端到端的训练
④ 缺点依旧采⽤lective arch提取region proposal(耗时2~3秒,特征提取耗时0.32秒)⽆法满⾜实时应⽤,没有真正实现端到端训练测试
利⽤了GPU,但是region proposal⽅法是在CPU上实现的
3)Faster RCNN
经过R-CNN和Fast-RCNN的积淀,Ross B.Girshick在2016年提出了新的Faster RCNN,在结构上将特征抽取、region proposal提取, bbox regression,分类都整合到了⼀个⽹络中,使得综合性能有较⼤提⾼,在检测速度⽅⾯尤为明显。
① 整体流程
Conv Layers。作为⼀种CNN⽹络⽬标检测⽅法,Faster RCNN⾸先使⽤⼀组基础的卷积/激活/池化层提取图像的特征,形成⼀个特征图,⽤于后续的RPN层和全连接层。蒸饺子用热水还是冷水
Region Proposal Networks(RPN)。RPN⽹络⽤于⽣成候选区域,该层通过softmax判断锚点(anchors)属于前景还是背景,在利⽤bounding box regression(包围边框回归)获得精确的候选区域。
RoI Pooling。该层收集输⼊的特征图和候选区域,综合这些信息提取候选区特征图(proposal feature maps),送⼊后续全连接层判定⽬标的类别。
Classification。利⽤取候选区特征图计算所属类别,并再次使⽤边框回归算法获得边框最终的精确位置。
② Anchors
Anchors(锚点)指由⼀组矩阵,每个矩阵对应不同的检测尺度⼤⼩。如下矩阵:
[[ -84.  -40.  99.  55.]
[-176.  -88. 191. 103.]
[-360. -184. 375. 199.]
[ -56.  -56.  71.  71.]
[-120. -120. 135. 135.]
[-248. -248. 263. 263.]
[ -36.  -80.  51.  95.]
[ -80. -168.  95. 183.]
[-168. -344. 183. 359.]]
其中每⾏4个值(),对应矩形框左上⾓、右下⾓相对于中⼼点的偏移量。9个矩形共有三种形状,即1:1, 1:2, 2:1,即进⾏多尺度检测。x ,y ,x ,y 1122

本文发布于:2023-05-26 11:39:41,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/783149.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:区域   检测   图像
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图