基于深度学习的目标检测

来源:互联网 发布:全面预算管理的数据 编辑:程序博客网 时间:2024/06/05 14:32

基于深度学习的目标检测方法

【深度学习:目标检测】CVPR 2016:目标检测领域的新进展

目标检测 RCNN, SPPNet, Fast RCNN,Faster RCNN 总结

目标检测论文回顾

目标检测最新资料汇总

写在前面

研究DPM大半年了,实验也做过,工程项目也应用过,发现针对复杂背景的对象检测的效果不是很好,而且由于HOG特征提取和多

个部件滤波器的特征提取,造成检测速度很慢,难以用在视频的对象检测上。最近看到了CVPR的一些对象检测的新进展,感觉很有

领悟,趋向于基于深度学习的路线,收集了一些资料,在研究中。

Note ofTransposition

计算机视觉小蜗牛

DPM(Deformable Parts Model)--原理(一)

DPM(Deformable Parts Model)--原理(一)

DPM(Deformable Parts Model)(彼岸花)

【Deep Learning回顾】之基于深度学习的目标检测(我爱机器学习)


目标检测方法

(1)基于cascade的目标检测

cascade的级联思想可以快速抛弃没有目标的平滑窗(sliding window),因而大大提高了检测效率,但也不是没缺点,缺点就是它仅仅使用了很弱的特征,用它做分类的检测器也是弱分类器,仅仅比随机猜的要好一些,它的精度靠的是多个弱分类器来实行一票否决式推举(就是大家都检测是对的)来提高命中率,确定分类器的个数也是经验问题。这节就来说说改进的特征,尽量使得改进的特征可以检测任何物体,当然Deep Learning学习特征很有效,但今天还是按论文发表顺序来说下其他方法,(服务器还没配置好,现在还不能大批跑Deep Learning ),。

(2)基于形变部件的目标检测

形变部件模型检测方法是现在除了深度学习之外的还相对不错的目标检测方法,先来看下为什么要使用形变部件,在下图1中,同一个人的不同姿态,试问用前面几节中的什么方法可以检测到这些不同姿态的人?阈值不行,广义霍夫变换行吗?人的姿态是变换无穷的,需要太多的模板。霍夫森林投票?貌似可以,但是霍夫森立的特征是图像块,只适用于一些形变不大的物体,当图像块内的形变很大时同样不太适用。那么ASM可以吗?想想也是和广义霍夫变换一样,需要太多的均值模板。归根结底就是我们没有很好的形状描述方法,没有好的特征。而Pedro几乎每发表一篇论文就改进一下形状描述的方法,最终由简单的表示方法到语法形式的表示方法,其演化过程可以在参考文献[4]中看出,参考文献[4]是Pedro的博士论文。

 

DPM目标检测算法(毕业论文节选)

别训练的多尺度可变形部件模型 ADiscriminatively Trained, Multiscale, Deformable Part Model

使用判别训练的部件模型进行目标检测 ObjectDetection with Discriminatively Trained Part Based Models

关于DPM(Deformable Part Model)算法中模型结构的解释

目标检测总结(自己的一些见解)

目前object detection的工作可以粗略的分为两类:
1
:使用regionproposal的,目前是主流,比如RCNNSPP-NetFast-RCNNFaster-RCNN以及MSRA最近的工作R-FCN
2
:不使用regionproposal的,YOLOSSD

从我这个渣渣的视野来看,这些工作都体现的一个趋势:如何让不同ROI之间尽量多的共享计算量,并充分利用CNN得到的特征,使得整个detection的速度变快。

具体说来,我们先回忆一下基于region proposal的方法的大致流程是什么样的:
1.
从待检测的图片中,提取出NROI,这里N远大于图片中真实object的个数。具体的方法有selective searchedge box以及最近流行起来的RPN
2.
根据1中检测到的ROI,上CNN对图像进行featureextraction
3.
2中得到的feature进行分类,比如对于PSACAL VOC数据,就是一个21分类的问题(20object class+background)。
4. boudningbox regression


然后我们回到之前说的让ROI之间尽量多的共享计算量的问题。

RCNN
对于每个ROI,都跑一遍CNN,即使这些ROI之间是有overlap的,显然有部分计算是重复的,所以SPP-netfast rcnn就在这方面做了文章,具体做法是先用CNN抽取整张图的特征,然后利用ROI pooling抽取对应ROI的特征,使得不同ROI共享特征提取的计算量。结果就是原来我处理一张图像需要前向2000CNN,现在只要前向一次就好了,极大的提升了计算速度。fast rcnn还通过multi-taskloss实现了一个end to end的系统,这里不是我们的重点。

