使用深度学习神经网络实现目标检测若干小知识点

整理文档的时候看到的之前做的笔记,发出来方便以后查看。因为乱七八糟而且很多知识点是从不同博主那儿搜集的,所以没办法注明出处,有问题请联系我。

行人检测数据集

数据集分为两类,第一类是专用于行人检测的数据集如Caltech,其他非行人类不进行标注,另一类是类似COCO 、BDD标注文件中不仅对行人进行标注,其他类诸如车、飞机等也包括在内。

基于深度学习的目标检测

主要包括两类 , 一类是基于区域生成的卷积 网 络 结 构 , 代 表 性 的 网 络 为 R-CNN 、fast R-CNN、 faster R-CNN; 另一类是把目标位置的检测视作回归问题 , 直接利用 CNN 网络结构对整个图像进行处理 , 同时预测出目标的类别和位置 , 代表性的网络有 YOLO、 SSD等 。

CNN 提取的特征具有如下特性

  1. 低层的特征具有较小的感受野 , 对于小尺度的目标有更敏感的位置和细节信息 , 但是缺少语义信息 。
  2. 高层的特征感受野较大 ,语义信息更丰富 , 对光照 、形变等的鲁棒性更高 , 但由于几何信息的丢失 , 导致对小目标检测的效果较差 。
    在行人检测的具体应用中 , 大部分行人目标为小目标 , 因此融合低层的具有较小感受野的特征更有利于行人目标检测 , 尤其是针对距离较远的行人效果更好 。 这种层次性的特征正好内在地形成了特征金字塔的分布 , 加之不同尺度对象的检测需求 , 利用 DNN 多中间层特征的检测器成为目前行人检测的主流方法 。
    对于这种多层次的特征使用方式一般有 3 种 :
    (1) 使用多个 DNN 的层次特征组合进行检测 ,典型的网络如 HyperNet 和 ION 等。
    (2)在 DNN 的多层进行检测 。 如 SSD、 MSCNN、 RBFNet 和 DSOD 等网络利用不同层次的特征来检测不同大小的目标 。
    (3) 混合上述两种方法 , 如 SharpMask、 DSSD、FPN, YOLO V3等 。

训练策略

通常的训练策略是在 ImageNet 或 Places 上预训练骨干网络 , 以此作为检测 网络的特征提取器 , 然后再在特定检测任务如行 人检测数据集上进行微调 , 训练其定位功能 。这是迁移学 习 的 典 型 应 用 , 类 似 的 成 果 有 很 多 , 如RPB + BF 、 SA-Fast RCNN 、 SDS-RCNN 等。

检测框

对于一个检测框 , 当它满足下列条件时 , 可以视为一个真正例 ( true positive,
TP) :

  1. 预测的类别信息 c 与标签的类别相同 。
  2. 预测框与某个真实框之间的 IOU( intersection over union) 大于一定的阈值 ε 。
    阈值ε为超参数,SSD中,通常设置为0.5。不是真正例的框 , 都当作假正例 ( false positive, FP) 。假正例的个数越多说明误检率越大 。 类别概率 p 通常也和超参数 β 进行比较 , 大于阈值则认为属于该类 , 否则属于其他类 , β 的取值通常为 0. 5。

损失函数

在预测行人的定位信息时,通常会把它当作一个回归问题。在RCNN中针对候选区域坐标的欧式距离训练了线性回归模型。在Fast RCNN中,提出SmoothL1损失替换里欧式距离。在Faster RCNN 中 , RPN 的提出使边界回归使用了 2 次 。
为 了 解 决 遮 挡 和 密 集 的 行 人 检 测 , Wang 等基于目标的吸引力和周围目标的排斥力假 设提出了排斥损失 ( repulsion loss) 。 对于样本类别不均衡带来的问题 , Lin 等通过重新设计标准的交叉熵损失来解决 , 从而降低分配给分类良好的 样本的损失 。

评价标准

评价检测器性能的指标通常有对数平均漏检率 ( log average miss-rate, LAMR) 、 帧率 ( frame per second, FPS) 、 查准率 ( average precision, AP) 和查全率 ( recall) 。 帧率表征模型的效率 、 查准率 、 对数平均漏检率和查全率反映模型的精度 。
一般情况下可通过绘制相对每张图像误检数( false positive per image, FPPI ) 的 漏 检 率 ( miss rate, MS) 曲线或者P-R曲线来动态评估模型性能。

训练过程

正常情况下的损失变化:在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

tips

1,输入数据的时候尽量多的提供给神经网络各种维度的信息,提供的信息越多,神经网络的表现自然更好,比如在Reid中,有些人就尝试在将原有数据集中的人的其他属性,诸如衣服颜色,性别,年龄等加入到训练中,这样训练出来的网络在Reid上的效果有很大提升。
2,为了得到更丰富的特征表达 , 数据增强通常也作为训练行人检测模型中必不可少的手段 。 数据增强一般包括裁剪 、 旋转 、 翻转 、 缩放 、 调整宽高比 、 更改曝光 、 色调和对比度等手段 。 更复杂的做法还涉及背景切换 、 环境迁移 、 虚拟目标等 , 如原始图像加雾 、 雨天效果等 。
3,实际使用中,增大batch_size,调小learning rate 也可以继续让loss降低。(没有实验过)
loss不变,判断为梯度消失情况,改用relu激活,或者添加batchnormal。
4,对SSD的改进可以从下面几个方面考虑:

  1. 增大输入尺寸
  2. 使用更低的特征图做检测
  3. 设置default box的大小,让default box能够更好的匹配实际的有效感受野
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值