目标检测算法发展综述

一、目标检测算法

主流的目标检测算法大致分为one-stage与two-stage。
two-stage算法代表有R-CNN系列,one-stage算法代表有Yolo系列。自己理解,two-stage算法将步骤一与步骤二分开执行,输入图像先经过候选框生成网络(例如faster rcnn中的RPN网络),再经过分类网络,对候选框的内容进行分类;one-stage算法将步骤一与步骤二同时执行,输入图像只经过一个网络,生成的结果中同时包含位置与类别信息。two-stage与one-stage相比,精度高,但是计算量更大,所以运算较慢。
简单时间线:
在这里插入图片描述

目标检测算法分类:
在这里插入图片描述
在这里插入图片描述

二、目标检测算法存在的问题

1.目标种类与数量问题:同一幅图下要识别的物体类别和数量可能同时存在多个,在要识别的目标密度非常大时就可能出现像相互遮挡的问题。
2.目标尺度问题:同一幅图下同一类别的物体可能因为透视原理的印象,变得有大有小。尤其是有时候目标的大小可能会变得非常小。
3.外在环境干扰问题:由于光照等问题引起的图片质量问题。
4.目标检测和目标分割:目标识别、目标检测、语义划分、实例检测
在这里插入图片描述

三、目标检测算法的基本流程

候选框的选择是依靠滑动窗口来选择的。
在这里插入图片描述

四、传统的目标检测算法

1.Viola-Jones(VJ人脸检测算法)

  • Haar特征抽取(Opencv中有这个特征提取包)
    在这里插入图片描述
  • 训练人脸分类器(Adaboost算法)
    在这里插入图片描述
  • 滑动窗口选取候选框

2.HOG + SVM(行人检测,使用Opencv实现)

  • 提取HOG特征
    在这里插入图片描述
  • 训练SVM分类器
    这里的SVM是二分类分类法。(我们会使用现成的包就好,不一定需要自己去实现,最好自己手动写一下。)
    SVM又叫支持向量机,所谓支持向量正是图中所画的虚线上的点,他们对最后分类的结果影响较大。
    在这里插入图片描述
  • 利用滑动窗口提取目标区域,进行分类判断
  • NMS
  • 输出检测结果

3.DPM(物体检测)

  • DPM特征提取
    在这里插入图片描述
    在这里插入图片描述
  • HOG的扩展
  • 使用SVM训练得到物体的梯度

补充——NMS

在这里插入图片描述

五、基于深度学习的目标检测算法

1.Two-Stage算法(段到段)

在这里插入图片描述

  • 使用各种CNN卷积神经网络作为backbone主干网络,进行特征提取
  • 然后进行一步粗分类(区分前景和后景)和粗定位(anchor),也就是说在上图的“产生候选区域CNN特征”之前还应该有一个框“使用RPN网络产生候选区CNN特征”
  • 段到段的目标检测
  • 准确度高但速度较one-stage慢
    在这里插入图片描述

2.One-Stage算法(端到端)

  • 使用CNN卷积特征
  • 直接回归物体的类别概率和位置坐标值
  • 准确率低但速度快
    在这里插入图片描述

3.对比

  • 双阶段精度高但速度慢,单精度速度快但精度稍逊。
  • 双阶段目标检测器采用了两段结构采样来处理类别不均衡的问题(意思就是在同一张图片中需要进行检测的目标太少,不需要检测的背景信息太多),一阶段中:rpn使正负样本更加均衡(先粗分类,区分前后景),再粗回归,使用Anchor来拟合bbox,然后再二阶段精调。
  • One stage detector 的一个通病就是既要做定位又要做classification。最后几层1x1 conv layer的loss混在一起,并没有什么专门做detection或者专门做bbox regression的参数,那每个参数的学习难度就大一点。
  • Two stage detector 的第一个stage相当于先拿一个one stage detector来做一次前景后景的classification + detection。这个任务比 one stage detector 的直接上手N class classification + detection要简单很多。有了前景后景,就可以选择性的挑选样本使得正负样本更加均衡,然后拿着一些参数重点训练classification。训练classification的难度也比直接做混合的classification和regression 简单很多。
  • 双阶段其实就是把一个复杂的大问题拆分成更为简单的小问题。各个参数有专攻,Two Stage Detector 在这个方面是有优势的。但one stage detector 里如果用了 focal loss 和 separate detection/classification head 那效果跟 two stage detector 应该是一样的。
    在这里插入图片描述
  • 4
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值