您当前的位置: 首页 > 

暂无认证

  • 1浏览

    0关注

    97547博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

如何将Vision Transformer应用在移动端?

发布时间:2021-09-03 07:00:00 ,浏览量:1

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

Vision Transformer在移动端应用的探索和改进,提出了不规则Patch嵌入和自适应Patch融合模块有效提升了VIT在移动端的性能表现,在DeiT基础上提升了9个百分点。

1前言

在本次工作中,研究了移动端的Vision Transformer模型,猜想Vision Transformer Block中的MSA(多头注意力)和FFN(前馈层)更适合处理High-level的信息。

我们提出的irregular patch embedding能在patch中以不同的感受野,提取丰富的信息。

最终这些处理过的patch经过adaptive patch merging模块得到最终分类结果。经过这些改进,我们在DeiT的baseline基础上,能够提升9%的精度,并且也超越了其他Vision Transformer模型。

2简介

在现有的Vision Transformer模型上,我们发现降低模型的FLOPS,其性能会严重下降。

以DeiT为例,从DeiT-Base到DeiT-Small,FLOPS降为原来的1/4,性能损失了2%

而从DeiT-Small到DeiT-Tiny,FLOPS也是降为原来的1/4,但是性能损失了7%,其他的vit架构也是类似。

所以我们猜测这些架构都是朝着有较强的特征提取能力和避免过拟合能力的大模型进行优化,从而导致信息提取效率较低。

ViT具有两个重要的模块:

  1. MSA多头注意力,用于各个独立Patch之间的交互,能够整合high-level信息,但是不能提取patch内的low-level信息

  2. FFN,有多个全连接层组成,对于提取low-level图像特征并不高效

也有一些ViT架构尝试将CNN的金字塔式架构引入(如swin,pvt),但在该工作里,我们展示了瓶颈可能并不在MSA和FFN这里。

本文通过改进Patch Embedding和Patch Merging,得到了不小的提升。

3Irregular Patch Embedding

分三步来介绍Irregular Patch Embedding的设计

  1. 使用卷积来做Patch Embedding,现有的论文都已经证明了卷积擅于提取low-level局部特征,为了进一步压缩计算量,我们使用了depthwise+pointwise的组合。

  2. 发现原始的14x14的patch对于移动端vit是难以处理的。一方面,如果我们想减少patch的通道数和Block的数目,那剩下的模块是无法处理如此多的patch。另一方面,我们可以通过减少patch数目,提高通道数,来得到一个平衡。

  3. DeiT把图片切为14x14patch,每个patch都有同样的感受野。而对于不同的图片,可能需要high-level信息(比如区分狗和猫),也有可能需要low-level信息(比如区分悬崖和湖边)

对此,设计了三个并行的分支,分别得到7x7, 4x4, 1x1个Patch,然后拼到一起

这些分支都是inverted-residual-block+SE模块,并且使用不同大小的stride来提取特征

笔者认为如果想要证明Irregular patch embedding的有效性,那么就应该用普通的卷积层来做,而不是用这种复杂的结构。

4Adaptive Patch Fusion

在DeiT里设置了额外的一个class token,这个token会跟其他token进行交互,最后分类只选用class token来得到分类结果。

当然也有一些其他架构,通过global average pooling的方式来聚合各token的信息用于分类。

实验发现class token表现并不好,猜想当Transformer block数量有限时,class token不能聚集足够的信息。

因此设计了一种自适应的融合机制:

首先给所有图像设定一个全局的权重,然后再通过一系列mlp全连接层,生成权重。最后这两个权重相乘,并输出最终结果。

5实验

可以看到最后实验的提升也是蛮大的,关于Patch Embedding也做了相关消融实验,来证明有效性。

关于positional encoding也做了相关实验,发现结果差的并不多,作者猜想在irregular patch embedding阶段,已经编码了足够多的位置信息进去了。

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

关注
打赏
1655516835
查看更多评论
立即登录/注册

微信扫码登录

0.0541s