修改内容,添加参考文献

This commit is contained in:
scutan90 2019-04-09 22:00:48 +08:00
parent a0482ceb13
commit ead8ea113b
2 changed files with 68 additions and 272 deletions

View File

@ -5,8 +5,29 @@
**负责人(排名不分先后):**
上海大学研究生-陈方杰wechatcfj123456cfjemail1609951733@qq.com
**贡献者(排名不分先后):**
内容贡献者可自加信息
目标检测负责人:**
- 稿定科技计算机视觉工程师-刘鹏
-
- 上海大学硕士陈方杰微信cfj123456ccfj邮箱1609951733@qq.com
更新日志:**
2019.01.05陈方杰新增8.3节One-Stage检测算法M2Det
2018.12.21陈方杰新增SSD系列创新点新增YOLO系列创新点
2018.12.09陈方杰新增目标检测有哪些应用新增FPN、Mask R-CNN、DSSD和RFBNet算法新增目标检测Tricks新增目标检测的常用数据集删除RefineDet、Cascade R-CNN和FSSD修改人脸检测章节序号
2018.11.18陈方杰修改第八章目标检测目录新增目标检测基本概念修改R-CNN、Fast R-CNN、RetinaNet新增待完善论文FPN、RefineDet、RFBNet以及新增所有论文链接。
2018.11.18刘鹏新增人脸检测部分修改ssd-yolo系列
2018.11.18刘鹏修改SSD和YOLO系列
###########################################################

View File

