目标检测:主要指在图片中对可变数量的目标进行查找和分类
a :图像分类 只需指出所属的类别
b:目标检测,还要定位目标出现的位置,表示为一个矩形框
目标分割,找到当前目标所占的区域
c :语义分割,除去背景区域,只要找到同一类物体所占区域即可,具体位置精确到像素级别
d:实例分割,不仅区分语义层面的目标,对同一类别的目标,也要划分出不同实例
检测:主要定位物体位置,位置信息表示为一个矩形框,可通过4位数据表示,往往采用上采样,反卷积
分割:对每个像素点进行不同类别的划分,结果需要同原来图片保持一致
传统目标检测方法 和 深度学习目标检测方法
1.特征很难设计,且会存在问题,不鲁棒,效率低,提取滑动窗口慢,耗时。
传统:
深度学习:通过学习来获取特征,设计不同的网络结构来学习不同的特征,特征会更鲁棒
目标区域判定:深度网络,分类器学习由之前的特征完成,在特征和分类通过一个网络完成,相对传统网络更加端到端
(鲁棒是Robust的音译,也就是健壮和强壮的意思。它也是在异常和危险情况下系统生存的能力。
是指控制系统在一定(结构,大小)的参数摄动下,维持其它某些性能的特性)
传统目标检测方法基本流程
给出一个图片输入,采用滑动窗口进行候选框提取,对每一个窗口局部图像信息进行特征抽取(基于颜色 纹理 形状中层次、高层次语义特征等方法),分类器基于之前的特征来进行分类判定,分类器是由之前学习得到的。对于单类别目标检测,只需区分当前窗口的对象是否是背景还是目标,多分类则为区分是否是背景或哪一类,得出一系列可能为检测目标的候选框,候选框可能会出现重叠,采用nms算法,合并候选框,最后的扫算法输出结果
(NMS Non-maximum suppression,非极大值抑制广泛应用于目标检测算法中。其目的是为了消除多余的候选框,找到最佳的物体检测位置。)
常见的目标检测算法
Viola-Jones(主要用于人脸检测)
- Haar特征抽取
value = 白色区域 - 黑色区域
-
训练人脸分类器
-
滑动窗口
**HOG + SVM(行人检测、Opencv实现)
DPM(物体检测)
NMS(非极大值抑制算法)
通过滑动窗口生成候选框,会产生很多冗余。
**
深度学习目标检测算法
cnn:卷积神经网络的隐含层包含卷积层、池化层和全连接层3类常见构筑
卷积层的功能是对输入数据进行特征提取
在卷积层进行特征提取后,输出的特征图会被传递至池化层进行特征选择和信息过滤。
卷积神经网络中的卷积层和池化层能够对输入数据进行特征提取,全连接层的作用则是对提取的特征进行非线性组合以得到输出,即全连接层本身不被期望具有特征提取能力,而是试图利用现有的高阶特征完成学习目标。
**
Two-stage:
主要通过一个完整的卷积神经网(Convolutional Neural Networks, CNN)来完成目标检测的过程。使用卷积神经网,则用到的特征即为cnn的特征。通过卷积神经网来提取对特性区域的特征的描述。
典型代表 R-CNN 到 faster-RCNN
广义理解为端到端的目标检测
准确度高,速度相对one-stage慢,精度比其高
一幅图输入–>经过卷积神经网(通常称其为主干网络)进行深度特征的提取---->proposal通过一个rpn网络来完成之前方法的滑动窗口所完成的任务(产生候选区域)还会完成对候选框区域的一个分类,将候选区域分为背景和目标两种类别,还会对目标位置进行初步的预判(区域分类和位置精修)---->(roi_pooling)对位置进行进一步修正(抠图)—>fc(全连接层)对候选区域的特征进行表示—>通过分类和回归两个分支分别来完成对候选目标类别的判定已经位置的精修。此类别区别于rpn网络,在此会得到物体真实的类别。回归主要得到当前物体的具体坐标位置,通常表示为矩形框,用四个值来表示 xywh 候选目标最后经过深度网络检测得到的目标区域位置
Two-stage 核心组件
- CNN网络
- RPN网络
增加网络深度,网络越深非线性表达能力越强,能得到物体更抽象的表达,越深层次特征,鲁棒性越好。
但也会增加网络规模,会导致梯度消失和梯度离散。
RPN(Region Proposal Network)区域选取
图像经过卷积层会提取出feature map,为ncwh四维卷积特征,再利用rpn网络进行区域位置和候选目标的筛选(相当于传统方法滑动窗口的策略),通过roi pooling提取候选目标,通过分类和回归两个分支分别来完成对候选目标进行精确坐标位置的回归。
ncwh四维特征,n为样本数量c 为channel个数 wh长宽
区域推荐(anchor ):对于当前fp anchor 指对于wh大小的fp选择某一个点为锚点,为候选区域中心点,去提取候选区域,按照一定尺度
rois :区域坐标
roi参数:下采样尺度值
rpn总体起到一个抠图和resize的作用
抠图:得到相应的feature map
resize: 将得到的fm变为固定同样的大小
One-stage 综述
相比two-stage 不包含rpn网络 所以速度相对快,
最主要区别就是是否包含候选区域目标推荐(有无rpn)的过程。
主流算法:
yolo ssd 最具有代表性的算法
One-stage 核心组件
1.2
1.CNN网络
多尺度特征融合:提高模型的表达能力
轻量级:能降低功耗,降低模型推理所用时间
2.回归网络
主要完成区域回归和目标区域类别的判定
① 区域回归:通过回归网络直接输出目标bounding box的位置信息,同时得到置信度和类别
② Anchor机制(SSD) 属于rpn网络的核心组件,
二者优缺点对比:
SSD系列算法原理介绍
ssd one-stage代表算法:强调采用直接回归的方法来获取到目标的位置和类别,不需要two-stage候选框提取的过程
ssd考虑候选目标时 同样采取了anchor的机制,针对fp每一个像素点进行回归分类判定,实现更好精度
ssd整体网络结构:
以vgg-16 为整体的一个主干网络 作用到了第五个尺度上的第三个层卷积的结果
会对6个尺度进行预测
主干网络:
去掉fc层
若对象类别为c类,则prior box 对应c+4输出,当前fp大小为m* n 则有对应的锚点,每个anchor提取出k个box,则fp 的输出为(c+4)* k * m * n 的向量输出
scale 尺寸 aspect ratio 长宽比例
具体提取prior box 与定义尺寸大小长宽比例会在相应配置文件中配置
强调对主干网络和后续预测网络的改进
主干网络:采用更好的主干网络新的优秀网络结构进行特征的提取
预测prior box层:集中在如何优化的输入网络(输入的fp)
采用反卷积来获取更多的特征表示
人脸业务场景介绍
lou大于0.5 即认为结果正确
AP衡量的是学出来的模型在给定类别上的好坏,而mAP衡量的是学出的模型在所有类别上的好坏