卷积神经网络CNN-目标探测
1. 目标探测介绍
利用神经网络进行目标识别,同样的目标变为坐标值。
直接思路:局部识别问题
在很多位置尝试识别,能够完成识别的地方就是目标位置。
问题:怎样找到候选位置?
Answer:
- 利用不同scale的sliding windows来遍历图片的所有位置,缺点是计算量大,需要进行大量的重复。
- 更有效的方法:直接计算候选区域。
2. 传统方法-DPM
基本思想
提取图像特征,制作出激励模板(可以认为是人工设计一个复杂形状的卷积核),在原始图像滑动计算,得到激励效果图,根据激励分布确定目标位置。
拓展
目标可能会变形,各个部分单独考虑(DPM-Deformable Parts Model)
- 产生多个模板,整体模板以及不同局部模板;
- 不同模板同输入图片“卷积”产生特征图;
- 特征图组合形成融合特征;
- 对融合特征进行传统分类,回归,得到目标位置。
3. 神经网络分类:R-CNN系列方法
神经网络分类思想:
对多个位置,不同尺寸,用卷积神经网络判断区域内的图片是不是某物。
候选位置(proposal)提出方法: EdgeBox
R-CNN
1.分类器的训练
直接用ImageNet模型
2.Fine-tune分类模型
- 选择20类进行探测;
- 对原始分类模型结构进行更改;
- 最终定位21个目标(20类+其他)
3.特征提取
- 图片计算候选区域;
- 候选区域切分图片,变成输入大小;
- 图区相应高级特性;
4.单独目标探测器训练
- 每一类单独训练;
- 每一类训练数据平衡;
- 每一类binary分类,一般用SVM。
5.单独目标回归器训练-基于候选区域微调
- 每一类单独训练
- 每一类训练数据回归
- 每一类BBOX回归
6.测试过程
7.评估方法
mAP:mean average precision,平均精度
IoU:
8.优缺点
- CNN用于目标探测,利用了CNN高效识别能力,大大提高性能;
- 摆脱人为设计物品模板,方法具有通用性;
分类+回归,有了找到精确位置的可能;
为了检测一个目标,对所有候选区域进行计算,含有大量卷积运算,速度慢;
- SVM训练与CNN断裂,有效信息不能用于优化模型,不是end-to-end;
- 每一类单独训练,异常繁琐。
Fast R-CNN
- 共享卷积计算;
- 完整训练(end-to-end);
- 多目标一起学习。
1.共享卷积计算
- 卷积计算保持空间位置;
- 共同区域的卷积计算只需进行一次;
- 切割候选区+提取特征图=计算完整特征图+切割对应候选区。
2.特征一致化
问题:不同区域特征如何保持一致?
Answer:进行特征一致化-Max-Pooling。
如: 100×50 则按照