目标检测算法梳理YOLO、SSD、CornerNet

大概两三年前,博主有发过一篇综述:深度学习综述(二)深度学习用于目标检测 ,那时候主要是Fast-RCNN系列到yolo和ssd系列,之后很久不务正业没有跟进了。最近又开始跟进下,摘抄些笔记,没啥有深度的东西。

梳理下目标检测算法,大致经历了如下发展: 传统机器学习方法(slide window+feature extraction) -> Region Proposal + CNN -> Anchor Based CNN -> Anchor Free CNN。本文简单介绍Anchor Base方法中最著名的YOLO和SSD,Anchor Free方法中的CornerNet。

一、YOLO系列

One Stage算法的代表之一就是YOLO:You Only Look Once,首次把目标检测问题归结到BBox回归上,目前YOLO已出至YOLO_v3

YOLO的思想就是将图片分成很多网格,预测N个BBox时,回归xywh、confidence五个参数,网格的作用是用来分类,当BBox中心落在对应网格时,就用这个网格来预测物体的类别。

YOLO对相互靠的很近的物体,还有很小的群体 检测效果不好,这是因为一个网格中只预测了两个框,并且只属于一类。

同一类物体出现的新的不常见的长宽比和其他情况时,泛化能力偏弱。

由于损失函数的问题,定位误差是影响检测效果的主要原因。尤其是大小物体的处理上,还有待加强。

YOLO_v2则在速度和精度上进行均衡

YOLO 9000 的网络结构允许实时地检测超过9000种物体分类,这归功于它能同时优化检测与分类功能。使用WordTree来混合来自不同的资源的训练数据,并使用联合优化技术同时在ImageNet和COCO数据集上进行训练,YOLO9000进一步缩小了监测数据集与识别数据集之间的大小代沟。

文章还提出了WordTree,数据集混合训练,多尺寸训练等全新的训练方法。

YOLO_v3模式复杂不少,引入多尺度预测,分类的基础网络为DartNet-53,使用单一网络进行预测,在实现相同准确度下要显著地比其它检测方法快。

二、SSD系列

One Stage算法中另一个有代表性就是SSD了,SSD本身来说,SSD512比SSD300性能更好,但是更慢一些。

SSD:Single Shot MultiBox Detector

DSSD: Deconvolutional Single Shot Detector

FSSD:Feature Fusion Single Shot Multibox Detector

RefineDet: Single-Shot Refinement Neural Network for Object Detection

RfbNet:Receptive Field Block Net for Accurate and Fast Object Detection

M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network

Pelee:Pelee: A Real-Time Object Detection System on Mobile Devices

三、CornerNet系列

CornerNet系列贡献一份ppt:CornerNet

CornerNet的思想就是把目标检测问题归结于检测边界左上角点和右下角点的问题。CornerNet作者同年还提出了CornerNet-Lite,速度更快一些。

CornerNet有几个优秀的衍生作品:CenterNet、ExtremeNet,因为是Anchor Free的,省去了Anchor设计带来的影响,Anchor设计是今年来算法中影响最大的超参,将来Anchor Free会是一个比较明确的方向。

发表评论