• 卷积神经网络-目标探测-笔记


    目标探测介绍:

    直接思路:回归问题

    利用神经网络进行目标识别,同样的目标变为坐标值

    直接思路:局部识别问题

    在很多位置尝试识别,能够完成识别的地方就是目标位置

    问题:怎样找到这些候选位置?

      不同scale的sliding windows?

        遍历所有位置                 

        候选区域产生

      更有效的方法是什么?

        直接计算候选区域

    小结

    目标探测任务

    转化为回归,分类问题

    分类思想目标探测:候选区域产生

    传统方法—DPMhttps://blog.csdn.net/qq_14845119/article/details/52625426

    基本思想:提取图像特征,制作出激励模版,在原始图像滑动计算,得到激励效果,根据激励分布确定目标位置

    拓展:目标可能会变形,各个部分单独考虑

    DPM—Deformable Parts Model

    1. 产生多个模版,整体模版以及不同局部模版
    2. 不同模版同输入图片“卷积”产生特征图
    3. 特征图组合形成融合特征
    4. 对融合特征进行传统分类,回归,得到目标位置

    优点:

      方法直观简单,运算速度快,适应动物体变形,至2012年,最好方法

    缺点:

      性能一般,激励特征人为设计,工作量大,大幅度旋转无法适应,稳定性差

    神经网络分类:R-CNN系列方法https://blog.csdn.net/v1_vivian/article/details/78599229

    神经网络分类思想:对多个位置,不同尺寸,用卷积神经网络判断区域内图片是不是某物

    候选位置(proposal)提出方法:EdgeBox

    R-CNN

    类别减少

    训练过程

    1. 分类器的训练—直接用ImageNet模型
    2. Fine-tune分类模型-选择20类进行探测;对原始分类模型结构更改;
    3. 特征提取

    图片计算候选区域;候选区域切分图片,变成输入大小;提取相应高级特征;存储特征(很大容量)

    1. 单独目标探测器训练

        每一类单独训练

        每一类训练数据平衡

        每一类binary分类

    1. 单独目标回归器训练—基于候选区域微调

        每一类单独训练

        每一类训练数据平衡

        每一类BBOX回归

    测试过程

    1. 候选区域
    2. 特征计算
    3. 分类,回归
    4. 后续处理

    评估方法

      MAP:mean average precision。平均精度

      IoU:https://blog.csdn.net/u014061630/article/details/82818112

    总结

    优点:

    1. CNN用于目标探测,利用了CNN高效识别能力,大大提高性能
    2. 摆脱人为设计物品模版,方法具有通用性
    3. 分类+回归,有了找到精确位置的可能

    缺点:

    1. 为了检测一个目标,所有候选区域计算,大量卷积运算,非常慢
    2. SVM训练与CNN断裂,有效信息不能用于优化模型,not end-to-end
    3. 每一类单独训练,异常繁琐

    Fast R-CNN:https://www.jianshu.com/p/fbbb21e1e390

    共享卷积计算

    1. 卷积计算保持空间位置
    2. 共同区域的卷积计算只需进行一次
    3. 切割候选区+提取特征图=计算完整特征图+切割对应候选区

    特征一致化-Max Pooling

    位置+类别 联合学习

    怎么解决候选区域的生成问题,也靠神经网络?

    神经网络特征增加一组输出

    RPN(Region Proposal Network)

    候选区域网络

    1. 直接产生候选区域,无需额外生成
    2. 直接用于后续特征图切割

    RPN的实现

    网络输出的值:

    1. 是不是一个目标?
    2. 覆盖范围的相对位置

    k=9(3种尺寸,三种长宽比)个Anchor那么能产生多少个proposal?

    特征图size HxW->HWx9 in paper:2400x9

    Anchor详解:

    1. 如果是VGG conv5作为特征图,3x3区域对应的原始图像区域?4个pooling,16倍
    2. Anchor的平移不变怎么理解

    较小的平移pooling过程忽略

    1. Anchor同外接Proposal区别数量:1-2个数量级减少;性能:更高效;速度10x
    2. Anchor设计的借鉴意义?

    神经网络有能力找到最终量,也有能力找到很多中间量。

    只用Anchor判断是不是目标,会不会存在大材小用,能够判断更多吗?

           训练

           文章:分步训练,太复杂

           更简单方法:直接联合学习

           一个网络,四个损失函数

           Anchor是不是目标

           Anchor回归候选区域回归

           Fast R-CNN分类

           Fast R-CNN基于候选位置回归

    完整训练(end-to-end)

    多目标一起学习

    faster R-CNN:https://blog.csdn.net/liuxiaoheng1992/article/details/81843363

    faster R-CNN由四部分组成:

    1)卷积层(conv layers),用于提取图片的特征,输入为整张图片,输出为提取出的特征称为feature maps
    2)RPN网络(Region Proposal Network),用于推荐候选区域,这个网络是用来代替之前的search selective的。输入为图片(因为这里RPN网络和Fast R-CNN共用同一个CNN,所以这里输入也可以认为是featrue maps),输出为多个候选区域,这里的细节会在后面详细介绍。
    3)RoI pooling,和Fast R-CNN一样,将不同大小的输入转换为固定长度的输出,输入输出和Faste R-CNN中RoI pooling一样。
    4)分类和回归,这一层的输出是最终目的,输出候选区域所属的类,和候选区域在图像中的精确位置。

    神经网络回归:YoLo系列方法:https://www.jianshu.com/p/13ec2aa50c12

    只用Anchor判断是不是目标,会不会存在大材小用,能够判断更多吗?

    YoLo:可以直接找到是什么,在哪里

    YoLo训练

    图片分成7x7网格

    每个网格生成:

    1. b个Bbox 4坐标+1信心
    2. N个类别分数(注意对比Anchor)

    总共回归目标:7x7x(5b+N)

    候选区域个数(b=2)98个,< Fast R-CNN

    损失函数:……

    YoLo性能

    实时运行

    精度稍微下降

    定位精度较差

    物体小的话有可能识别不出来

    SSD:The Single Shot Detector : https://blog.csdn.net/u013989576/article/details/73439202

    中间层特征参与位置种类计算

    候选区98vs8732

    速度21:46(VGG base)

    精度66.4:74.3

  • 相关阅读:
    使用ATL开发ActiveX控件
    [Silverlight]AutoCompleteBox控件的一个Bug?
    [Silverlight]一个简单的GroupBox控件
    WCF安全之ASP.NET兼容模式
    Mysql 性能优化记录
    【Python+Django+Pytest】数据库异常pymysql.err.InterfaceError: (0, '') 解决方案
    Django在使用logging日志模块时报错无法操作文件 logging error Permission Error [WinError 32]
    isinstance 判断一个对象属于或不属于多种数据类型
    CentOS 系统 查看 cpu核数
    我踩过的python的坑
  • 原文地址:https://www.cnblogs.com/yang901112/p/11877224.html
Copyright © 2020-2023  润新知