(转)基于深度学习的物体检测

 

本文转自:http://www.cosmosshadow.com/ml/%E5%BA%94%E7%94%A8/2015/12/07/%E7%89%A9%E4%BD%93%E6%A3%80%E6%B5%8B.html

 

物体检测

Index

RCNN

Rich feature hierarchies for accurate object detection and semantic segmentation 
早期,使用窗口扫描进行物体识别,计算量大。 
RCNN去掉窗口扫描,用聚类方式,对图像进行分割分组,得到多个侯选框的层次组。

  • 原始图片通过Selective Search提取候选框,约有2k个
  • 侯选框缩放成固定大小
  • 经过CNN
  • 经两个全连接后,分类

 

Fast RCNN

Fast R-CNN 
RCNN中有CNN重复计算,Fast RCNN则去掉重复计算,并微调选框位置。

  • 整图经过CNN,得到特征图
  • 提取域候选框
  • 把候选框投影到特征图上,Pooling采样成固定大小
  • 经两个全连接后,分类与微调选框位置

 

Faster RCNN

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 
提取候选框运行在CPU上,耗时2s,效率低下。 
Faster RCNN使用CNN来预测候选框。

  • 整图经过CNN,得到特征图
  • 经过核为 3×3×2563×3×256 的卷积,每个点上预测k个anchor box是否是物体,并微调anchor box的位置
  • 提取出物体框后,采用Fast RCNN同样的方式,进行分类
  • 选框与分类共用一个CNN网络

anchor box的设置应比较好的覆盖到不同大小区域,如下图:

一张1000×6001000×600的图片,大概可以得到20k个anchor box(60×40×960×40×9)。

 

R-FCN

R-FCN: Object Detection via Region-based Fully Convolutional Networks 
RCNN系列(RCNN、Fast RCNN、Faster RCNN)中,网络由两个子CNN构成。在图片分类中,只需一个CNN,效率非常高。所以物体检测是不是也可以只用一个CNN? 
图片分类需要兼容形变,而物体检测需要利用形变,如何平衡? 
R-FCN利用在CNN的最后进行位置相关的特征pooling来解决以上两个问题。

经普通CNN后,做有 k2(C+1)k2(C+1) 个 channel 的卷积,生成位置相关的特征(position-sensitive score maps)。 
CC 表示分类数,加 11 表示背景,kk 表示后续要pooling 的大小,所以生成 k2k2 倍的channel,以应对后面的空间pooling。

普通CNN后,还有一个RPN(Region Proposal Network),生成候选框。 
假设一个候选框大小为 w×hw×h,将它投影在位置相关的特征上,并采用average-pooling的方式生成一个 k×k×k2(C+1)k×k×k2(C+1) 的块(与Fast RCNN一样),再采用空间相关的pooling(k×kk×k平面上每一个点取channel上对应的部分数据),生成 k×k×(C+1)k×k×(C+1)的块,最后再做average-pooling生成 C+1C+1 的块,最后做softmax生成分类概率。 
类似的,RPN也可以采用空间pooling的结构,生成一个channel为 4k24k2的特征层。 
空间pooling的具体操作可以参考下面。

训练与SSD相似,正负点取一个常数,如128。除去正点,剩下的所有使用概率最高的负点。

 

YOLO

You Only Look Once: Unified, Real-Time Object Detection 
Faster RCNN需要对20k个anchor box进行判断是否是物体,然后再进行物体识别,分成了两步。 
YOLO则把物体框的选择与识别进行了结合,一步输出,即变成”You Only Look Once”。

  • 把原始图片缩放成448×448448×448大小
  • 运行单个CNN
  • 计算物体中心是否落入单元格、物体的位置、物体的类别

模型如下:

  • 把缩放成统一大小的图片分割成S×SS×S的单元格
  • 每个单元格输出B个矩形框(冗余设计),包含框的位置信息(x, y, w, h)与物体概率P(Object)P(Object)
  • 每个单元格再输出C个类别的条件概率P(Class∣Object)P(Class∣Object)
  • 最终输出层应有S×S×(B∗5+C)S×S×(B∗5+C)个单元
  • x, y 是每个单元格的相对位置
  • w, h 是整图的相对大小

分类的概率

P(Class)=P(Class∣Object)⋅P(Object)P(Class)=P(Class∣Object)⋅P(Object)

在原论文中,S = 7,B = 2,C = 20,所以输出的单元数为7×7×307×7×30。

代价函数:

J=λcoord∑i=0S2∑j=0B1objij(xi−x^i)2+(yi−y^i)2+λcoord∑i=0S2∑j=0B1objij(wi−−√−w^i−−√)2+(hi−−√−h^i−−√)2+∑i=0S2∑j=0B1objij(Ci−C^i)2+λnoobj∑i=0S2∑j=0B1noobjij(Ci−C^i)2+∑i=0S21objij∑c∈classes(pi(c)−p^i(c))2J=λcoord∑i=0S2∑j=0B1ijobj(xi−x^i)2+(yi−y^i)2+λcoord∑i=0S2∑j=0B1ijobj(wi−w^i)2+(hi−h^i)2+∑i=0S2∑j=0B1ijobj(Ci−C^i)2+λnoobj∑i=0S2∑j=0B1ijnoobj(Ci−C^i)2+∑i=0S21ijobj∑c∈classes(pi(c)−p^i(c))2

