当前位置:网站首页>利用Transformer来进行目标检测和语义分割
利用Transformer来进行目标检测和语义分割
2022-07-02 06:26:00 【MezereonXP】
介绍
这次介绍的是Facebook AI的一篇文章“End-to-End Object Detection with Transformers”
恰好最近Transformer也比较热门,这里就介绍一下如何利用Transformer来进行目标检测以及语义分割。
关于Transformer,可以参考我的这篇文章。
这里我简要地介绍一下Transformer,这是一个用于序列到序列建模的模型架构,被广泛应用于自然语言翻译等领域。Transformer抛弃了以往对序列建模的RNN形式的网络架构,引入了注意力机制,实现了不错的序列建模以及变换能力。
大致架构以及流程

如上图所示,这里面主要分为两个部分:
- Backbone:主要是CNN,用来抽取高级语义特征的
- Encoder-Decoder:将高级语义特征利用并给出目标预测
更为细节地,给出如下的架构

我们按顺序地给出流程:
- 输入图片,形状为 ( C 0 , H 0 , W 0 ) (C_0, H_0,W_0) (C0,H0,W0), 其中 C 0 = 3 C_0 = 3 C0=3代表通道数量
- CNN抽取特征之后,得到 ( C , H , W ) (C,H,W) (C,H,W)形状的张量,其中 C = 2048 , H = H 0 32 , W = W 0 32 C=2048, H=\frac{H_0}{32}, W=\frac{W_0}{32} C=2048,H=32H0,W=32W0
- 利用1x1的卷积,对特征的大小进行约减,得到 ( d , H , W ) (d, H, W) (d,H,W)的张量, 其中 d < < C d<< C d<<C
- 将张量进行压缩(squeeze),形状变为 ( d , H W ) (d, HW) (d,HW)
- 得到了 d d d个向量序列,作为序列输入到Encoder之中
- Decoder得到输出的向量序列,通过FFN(Feed Forward Network)得到边界框预测以及类别预测,其中FFN就是简单的3层的感知机,边界框预测包括归一化后的中心坐标以及宽高。
目标检测的效果

如上图所示,可以看到DETR的计算次数不算多,但是FPS也不算高,只能算中规中矩。
那么语义分割呢?
这里给出关于语义分割的大致架构,如下图所示:

注意到,图中所描述的,边界框嵌入(Box Embedding)实质上就是decoder的输出(在FFN之前)。
然后使用一个多头部注意力的机制,这个机制实质上是对Q,K,V进行多次的线性变换,在这里面,K和V是Encoder的输入,Q是decoder的输出。
其中M是多头部注意力的头部数量。
之后,通过一个简单的CNN,得到一个Mask矩阵,用来生成语义分割的结果。
语义分割结果分析

可以看到比起PanopticFPN++来说,效果的提升有限,特别是AP并不佳,表现一般。
结论
文章将Transformer应用到了目标检测以及语义分割的领域,取得了不错的效果,但是性能上相较于FastRCNN类似架构的方法,并没有明显的提升,但显现出这种序列模型不错的扩展能力。用一个架构解决多种问题,统一化模型的目标指日可待。
边栏推荐
- Faster-ILOD、maskrcnn_benchmark训练自己的voc数据集及问题汇总
- Proof and understanding of pointnet principle
- 【BiSeNet】《BiSeNet:Bilateral Segmentation Network for Real-time Semantic Segmentation》
- 【C#笔记】winform中保存DataGridView中的数据为Excel和CSV
- 【双目视觉】双目立体匹配
- Using compose to realize visible scrollbar
- PPT的技巧
- CPU的寄存器
- Implementation of yolov5 single image detection based on pytorch
- What if the laptop task manager is gray and unavailable
猜你喜欢

Machine learning theory learning: perceptron

Common machine learning related evaluation indicators

win10+vs2017+denseflow编译

Using MATLAB to realize: Jacobi, Gauss Seidel iteration

《Handwritten Mathematical Expression Recognition with Bidirectionally Trained Transformer》论文翻译

【TCDCN】《Facial landmark detection by deep multi-task learning》

Correction binoculaire

【Paper Reading】

MMDetection安装问题

【Sparse-to-Dense】《Sparse-to-Dense:Depth Prediction from Sparse Depth Samples and a Single Image》
随机推荐
[in depth learning series (8)]: principles of transform and actual combat
【Hide-and-Seek】《Hide-and-Seek: A Data Augmentation Technique for Weakly-Supervised Localization xxx》
EKLAVYA -- 利用神经网络推断二进制文件中函数的参数
【Programming】
【双目视觉】双目矫正
(15) Flick custom source
【BiSeNet】《BiSeNet:Bilateral Segmentation Network for Real-time Semantic Segmentation》
Win10 solves the problem that Internet Explorer cannot be installed
【Sparse-to-Dense】《Sparse-to-Dense:Depth Prediction from Sparse Depth Samples and a Single Image》
【Mixup】《Mixup:Beyond Empirical Risk Minimization》
基于onnxruntime的YOLOv5单张图片检测实现
【Random Erasing】《Random Erasing Data Augmentation》
Comparison of chat Chinese corpus (attach links to various resources)
图片数据爬取工具Image-Downloader的安装和使用
Mmdetection model fine tuning
【雙目視覺】雙目矯正
Regular expressions in MySQL
[mixup] mixup: Beyond Imperial Risk Minimization
Translation of the paper "written mathematical expression recognition with bidirectionally trained transformer"
Mmdetection trains its own data set -- export coco format of cvat annotation file and related operations