目标探测
单目标,多目标
直接思路:回归问题,局部识别问题(在很多位置尝试识别,能够完成识别的地方就是目标位置)
利用神经网络进行目标识别,同样的目标变为坐标值
会有候选框计算算法
问题:
怎么确定候选位置
小结:
分类思想(主流思想)目标探测:候选区域产生
传统方法-DPM
提取图像特征,制作出激励模板,在原始图像滑动计算,得到激励效果图
,根据激励效果图,根据激励分布确定目标位置
利用方向的统计(tan,HOG)
因为结构的关系,人的gradient区域卷积就会得到加强,
区域的激励会比较高
拓展:目标可能会形变,各个部分单独考虑
DPM:Deformable Parts Model
1.产生多个模板,整体模板以及不同局部模板
2.不同模板同输入图片“卷积”,产生特征图
3.特征图组合组合形成融合特征
4,对融合特征进行传统分类,回归,得到目标位置
优点:
方法直观简单
运算速度快
适应运动物体变形
至2012年,最好方法
缺点":
性能一般
激励特征人为设计,工作量大
大幅度旋转无法适应,稳定性差
神经网络分类
RCNN系列方法
神经网络分类思想:对多个位置,不同尺寸,用卷积神经网络判断区域内图片是不是某物
候选位置(proposal)提出方法:EdgeBox
RCNN:
1.类别减少
2.训练过程
3.测试过程
1.分类器的训练-直接用ImageNet模型
选择20类进行探测,
3.特征提取
图片计算候选区域,候选区域切分图片,变成输入大小,提取相应高级特征,
存储特征(很大容量)
4.单独目标探测器训练
每一类单独训练
每一类训练数据平衡
每一类binary分类
5.单独目标回归器训练-基于候选区域微调
每一类单独训练
每一类训练数据平衡
每一类BBOX回归
测试过程
1候选区域
2特征计算
3分类,回归
4后续处理
常用数据集
ImageNet,MScoco,PASCAL
评估方法:
IoU
优点:
CNN用于目标探测,利用了CNN的搞笑识别能力,大大提高性能
摆脱了人为设计物品模板,方法具有通用性
分类+回归,为了找到精确未知的可能
缺点:
为了检测一个目标,所有的候选区域计算,大量卷积运算非常慢
svm训练与cnn断裂,有效信息不能用于优化‘模型
每一类单独训练,异常繁琐
fast-RCNN
共享卷积计算(进行一次cnn运算)
1.卷积计算保持空间位置
2.共同区域的卷积计算只需要进行一次
3.切割候选区+提取特征图=计算完整特征图+ 切割对应候选区
完整训练呢(end-to-end)
多目标一起学习
比RCNN快了几千倍
特征一致化:
pooling
位置+类别(联合学习
先进行Feture Map计算,形成固定大小的feature map,找候选相应的区域,
解决proposal候选区域的生成问题:
faster-rcnn来解决
神经网络增加一组输出RPN候选区域网络
1.直接产生候选区域,无需额外生成
2.直接用于后续特征图切割
每个pixel生成k个Anchor,可以生成HW*k个prposal
Anchor的借鉴意义':
神经网络有能力找到最终量,也有能力找到很多中间量,
只用anchor判断是不是目标,会不会存在大材小用,
训练:
比较简单方法:
一个网络,四个损失函数:
Anchor是不是目标,
Anchor回归候选区域,回归
FastRcnn 分类,Fastrcnn基于候选位置回归
神经网络回归思想系列方法
Yolo系列方法
yolo可以找到会什么,在哪里
图片分成7*7网络
每个网格生成:
1.b个Bbox 4坐标+1信心
2.N个类别分数(注意对比Anchor)
损失函数
实时运行
精度稍微下降
定位精度较差
yolo version2??????????
SSD
中间层参与位置和种类计算
较yolo,精度提升很多
代码:????????????
course_6_obj.py
yolo_tiny_tf.py
densebox???????
openpose??????