其中 λcoord=5λcoord=5,λnoobj=0.5λnoobj=0.5。 
一般,ww 与 hh 不是在 [0,1][0,1] 上的均匀分布,偏小,所以开方。

 

SSD

SSD: Single Shot MultiBox Detector 
YOLO在 7×77×7 的框架下识别物体,遇到大量小物体时,难以处理。 
SSD则在不同层级的feature map下进行识别,能够覆盖更多范围。

假设在 mm 层 feature map 上进行识别,则第 kk 层的基本比例为

sk=smin+smax−sminm−1(k−1)k∈[1,m]sk=smin+smax−sminm−1(k−1)k∈[1,m]

比如 smin=0.2smin=0.2,smax=0.95smax=0.95,表示整张图片识别物体所占比最小 0.2,最大 0.95。 
在基本比例上,再取多个长宽比,令 a={1,2,3,1/2,1/3}a={1,2,3,1/2,1/3},长宽分别为

wik=skai−−√hik=sk/ai−−√i∈[1,5]wki=skaihki=sk/aii∈[1,5]

w6k=sksk+1−−−−−√h6k=sksk+1−−−−−√wk6=sksk+1hk6=sksk+1

Match策略上,取ground truth与以上生成的格子重叠率大于0.5的。

SSD vs YOLO

位置采用Smooth L1 Regression,分类采用Softmax。 
代价函数为

L=Lconf(x,c)+α⋅Lloc(x,l,g))L=Lconf(x,c)+α⋅Lloc(x,l,g))

xx 表示类别输出,cc 表示目标分类,ll 表示位置输出,gg 表示目标位置, αα是比例常数,可取1。 
训练过程中负点远多于正点,所以只取负点中,概率最大的几个,数量与正点成 3:13:1 。

 

NMS

以上方法,同一物体可能有多个预测值。 
可用NMS(Non-maximum suppression,非极大值抑制)来去重。

如上图所示,一共有6个识别为人的框,每一个框有一个置信率。 
现在需要消除多余的:

  • 按置信率排序: 0.95, 0.9, 0.9, 0.8, 0.7, 0.7
  • 取最大0.95的框为一个物体框
  • 剩余5个框中,去掉与0.95框重叠率大于0.6(可以另行设置),则保留0.9, 0.8, 0.7三个框
  • 重复上面的步骤,直到没有框了,0.9为一个框
  • 选出来的为: 0.95, 0.9

两个矩形的重叠率计算方式如下:

如图,两个矩形的面积分别为A, B

  • 取两个矩形左上角坐标的最大值x1_max, y1_max
  • 取两个矩形右下角坐标的最小值x2_min, y2_min
  • 重叠区域的宽w为max(0, x2_min - x1_max),高h为max(0, y2_min - y1_max)
  • 重叠率为 w×hA+B−w×hw×hA+B−w×h

 

xywh VS xyxy

系列论文中,位置都用 (x,y,w,h)(x,y,w,h) 来表示,没有用左上角、右下角 (x,y,x,y)(x,y,x,y) 来表示。 
初衷是当 (w,h)(w,h) 正确时,(x,y)(x,y) 一点错,会导致整个框就不准了。 
在初步的实际实验中,(x,y,x,y)(x,y,x,y) 效果要差一些。

背后的逻辑,物体位置用 (x,y,w,h)(x,y,w,h) 来学习比较容易。 
(x,y)(x,y) 只需要位置相关的加权就能计算出来; 
(w,h)(w,h) 就更简单了,直接特征值相加即可。

时间: 2024-09-20 19:48:28

(转)基于深度学习的物体检测的相关文章

基于深度学习的内容安全检测与管控

这是一个信息爆炸的时代,数据表明,Facebook每日新增600T数据,Twitter每日新增1.4亿条信息,Youtube每分钟新增300小时视频.然而,目前的互联网络缺乏内容安全管控经验,缺乏内容安全检测技术,安全管控耗费大量成本.海量的数据内容如何检测安全,如何管理得当?在这样的大背景下,基于深度学习的内容安全检测与管控尤为实用且可行. 通常需要安全检测与管控的内容有文本.图片.视频.网站这四种形式.由于Open API和插件开发,使该技术更加通用,降低接入成本,一键开通服务,提供简单方便

基于深度学习的商品检索技术

