目标检测是计算机视觉领域(CV)热门且较成熟的主流研究方向之一,其应用广泛(自动驾驶、安防监控、医学影像分析、零售业货品管理等等)且已经深入到我们生活的方方面面,现在从个人学习角度,开展目标检测系列文章,主要侧重为深度学习,希望起到抛砖引玉的效果,如果有误的地方敬请指正。
PS:应该注意到,近些年来,CV模型有融合的趋势,原来的目标检测模型不再是单一任务,往往能同时处理多种任务:目标检测、语义分割、实例分割、姿态检测等。
传统目标检测流程:
例:Cascade+HOG/DPM+Haar/SVM
通过提取候选区域,并对相应区域进行以深度学习方法为主的分类的方案,如:
YOLO/SSD/DenseBox等方法
结合RNN算法的RRC detection
结合DPM的Deformable CNN
…
ViT backbone
Swin Transformer backbone + MaskRCNN
…
类别 | 流程/算法 | 论文、年份 | Google学术引用次数 |
传统算法 | 区域选择 => 特征提取 => 分类器分类 | ||
One Stage | |||
R-CNN(Selective Search+CNN+SVM) | 《Rich feature hierarchies for accurate object detection and semantic segmentation》,2014 | 32030 | |
SPP-Net(ROI Pooling) | 《Spatial pyramid pooling in deep convolutional networks for visual recognition》,2015 | 12948 | |
Fast R-CNN(Selective Search+CNN+ROI) | 《Fast r-cnn》,2015 | 28730 | |
Faster R-CNN(RPN+CNN+ROI) | 《Faster r-cnn: Towards real-time object detection with region proposal networks》,2015 | 62285 | |
Mask RCNN | 《Mask r-cnn》,2017 | 30742 | |
Two Stage | |||
YOLOv1 | 《You only look once: Unified, real-time object detection》,2016 | 37319 | |
SSD | 《SSD: Single shot multibox detector》,2016 | 31541 | |
YOLOv2 | 《YOLO9000: better, faster, stronger》,2017 | 17556 | |
RetinaNet | 《Focal Loss for Dense Object Detection》,2017 | 22861 | |
YOLOv3 | 《Yolov3: An incremental improvement》,2018 | 21678 | |
EfficientDet | 《EfficientDet: Scalable and Efficient Object Detection》,2020 | 4200 | |
YOLOv4 | 《Yolov4: Optimal speed and accuracy of object detection》,2020,Alexey Bochkovskiy团队 | 10758 | |
YOLOv5 | https://github.com/ultralytics/yolov5,2020,Ultralytics团队(无paper) | - | |
YOLOx | 《Yolox: Exceeding yolo series in 2021》,2021,旷视科技 | 1813 | |
YOLOv6 | 《YOLOv6: A single-stage object detection framework for industrial applications》,2022,美团 | 314 | |
YOLOv7 | 《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors》,2023,Alexey Bochkovskiy团队 | 1251 | |
YOLOv8 | https://github.com/ultralytics/ultralytics,2023,Ultralytics团队(无paper) | - | |
Transormer | |||
DETR | 《End-to-end object detection with transformers》,2020,Facebook | 6937 | |
Swin Transformer | 《Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 》,2021 | 11969 | |
DINO | 《Dino: Detr with improved denoising anchor boxes for end-to-end object detection》,2022 | 430 | |
stable DINO | 《Detection Transformer with Stable Matching》,2023 | 5 | |
CO DETR | 《DETRs with Collaborative Hybrid Assignments Training》,2023,商汤 | 47 |
Paper list from 2014 to now(2019)
源自GitHub - hoya012/deep_learning_object_detection: A paper list of object detection using deep learning.
优缺点 | One-Stage | Two-Stage | Transformer-based |
优点 | 1.速度快 2.避免背景错误产生false positives 3.学到物体的泛化特征 | 1.精度高(定位、检出率) 2.小目标检测和复杂场景中表现较好 | 1.大数据量下精度更高(定位、检出率) 2.有利于多模态数据融合 3.感受野更大 |
缺点 | 1.精度低(定位、检出率) 2.小物体的检测效果不好 | 1.速度慢 2.训练时间长 3.误报相对高 | 1.更占用显存 2.训练时间长 3.无归纳偏置,小数据量下表现不如CNN架构 |
典型的数据集有:PASCAL VOC, ImageNet, MS-COCO, Open Images等
VOC (PASCAL Visual Object Classes) :是经典的计算机视觉竞赛PASCAL VOC Challenges的数据集,时间跨度为2005-2012,任务包括图像分类、目标检测、语义分割和动作检测。数据集包含20个种类,其中 VOC07和VOC12最为常用,近年来被更大的数据集像ILSVRC和MS-COCO逐渐取代。
ImageNet(ILSVRC):计算机视觉竞赛The ImageNet Large Scale Visual Recognition Challenge采用的数据集 ,时间跨度为2010-2017, 共包含200个种类
MS-COCO :是微软构建的一个数据集,从2015起沿用至今,最大的特点是除了bounding box 注释,还给了segmentation。MS-COCO也包含更多的小目标(面积小于图像大小的百分之一)和稠密的目标。这些特征使得MS-COCO更接近于现实生活。MS-COCO已经成了目标检测家族中的实际标准。
Open Image: 2018年 the Open Images Detection challenge出现。两个任务:1常规n目标检测。2视觉关系检测,即检测特殊关系中成对的目标。600个种类。
DOTA:武汉大学于 2017 年发布的大规模遥感图像数据集,为Object Detection In Aerial Images on DOTA竞赛数据集,目前有三个版本:
DIOR:西北工业大学2019年发布的遥感图像目标检测的大规模基准数据集,含23463张图片和190288实例,覆盖20种目标:飞机、机场、棒球场、篮球场、桥梁、烟囱、水坝、高速公路服务区、高速公路收费站、港口、高尔夫球场、地面田径场、天桥、船舶、体育场、储罐、网球场、火车站、车辆和风机。
总结的算法精度对比,注意这里的算法全为原始算法不包括变体:
从图中看出 COCO数据集 mAP[.5, .95]精度方面:
Faster RCNN < SSD < FPN < Retine-Net < RefineDet < CenterNet < YOLOv4 < DETR < Swin Transformer
YOLOv3论文(2018)所述:精度比SSD变体高得多,AP50和当时的SOTA-RetinaNet相当,但RetinaNet耗时为YOLOv3的3.8倍还多
编者注:从图中看出mAP[.5, .95]精度方面,YOLOv2 < SSD < YOLOv3 < Faster RCNN及其变体 < RetinaNet
EfficientDet论文所述(2020): EfficientDet实现了最先进的52.2%COCO AP,其参数和FLOPs比过往的目标检测算法少得多。
YOLOv4论文(2020)所述: 在MS COCO数据集上得精度为43.5%AP(65.7%AP50),Tesla V100上实时速度约为65 FPS,和其他最先进的目标检测算法比较:YOLOv4的运行速度是EfficientDet的两倍,性能相当。相比于YOLOv3,AP和FPS分别提高了10%和12%
Yolo v7 for COCO 2017 数据集
train 训练
val 调参
test 测试
保证精度的情况下,速度极大提升
来源于YOLOv8(n/s/m/l/x)&YOLOv7(yolov7-tiny/yolov7/yolov7x)&YOLOv5(n/s/m/l/x)不同模型参数/性能对比(含训练及推理速度)-CSDN博客
第一个基于transformer的端到端算法,没有anchor前处理和NMS后处理,但是Detr收敛慢,训练慢,推理也慢
虽然 DETR(COCO/44.9%mAP)取得了较高的检测精度,但DETR采用固定长度的目标查询向量与图像特征进行全局交互。这种方式需要长时间的注意力权重训练才能关注到特征图上稀疏且关键的位置,导致模型收敛时间过长,在 COCO 上,需要 500 个 epochs 才能收敛,速度仅为 Faster RCNN 的 5%~10%。其次,对小目标检测效果较差,这主要是由于DETR仅使用单一尺度的特征进行预测以及在处理高分辨率输入时有很高的计算复杂度。最后,相较于 CNN 目标检测算法,DETR更加依赖数据的规模,当采用小规模数据训练时,模型性能明显下降。
2021 ICCV最佳论文,可直接用于多种视觉任务,包括图像分类(ImageNet-1K中取得86.4 top-1 acc)、目标检测(COCO test-dev 58.7 box AP和51.1 mask AP)和语义分割(ADE20K 53.5 val mIoU,并在其公开benchmark中排名第一),其中在COCO目标检测与ADE20K语义分割中均为state-of-the-art。**
DINO(DETR withImproved deNoising anchOr boxes),从2022年三月初霸榜至7月,该模型第一次让DETR (DEtection TRansformer)类型的检测器取得了目标检测的SOTA性能,在COCO上取得了63.3 AP的性能,相比之前的SOTA检测器将模型参数和训练数据减少了十倍以上
通过与 FocalNet-Huge 主干网相结合,Focal-Stable-DINO 在 COCO val2017 上达到 64.6 AP,在 COCO test-dev 上达到 64.8 AP,而无需增加任何测试时间