fast-rcnn
提出来之后,detection的性能瓶颈变成了计算region proposalCPU实现的selective search处理一张图需要2秒钟,远大于GPUCNN特征抽取的时间。Faster RCNN就是要解决这个问题,他的出发点是这样的:既然用CNN进行feature extraction这一步已经无法避免,那么我们为什么不更充分地利用得到的feature?具体来说,我们是不是可以直接用CNN得到的feature来进行regionproposal,答案是肯定的。Faster RCNNCNN得到的feature输入到一个两层网络(RPN),网络的输出就是region proposal。这样一来,regionproposal的额外开销就只有一个两层网络。实验证明这样不仅速度变快,而且proposal的质量也更高了。

到目前为止,上面我们说的4个步骤中,第1步和第2步都可以通过前向一遍CNN来得到,所以前俩步都不再是速度的瓶颈。然后我们考虑第3步,假设我们用faster rcnnRPN得到了300region proposal,在预测的过程中,我们需要对300region proposal去做分类,即我们要处理300个多分类问题,如果我们用one vs rest来实现多分类,每遍就是21个二分类线性svm(也可以用一个softmax-log loss的线性分类器,但是计算量和21个二分类svm差不多),这样的话每次预测就要跑6300个二分类器,即使是线性分类器,这个时间仍然是很大的,所以就有了R-FCN这个工作。具体来说,是先利用FCN进行类似semanticsegmentation的计算,然后利用ROI对相应的区域进行average pooling,得到整个ROI关于21个类别的置信度。简单的说就是把分类这个过程也融合到网络的前向计算过程中,由于这个过程对于不同的ROI是共享的,所以比单独跑分类器要快好多。文章里还有一个position-sensitiveidea,也很有趣,不过感觉给我一种这也能行的感觉,应该是我少见多怪,理解不了大神的世界。

个人感觉object detection是一个比较考验insight以及让一个idea真正能work的能力的方向,不像semantic segmentation,后者现在的提升很多靠CRF,有陷入图模型加圈(传说中水论文三大法宝之一)的趋势,对数学要求比较高。

以上只是个人读paper的心得,可能作者们当时并不是这么想的。

目标检测——从RCNN到Faster RCNN 串烧

【目标检测】RCNN算法详解(shenxiaolu1984的专栏)

【目标检测】RCNN算法详解

RegionCNN(RCNN)可以说是利用深度学习进行目标检测的开山之作。作者RossGirshick多次在PASCALVOC的目标检测竞赛中折桂,2010年更带领团队获得终身成就奖,如今供职于Facebook旗下的FAIR 
这篇文章思路简洁,在DPM方法多年平台期后,效果提高显著。包括本文在内的一系列目标检测算法RCNNFast RCNNFaster RCNN代表当下目标检测的前沿水平,github都给出了基于Caffe的源码

【目标检测】Faster RCNN算法详解(shenxiaolu1984)

Ren, Shaoqing, et al. “Faster R-CNN:Towards real-time object detection with region proposal networks.” Advances inNeural Information Processing Systems. 2015.

本文是继RCNN[1],fast RCNN[2]之后,目标检测界的领军人物Ross Girshick团队在2015年的又一力作。简单网络目标检测速度达到17fps,在PASCAL VOC上准确率为59.9%;复杂网络达到5fps,准确率78.8%。

作者在github上给出了基于matlab和python的源码。对RegionCNN算法不了解的同学,请先参看这两篇文章:《RCNN算法详解》,《fast RCNN算法详解》。

Faster R-CNN学习笔记

Faster R-CNN论文详解

paper链接Faster R-CNN: Towards Real-Time Object Detection with RegionProposal Networks

「Deep Learning」R-CNN - Region-based Convolutional NeuralNetworks

Faster R-CNN之再阅读

Faster R-CNN:Towards Real-Time Object 
Detection with Region Proposal Networks

开源代码 
https://github.com/ShaoqingRen/faster_rcnn MATLAB 
https://github.com/rbgirshick/py-faster-rcnn Python

Faster R-CNN 是在 Fast R-CNN的基础改进的。FastR-CNN 主要存在的问题就是 region proposal step 是在CPU跑的,比较耗时。CNN通过GPU加速,那么region proposal step能否也可以通过GPU来加速。

Faster R-CNN 通过提出 Region ProposalNetworks (RPNs) 实现了快速提取region proposal 。 RPNs 被设计成有效预测候选区域,在一个比较大的尺度和宽高比范围内。 
针对尺度问题,我们采用多个尺度的reference boxes 

·         

R-CNN论文详解

paper链接Rich feature hierarchies for accurate object detection andsemantic segmentation

R-CNN由RBG大神提出,然后目标检测领域就出现了各种更快更准更智能的变种方法、改进方法,值得研究。

荪荪的博客

【深度学习:目标检测】RCNN学习笔记(10):SSD:Single Shot MultiBoxDetector

CNN-目标检测、定位、分割

R-CNN,SSP-Net,fast-RCNN,faster-RCNN论文读后笔记

CS231n第八课:目标检测定位学习记录

SelectiveSearch for Object Recoginition

SSD:Single ShotMultiBox Detector的安装配置和运行