雷锋网(公众号:雷锋网)按:本文作者严灿祥,硕士毕业于中科院计算所VIPL课题组.目前就职于百度深度学习研究院.主要从事商品检索技术的研发.所在的识图策略组包括商品搜索.相似搜索.相同搜索与图像猜词等方向. 摘要 商品检索是一门综合了物体检测.图像分类以及特征学习的技术.近期,很多研究者成功地将深度学习方法应用到这个领域.本文对这些方法进行了总结,然后概括地提出了商品特征学习框架以及垂类数据挖掘方式,最后介绍了商品检索技术在服装搭配中的应用. 前言 几年前,当人们还在感叹于网页购物的快速便捷时,

基于深度学习的智能问答

作者:周小强 陈清财 曾华军 1引言 纵观自动问答系统的技术发展历史,从1950年代因图灵测试而诞生至今,已经有几十年的历史.但真正在产业界得到大家的广泛关注,则得益于2011年Siri和Watson成功所带来的示范效应.自此,自动问答系统较以往任何时候都显得离实际应用更近.这一方面归功于机器学习与自然语言处理技术的长足进步,另一方面得益于维基百科等大规模知识库以及海量网络信息的出现.然而,现有的自动问答系统所面临的问题远没有完全解决.事实上,无论是业界应用还是学术研究,问句的真实意图分析.问句

基于深度学习的智能安防系统结构探讨

智能安防的概念提出已经有相当长时间了,但是道路并不平坦,受限于计算机视觉算法和前端设备处理能力,许多功能一直无法成熟应用.但是厂商在宣传智能水平方面往往有夸大的冲动,使得产品在部署使用后,实际性能与用户期待相去甚远.虽然这种情况使得安防领域的智能化陷入了一段尴尬时期,同时也降低了用户的期望值,使用户更加理性的看待智能安防技术,也使得真正优秀的智能安防产品能得到机会.最近数年来深度学习算法的快速发展,在各类人工智能问题上的优异表现给智能安防领域带来了新的机遇.在深度学习迅速发展的大背景下,本文就智

tensorflow实现基于深度学习的图像补全

目录■ 简介 ■ 第一步:将图像理解为一个概率分布的样本      你是怎样补全缺失信息的呢?      但是怎样着手统计呢?这些都是图像啊.      那么我们怎样补全图像?  ■ 第二步:快速生成假图像      在未知概率分布情况下,学习生成新样本      [ML-Heavy] 生成对抗网络(Generative Adversarial Net, GAN) 的架构      使用G(z)生成伪图像      [ML-Heavy] 训练DCGAN      现有的GAN和DCGAN实现  

《中国人工智能学会通讯》——第3章 3.1基于深度学习的网络表示研究进展

第3章 3.1基于深度学习的网络表示研究进展 网络结构在现实世界中无处不在(如航线网络.通信网络.论文引用网络.世界万维网和社交网络等),在此基础之上的应用和研究问题受到了学术界和工业界的广泛关注,这些研究问题包括链接预测[1] .网络节点分类 [2-3] .推荐 [4]和异常检测[5]等.随着计算机信息技术的高速发展和迅速普及,现实世界中的网络结构,尤其是以 Twitter.Facebook和 Weibo 为代表的大规模社交网络进入了亿级节点时代.除网络结构之外,网络节点自身也会产生大量的相关

为恶意文件“画像” 瀚思科技基于深度学习技术快速锁定未知威胁

至顶网安全频道 07月26日 北京报道:"阿尔法狗"(AlphaGo)的一战成名让很多人记住了人工智能.深度学习.大数据分析等一系列新兴科技热词,而真正要把这些新技术应用到商业领域则又是另外一个过程.因此,我们现在看到很多创新型企业开始将人工智能技术引入到传统领域中,以求创造出颠覆性的发展机遇. 众所周知,在安全领域对于已知的安全威胁一般都比较容易防范,最棘手的问题是对未知安全威胁的检测和防护,这让很多安全企业非常困惑,而目前比较理想和成熟的防范手段是业界普遍采取的沙箱技术,沙箱的优点

搜狗研究员讲解基于深度学习的语音分离

基于深度学习的有监督语音分离在学术界和工业界越来越受到关注,也是深度学习在语音领域的应用中重要的一部分.作为雷锋网AI研习社近期组织的一系列语音领域应用的分享会之一,本次我们请到了来自搜狗的研究员文仕学对语音分离方面主要的研究课题和相关方法做一些介绍. 文仕学,过去学物理,后来学EE,现在从事Deep Learning工作,未来投身AI和CM事业.他的研究兴趣在于语音信号处理和深度学习.在加入搜狗之前,曾在中国科学技术大学学习,在该领域的期刊和会议上发表了若干篇论文.现在在搜狗语音团队任副研究员

海康威视基于深度学习的“文字识别技术”在国际竞赛中斩获第一

近日,海康威视研究院预研团队基于深度学习技术研发的OCR(Optical Character Recognition,图像中文字识别)技术,刷新了ICDARRobust Reading竞赛数据集的全球最好成绩,并在"互联网图像文字"."对焦自然场景文字"和"随拍自然场景文字"三项挑战的文字识别(Word Recognition)任务中,大幅超越国内外强劲参赛团队,标志着海康威视的文字识别技术达到国际领先水平.   ICDAR(Internatio