目标检测
概念
- 定位
- 分类
- 任务
- 单个目标
- 分类+定位
- 多个目标
- 实例分割
- 目标检测
- 单个目标
- 思路
- 回归问题
- 利用神经网络进行目标识别,同样的目标变为坐标值
- 局部识别问题
- 框游走知道能百分百确定分类结果
- 缺点
- 计算量大
- 优点
- 精确
- 生成候选位置
- 回归问题
DPM
- 可变形的不同组件的模型
- 概念
- 提取图像特征,制作出激励模板,在又是图像滑动计算,得到激励效果图,根据激励分布确定目标位置
- 扩展
- 目标可能会形变,各个部分单独考虑
- 过程
- 产生多个模板,整体模板以及不同局部模板
- 不同模板同输入图片卷积产生特征图
- 特征图组合形成融合特征
- 对融合特征进行传统分类,得到目标位置
- 优点
- 方法简单直观
- 运算速度快
- 适应运动物体变形
- 缺点
- 性能一般
- 激励特征人为设计,工作量大
- 大幅度旋转无法适应,稳定性差
R-CNN
- 神经网络分类思想
- 对多个位置,不同尺寸,慵倦极神经网络判断区域内图片是不是某物
- 候选位置提醋和方法
- EdgeBox
- 候选框进行SVM分类
- 步骤
- 分类器的训练
- 直接用ImageNet模型
- Fine-Tune分类模型
- 选择20类进行探测
- 21类
- 加上一类啥都不是
- 特征提取
- 图片计算候选区域,候选区域切分土浦安,变成输入大小,提取响应高级特征,存储特征
- 单独目标探测器训练
- 每一类单独训练
- 每一类训练数据平衡
- 每一类BBOX回归
- 数据集
- PASCAL
- 评估方法
- mAP
- 平均精度
- IoU
- 交补率
- mAP
- 优点
- CNN用于目标探测,利用了CNN高校识别能力,大大提高了性能
- 拜托认为设计物品模板,方法具有通用性
- 分类+回归,为找到精确位置的可能
- 缺点
- 为了检测一个目标,所有候选区域,大量卷积运算,非常慢
- SVM训练和CNN断裂,有效信息不饿能用于优化模型,不是端到端的
- 每一类单独训练,异常繁琐
Fast-R-CNN
- 共享卷积
- 卷积计算保持空间位置
- 共同区域的卷积计算只需进行一次
- 切割候选区域+提取特征图=计算完整特征图+切割对应候选区
- 特征一致化Max Pooling
- 特征变成统一大小
- 位置+类别 联合学习
- 两个FC分别回归和分类
- 速度快了精度提升不多
- 不考虑候选区域生成
- 怎么解决候选区域的生成,也需要靠神经网络吗?
- RPN
- 直接产生候选区域,无需额外生成
- 直接用于后续特征图切割
- 实现
- 在特征图上的卷积核有一个中间层,中间层可以分为两个部分
- 分类:
- 打分
- 回归:
- 坐标范围
- 分类:
- 生成k个候选区
- 在特征图上的卷积核有一个中间层,中间层可以分为两个部分
- anchor详解
- 如果是VGG conv5作为特征图,3*3区域对应的原始图像区域?:
- 4个pooling,16倍
- anchor的平移不变怎么理解:
- 较小的平移pooling过程中忽略
- anchor同外接候选区区别:
- 数量1-2,数量级减小
- 性能更高效
- 速度:10倍
- anchor设计的借鉴意义:
- 神经网络有能力找到最终量,也有能力找到很多中间量
- 只用anchor判断是不是目标,会不会存在大材小用,能判断更多吗
- 如果是VGG conv5作为特征图,3*3区域对应的原始图像区域?:
- 训练
- 分布训练,太复杂
- 更简单方法:
- 联合学习
- 一个网络四个损失函数:
- anchor是不是目标
- anchor回归候选区域回归
- Fast R-CNN分类
- Fast R-CNN基于侯选位置回归
- 精度影响
- 无
- 速度
- 算上生成候选图,速度提升十倍,可以算是实时交互
YoLo
- 直接找到是什么,在哪里
- 图片分成7*7网络
- 每个网格生成
- b个Bbox4坐标+1信心
- N个类别分数
- 回归目标
- 7*7*(5b+N)
- 候选区域
- b= 2
- 98个
- 实时运行
- 精度下降
- 定位精度较差
- SSD
- 中间层特征参与位置、种类计算
- 候选区98vs8732
- 速度21:46
- 66.4:74.3
完整训练 端到端
多目标学习