目标检测
一、两阶段法
1、概述:
计算机视觉:
- 三大热点方向:计算机视觉、自然语言处理、语音识别
- 四类任务:图像分类(label)、目标检测(what+where)、图像语义分割(what+where)、图像实例分割(what+where)
目标检测:位置+类别
问题:尺寸范围大,物体角度、姿态不定,可以出现在图片任何地方,多类别
数据集:
- PASCAL VOC(VOC2007/VOC2012)
- MS COCO(MSCOCO2014/MSCOCO2017 训练集:118287/验证集:5000)
- Object365密集标注(63W)
2、传统目标检测:
- 人工设计特征,机器根据人工设计的特征检测(更关注单类别)
(1)基于滑动窗的目标检测
困难:计算量大、很难基于特定的特征去适应多类别
(2)VJ Detector:实时目标检测(人脸)
将图像表示为积分图像,eg: 人脸明暗变化
使用Adaboost,构建多个弱分类器
采用Cascade级联多个强分类器,快速过滤大量不相关窗口
(3)HoG 行人检测
使用物体检测特征描述子,在人脸检测上有效
(4)DPM:
基于HoG行人检测衍生出来的,基于组件的检测特征及算法网络,在HoG特征的基础上提取了更具辨识力的特征
传统目标检测的问题:
- 人工特征设计局限性
- 计算复杂
- 后面依赖分类器
3、两阶段目标检测:
**(1)深度学习下的目标检测:**图像->网络->输出类别、框
边界框回归:通过学习一种映射关系,对目标候选的位置进行精化
IOU(交并比):用来衡量真实标注和预测结果的重合程度
NMS(非极大值抑制):消除冗余的检测框
两阶段法: 判断有无目标后回归,后将目标分类后回归
一阶段法:直接对框判断分类,同时对位置进行回归
(2)两阶段法
1)RCNN
- 提取候选框:
方法:Selective Serach选择性搜索:根据相似度融合的方法
问题:
每张图需要额外步骤提取region proposal候选框
存储和重复提取每个region proposal的特征花费大量存储和计算资源
-
特征提取:
方法:CNN
问题:保存所有数据候选区域的特征,浪费资源 -
区域分类
方法:为每一个类训练SVM分类器
问题:每个SVM需要单独训练,网络复杂、空间消耗大 -
边界框回归
方法:最小二乘法线性回归(输入:特征、真是位置;输出:修正位置)
问题:比较笨???
2)SPP-Net
- 不再对每个候选区做扭曲
- 不再对每个候选区提取CNN特征
- 直接提取整个图像特征,将图像的扭曲变成特征上的变化
作用:减少了提取特征的时间和用来存储特征的空间
做法:空间金字塔池化
特征划分成多个固定网