SSD(Single Shot MultiBoxDetector)算是一个比较不错的目标检测算法,主攻方向是速度,当然精度也比Yolo提高了一些,最近在ubuntu16.04下实现了代码运行,此博文主要内容来自原作者的github,加上了一些个人理解,欢迎探讨。

准备工作:Linux+cuda+caffe是标配,我就不详述了,推荐博客:

原作者说SSD运行时能有几十帧,可是人家用的是Titan X,我运行时只有10帧只能是GTX850M显卡太渣了。。。

 

下一步方向:研究SSD的Python源代码,然后训练和检测自己的数据

SSD的配置及运行

SSD: Signle Shot Detector用于自然场景文字检测

前言

之前我在 论文阅读:SSD: Single Shot MultiBox Detector 中,讲了这个最新的Object Detection 算法

既然 SSD 是用来检测物体的,那么可不可以将 SSD 用来检测自然场景图像中的文字呢?答案肯定是可以的~

同时,受到浙大 solace_hyh 同学的 ssd-plate_detection 工作,这篇文章记录我自己将SSD 用于文字检测的过程。

全部的代码上传到 Github 了:https://github.com/chenxinpeng/SSD_scene-text-detection代码质量不太高,还请高手指点 。^_^

 

SSD框架训练自己的数据集

SSD: Single Shot MultiBoxDetector

本文算是 Faster R-CNN, YOLO 算法的改进版吧,它将检测和分类融合到一起去了,对每个可能的检测框赋予一个类别的概率。

本文的速度到底有多快,也没说啊(网络论文第一版本没有说)

SSD: Single ShotMultiBox Detector 之再阅读 
http://blog.csdn.net/cv_family_z/article/details/51907328 (第二版本实验详细些,980的速度也说)

Preface

这是今年 ECCV2016 的一篇文章,是 UNCChapel Hill(北卡罗来纳大学教堂山分校)  WeiLiu 大神的新作,论文代码:https://github.com/weiliu89/caffe/tree/ssd 

本文的主要贡献总结如下:

·        提出了新的物体检测方法:SSD,比原先最快的 YOLO:You Only Look Once 方法,还要快,还要精确。保证速度的同时,其结果的 mAP 可与使用 region proposals 技术的方法(如 FasterR-CNN)相媲美。

·        SSD 方法的核心就是 predict object(物体),以及其 归属类别的 score(得分);同时,在 feature map上使用小的卷积核,去 predict 一系列 bounding boxes box offsets

·        本文中为了得到高精度的检测结果,在不同层次的 feature maps上去 predict objectbox offsets,同时,还得到不同 aspect ratio  predictions

·        本文的这些改进设计,能够在当输入分辨率较低的图像时,保证检测的精度。同时,这个整体 end-to-end的设计,训练也变得简单。在检测速度、检测精度之间取得较好的 trade-off

·        本文提出的模型(model)在不同的数据集上,如 PASCALVOCMSCOCOILSVRC都进行了测试。在检测时间(timing)、检测精度(accuracy)上,均与目前物体检测领域state-of-art的检测方法进行了比较。

SSD: Single Shot MultiBox Detector 之再阅读 

http://blog.csdn.net/cv_family_z/article/details/51907328 (第二版本实验详细些,980的速度也说)

SSD: Single Shot MultiBoxDetector之再阅读

SSD: Single ShotMultiBox Detector SSD 一句话就是速度快,效果好! 
第一版 8 Dec 2015,第二版是30 Mar2016 
主要改进是内容更加详实,实验更加丰富,尤其是和 Faster R-CNN 和 YOLO 做了对比,其优势比较明显。 SSD把 候选区域提取步骤取消了。The fundamental improvement in speed comes from eliminating boundingbox proposals and the subsequent pixel or feature resampling stage. 
For 300 × 300 input, SSD achieves 72.1% mAP on VOC2007 test at 58 FPS on aNvidia TitanX and for 500×500 input , SSD achieves 75.1% mAP, outperforming acomparable state of the art Faster R-CNN model. 
开源代码 https://github.com/weiliu89/caffe/tree/ssd

2 The Single ShotDetector (SSD)

SSD: Single Shot MultiBox Detector SSD一句话就是速度快,效果好! 
第一版 8 Dec 2015,第二版是30 Mar 2016 
主要改进是内容更加详实,实验更加丰富,尤其是和 Faster R-CNN 和 YOLO 做了对比,其优势比较明显。 SSD把候选区域提取步骤取消了。The fundamental improvement in speed comes from eliminating boundingbox proposals and the subsequent pixel or feature resampling stage. 

For 300 × 300 input, SSD achieves 72.1% mAPon VOC2007 test at 58 FPS on a Nvidia TitanX and for 500×500 input , SSDachieves 75.1% mAP, outperforming a comparable state of the art Faster R-CNNmodel. 
开源代码 https://github.com/weiliu89/caffe/tree/ssd

2 The Single Shot Detector (SSD)



0 0