0%

1. RetinaNet 简介

paper: https://openaccess.thecvf.com/content_ICCV_2017/papers/Lin_Focal_Loss_for_ICCV_2017_paper.pdf

code: https://github.com/facebookresearch/Detectron

RetinaNet 检测算法出自Facebook AI Research的论文 Focal Loss for Dense Object Detection, 作者包含了RCNN作者Ross Girshick、何恺明和Piotr。

主要提出了Focal Loss解决单阶段检测算法中的类别不均衡问题,(正负样本不均衡,难易样本不均衡),使得RetinaNet这个单阶段检测网络达到甚至超越了部分两阶段的目标检测网络。

image-20220421153931298

image-20220421165137132

单阶段检测网络相比两阶段网络精度较差的原因很大层面是由于类别的不均衡。

单阶段在Head的特征图上会产生密集的目标候选区域,要远超RPN产生的2000个proposals。而这些proposals只有很少一部分包含目标物体,从而造成了较为严重的正负样本不均衡的问题,少量正样本提供的loss在整体loss中占比较小,影响了模型对于正样本的学习效果。

2. 网络结构

image-20220421160303368

RetinaNet网络结构包含 BackBone、 FPN的Neck, 以及最后的包含两个自网络的Head部分。

阅读全文 »

一 、PSPNet简介

Pyramid Scene Parsing Network 金字塔场景解析

image-20220414150732882

  • PSPNet 通过金字塔池模块和提出的金字塔场景解析网络,聚合了基于不同区域的上下文信息,来挖掘全局上下文信息的能力。
  • PSPNet为像素级场景解析提供了有效的全局上下文先验。
  • 在计算量方面,PSPNet并没有比原来的空洞卷积FCN网络有很大的增加。
  • 金字塔池化模块可以收集具有层级的信息,比全局池化更有代表性。
  • 在端到端学习中,全局金字塔池化模块和局部FCN特征可以被同时训练。

PSP提出的契机:

  • 基于FCN的模型的主要问题是缺乏合适的策略来利用全局场景中的类别线索 :
    • 分割结果不够精细
    • 没有考虑上下文

PSPNet效果好的主要原因:

  • 多尺度特征融合

  • 基于结构进行预测

    PSPNet通过利用不同大小的池化来增大感受野从而融合上下文全局信息。

阅读全文 »

1. TensorRT Engine转换

image-20220407191446932

总体上有这三条路线可以将其他框架的模型转换为TRT Engine。

image-20220407191744609

也有一些通过C++直接调用TensorRT API来直接定义相关网络模型,例如tesorrtx, 这样操作可以精确的控制每个layer的细节和权重,对不支持的算子可以灵活自定义。Yolov5也官方引用了这个repo,所以这个repo还是很厉害的,构建了众多通用的网络模型。

阅读全文 »

1. Cascade R-CNN 提出的背景

paper: https://arxiv.org/pdf/1712.00726.pdf

算法针对的背景问题如下:

在RCNN框架的目标检测中,通过目标框和检测框之间的IoU(Intersection over union)来划分正负样本,会面临几个问题。

  • 使用较低的IoU阈值,会有众多背景框参与训练,影响目标框的检测效果,带来干扰的噪声。
  • mismatch问题,由于IoU阈值的筛选,training阶段的proposals质量更高,而inference阶段未经过筛选,所以proposals质量则相对较差,
  • 使用较高的IoU阈值,高质量检测框数量减少,网络训练时容易过拟合,

image-20220420142959151

上图标识RPN输出的proposals在各个IoU范围内的数量分布,可以看到随着IoU阈值的提高,相对应的proposals数量逐渐减少。

image-20220420161546529

上图(c),横轴 Input IoU 表示 RPN 输出的 proposal 与 gt bbox 的 IoU,纵轴 Output IoU 是经过 RCNN 的 bbox 分支回归输出后与 gt bbox 的 IoU,不同线条代表不同阈值训练出来的 detector。以 u=0.5 为例,当对 RPN 输出的 proposal 使用阈值 0.5 来切分正负样本,对于那些 bbox 质量较差(也算正样本,0.5 < Input IOU < 0.55), 经过 R-CNN 回归后效果提升明显,IoU 可以直接回归到 0.75 (和正样本分布有关系,在该区间内的正样本比较多),且随着 proposal 质量增加,RCNN 回归后的 bbox 质量也会增加,但是 Input IoU 越大的 proposal,回归后提升越来越不明显,虽然精度没有下降。再看 u=0.7,对于低质量 proposal,其提升较少,这主要因为低质量的 proposal 被滤掉,没有得到训练,但是对于高质量 的bbox,提升较大。

