资讯详情

计算机视觉CV-目标检测OB

计算机视觉CV-目标检测OB

一、简介

目标检测,又称目标提取,是计算机视觉四大基本任务之一(分类、定位、检测、分割),是一种基于目标几何和统计特征的图像分割。目的是划分和识别图像上的预定目标。一般来说,检测图像中的内容和位置通常用矩形框来设定目标。

在传统机器学习时代,目标检测的经典算法大多基于滑动窗口、人工特征提取等技术手段,代表算法VJ检测器、HOG行人检测器和DPM检测器等;

在深度学习时代,大放异彩的卷积神经网络也引入了目标检测任务,实现了工业级的真正使用。在此期间,经典诞生了Archor-Based范式,即双阶段目标检测(two-stage)、单阶段目标检测(one-stage)两种算法。

在这里插入图片描述

双阶段目标检测算法有:RCNN -> SPPNet -> Fast-RCNN -> Faster-RCNN -> Mask-RCNN -> FPN。

单阶段目标检测算法有:YOLO -> SSD -> RetinaNet。

近几年Archor-free算法也大放异彩,成为新的研究热点, 有:DenseBox -> YoloV1 -> CornerNet -> ExtremeNet -> CenterNet -> FSAF -> FCOS -> ATSS -> YOLOX。

基于Transformer的算法有:DETR -> Swin -> DINO。

二、Archor-Based

2.1 双阶段目标检测算法(two-stage)

2.1.1 RCNN(2013)

RCNN目标检测流程图

RCNN将卷积神经网络引入目标检测 Object-Detection 开山任务,两阶段目标检测的经典作品。

RCNN流程主要是:1.候选框ROI生成(Selective Search方法, 切割 相似度) -> 2.候选框ROI的CNN特征提取(AlexNet, 预训练 微调) -> 3.候选框ROI的SVM类别分类(少数据下难以分类样本挖掘) -> 4.BBox回归和候选边框装饰(NMS)。

特点:

  • 1.使用Selective Search方法提取2000个候选框,替代传统的滑动窗口方法,大大提升了速度(但2000区域还是很慢, 模型推理耗时47s(14.7)/image);
  • 2.第一次成功引入目标检测任务CNN特征抽取,在VOC-07数据集的平均精度为33.7%提升到58.5%;

2.1.2 SPPNet(2014)

SPPNet目标检测流程图

SPPNet网络主要解决方案RCNN中生成2000 候选框引起的速度过慢, 即空间金字塔池化层(SPP, spatial pyramid pooling)。

SPPNet流程主要是:1.候选框ROI生成 -> 2.候选框ROI的CNN特征提取(ZFNet, 一次卷积, 多尺度融合, 只对全连接层进行微调) -> 3.候选框ROI的SVM类别分类 -> 4.BBox回归和候选边框装饰(NMS)。

特点:

  • 1.引入空间金字塔池的特征生成(SPP, spatial pyramid pooling), 只需要一次CNN特征抽取, 解决了候选框规模不同的问题, 在ILSVRC-2014年目标检测取得好成绩(目标检测第2/图像分类第3)。
  • 2.与RCNN与不损失精度的前提相比, 训练耗时比RCNN快3倍, 模型推理耗时4.3s(2.3)/image, 比RCNN快10-100倍。

2.1.3 Fast-RCNN(2015)

Fast-RCNN目标检测流程图

FastRCNN其实网络还是多阶段的, 对RCNN、SPPNet进一步改进, 主要是将之前独立的SVM将类别分类整合到特征抽取后的特征抽取中FC层, 进行类别的Softmax分类和BBox的回归。

Fast-RCNN流程主要是: 1.候选框ROI生成 -> 2.候选框ROI的CNN同时提取特征Softmax类别分类与BBox回归(VGG) -> 3.边框边框装饰(NMS)。

