目标识别

Deep Residual Learning for Image Recognition

Kaiming He大神2015发表

Abstract

越深的model越难训练。而大神的方法可以比以前网络更深(152层)的同时还易于optimize。

Introduction

深度学习刚开始认为model层数越多越好,然后发现到一定程度增加层数会有退化degradation的效果,所谓梯度消失/爆炸问题。
所以这里提出的方法是F(x)+x,在网络中就相当于增加可以跨越一层或者多层的捷径,关键是这操作还不需要增加模型参数和计算复杂度。
摆试验结论:对照组层数增加误差增加,而resnet轻松享受增加层数带来的好处

试验结果

单模型resnet152的top-5 error达到了4.49%,6个不同深度的模型组合达到了 3.57%
普通网络18层精度比34层高。而resnet18比普通18收敛快。
resnet1202比resnet101差,可能是因为参数相对于数据集太大导致。

PVANet : Lightweight Deep Neural Networks for Real-time Object Detection

Sanghoon Hong 2016发表

Abstract

减少计算量的情况下提高多类别分类任务精度,使用less channels with more layers。结果是voc2007的mAP达83.8%,voc2012达82.5%(第二)。计算量是resnet101的12.3%。

Rich feature hierarchies for accurate object detection and semantic segmentation (RCNN)

Ross Girshick 2014发表

Abstract

提出方法比先前的组合模型在VOC2012提高mAP约30%,达到53.3%。

Introduction

关注如何用一个深层模型来定位目标,仅使用少量标注检测数据训练一个高容量的模型
定位此前滑动窗口被用了近20年,最佳模型OverFeat在ILSVRC2013的mAP是24.3%,而rcnn达到了31.4%。
有监督的预训练加上特定领域的微调。

  1. 输入图片
  2. 提取约2000个与类别无关的proposals
  3. 使用一个大CNN模型提取每个proposal的特征
  4. 使用特定类别的SVM对proposals进行分类

bbox regression

将预测的bbox P与gt的bbox G之间做一个映射
G_x = P_w * d_x(P) + P_x
G_y = P_h * d_y(P) + P_y
G_w = P_w * exp(d_w(P))
G_h = P_h * exp(d_h(P))

第pool5特征的线性函数
d_#(P) = w_#^T * phi_5(P) 其中#表示x,y,w,h

用ridge regression学习w_#,而其target
t_x = (G_x - P_x)/P_w
t_y = (G_y - P_y)/P_h
t_w = log(G_w/P_w)
t_h = log(G_h/P_h)

只对与gt的IoU高于0.6的P进行学习,其他的丢弃

Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

Kaiming He 2014发布
SPP-net可以确保输出的尺寸不变,不管输入图片的尺寸。这个方法只计算一次特征图,然后对随机区域pool到固定长度的representation,然后训练detector。
实现比RCNN快24-102倍情况下效果还略好。
对特征图分别进行全部pool得1个256维的向量,再分4块pool得4个256维向量,再分16块pool得到16个256维向量,把这些向量组合起来,得到21*256维的向量(固定长度),再接全连接层。

Fast R-CNN Ross Girshick

训练VGG比R-CNN快9倍,测试快213倍,精度还要高些。比SPPnet训练3倍,测试快10倍,精度也高些。
一个模型直接包括定位和识别。
RCNN慢是因为每次都需要重新计算特征图,而SPPnet一次计算特征图有共享的效果所以快。这两种方法也都是需要分步操作的。

  1. 输入图像和多个roi到全卷积网络FCN,输入的ROI被prejecting到特征图上面的roi。
  2. 对特征图roi进行pool到固定尺寸,再使用全连接层FCs变成特征
  3. 每个特征roi都最终连了两个输出:softmax probabilities、per-class bbox regression offsets
  4. 使用多任务loss进行end-to-end 训练。

Truncated SVD减少推理时间30%。

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

Shaoqing Ren 2015
提出RPN网络,将全卷积的特征与检测分享,同时给出目标位置和类别分数,达到接近零cost的proposal。拿下ILSVRC and COCO的2015第一名。

在共享的特征图的最后一层上,用一个nxn的窗口进行滑动(3x3感受野约171ZF和228VGG),nxn进行卷积引出两个分支cls和reg,每个窗口设定了最大proposal数量k,因此cls为是目标或不是目标2个因此是2k个,而reg就是4k个了

You Only Look Once: Unified, Real-Time Object Detection

Joseph Redmon 2015
将目标检测问题构建为regression用以获得分离的边界框类别概率。极快。相较于其他方法的定位精度稍逊,但不太可能误判背景。

  1. resize输入到448x448
  2. 运行cnn
  3. 根据模型的confidence对检测结果进行阈值处理

YOLO看全局信息,比fast rcnn少一半的背景误差。

将输入图片划分为SxS的grid,每个grid预测B个bbox和C个概率,因此编成S * S * (B5 + C)的预测
每个bbox后面附赠一个有目标的confidence,因此是B
5
类别数量C

YOLO的泛化性能强。即只在VOC2007训练,然后在Picasso dataset和people-art dataset做测试,比R-CNN强(而R-CNN在VOC2007的mAP最高)

Inside-Outside Net: Detecting Objects in Context with Skip Pooling and Recurrent Neural Networks

