特征金字塔 FPN
FPN 是 CNN 网络的一个重要模块,通常伴随着一个具体任务存在,如目标检测。FPN 的核心是对多个语义特征层采用横向连接和自顶向下的连接,这样简单的操作就能解决目标检测中的多尺度问题,让浅层特征获得更强的语义,让高层特征保留多尺度表达。
FPN 是 CNN 网络的一个重要模块,通常伴随着一个具体任务存在,如目标检测。FPN 的核心是对多个语义特征层采用横向连接和自顶向下的连接,这样简单的操作就能解决目标检测中的多尺度问题,让浅层特征获得更强的语义,让高层特征保留多尺度表达。
RetinaNet 的网络和运行机制也是结合了 YOLO 和 Faster R-CNN,以及在此基础上增加的特征金字塔 FPN,但实际上,更大的贡献在于 Focal Loss 损失函数的设计,更优雅的解决了单阶段目标检测算法的正负样本问题,Focal Loss 的成功也深刻影响了后续许多单阶段目标检测算法的设计。
在 FCOS 算法中,完全移除了与锚框相关的复杂计算和大量超参数,使模型设计更简单,训练更稳定,同时,FCOS 通过逐像素预测和中心度这两个核心设计,在保持单阶段检测器速度优势的同时,实现了与两阶段检测器相媲美的精度,为后续的无锚框检测算法奠定了重要基础。
SSD 借鉴了 YOLO v1 的单阶段的目标检测的速度优势,同时又借鉴了 Faster R-CNN 中 Anchor 的设计逻辑,增加了先验框,相比较与 two-stage,保留了速度的优势,同时又能提升整体的效果;在此基础上,还采用了层级的特征图,优化了在 YOLO v1 中只有单个特征图的问题,能够同时适应大目标和小目标。要注意一点的是,在 SSD 中先验框是相对于原图设计的,其先验框...
YOLO v2 在 YOLO v1 的基础上,重点解决 YOLO v1 的两个痛点:定位不够准和召回率偏低。通过引入 Anchor Box,并在 Anchor Box 的基础上,学习基于此的微调,能够极大降低学习的难度;同时,每个 cell 引入了 5 个 Anchor Box,再加上两个语义特征层,可召回的数量极大提升,这也奠定了 YOLO 的基本框架,为后续的优化升级奠定了基础。
YOLO v1 的提出开创了 one-stage 的目标检测,检测速度得到了极大提升,但是从上述 YOLO v1 的整个过程来看,YOLO v1 中也存在着很多的问题,如每个 cell 预测 B 个候选框,如果两个物体靠得很近,检测效果并不好,同时也导致对密集物体的检测效果欠佳;算法中对负样本的定义,导致了大量背景负样本的存在,缺乏对困难负样本的学习,这也会导致模型效果受到影响。得益于其优秀...
Fast R-CNN 在 R-CNN 的基础上,通过 CNN 对全图提取特征,同时保留了 Selective Search 在原图生成 RoI 的过程,通过特征映射将原图的 RoI 映射到特征图上,最后通过 RoI Pooling 得到固定的尺寸,方便后续的分类和回归计算。纵观整个过程,Proposal Region 的特征计算只需要一次 CNN 计算加上特征映射就能完整,同时,摒弃掉了 R...
在 CRNN 的网络结构中包含了三个组成部分,分别为卷积层,循环层和转录层,而至关重要的是转录层。在转录层中不得不提的便是 CTC 算法,文中也知识对 CTC 算法做了简要的概述,通过实验过程,可以发现,在具体的实现的过程中仍然存在很多的 tricks,但不得不提的是,模型的大小确实很小。不得不让人惊叹如此小的模型能有如此的效果。
文章主要是基于 TorchVision 中的 fasterrcnn_resnet50_fpn 模型,在新的数据集上 Finetune,完成基本的 Fast R-CNN 在口罩检测任务上的实践,这其中只是对 Faster R-CNN 的原理有粗略的涉及,要想理解其中的具体过程,还需要对其源代码做详细的理解。
全卷积网络(Fully Convolutional Networks,FCN)是 Jonathan Long 等人于 2015 年提出,也是首个基于卷积神经网络的图像语义分割的方案,实现了由卷积网络实现的端到端的图像语义分割。
ViT模型将Transformer引入到图像的分类中,更准确的说是Transformer中的Encoder模块。为了能够尽可能少地对原始模型的修改,在ViT中将图像转换成一维的序列表示,以改成标准的文本形式,通过这种方式实现Transformer在CV中的应用。
在2016年Kaipeng Zhang, Zhanpeng Zhang等人提出了人脸检测算法MTCNN(Multi-task Cascaded Convolutional Networks)模型,MTCNN算法的效果也是得到了很多实际项目的验证,在工业界得到了广泛的应用,在我个人的实际项目中也得到了较多应用。
在GAN中,无论是生成过程还是判别过程都是无任何指导的,Conditional GAN[1]提出在上述的两个过程中引入一个条件,以此指导上述的两个过程。
针对不同大小的输入图像,在传统CNN网络中,需要首先将图像通过裁剪或者拉伸等变换转换到固定大小,通过分析,不同尺寸的输入主要是对全连接层有影响,SPP-Net中,在全连接层之前引入Spatial Pyramid Pooling Layer,可以将任意大小的输入转换成固定大小的输出。