基于深度学习的目标检测算法(一)
基于深度学习的目标检测算法(一)
- Two-stage(Faster RCNN系列)
- One-stage(YOLO和SSD系列)
1. Two-stage基本介绍
- CNN卷积特征
- R.Girshick et al.,2014年提出R-CNN到Faster RCNN
- 端到端的目标检测(RPN网络)
- 准确度高、速度相较于one-stage慢
1.1 基本流程
1.2 核心组件
1.2.1 CNN卷积神经网络
一般CNN设计原则:
- 一是从简到繁再到简的卷积神经网络。最开始的卷积神经网络是比较简单的,最经典的是Lenet,但是它的性能就相对较差,在大规模的任务中就会到达瓶颈,在网络中的表达能力就相对弱一些。之后又提出了Alexnet,VGGnet,Resnet,Goolenet,Densenet等等一些复杂的网络。这些网络发展主要是分为两个方向,一是增加网络的深度,尽可能的去增加网络深度,因为网络越深,它的非线性表达能力越强,在现实生活中,我们遇到的问题一般都是非线性的,因此这样可以得到物体更抽象的表达,而且网络越深,它对于图像 最初的一些变化更加不敏感,即鲁棒性更好,但是这样会出现两种问题,增加网络的规模,也会导致梯度消失或者说是梯度弥散的问题。二是增加网络的宽度,通过加大网络的宽度来增强网络的表达能力,比较有代表性的就是谷歌提出来的一系列 Inception 结构。
- 更轻量级的CNN网络。之后在设计网络时考虑性能和网络模型大小的平衡,其中比较具有代表性的就包括了Mobilenet,ShuffleNet等。
- 多尺度融合网络。通过融合不同尺度下的特征来提高网络的表达能力。
1.2.2 RPN 网络
- 区域推荐(Anchor机制)
- ROI Pooling
输入:特征图、rois以及ROI参数; 输出:固定尺寸的的feature map - 分类和回归
1.3 改进方向
- 更好的网络特征;
- 更精准的RPN;
- 更完善对的ROI分类
- 样本后处理
- 更大的mini-Batch