CV目标检测模型小抄(1)

前言

写完 CV领域经典backbone模型小抄(1) 之后,我们知道,backbone加上分类头就可以做分类任务了,那么如果backbone加上一些目标检测和实例分割头,其实也可以做实例分割任务。
该文用来记录一些常见的目标检测方法。
CV领域经典backbone模型小抄(1)
CV目标检测模型小抄(1)
CV实例分割模型小抄(1)

本文不断更新ing…


CNN

Faster RCNN合集

Two stage的算法,需要先生成anchor/proposal, 然后预测出目标。

RCNN

Ross Girshick的作品
论文: Rich feature hierarchies for accurate object detection and semantic segmentation
有篇知乎文章也讲得不错 RCNN- 将CNN引入目标检测的开山之作

截图来自: Faster RCNN理论合集_RCNN_霹雳吧啦Wz 2:40时刻
CV目标检测模型小抄(1)_第1张图片
RCNN 利用 Selective Search 算法得到两千个候选区域, 然后将它们缩放到227227,然后讲候选区域输入到AlexNet中获得4096维特征。(2000各区域就有20004096个特征),然后交给svm分类器,有多少个类别就有多少个分类器。
由于候选区域很多,因此需要采用 非极大值抑制 的方法,具体就是,寻找得分最大的目标,计算与其他区域的(A∩B / A∪B)IOU值,若大于阈值则删除。 最后一步是使用回归器去修正候选框的位置,有多少个类别就有多少个回归器,回归器利用的也是上述提到的4096维度的输出特征。
截图来自: Faster RCNN理论合集_RCNN_霹雳吧啦Wz 13:37时刻
CV目标检测模型小抄(1)_第2张图片

不过该网络输出很慢,一张图片需要1分钟左右,训练过程繁琐,需要较大内存。


Fast RCNN

同样是Ross Girshick的作品
论文: Fast R-CNN, ICCV 2015
有篇知乎帖子也不错 目标检测之Fast RCNN
CV目标检测模型小抄(1)_第3张图片

使用VGG16作为backbone

通过Selective Search的2000个区域,然后再采样正样本和负样本。



Faster RCNN

依然是Ross Girshick的作品
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, 有一个讲Faster RCNN的帖子 【论文解读】精读Faster RCNN
代码: torchvision/models/detection/faster_rcnn.py,
也有一个知乎帖子讲Faster RCNN的代码 捋一捋pytorch官方FasterRCNN代码
另外还有一个大佬的代码 deep-learning-for-image-processing/pytorch_object_detection/faster_rcnn/, 他还录制了6个小时的讲解视频…Faster RCNN源码解析(pytorch)

从标题我们也可以看出,作者用 Region Proposal Networks 替代了 Selective Search算法(因为它处理一张图需要2s左右)

CV目标检测模型小抄(1)_第4张图片

原始论文也是使用VGG16作为backbone

截图: Faster RCNN理论合集_FasterRCNN_霹雳吧啦Wz 15:32时刻
CV目标检测模型小抄(1)_第5张图片

anchor是靠人工先验定义的,通过RPN输出候选区域,然后再去采样。

原文是RPN+Fast RCNN分步骤训练的,不过现在大多是联合训练(例如pytorch官方)。

另外,如果Faster RCNN后半段换成FPN, 在pascal和coco的AP可以提两三个点。关于 FPN可查看: FPN结构详解_霹雳吧啦Wz, 十几分钟的讲解视频, 原论文Feature Pyramid Networks for Object Detection, CVPR 2017

CV目标检测模型小抄(1)_第6张图片

预测头预测个数:

  • 类别: k × ( c + 1 ) k \times (c+1) k×(c+1)
  • 位置: k × 4 × ( c + 1 ) k \times 4 \times (c+1) k×4×(c+1)

其中k为proposal数目,c为预测的类别数目, 这里通常会加上背景类, 故加1



SSD

CV目标检测模型小抄(1)_第7张图片

ECCV 2016, one stage.
论文: SSD: Single Shot MultiBox Detector
讲解视频: SSD算法理论_霹雳吧啦Wz
代码: deep-learning-for-image-processing/pytorch_object_detection/ssd/, 配对的代码讲解视频 SSD源码解析(Pytorch)_霹雳吧啦Wz
预测头预测个数:

  • 类别: k × ( c + 1 ) k \times (c+1) k×(c+1)
  • 位置: k × 4 k \times 4 k×4

其中k为default Box(类似于Faster RCNN总的proposal)数目,c为预测的类别数目, 这里通常会加上背景类, 故加1


RetinaNet

CV目标检测模型小抄(1)_第8张图片

one-stage首次超过two-stage, 大神何恺明的作品(Tsung-Yi Lin,Priya Goyal Ross,Girshick,Kaiming He ,Piotr Dollar)

  • 论文: Focal Loss for Dense Object Detection
  • 代码: facebookresearch/Detectron, 包括Mask RCNN在内的很多模型的优秀仓库, 另一个大佬的代码 deep-learning-for-image-processing/pytorch_object_detection/retinaNet/
  • 模型讲解: RetinaNet网络结构详解

可惜与yolov3对比,速度太慢了…

截图来自: RetinaNet网络结构详解 2:15时刻

CV目标检测模型小抄(1)_第9张图片

预测头预测个数:

  • 类别: c × A c \times A c×A
  • 位置: 4 × A 4 \times A 4×A

其中,A 是default box的个数, c是要分辨的类别个数(不包括背景)

与FastRCNN和SSD不同的是,RetinaNet使用所有的正负样本而不进行正负样本采样。



Yolo

YoloV1

2016 CVPR

  • 论文: You Only Look Once: Unified, Real-Time Object Detection
CV目标检测模型小抄(1)_第10张图片



Yolov2



Transformer


你可能感兴趣的:(人工智能,目标检测,深度学习,人工智能)