阅读全文 »

1. Libra RCNN

paper: https://arxiv.org/pdf/1904.02701.pdf

“无痛涨点,实现简单,良心paper” 大概是对这篇论文最好的诠释了,作者来自浙大、港中文、商汤。

image-20220422102604065

论文指出了通用检测方法中的三个层次的不平衡问题:

  • sample level
  • feature level
  • objective level

这里引用作者知乎的一个解释:

这篇paper其实是对现有的detector training做了一个overall visit,现有大部分detector其实都遵从select region,extract feature,然后在multi-task loss的引导下逐渐收敛。那么,detector到底能不能train好,其实就跟这三部分关系很大。

  1. 选择的region够不够有代表性,能给training process提供更多的信息
  2. 抽取的feature能不能被后续的detector更好的利用
  3. 设计的objective function能不能引导整体训练更好的收敛

image-20220422105723541

文章针对性的提出了解决这三种imblance问题的方法:

  • 提出 IoU-balanced sampling 解决 sample level 的 imbalance
  • 提出 balanced feature pyramid 解决 feature lavel 的 imbalance
  • 提出 balanced L1 loss 解决 objective level 的 imbalance
阅读全文 »

1. DenseBox

paper: https://arxiv.org/pdf/1509.04874.pdf

code: https://github.com/CaptainEven/DenseBox

最近在看文本检测算法EAST,其核心思想与DenseBox很是相似,结合了Unet结构。DenseBox是比较早期的Anchor-Free目标检测算法,方法本身有很多值得借鉴的地方,很多思想也比较超前, 比如端到端的训练和识别,多尺度特征融合,结合关键点增强检测效果等。

image-20220124190818693

image-20220124191404862

整体架构如Figure1所示,测试时,输入图片大小为(mxnx3),输出为(m/4 x n/4 *5),第一维s为分类置信度,后四维为像素位置至目标边界的距离,转化为bbox后进行后处理NMS得到最终的检测结果。

阅读全文 »

1. EAST

EAST: An Efficient and Accurate Scene Text Detector

paper : https://arxiv.org/pdf/1704.03155.pdf

code:

EAST算法整体框架如下图(e)所示, 第一个阶段是一个全卷积网络,结合了Unet的跨层特征聚合操作,直接输出文本框的预测,第二个阶段是对生成的文本预测框(旋转矩形或者矩形)通过NMS输出最终结果。

image-20220120160214048

核心思想:

  • 提出两阶段的文本检测方法:全卷积网络(FCN)和非极大值抑制(NMS),消除中间过程冗余,减少检测时间。
  • EAST可以检测单词级别,又可以检测文本行级别.检测的形状可以为任意形状的四边形。
  • 采用了Locality-Aware NMS来对生成的几何进行过滤。
阅读全文 »

CTPN文本检测算法

不同于自然界的其他单独物体,例如行人,物品等,文本信息蕴含更多的序列信息,文本可以由”单个字符、字符的一部分、多个字符”组织成一个sequence,文本目标不像行人 或者物体这种普通目标具有独立,封闭的范围。所以在目标检测算法中融入循环神经网络(RNN, LSTM),利用上下文信息进行文本检测是一个不错的方法。

文本检测相较于一般的目标检测,主要有以下几种区别:

  • 文本信息边界不易确定, 例如单词内的空格与单词间的空格会导致文本的边界范围不清晰。
  • 文本信息蕴含序列特征,上下文的序列信息有助于文本检测。
  • 文本行的长度变化范围较大,相比如普通物体的尺度信息,普通检测算法难以生成质量好的Region Proposal(或者称为 Text Proposal)。

image-20220119144903230

上图展示了用Faster-RCNN网络和CTPN的检测效果,可以看到通用的目标检测算法的检测框会偏移较多,且对文本信息的边界定义比较模糊,而CTPN算法要准确的多。

阅读全文 »