Sean Bell 2015
PASCAL VOC 2012的mAP达到76.4%,在MS COCO dataset,mAP有33.1%
将roi外部的contextual信息用RNNs考虑进来,其余部分有点像SPPnet的操作+RCNN的detection

R-FCN: Object Detection via Region-based Fully Convolutional Networks

Jifeng Dai

VOC2007的mAP达83.6%,比Faster R-CNN快2.5-40倍

SSD: Single Shot MultiBox Detector

Wei Liu

voc2007达到mAP 72.1%,比Faster rcnn快
有8x8和4x4的特征图grid,在每一个位置有几个不同长宽比的默认框,将其与gt框重叠的为positive,其余作为negative,每个框有4个坐标和c个confidence

YOLO9000 (YOLO V2)

应用了BN,提高了输入resolution,不限定输入图像尺寸,等操作,better、faster、stronger

YOLOv3

借鉴Resnet设计的darknet53,提高了小目标检测能力;增加了多尺度特征融合,即下采样和上采样融合。将softmax改为logistic支持多标签。
YOLO原作者因为技术被用作军事和隐私而退出。

YOLOv4

ultralytics 增加了一些功能,权序列连接 (WRC)、跨阶段部分连接 (CSP)、交叉迷你批归一化 (CmBN)、自对抗训练 (SAT)、误激活、马赛克数据增强、DropBlock 正则化和 CIoU 损失

YOLOv5

ultralytics 无锚点分割Ultralytics Head,优化准确性与速度之间的权衡,多种预训练模型

YOLOv6

美团
双向串行 (BiC) 模块:YOLOv6 在探测器的颈部引入了双向并联(BiC)模块,可增强定位信号并提高性能,而速度降低可忽略不计。
锚点辅助训练(AAT)策略:该模型提出的 AAT 可同时享受基于锚和无锚范式的优势,而不会降低推理效率。
增强型骨干和颈部设计:通过深化 YOLOv6,在骨干和颈部加入另一个阶段,该模型在高分辨率输入的 COCO 数据集上实现了最先进的性能。
自蒸馏策略:为了提高 YOLOv6 较小模型的性能,我们采用了一种新的自蒸馏策略,在训练过程中增强辅助回归分支,在推理过程中去除辅助回归分支,以避免速度明显下降。

YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

Chien-Yao Wang 2022
模型重新参数化:YOLOv7 提出了一种有计划的重新参数化模型,这是一种适用于不同网络层的策略,具有梯度传播路径的概念。

动态标签分配:多输出层模型的训练提出了一个新问题:”如何为不同分支的输出分配动态目标?为了解决这个问题,YOLOv7 引入了一种新的标签分配方法,即从粗到细的引导标签分配法。

扩展和复合缩放YOLOv7 为实时对象检测器提出了 “扩展 “和 “复合缩放 “方法,可有效利用参数和计算。

效率:YOLOv7 提出的方法能有效减少最先进的实时物体检测器约 40% 的参数和 50% 的计算量,推理速度更快,检测精度更高。

YOLOv8

Ultralytics
先进的骨干和颈部架构: YOLOv8 采用了最先进的骨干和颈部架构,从而提高了特征提取和物体检测性能。
无锚分裂Ultralytics 头: YOLOv8 采用无锚分裂Ultralytics 头,与基于锚的方法相比,它有助于提高检测过程的准确性和效率。
优化精度与速度之间的权衡: YOLOv8 专注于保持精度与速度之间的最佳平衡,适用于各种应用领域的实时目标检测任务。
各种预训练模型: YOLOv8 提供一系列预训练模型,以满足各种任务和性能要求,从而更容易为您的特定用例找到合适的模型。

YOLOv9

YOLOv9 在其架构中加入了可逆函数,以降低信息退化的风险
PGI 是 YOLOv9 为解决信息瓶颈问题而引入的一个新概念,可确保在深层网络中保留重要数据。这样就能生成可靠的梯度,促进模型的准确更新,提高整体检测性能。
GELAN 是一项战略性的架构进步,使 YOLOv9 能够实现更高的参数利用率和计算效率。
YOLOv9c 模型尤其凸显了架构优化的有效性。与 YOLOv7 AF 相比,它的运行参数减少了 42%,计算需求减少了 21%,但精度却不相上下,这表明 YOLOv9 的效率有了显著提高。此外,YOLOv9e 模型还为大型模型设立了新标准,其参数比 YOLOv7 AF 少 15%,计算需求比 YOLOv7 AF 少 25%。 YOLOv8x相比,参数减少了 15%,计算需求减少了 25%,同时 AP 增量提高了 1.7%。
这些结果展示了 YOLOv9 在模型设计方面的战略性进步,强调了它在提高效率的同时并没有降低实时物体检测任务所必需的精度。该模型不仅突破了性能指标的界限,而且强调了计算效率的重要性,使其成为计算机视觉领域的一项关键性发展。

Segment Anything

Alexander Kirillov 2023
在大语言模型中网络级别的大数据训练可以让NLP模型泛化到未见数据。这种容量与prompt engineering常在一起使用。cv目前缺少大量的数据。
提出SA-1B分割数据集,比现有任何都大400倍以上

自动标注是SAM 的一项重要功能,允许用户使用预先训练好的检测模型生成分割数据集。这一功能可以快速、准确地标注大量图像,避免了耗时的人工标注。

RT-DTER

百度 2023
极快,效果好的一个detection model