- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【深度学习】【检测】?一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD
2019-01-27 原文
文章来源:企鹅号 - 软件定义世界(SDX) 转自:七月在线试验室
一、目标检测常见算法
object detection,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别。所以,object detection要处理的问题就是物体在哪里以及是什么的整个流程问题。
然而,这个问题可不是那么简约处理的,物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以消灭在图片的任何地方,更何况物体还可以是多个类别。
目前学术和工业界消灭的目标检测算法分成3类:
1. 传统的目标检测算法:Cascade + HOG/DPM + Haar/SVM以及上述方法的诸多改进、优化;
2. 候选区域/框 + 深度学习分类:通过提取候选区域,并对相应区域进行以深度学习方法为主的分类的方案,如:
R-CNN(Selective Search + CNN + SVM)
SPP-net(ROI Pooling)
Fast R-CNN(Selective Search + CNN + ROI)
Faster R-CNN(RPN + CNN + ROI)
R-FCN
等系列方法;
3. 基于深度学习的回归方法:YOLO/SSD/DenseBox 等方法;以及最近消灭的结合RNN算法的RRC detection;结合DPM的Deformable CNN等
传统目标检测流程:
1)区域选择(穷举策略:接受滑动窗口,且设置不同的大小,不同的长宽比对图像进行遍历,时间简单度高)
2)特征提取(SIFT、HOG等;外形多样性、光照变化多样性、背景多样性使得特征鲁棒性差)
3)分类器分类(次要有SVM、Adaboost等)
二、传统的目标检测算法
2.1 从图像识别的任务说起
这里有一个图像任务:既要把图中的物体识别出来,又要用方框框出它的位置。
这个任务本质上就是这两个问题:一:图像识别,二:定位。
图像识别(classification):
输入:图片
输出:物体的类别
评估方法:精确?????率
定位(localization):
输入:图片
输出:方框在图片中的位置(x,y,w,h)
评估方法:检测评价函数intersection-over-union(关于什么是IOU,请参看本深度学习分类下第55题:/question/big/kp_id/26/ques_id/2138)
卷积神经网络CNN已经帮我们完成了图像识别(判定是猫还是狗)的任务了,我们只需要添加一些额外的功能来完成定位任务即可。
定位的问题的处理思路有哪些?
思路一:看做回归问题
看做回归问题,我们需要猜测出(x,y,w,h)四个参数的值,从而得出方框的位置。
步骤1:
*先处理简约问题, 搭一个识别图像的神经网络
*在AlexNet VGG GoogleLenet上fine-tuning一下(关于什么是微调fine-tuning,请参看本深度学习分类下第54题:/question/big/kp_id/26/ques_id/2137)
步骤2:
*在上述神经网络的尾部开放(也就说CNN前面保持不变,我们对CNN的结尾处作出改进:加了两个头:“分类头”和“回归头”)
*成为classification + regression模式
步骤3:
*Regression那个部分用欧氏距离损失
*使用SGD训练
步骤4:
*猜测阶段把2个头部拼上
*完成不同的功能
这里需要进行两次fine-tuning
第一次在ALexNet上做,其次次将头部改成regression head,前面不变,做一次fine-tuning
Regression的部分加在哪?
有两种处理方法:
?加在最终一个卷积层后面(如VGG)
?加在最终一个全连接层后面(如R-CNN)
regression太难做了,应想方设法转换为classification问题。
regression的训练参数收敛的时间要长得多,所以上面的网络实行了用classification的网络来计算出网络共同部分的连接权值。
思路二:取图像窗口
?还是刚才的classification + regression思路
?我们取不同的大小的“框”
?让框消灭在不同的位置,得出这个框的判定得分
?取得分最高的那个框
左上角的黑框:得分0.5
右上角的黑框:得分0.75
左下角的黑框:得分0.6
右下角的黑框:得分0.8
依据得分的凹凸,我们选择了右下角的黑框作为目标位置的猜测。
注:有的时候也会选择得分最高的两个框,然后取两框的交集作为最终的位置猜测。
怀疑:框要取多大?
取不同的框,依次从左上角扫到右下角。
文档评论(0)