特点:

  • 1.单阶段训练, 即引入VGG网络/ROI-Pooling层(ROI, regions of interest, 感兴趣区域/多任务学习(VGG直接连接分类器/回归模型, 二者loss等等,直接加), 抛弃了前两阶段的训练SVM或线性回归模型。
  • 2.Fast-RCNN在VOC-07数据集检测精度mAP从58.5%提高到70%, 训练耗时比RCNN快9倍, 模型推理耗时2.32s(0.32)/image, 比RCNN快213倍。

2.1.4 Faster-RCNN【FPN】(2015)

Faster-RCNN目标锚图

Faster RCNN是目标检测最经典的算法之一, 后来的模型大多是由它改进而来的, 他是第一个成功利用卷积神经网络的人CNN候选框抽取(region proposal)的网络, 提出的Archor-Base思想影响至今, 它仍然广泛应用于工业界。

Faster-RCNN流程主要是: 端到端训练网络两阶段, 1. 候选区域网络(RPN, region proposal networks, 1x1-conv区分目标, 即前景与背景 & 3x3-conv【候选区】 -> 2.ROI层 类别分类和框回归(ROI Pooling Classification Regression)

Faster-RCNN目标检测流程图

特点:

  • 1.Faster RCNN深度学习检测算法是第一个真正意义上可以端到端训练、推理、近实时性能的, 将候选框提取并引入卷积神经网络;
  • 2.提出区域生成网络(RPN, region proposal networks), 传统的基于滑窗的无类别object检测器融入CNN网络;
  • 三、提出锚点(Archor)概念, 即预设一组不同尺度不同位置的固定参考框,覆盖几乎所有位置和尺度,每个参考框负责检测与其交并比大于阈值 (训练预设值,常用0.5或0.7) 的目标, anchor技术将问题转化为"在这个固定的参考框中,目标框偏离参考框有多远?", 不再需要多尺度遍历滑窗, 大大提高了速度。同时anchor的存在, 不同物体的中心点也解决了grid cell中的问题;
  • 4.RPN VGG shared模型推理耗时0.198s(0.198)/image, 每张图片使用300张 proposals, PASCAL-VOC-73.2%mAP, PASCAL-VOC-7012年数据集.4%mAP, 达到了新的stoa;

2.1.5 FPN(2017)

FPN块block图

金字塔网络的特点(FPN, Feature Pyramid Networks), 它是一种的网络架构具有横向连接, 高级语义信息可以从不同尺度的高底网络层中提取, 是CV提高模型精度最重要的技术之一。

FPN流程主要是: 1.骨干网络backbone(ResNets) -> 2.颈部网络neck(FPN) ->3.头部网络head(RPN Fast R-CNN)

FPN目标网络架构图

特点:

  • 1.FPN特色金字塔网络, 目标检测最流行的架构最初形成(backbone/neck/head), 金字塔结构包括自底向上的线路, 自顶向下的线路与横向连接, 即特征提取/上采样/特征融合/多尺度特征输出。
  • 2.FPN模型推理耗时 4 FPS(0.25s/image), COCO数据集上mAP@.5达到59.1%, mAP@[.5,.95]达到36.2%, 当时新的stoa。

2.2 单阶段目标检测算法(one-stage)

2.2.1 YOLO(2016)

YOLOv1网络架构图

YOLO一系列目标检测算法是目标检测任务中最受欢迎的, 算法应用最广泛, 特别是在工业领域, 是非常经典的单阶段模型(one-stage)。 YOLO系列历史:

  • YOLOv1: Archor-Free, 1.骨干网络backbone(Darknet框架改写的GoogLeNet) -> 2.颈部网络neck(FC-4096 FC-30) ->3.头部网络head(Grip网格MSE); 检测速度提高,但精度降低(PASCALVOC-2007数据集上mAP有63.4%, 推理速度 45 FPS)。
  • YOLOv2: Archor-Based, 1.骨干网络backbone(Darknet-19, 类似VGG) -> 2.颈部网络neck(FC-4096 + FC-30) ->3.头部网络head(Grip网格MSE); 检测精度与Faster RCNN相当的情况下速度可达 40 FPS。tricks如下:BatchNorm + AVGPool + passthrough-layer + high-pixel + anchor-boxes + dimension-clusters + direct-location-prediction + multi-scale-training + hierarchical-classification。
  • YOLOv3: Archor-Based, 1.骨干网络backbone(DarkNet-53, 类似ResNet) -> 2.颈部网络neck(三条分支检测, 类似FPN) ->3.头部网络head(Logistic替换Softmax); 在COCO数据集上mAP@.5可达57.9%, mAP@[.5, .95]可达33.0%的情况下, 推理速度有20 FPS(0.051s/image)
  • YOLOv4: Archor-Based, 1.骨干网络backbone(CSPDarknet53, 类似DenseNet) -> 2.颈部网络neck(SPP + PAN) ->3.头部网络head(YOLOv3); 在COCO数据集上mAP@.5可达65.7%, mAP@[.5, .95]可达43.5%的情况下, 推理速度有23 FPS(0.043s/image)。tricks:Mosaic增强、cmBN、SAT对抗、CSPDarknet53、Mish、Dropblock、SAM、SPP(类似FPN+PAN)、CIOU、DIOU_NMS。

YOLOv4网络架构图

2.2.2 SSD(2016)

SSDv1网络架构图

SSD网络诞生于FPN前, 是多尺度目标检测的先驱, 特点一是不同尺度的特征图来做检测, 二是采用了不同尺度和长宽比的先验框(Prior boxes, Default boxes), 但是因为没有哦后续版本的缘故, 不如YOLO系列有名气。

SSD流程主要是: 1.骨干网络backbone(VGG) -> 2.颈部网络neck(Multi-scale feature maps) ->3.头部网络head(3x3conv); PASCAL-VOC-2007数据集上mAP有74.3%, 推理速度 59 FPS, 优于YOLOv1。

2.2.3 RetinaNet

RetinaNet网络架构图

RetinaNet网络主要解决一阶段网络训练中存在的类别不平衡问题,提出能根据Loss大小自动调节权重的Focal-loss。

RetinaNet流程主要是: 1.骨干网络backbone(ResNet) -> 2.颈部网络neck(FPN) ->3.头部网络head(class-subnet(top) + box-subnet(bottom) + focal-loss)

RetinaNet在COCO数据集上mAP@.5可达59.1%, mAP@[.5, .95]可达39.1%的情况下, 推理速度有5 FPS(0.198s/image)。

RetinaNet的损失函数Fcoalloss图

三、Archor-Free

3.1 基于多关键点

3.1.1 CornerNet(2018)

CornerNet网络架构图

CornerNet是Anchor free技术路线的开创之作,提出新的对象检测方法,将网络对目标边界框的检测转化为一对关键点的检测(即左上角和右下角),通过将对象检测为成对的关键点,而无需设计Anchor box作为先验框。

CornerNet流程主要是: 1.骨干网络backbone(hourglass, 姿态预测领域, 类似UNet) -> 2.颈部网络neck(Corner-Pooling + 3x3conv-bn) ->3.头部网络head(3x3Conv-ReLU + 1x1Conv);

CornerNet在COCO数据集上mAP@.5可达57.8%, mAP@[.5, .95]可达42.2%的情况下, 推理速度有4 FPS(0.250s/image)。

3.2 基于单中心点

3.2.1 CenterNet(2019)

CenterNet目标示意图

CenterNet直接预测物体bbox的中心点和尺寸, 在预测阶段不需要NMS操作, 真正意义上的Archor-Free。

CenterNet流程主要是: 1.骨干网络backbone(Resnet-18/DLA-34/Hourglass-104) -> 2.颈部网络neck(FC-channel-heatmap) ->3.头部网络head(focal-loss + L1);

CenterNet在COCO数据集上mAP@.5可达63.5%, mAP@[.5, .95]可达45.1%的情况下, 推理速度有1.4 FPS(0.714s/image)。

四、数据集

格式

一般常用的格式有COCO和VOC,即COCO(Common Objects in Context)比赛、VOC(The PASCAL Visual Object Classes)比赛。

COCO数据格式采用json格式存储label标注信息等, VOC数据格式则是采用xml格式存储。

参考资料 Archor-Based

  • R-CNN: Rich feature hierarchies for accurate object detection and semantic segmentation
  • SPPNet: Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
  • Fast R-CNN: Fast R-CNN
  • Faster R-CNN: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
  • YOLOv1: You Only Look Once: Unified, Real-Time Object Detection
  • SSD: SSD: Single Shot MultiBox Detector
  • FPN: Feature Pyramid Networks for Object Detection
  • YOLOv2: YOLO9000: Better, Faster, Stronger
  • RetinaNet: Focal Loss for Dense Object Detection
  • Mask R-CNN: [Mask R-CNN] (http://openaccess.thecvf.com/content_ICCV_2017/papers/He_Mask_R-CNN_ICCV_2017_paper.pdf)
  • YOLOv3: YOLOv3: An Incremental Improvement
  • Cascade R-CNN: Cascade R-CNN: Delving into High Quality Object Detection
  • CornerNet: CornerNet: Detecting Objects as Paired Keypoints
  • NAS-FPN: NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection
  • YOLOv4: YOLOv4: Optimal Speed and Accuracy of Object Detection
  • EfficientDet: EfficientDet: Scalable and Efficient Object Detection
  • DETR: End-to-End Object Detection with Transformers

参考资料 Archor-Free

  • DenseBox: DenseBox: Unifying Landmark Localization with End to End Object Detection
  • ExtremeNet: Bottom-up Object Detection by Grouping Extreme and Center Points
  • FSAF: Feature Selective Anchor-Free Module for Single-Shot Object Detection
  • FCOS: FCOS: Fully Convolutional One-Stage Object Detection
  • CornerNet: CornerNet: Keypoint Triplets for Object Detection
  • CenterNet: Objects as Points
  • ATSS: Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection
  • YOLOX: YOLOX: Exceeding YOLO Series in 2021

标签: 矩形连接器he006

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台