@ -1,114 +1,14 @@
[TOC]
**更新日志:**
2019.01.05陈方杰新增8.3节One-Stage检测算法M2Det
2018.12.21陈方杰新增SSD系列创新点新增YOLO系列创新点
2018.12.09陈方杰新增目标检测有哪些应用新增FPN、Mask R-CNN、DSSD和RFBNet算法新增目标检测Tricks新增目标检测的常用数据集删除RefineDet、Cascade R-CNN和FSSD修改人脸检测章节序号
2018.11.18陈方杰修改第八章目标检测目录新增目标检测基本概念修改R-CNN、Fast R-CNN、RetinaNet新增待完善论文FPN、RefineDet、RFBNet以及新增所有论文链接。
2018.11.18刘鹏新增人脸检测部分修改ssd-yolo系列
2018.11.18刘鹏修改SSD和YOLO系列
# 第八章 目标检测
**目标检测负责人:**
- 稿定科技计算机视觉工程师-刘鹏
- 哈工大博士袁笛
- 上海大学硕士陈方杰微信cfj123456ccfj邮箱1609951733@qq.com
**目录**
8.1 基本概念
8.1.1 什么是目标检测?
8.1.2 目标检测要解决的核心问题?
8.1.3 目标检测算法分类?
8.1.4 目标检测有哪些应用?
8.2 Two Stage目标检测算法
8.2.1 R-CNN
8.2.2 Fast R-CNN
8.2.3 Faster R-CNN
8.2.4 R-FCN
8.2.5 FPN
8.2.6 Mask R-CNN
8.3 One Stage目标检测算法
8.3.1 SSD
8.3.2 DSSD
8.3.3 YOLOv1
8.3.4 YOLOv2
8.3.5 YOLO9000
8.3.6 YOLOv3
8.3.7 RetinaNet
8.3.8 RFBNet
8.3.9 M2Det
8.4 人脸检测
8.4.1 目前主要有人脸检测方法分类?
8.4.2 如何检测图片中不同大小的人脸?
8.4.3 如何设定算法检测最小人脸尺寸?
8.4.4 如何定位人脸的位置?
8.4.5 如何通过一个人脸的多个框确定最终人脸框位置?
8.4.6 基于级联卷积神经网络的人脸检测Cascade CNN
8.4.7 基于多任务卷积神经网络的人脸检测MTCNN
8.4.8 Facebox
8.5 目标检测的技巧汇总
8.6 目标检测的常用数据集
8.6.1 PASCAL VOC
8.6.2 MS COCO
8.6.3 Google Open Image
8.6.4 ImageNet
Reference
## 8.1 基本概念
### 8.1.1 什么是目标检测?
目标检测Object Detection的任务是找出图像中所有感兴趣的目标物体确定它们的类别和位置是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态加上成像时光照、遮挡等因素的干扰目标检测一直是计算机视觉领域最具有挑战性的问题。
目标检测Object Detection的任务是找出图像中所有感兴趣的目标物体确定它们的类别和位置是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态加上成像时光照、遮挡等因素的干扰目标检测一直是计算机视觉领域最具有挑战性的问题。
计算机视觉中关于图像识别有四大类任务:
计算机视觉中关于图像识别有四大类任务:
**分类-Classification**:解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。
@ -136,41 +36,30 @@ Reference
**1.Two stage目标检测算法**
先进行区域生成region proposalRP一个有可能包含待检物体的预选框再通过卷积神经网络进行样本分类。
先进行区域生成region proposalRP一个有可能包含待检物体的预选框再通过卷积神经网络进行样本分类。
任务:特征提取—>生成RP—>分类/定位回归。
任务:特征提取—>生成RP—>分类/定位回归。
常见的two stage目标检测算法有R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。
常见的two stage目标检测算法有R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。
**2.One stage目标检测算法**
不用RP直接在网络中提取特征来预测物体分类和位置。
不用RP直接在网络中提取特征来预测物体分类和位置。
任务:特征提取—>分类/定位回归。
任务:特征提取—>分类/定位回归。
常见的one stage目标检测算法有OverFeat、YOLOv1、YOLOv2、YOLOv3、SSD和RetinaNet等。
常见的one stage目标检测算法有OverFeat、YOLOv1、YOLOv2、YOLOv3、SSD和RetinaNet等。
![](./img/ch8/8.1.2.png)
### 8.1.4 目标检测有哪些应用?
目标检测具有巨大的实用价值和应用前景。应用领域包括人脸检测、行人检测、车辆检测、飞机航拍或卫星图像中道路的检测、车载摄像机图像中的障碍物检测、医学影像在的病灶检测等。还有在安防领域中,可以实现比如安全帽、安全带等动态检测,移动侦测、区域入侵检测、物品看护等功能。
目标检测具有巨大的实用价值和应用前景。应用领域包括人脸检测、行人检测、车辆检测、飞机航拍或卫星图像中道路的检测、车载摄像机图像中的障碍物检测、医学影像在的病灶检测等。还有在安防领域中,可以实现比如安全帽、安全带等动态检测,移动侦测、区域入侵检测、物品看护等功能。
## 8.2 Two Stage目标检测算法
### 8.2.1 R-CNN
**标题《Rich feature hierarchies for accurate object detection and semantic segmentation》**
**时间2014**
**出版源CVPR 2014**
**主要链接**
- arXivhttp://arxiv.org/abs/1311.2524
- github(caffe)https://github.com/rbgirshick/rcnn
**R-CNN有哪些创新点**
1. 使用CNNConvNet对 region proposals 计算 feature vectors。从经验驱动特征SIFT、HOG到数据驱动特征CNN feature map提高特征对样本的表示能力。
@ -180,7 +69,7 @@ Reference
**R-CNN 介绍**
R-CNN作为R-CNN系列的第一代算法其实没有过多的使用“深度学习”思想而是将“深度学习”和传统的“计算机视觉”的知识相结合。比如R-CNN pipeline中的第二步和第四步其实就属于传统的“计算机视觉”技术。使用selective search提取region proposals使用SVM实现分类。
R-CNN作为R-CNN系列的第一代算法其实没有过多的使用“深度学习”思想而是将“深度学习”和传统的“计算机视觉”的知识相结合。比如R-CNN pipeline中的第二步和第四步其实就属于传统的“计算机视觉”技术。使用selective search提取region proposals使用SVM实现分类。
![图像来源: r-cnn-ilsvrc2013-workshop.pdf](./img/ch8/8.1.3.png)
@ -206,24 +95,9 @@ R-CNN在VOC 2007测试集上mAP达到58.5%,打败当时所有的目标检测
![](./img/ch8/8.1.6.png)
**参考**
[Amusi-R-CNN论文笔记](https://github.com/amusi/paper-note/blob/master/Object-Detection/R-CNN%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0.md)
### 8.2.2 Fast R-CNN
**标题《Fast R-CNN》**
**时间2015**
**出版源ICCV 2015**
**主要链接:**
- arXivhttps://arxiv.org/abs/1504.08083
- github(Official)https://github.com/rbgirshick/fast-rcnn
**Fast R-CNN有哪些创新点**
1. 只对整幅图像进行一次特征提取避免R-CNN中的冗余特征提取
@ -233,7 +107,7 @@ R-CNN在VOC 2007测试集上mAP达到58.5%,打败当时所有的目标检测
**Fast R-CNN 介绍**
Fast R-CNN是基于R-CNN和[SPPnets](https://arxiv.org/abs/1406.4729)进行的改进。SPPnets其创新点在于计算整幅图像的the shared feature map然后根据object proposal在shared feature map上映射到对应的feature vector就是不用重复计算feature map了。当然SPPnets也有缺点和R-CNN一样训练是多阶段multiple-stage pipeline速度还是不够"快",特征还要保存到本地磁盘中。
Fast R-CNN是基于R-CNN和SPPnets进行的改进。SPPnets其创新点在于计算整幅图像的the shared feature map然后根据object proposal在shared feature map上映射到对应的feature vector就是不用重复计算feature map了。当然SPPnets也有缺点和R-CNN一样训练是多阶段multiple-stage pipeline速度还是不够"快",特征还要保存到本地磁盘中。
将候选区域直接应用于特征图并使用ROI池化将其转化为固定大小的特征图块。以下是Fast R-CNN的流程图
@ -284,10 +158,6 @@ RoI是Region of Interest的简写一般是指图像上的区域框但这
![](./img/ch8/8.1.11.gif)
**参考**
[Amusi-Fast R-CNN论文笔记](https://github.com/amusi/paper-note/blob/master/Object-Detection/Fast-R-CNN%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0.md)
### 8.2.3 Faster R-CNN
**标题《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》**
@ -338,17 +208,6 @@ Faster R-CNN使用更多的锚点。它部署9个锚点框3个不同宽高比
### 8.2.4 R-FCN
**标题《R-FCN: Object Detection via Region-based Fully Convolutional Networks》**
**时间2016**
**出版源NIPS 2016**
**主要链接:**
- arXivhttps://arxiv.org/abs/1605.06409
- github(Official)https://github.com/daijifeng001/r-fcn
**R-FCN有哪些创新点**
R-FCN 仍属于two-stage 目标检测算法RPN+R-FCN
@ -394,16 +253,6 @@ ResNet-101+R-FCN83.6% in PASCAL VOC 2007 test datasets
图8.2.7
### 8.2.5 FPN
**标题《Feature Pyramid Networks for Object Detection》**
**时间2016**
**出版源CVPR 2017**
**主要链接:**
- arXivhttps://arxiv.org/abs/1612.03144
**FPN有哪些创新点**
1. 多层特征
@ -468,19 +317,6 @@ Top-town pathway是上采样upsampling过程。而later connection
### 8.2.6 Mask R-CNN
**标题《Mask R-CNN》**
**时间2017**
**出版源ICCV 2017**
**主要链接:**
- arXivhttps://arxiv.org/abs/1703.06870
- github(Official)https://github.com/facebookresearch/Detectron
**Mask R-CNN有哪些创新点**
1. BackboneResNeXt-101+FPN
@ -545,17 +381,6 @@ RoI Align的思路很简单取消量化操作使用双线性内插的方
### 8.3.1 SSD
**标题《SSD: Single Shot MultiBox Detector》**
**时间2015**
**出版源ECCV 2016**
**主要链接:**
- arXivhttps://arxiv.org/abs/1512.02325
- github(Official)https://github.com/weiliu89/caffe/tree/ssd
**SSD有哪些创新点**
1. 基于Faster R-CNN中的Anchor提出了相似的先验框Prior box
@ -588,17 +413,6 @@ SSD优势是速度比较快整个过程只需要一步首先在图片不
### 8.3.2 DSSD
**标题《DSSD : Deconvolutional Single Shot Detector》**
**时间2017**
**出版源CVPR 2017**
**主要链接:**
- arXivhttps://arxiv.org/abs/1701.06659
- github(Official)https://github.com/chengyangfu/caffe/tree/dssd
**DSSD有哪些创新点**
1. Backbone将ResNet替换SSD中的VGG网络增强了特征提取能力
@ -626,17 +440,6 @@ SSD直接从多个卷积层中单独引出预测函数预测量多达7000多
### 8.3.3 YOLOv1
**标题《You Only Look Once: Unified, Real-Time Object Detection》**
**时间2015**
**出版源CVPR 2016**
**主要链接:**
- arXivhttp://arxiv.org/abs/1506.02640
- github(Official)https://github.com/pjreddie/darknet
**YOLOv1有哪些创新点**
1. 将整张图作为网络的输入直接在输出层回归bounding box的位置和所属的类别
@ -705,17 +508,6 @@ YOLO将识别与定位合二为一结构简便检测速度快更快的F
### 8.3.4 YOLOv2
**标题《YOLO9000: Better, Faster, Stronger》**
**时间2016**
**出版源None**
**主要链接:**
- arXivhttps://arxiv.org/abs/1612.08242
- github(Official)https://pjreddie.com/darknet/yolov2/
**YOLOv2 有哪些创新点?**
YOLOv1虽然检测速度快但在定位方面不够准确并且召回率较低。为了提升定位准确度改善召回率YOLOv2在YOLOv1的基础上提出了几种改进策略如下图所示可以看到一些改进方法能有效提高模型的mAP。
@ -812,17 +604,6 @@ YOLO9000使用WordTree混合目标检测数据集和分类数据集并在其
### 8.3.6 YOLOv3
**标题《YOLOv3: An Incremental Improvement》**
**时间2018**
**出版源None**
**主要链接:**
- arXivhttps://arxiv.org/abs/1804.02767
- github(Official)https://github.com/pjreddie/darknet
YOLOv3总结了自己在YOLOv2的基础上做的一些尝试性改进有的尝试取得了成功而有的尝试并没有提升模型性能。其中有两个值得一提的亮点一个是使用残差模型进一步加深了网络结构另一个是使用FPN架构实现多尺度检测。
**YOLOv3有哪些创新点**
@ -851,17 +632,6 @@ YOLOv3借鉴了FPN的思想从不同尺度提取特征。相比YOLOv2YOLOv
### 8.3.7 RetinaNet
**标题《Focal Loss for Dense Object Detection》**
**时间2017**
**出版源ICCV 2017Best Student Paper Award**
**主要链接:**
- arXivhttps://arxiv.org/abs/1708.02002
- github(Official)https://github.com/facebookresearch/Detectron
**研究背景**
- Two-Stage检测器如Faster R-CNN、FPN效果好但速度相对慢
@ -1016,18 +786,6 @@ Table1是关于RetinaNet和Focal Loss的一些实验结果。a是在交叉
### 8.3.8 RFBNet
**标题《Receptive Field Block Net for Accurate and Fast Object Detection》**
**时间2017**
**出版源ECCV 2018**
**主要链接:**
arXivhttps://arxiv.org/pdf/1711.07767.pdf
github(Official)https://github.com/ruinmessi/RFBNet
**RFBNet有哪些创新点**
1. 提出RF blockRFB模块
@ -1055,17 +813,6 @@ RFBNet300的整体结构如下图所示基本上和SSD类似。RFBNet和SSD
### 8.3.9 M2Det
**标题《M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network》**
**时间:**2018
**出版源:**AAAI 2019
**主要链接:**
- arXivhttps://arxiv.org/abs/1811.04533
- github(Official)https://github.com/qijiezhao/M2Det
**M2Det有哪些创新点**
1. 提出了多层次特征金字塔网络MLFPN来构建更有效的特征金字塔用于检测不同尺度的对象。
@ -1282,23 +1029,23 @@ $$
### 8.6.1 PASCAL VOC
VOC数据集是目标检测经常用的一个数据集自2005年起每年举办一次比赛最开始只有4类到2007年扩充为20个类共有两个常用的版本2007和2012。学术界常用5k的train/val 2007和16k的train/val 2012作为训练集test 2007作为测试集用10k的train/val 2007+test 2007和16k的train/val 2012作为训练集test2012作为测试集分别汇报结果。
VOC数据集是目标检测经常用的一个数据集自2005年起每年举办一次比赛最开始只有4类到2007年扩充为20个类共有两个常用的版本2007和2012。学术界常用5k的train/val 2007和16k的train/val 2012作为训练集test 2007作为测试集用10k的train/val 2007+test 2007和16k的train/val 2012作为训练集test2012作为测试集分别汇报结果。
### 8.6.2 MS COCO
COCO数据集是微软团队发布的一个可以用来图像recognition+segmentation+captioning 数据集该数据集收集了大量包含常见物体的日常场景图片并提供像素级的实例标注以更精确地评估检测和分割算法的效果致力于推动场景理解的研究进展。依托这一数据集每年举办一次比赛现已涵盖检测、分割、关键点识别、注释等机器视觉的中心任务是继ImageNet Chanllenge以来最有影响力的学术竞赛之一。
COCO数据集是微软团队发布的一个可以用来图像recognition+segmentation+captioning 数据集该数据集收集了大量包含常见物体的日常场景图片并提供像素级的实例标注以更精确地评估检测和分割算法的效果致力于推动场景理解的研究进展。依托这一数据集每年举办一次比赛现已涵盖检测、分割、关键点识别、注释等机器视觉的中心任务是继ImageNet Chanllenge以来最有影响力的学术竞赛之一。
相比ImageNetCOCO更加偏好目标与其场景共同出现的图片即non-iconic images。这样的图片能够反映视觉上的语义更符合图像理解的任务要求。而相对的iconic images则更适合浅语义的图像分类等任务。
COCO的检测任务共含有80个类在2014年发布的数据规模分train/val/test分别为80k/40k/40k学术界较为通用的划分是使用train和35k的val子集作为训练集trainval35k使用剩余的val作为测试集minival同时向官方的evaluation server提交结果test-dev。除此之外COCO官方也保留一部分test数据作为比赛的评测集。
COCO的检测任务共含有80个类在2014年发布的数据规模分train/val/test分别为80k/40k/40k学术界较为通用的划分是使用train和35k的val子集作为训练集trainval35k使用剩余的val作为测试集minival同时向官方的evaluation server提交结果test-dev。除此之外COCO官方也保留一部分test数据作为比赛的评测集。
### 8.6.3 Google Open Image
Open Image是谷歌团队发布的数据集。最新发布的Open Images V4包含190万图像、600个种类1540万个bounding-box标注是当前最大的带物体位置标注信息的数据集。这些边界框大部分都是由专业注释人员手动绘制的确保了它们的准确性和一致性。另外这些图像是非常多样化的并且通常包含有多个对象的复杂场景平均每个图像 8 个)。
Open Image是谷歌团队发布的数据集。最新发布的Open Images V4包含190万图像、600个种类1540万个bounding-box标注是当前最大的带物体位置标注信息的数据集。这些边界框大部分都是由专业注释人员手动绘制的确保了它们的准确性和一致性。另外这些图像是非常多样化的并且通常包含有多个对象的复杂场景平均每个图像 8 个)。
### 8.6.4 ImageNet
ImageNet是一个计算机视觉系统识别项目 是目前世界上图像识别最大的数据库。ImageNet是美国斯坦福的计算机科学家模拟人类的识别系统建立的。能够从图片识别物体。Imagenet数据集文档详细有专门的团队维护使用非常方便在计算机视觉领域研究论文中应用非常广几乎成为了目前深度学习图像领域算法性能检验的“标准”数据集。Imagenet数据集有1400多万幅图片涵盖2万多个类别其中有超过百万的图片有明确的类别标注和图像中物体位置的标注。
ImageNet是一个计算机视觉系统识别项目 是目前世界上图像识别最大的数据库。ImageNet是美国斯坦福的计算机科学家模拟人类的识别系统建立的。能够从图片识别物体。Imagenet数据集文档详细有专门的团队维护使用非常方便在计算机视觉领域研究论文中应用非常广几乎成为了目前深度学习图像领域算法性能检验的“标准”数据集。Imagenet数据集有1400多万幅图片涵盖2万多个类别其中有超过百万的图片有明确的类别标注和图像中物体位置的标注。
## TODO
@ -1308,7 +1055,7 @@ ImageNet是一个计算机视觉系统识别项目 是目前世界上图像
- [ ] 完善目标检测的技巧汇总
- [ ] 目标检测的现在难点和未来发展
## Reference
## 参考文献
https://github.com/amusi/awesome-object-detection
@ -1320,4 +1067,32 @@ https://www.zhihu.com/question/272322209/answer/482922713
http://blog.leanote.com/post/afanti.deng@gmail.com/b5f4f526490b
https://blog.csdn.net/hw5226349/article/details/78987385
https://blog.csdn.net/hw5226349/article/details/78987385
[1] Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2014: 580-587.
[2] Girshick R. Fast r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1440-1448.
[3] He K, Zhang X, Ren S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 37(9): 1904-1916.
[4] Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[C]//Advances in neural information processing systems. 2015: 91-99.
[5] Lin T Y, Dollár P, Girshick R, et al. Feature pyramid networks for object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 2117-2125.
[6] He K, Gkioxari G, Dollár P, et al. Mask r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2961-2969.
[7] Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot multibox detector[C]//European conference on computer vision. Springer, Cham, 2016: 21-37.
[8] Fu C Y, Liu W, Ranga A, et al. Dssd: Deconvolutional single shot detector[J]. arXiv preprint arXiv:1701.06659, 2017.
[9] Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 779-788.
[10] Redmon J, Farhadi A. YOLO9000: better, faster, stronger[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 7263-7271.
[11] Redmon J, Farhadi A. Yolov3: An incremental improvement[J]. arXiv preprint arXiv:1804.02767, 2018.
[12] Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detection[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2980-2988.
[13] Liu S, Huang D. Receptive field block net for accurate and fast object detection[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 385-400.
[14] Zhao Q, Sheng T, Wang Y, et al. M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network[J]. arXiv preprint arXiv:1811.04533, 2018.