transformer分割(transformer分割trick)
Swin Transformer实战实例分割:训练自己的数据集
刚好用了swin,做分类和目标检测,也来试试分割的,而且很多场景分割更有效果,比如积水识别,安全带,土坑裂缝等等
案例来自比赛
这回真是小试牛刀了,因为是智慧农业赛题——牛只图像分割竞赛
以牛只实例分割图像数据作为训练样本,参赛选手需基于训练样本构建模型,对提供的测试集中的牛只图像进行实例分割检测。方法不限于实例分割,
目标检测是识别图像中存在的内容和检测其位置,
语义分割是对图像中的每个像素打上类别标签,实例分割其实是目标检测和语义分割的结合,在图像中将目标检测出来(目标检测),然后对每个像素打上标签(语义分割)。 语义分割不区分属于相同类别的不同实例(所有人都标为红色),实例分割区分同类的不同实例(使用不同颜色区分不同的人)。所以题目严格意义是语义分割,但是要标出每只牛。
看下数据就是牛棚里的,标签是多边形 polygon,标的还是一般,数据有点模糊,而且角度是俯视,用coco的cow恐怕差太多,图片比较少训练200张,牛2千多,测试100张;
可以通过标注软件查看和修改标注,比如cvat,不过这个是网页版
这里就先用swin-transformer-object-detection跑个baseline吧
部署swin环境同目标检测,这里用paddlex来处理数据集,所以部署环境
conda create -n paddlex python=3.7
conda activate paddlex
pip install cython
git clone
cd .\cocoapi\PythonAPI
python3 setup.py build_ext install
pip install paddlepaddle -i
pip install paddlex -i
git clone
cd PaddleX
git checkout develop
python setup.py install
环境搭建好了,
现在将数据集格式为
划分数据集,也可以省略测试集
paddlex --split_dataset --format COCO --dataset_dir 200 --val_value 0.2 --test_value 0.1
将图片转移到训练和验证文件夹
处理好图片就开始配置swinT了,
两个地方 改为具体类别数 设为1
主要修改类别为自己的类别数 cat changeclass.py
相应修改configs/ base /datasets/coco_instance.py中数据集路径
修改模型权重参数等
修改configs\swin\mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py中的max_epochs、lr
参数文件改为coco_instance的
_base_ = [
]
注意一个类也要逗号,还要进行编译 python setup.py install
训练
python tools/train.py configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py
这里提交后只有0.6多,后面还需要调优参数,增强数据,或者试试swin 分割 ,swin-Unet之类。
维修工具的英语翻译
一画
一字螺丝批 slot type screwdriver
一点透视 one-point perspective
二画
二合一黏合剂 epoxy resin adhesive
二合胶;混合胶 epoxy glue
二维的;平面的 two-dimensional
二进制 binary
二极管;整流子 diode
二号螺丝攻 second tap
二路开关 two-way switch
十进制的;公制的 metric
人工制品 artefact
人造板 man-made board
人体工程学 ergonomics; human engineering
人体尺寸 human dimension
人体测量学 anthropometry; anthropometrics
刀片 blade
刀身 blade
刀具 tool
刀具溜座 carriage
刀柱 tool post
刀架 tool rest
刀架底座 tool rest bracket
刀座帷;床鞍 apron
刀座鞍;溜板座 saddle
力 force
力三角形 triangle of force
力平行四边形 parallelogram of force
力多边形;多边形力学 polygon of force
力的分解 force resolution
力架;亮漆 lacquer
力矩 moment
力偶 couple
力矩定律 law of moment
力-距离图表 force-distance graph
力图 force diagram
力线 line of force
力点 effort
十字榫 cross halving joint
十字螺丝 Philip's head screw
十字螺丝批 Philip's type screwdriver
丁字尺;T 尺 tee square
三画
三爪夹头 three-jaw chuck
三角尺 set square
三角形结构系杆 triangulation tie
三角锉 triangular file
三维的;立体的 three-dimensional
三氯甲烷;哥罗芳 chloroform
三聚氰?胺;蜜胺 melamine
三点透视 three-point perspective
上油漆 painting
上釉 enamelling
凡立水 varnish
叉形顶尖 fork centre
口罩 mask
士力;虫漆 shellac
士巴拿;扳手 spanner
大芯夹板;宽条芯夹板 blockboard; solid corestock-laminated board
大量制造 mass production
子口刨;槽口刨;边刨 rebate plane
小型平槽刨 miniature router plane
小型线料弯曲器 small wire bender
小型弯折机 mini bender
小型电路断路器;跳菲 miniature circuit breaker (MCB)
小齿轮 pinion
山樟 San Cheong
工件 workpiece
工字梁 I beam
工作面 working surface
工作图;制作图 working drawing
工作台 bench; working table
工具 tool
工具贮存室 tool storage
工具槽 well
工具钢 tool steel
工场 workshop
工场安全 workshop safety
工程字书写技巧 lettering
工程系统 engineering system
工程绘图 engineering drawing
工业酒精;火酒 methylated spirit
弓形手钻;手摇曲柄钻 brace
弓形手钻嘴 brace bit
弓锯 bow saw; hacksaw
弓锯片 hacksaw blade
弓锯床 hacksawing machine
四画
不平衡 imbalance
不含铁金属;非铁金属 non-ferrous metal
不贯穿孔;闭孔;盲孔 blind hole
不贯穿鸠尾榫 lapped dovetail joint
不对称 asymmetry
不锈钢 stainless steel
不稳定平衡 unstable equilibrium
中心 centre
中心线 centre line
中心冲 centre punch
中心钻 centre drill
中心钻嘴 centre bit
中央处理器 central processing unit (CPU)
中性 neutral
中性平衡;随遇平衡 neutral equilibrium
中性轴 neutral axis
中密度纤维板 medium density fibre board (MDF)
中粗锉纹 second cut
中碳钢 medium carbon steel
中线 neutral wire
互补金属氧化物半导体 complementary metal oxide semiconductors (CMOS)
介子;垫片 washer
介指铁 ring mandrel
介电常数;电容率 permittivity
介稳态的;亚稳态的 metastable
内力 internal force
内卡尺 inside calipers
内能 internal energy
内涵性质 intensive properties
内圆弯凿 scribing gouge
内锁式配件 interlocking fitting
内燃机 internal combustion engine
内螺纹制造法 tapping
内螺丝 internal thread
内弯边 concave edge
六角金属枝 hexagonal bar
六角匙 Allen key
六角头螺丝 hexagonal head screw
公制的;十进制的 metric
公差 tolerance
冗余构件 redundant member
分力 component force
分子 molecule
分子力 molecular force
分切;分割;切断 parting off
分贝 decibel
分析 analysis
分析及批判学 analytical and critical studies
分析器 analyzer
分流器 shunt
分界面;界面;接口 interface
分厘卡 micrometer
分规 divider
分割车刀架 parting tool holder
分解 decomposition
分压器 potential divider; voltage divider
隔离开关 isolating switch
切削工具 cutting tool
切削液 cutting fluid
切削深度 depth of cut
切屑;碎屑 chip
切线锯法 tangential sawing
切辊纹;滚纹 knurling
切断;分切;分割 parting off
切断工具 parting tool
勾;勾脚 hook
勾刀;胶片?刀 plastic cutter
化胶水 tensol
反向偏压 reverse biased
反相放大器 inverting amplifier
反相器 inverter
反射 reflection
反电动势 back e.m.f.
反馈;回输 feedback
天拿水;稀释剂 thinner
天梯牙;齿条 gear rack
天然木材 natural timber
天然干燥法 air seasoning
孔隙率 porosity
尺寸 dimension
尺寸线 dimension line
尺身 blade
引力;重力 gravitational force
心形凸轮 heart-shaped cam
心材 heartwood
心轴 mandrel
心销 core pin
手工具 hand tool
手工锯 junior hacksaw
手削法 paring
手持虎钳 hand vice
手柄 handle
手套 gloves
手扫漆 brushing lacquer
手推车 barrow
手提式竖线锯 portable jigsaw
手提电动工具 portable power tool
手提电钻 electric hand drill
手进给 hand feed
手摇曲柄钻;弓形手钻 brace
手摇钻 hand drill
手锉 hand file
手锯;板锯 handsaw
手锥 bradawl
手辘轧机 hand rolling machine
支柱;支撑物 strut
支架;支座 support
支点 fulcrum; pivot
文字 text
方向 direction
方向针 pointing needle
方枝 square bar
方波形 square waveform
方波产生器 squarer
方型牙板 rectangular die
方格纸;网格纸 grid paper
方通 square tube
方块图 block diagram
方锉 square file
方头钻嘴 square shank bit
方螺帽 square nut
方边凿;直边凿 firmer chisel
木 wood
木工 woodwork
木工工作间 woodwork area
木工工作台 woodworker's bench
木工车床 wood turning lathe; woodworking lathe
木工铅笔 carpenter's pencil
木工刨床 thicknessing and planning machine
木牙螺丝;木螺钉 wood screw
木材 timber
木材车削 wood turning
木材车削工具 wood turning tools
木屑压合板;万花板 chipboard
木条接榫 corner strip joint
木圆头槌 doming mallet
木模;模型 patterns
木线 wood strip
木胶粉 ureaformal dehyde resin glue
木锉 rasp
木螺钉;木牙螺丝 wood screw
木槌 mallet
止推轴承 thrust bearing
止推垫圈 thrust washer
比例 proportion
比例尺 scale
比例常数 proportionality constant
比例极限 proportional limit
比较器 comparator
比热容量 specific heat capacity
水平投影面 horizontal plane
水平仪;平水尺 spirit level
水气掣;漏电断路掣 earth leakage circuit breaker (ELCB)
水晶胶;聚酯树脂 polyester resin
水晶胶的铸造成形 resin casting
水磨砂纸 silicon carbide paper
火叉 firing fork
火水;煤油 kerosene
火牛;变压器 transformer
火石轮 grinder
火花电蚀法;放电极加工 electrical discharge machining
火酒;工业酒精 methylated spirit
火钳 tongs
火线;活线 live wire
火砖 fire brick
爪扣;爪形离合器;犬齿式离合器 dog clutch
牙板;丝模 die
牙板扳手;丝模扳手 die holder (stock)
牙板螺帽 die nuts
牛皮胶;动物胶 animal glue
牛油纸 tracing paper
牛顿运动定律 Newton's laws of motion
犬齿式离合器;爪扣;爪形离合器 dog clutch
五画
丙烯;丁二烯苯乙烯 acrylonitrile-butadiene-stryrene (ABS)
主轴;心轴 spindle
主题 motif
令(纸张的计数单位) ream
凹座 recess
凹模 hollowing block
凸缘 flange
凸缘联轴节 flange coupling
凸轮 cam
凸轮式配件 cam-action fitting
凸轮传动 cam drive
凸头螺丝 raised head screw
加成作业;添加法 addition process
加油 oiling
加速器 accelerator
功能;用途 function
功率因子 power factor
功率放大器 power amplifier
功率板 power amplifier board
功率晶体管 power transistor
包氏记号法 Bow's notation
「包浩思」;「包豪斯」〈设计风格) Bauhaus
半永固法;半永久接合 semi-permanent joining
半接榫 halving joint
半闭式槽榫 stopped housing joint
半圆(木)锉 half-round rasp
半圆车刀 turning gouge
半圆锉 half-round file
半圆头铆钉 snap rivet
半导体 semiconductor
卡路里;卡(热量单位) calorie
卡纸 card paper
卡尺;测径器 calipers
去角;倒角 chamfer
可切削性 machinability
可行性 feasibility
可逆过程 reversible process
可压缩性 compressibility
可变电阻 variable resistor
四分仪 quadrant
四爪夹头 four-jaw independent chuck
四圆心法(绘图) four-centre method
外卡尺 outside calipers
外形塑造 shaping
外形线;轮廓线 outline
外推法 extrapolation
外圆弯凿 firmer gouge
外螺纹 external thread
外螺纹制造法 threading
外弯边 convex edge
外观 appearance
失真 distortion
尼龙;聚醯胺 nylon; polyamide (PA)
尼龙墨水针笔 technical felt-tip pen
左右调校杆 lateral adjusting level
市售尺寸;标准尺寸 stock size
市电频率;电源频率 mains frequency
平(木)锉 flat rasp
平水尺;水平仪 spirit level
平行投影 parallel projection
平行车削 parallel turning
平行虎钳 parallel vice
平行钉法 parallel nailing
平底弯刨 flat faced spokeshave
平底钻嘴 forstner bit
平板结构 slab construction
平流扼流圈;滤波扼流器 smoothing choke
平流电容器;滤波电容器 smoothing capacitor
平流电路;滤汳电路 smoothing circuit
平面板;正台 surface plate
平面图;俯视图 plan
平面锤 flatter
平移 translation
平搭榫 corner halving joint
平嘴钳 flat nose pliers
平槽刨 router plane
平衡 balance; equilibrium
平衡力 equilibrant
平衡条件 equilibrium condition
平衡电桥 balanced bridge
平头弧刀 square nose gouge
幼纹 smooth cut
打凹成形 hollowing
打凸成形 raising
打槽机 routing machine
打线;打槽 routing
打磨 fitting; polishing
打磨机 polisher
本生灯 Bunsen burner
本征半导体 intrinsic semiconductor
正反器;触发器;复振器 flip-flop
正反馈;正回输 positive feedback
正火 normalizing
正向偏置 forward bias
正投影 orthographic projection
正投影图 orthographic drawing
正弦波形 sinusoidal waveform
正面投影 front projection
正视图 elevation; front elevation
正极;阳极 anode
正齿轮 spur gear
正台;平面板 surface plate
永久性接合 permanent joining
瓦通纸;瓦楞纸板 corrugated board
生长层 cambium layer
生产图 production drawing
生胶浆 rubber cement
生钢;铸钢 cast steel
生铁;铸铁 cast iron
用途;功能 function
白杨木 poplar
白胶浆 PVA glue; white glue
皮沙垫 leather sandbag
皮革 leather
皮革黏合剂 leather glue
皮鞋 leather shoes
目录 contents
矢量;向量 vector
石灰岩 limestone
石英晶体振荡器 quartz crystal oscillator
石棉 asbestos; asbestus
石膏 Plaster of Paris
示波器 oscilloscope
立体图 pictorial drawing
六画
交流电流 alternating current (a.c.)
交流电压 a.c. voltage
交联结构 cross-linked structure
仿饰金 gilding metal
伏特 volt
光力架 clear lacquer
光拉软钢 bright drawn mild steel (B.D.M.S.)
光敏电阻 light dependent resistor (LDR)
光测弹性学 photoelasticity
光刨;滑刨 smoothing plane
光电效应 photoelectric effect
光泽 lustre
全闭式槽榫 closed housing joint
共面力 coplanar force
共聚合作用 co-polymerization
共聚物 copolymer
共价键 covalent bond
共振;共鸣;谐振 resonance
印刷电路板 printed circuit board (PCB)
同素异形 allotropy
同轴电缆 coaxial cable
同温 equality of temperature
向量;矢量 vector
向量和 vector sum
合力 resultant force
合口扁钳 close mouth tongs
合成色;等和色 secondary colour
合成品 composite
合成粅料 composite material
合金 alloy
合金工具钢 alloy tool steel
合钉;定位销 dowel
回火 tempering
回复力 restoring force
回复力偶 restoring couple
回弹 resilience
回输;反馈 feedback
地线 earth wire
多刃切削刀具 multi-point cutter
多孔塑料;泡沫塑料;海绵状塑料 foam plastics
多方榫接合 pinned joint
多媒体 multi-media
多晶性 polycrystallinity
多谐振动器;多谐振荡器 multivibrator
多边形力学;力多边形 polygon of force
字母冲 letter punch
字板 letter stencil
安全 safety
安全守则 safety rule
安全系数 safety factor
安全措施 safety precaution
安全眼罩 safety goggle
安全设备 safety equipment
安全药箱 safety box
安培 ampere
安培计;电流表 ammeter
尖脚 spur
年轮 annual ring
成本 cost
成形 forming
扣件;击固件 fastener
扣钉 clout nail; cramp
托架 bracket
收缩 shrinkage
曲柄 crank
曲柄轴 crank shaft
曲线规;云板;云尺 French curve
有效的 efficient
有效电流 effective current
灰;灰末 ash
百折胶;百折胶;聚丙烯 polypropylene (PP)
竹 bamboo
羊角锤 claw hammer
老化 ageing
肋条 rib
肌理;质感;质地 texture
自由度 degree of freedom
自动控制 automatic control
自动进给 auto-feed
自然干燥法 natural seasoning
自感量 self-inductance
自感应 self-induction
色彩;颜色 colour
色调 tone
色环 colour wheel
行星齿轮;周转齿轮 epicyclic gear
七画
肘节开关 toggle-switch
串激电动机;串绕电动机 series-wound motor
位能;势能 potential energy
位梯度;势梯度 potential gradient
位移 displacement
位错 dislocation
伸长度 elongation
作工硬化 work hardening
作功 work done
作图线 construction line
低密聚乙烯 low density polyethylene (LDPE)
低通滤波器 low-pass filter
低电压 low voltage
低碳钢 low carbon steel
布置 layout
免油轴承 oil-less bearing
冷加工;冷作工 cold working
冷加工硬化 cold work hardening
冷色 cool colour
冷轧压 cold rolling
冷却系统 cooling system
冷却效应 cooling effect
冷却液流量 coolant rate
冷凝胶;环氧树脂 epoxy resin
利口;「披」口;铁屑 burr
刨平 planing
刨花板;碎料板 particle board
吹风机 air blower
吹气模塑;吹模塑 blow moulding
吹管 blow pipe
含铁金属 ferrous metal
含水量 moisture content
坑凿 cross-cut chisel
均方根值 root mean square value
均角投影图;等角投影图 isometric drawing
均速圆周运动 uniform circular motion
夹;夹钳 clamp
夹 cramp
夹卡 mounting board
夹具 fixture; jig
夹具及固定装置 jig and fixture
夹板;胶合板 plywood
夹持工具 clamping device; holding tool
夹背锯;榫锯 tenon saw
夹头 chuck
夹头开启匙;夹头扳手 chuck key
夹迭黏合成形 lamination
尾座 tailstock
床身;床道 lathe bed
床鞍;刀座帷 apron
形心;面心 centroid
形状 shape
形变 deformation
「快把」板;硬质纤维板 hardboard
快速移位 rapid traverse
抗扭强度 torsional strength
抗屈强度 bending strength; yield strength
抗性分量;无功分量 reactive component
抗拉强度 tensile strength
抗氧化剂 anti-oxidant
抗剪强度 shearing strength
抗磁性物料 diamagnetic material
抗挠性 stiffness
抗压强度 compressive strength
抗断强度 breaking strength
技术员;技师 technician
扶架 steady
扭力 torsion
扭矩;转矩 torque
扭转 torsion
扭转角 angle of torsion
把手 hand grip
扼流圈 choke
扳手 spanner; wrench
投影 projection
投影面 projection plane
投影线 projection line
攻丝 tap
材料 material
材料单;材料表 material list
杜拉铝 duralumin
杉木 spruce
步进电动机 stepper motor
步冲轮廓法 nibbling
每分钟转数 revolution per minute (r.p.m.)
系统组件 system component
角托架 angle bracket
角位移 angular displacement
角板;直角板 angle plate
角度 angle
角榫 corner angle joint; corner joint
角铁 angle iron
谷巴凡立水 cobal varnish
车刀架 tool holder
车床 lathe
车床工具 lathe tools
车床中心钻咀 lathe centre bit
车床操作法 lathe operation
车削;车旋 lathe turning; turning
车削工具 turning tools
防火胶板 Formica
防锈 rust prevention
防声耳筒;护耳器 ear-protector
防松螺帽 lock nut
防护装置;保护罩;保护网 guard; safety guard
八画
注射成形法;喷射铸造法 injection moulding
并激电动机;并绕电动机 shunt-wound motor
奶酪胶 casein glue
乳胶漆 emulsion paint
亚加力;压克力;聚甲基丙烯酸甲脂 acrylics; polymethyl methacrylate (PMMA)
亚稳态的;介稳态的 metastable
来回摆动 oscillating
两点透视 two-point perspective
刻度;划线 ruling
刺冲 dot punch
刮刀 scraper
刮擦 scraping
制动鼓 drum brake
制动碟 disc brake
制动器 brake
受迫振动 forced vibration
受迫振荡 forced oscillation
和谐 harmony
周转齿轮;行星齿轮 epicyclic gear
固定夹;台夹 bench holdfast
固定负载 dead load
定子 stator
定位销;合钉 dowel
定位螺丝 set screw
定距轮 stitch marker
屈片机 folding machine
屈曲 bending
屈服点;降服点 yield point
屈圈法 loop forming
屈卷法 scrolling
屈接缝 folded lap seam
屈喉机 tube bender
屈折 folding
屈折线 folding line
屈压接缝 folded grooved seam
延性 ductility
延性的 ductile
弦锯法 plain sawing
弧口凿;圆凿 gouge
往复式运动 reciprocatory motion
拉力 tensile force
拉力计;张力计 tensiometer; tensometer
拉钉 blind rivet; pop rivet
拉钉接合 blind riveting; pop riveting
拉钉钳 blind riveting pliers; pop riveting pliers
拉张 tension
拉张应力 tensile stress
拉张应变 tensile strain
拉细 drawing-down
拉制法 drawing
拉线 wire drawing
「披」口;利口;铁屑 burr
拔钳 nippers
抛光 buffing
抛光机 buffing machine
放大;扩大 enlargement
放大尺 pantograph
放大倍数 amplification factor
放大器 amplifier
放电极加工;火花电蚀法 electrical discharge machining
易用万能尺 line setter
易碎 fragile
〈绘画的〉明暗运用;描影 shading
枝;杆 rod
杯形顶尖 cup centre
杯头螺丝 hexagonal socket head cap screw
板锯 panel saw
松木 pine
松节水 turpentine
法式磨光 French polishing
法拉〈电容量单位〉 farad
油石;磨刀石 oil stone
油漆;涂料 paint
泡沫塑料;多孔塑料;海绵状塑料 foam plastics
物理特性 physical property
物理属性 physical attribute
物理量 physical quantity
盲孔;闭孔;不贯穿孔 blind hole
直尺 ruler; straight rule
直角叉榫 corner bridle joint
直角尺 try square
直角板;角板 angle plate
直角杠杆 bell crank lever
直身钻嘴 straight shank drill
直车刀架 straight tool holder
直流发电机 d.c. generator
直流电流 direct current (d.c.)
直流电动机;直流马达 d.c. motor
直纹锯 rip saw
直线切削 linear interpolation
直线运动 rectilinear motion
直边凿;方边凿 firmer chisel
直铁剪 straight snips
硅 silicon
空行程 idle stroke
空气动力学 aerodynamics
空间 space
空载 no load
花纹凿 embossing stamp
花梨木 rosewood
花样;图案 pattern
虎克定律 Hooke's Law
虎钳 vice
虎钳护罩 vice clamp
初步意念 proposed solution
表面 surface
表面展开图 surface development
表面张力 surface tension
表面处理 surface finishing; surface treatment
表面硬化 case hardening
表面硬化钢 case-hardened steel
表达方式 presentation
表达技巧;传意技巧 communication technique
表观膨胀;视膨胀 apparent expansion
金工 metalwork
金工工作间 metalwork area
金工角尺 engineering square
金工车床 metalwork lathe
金工虎钳 engineer's vice
金工锯床 power hacksaw
金属包头;金属箍 ferrule
金属配件 metal fittings
金属线 wire
金属压展机 hand rolling mill
金属擦光剂;磨光剂 metal polish
金属薄片 sheet metal
金属键 metallic bond
长方通 rectangular tube
长刨 trying plane
长螺旋钻咀 long auger bit
长镗孔 long boring
闸极 gate
阻抗 impedance
附件 attachment
附录 appendices
青铜 bronze
非反相放大器 non-inverting amplifier
非本征半导体 extrinsic semicon
慢慢找吧,下面个网站是汽车专业词汇,可以去找找
CNN和Transformer相结合的模型
?作者 | 小欣
CNN广泛应用于计算机视觉的各种任务中,比如分类,检测,分割,CNN通过共享卷积核提取特征,减少网络参数数量,提高模型效率,另一方面CNN具有平移不变性,即无论特征被移动到图像的哪个位置,网络都能检测到这些特征。
尽管CNN存在很多优势,但是其感受野通常很小,不利于捕获全局特征。
视觉Transformer由于能够捕获一张图片的全局信息,因此在许多视觉任务中超越许多CNN结构。
ViT是第一个替代CNN,使用纯Transformer的结构,输入一张224×224×3的图片,ViT将其分成14×14=196个非重叠的patches,每个patch的大小是16×16×3,然后将这些patch输入到堆叠的多个transformer编码器中。
CNN的成功依赖于其两个固有的归纳偏置,即平移不变性和局部相关性,而视觉Transformer结构通常缺少这种特性,导致通常需要大量数据才能超越CNN的表现,CNN在小数据集上的表现通常比纯Transformer结构要好。
CNN感受野有限导致很难捕获全局信息,而Transformer可以捕获长距离依赖关系,因此ViT出现之后有许多工作尝试将CNN和Transformer结合,使得网络结构能够继承CNN和Transformer的优点,并且最大程度保留全局和局部特征。
Transformer是一种基于注意力的编码器-解码器结构,最初应用于自然语言处理领域,一些研究最近尝试将Transformer应用到计算机视觉领域。
在Transformer应用到视觉之前,卷积神经网络是主要研究内容。受到自注意力在NLP领域的影响,一些基于CNN的结构尝试通过加入自注意力层捕获长距离依赖关系,也有另外一些工作直接尝试用自注意力模块替代卷积,但是纯注意力模块结构仍然没有最先进的CNN结构表现好。
Transformer中有两个主要部分,多头自注意力层和全连接层,最近,Cordonnier et al.在研究中表明卷积可以通过使用多头自注意力层达到同样的效果。
Transformer 理论上比CNN能得到更好的模型表现,但是因为计算全局注意力导致巨大的计算损失,特别是在浅层网络中,特征图越大,计算复杂度越高,因此一些方法提出将Transformer插入到CNN主干网络中,或者使用一个Transformer模块替代某一个卷积模块。
BoTNet.[1] 通过使用Multi-Head Self-Attention(MHSA)替代ResNet Bottleneck中的3×3卷积,其他没有任何改变,形成新的网络结构,称为Bottleneck Transformer,相比于ResNet等网络提高了在分类,目标检测等任务中的表现,在ImageNet分类任务中达到84.7%的准确率,并且比EfficientNet快1.64倍。
BoTNet中使用的MHSA和Transformer中的MHSA有一定的区别,首先,BoTNet中使用Batch Normalization,而Transformer中使用Layer Normalization,其次,Transformer中使用一个在全连接层中使用一个非线性激活,BoT(Bottleneck Transformer)模块中使用三个非线性激活,最后Transformer中的MHSA模块包含一个输出映射,而BoT中的MHSA没有。
CNN有局部性和平移不变性,局部性关注特征图中相邻的点,平移不变性就是对于不同区域使用相同的匹配规则,虽然CNN的归纳偏差使得网络在少量数据上表现较好,但是这也限制了在充分数据上的表现,因此有一些工作尝试将CNN的归纳偏差引入Transformer加速网络收敛。
DeiT.[2] 为了减小ViT对于大量数据的依赖,Touvron et al.提出了Data-efficient image Transformer(Deit),提高网络在小量数据上的表现,通过使用数据增强和正则化技术,与此同时还引入了蒸馏策略,即使用一个教师网络去指导学生网络,通常来说使用CNN要比Transformer作为教师模型效果要好,CNN模型可以将其归纳偏置引入到Transformer。
作者使用两种蒸馏方式,一种是硬蒸馏,一种是软蒸馏 ,软蒸馏通过计算学生模型和教师模型分别经过softmax之后的KL散度,硬蒸馏通过使用教师模型的预测作为真实标签。
DeiT中引入了一个新的distillation token,和class token的作用类似,和其他token之间通过自注意力交互,作者发现class token和distillation token会收敛于不同的向量,余弦距离为0.06,说明这两个token希望得到相似但不相同的目标,为了证明distillation token的有效性是由于知识蒸馏的作用,通过对比实验将distillation token换成class token,就是使用两个class token,最终效果不如加入distillation token。
对比卷积神经网络和Transformer在Imagenet上的分类表现:
ConViT.[3] 通过引入gated positional self-attention(GPSA)层模仿卷积层带来的局部性,将GPSA替代一部分 self-attention层,然后每一个注意力头通过调整可学习的门控参数来调整对于位置信息和上下文信息的关注程度。GPSA层的输出可以表示为:
其中,
是一个可学习的向量去模仿卷积,
是一个固定的相对位置编码,
是一个可学习门控参数去调整对上下文和位置信息的关注程度。
Cordonnier et al.[4] 在论文中证明多头自注意机制可通过调整头的数量和可学习的位置编码来近似达到卷积层的效果。
对比ConViT和DeiT在Imagenet-1k上的表现,以及不同大小训练集对结果的影响
CeiT.[5] 改变了patch到token的方式,先将图片通过卷积和最大池化再切分成patch,最开始对图片使用卷积操作可以捕获图片的低级特征,即I2
并且使用了Layer-wise class token Attention(LCA)去结合多层特征,提出了Locally-Enhanced Feed-Forward Netword(LeFF),将最开始的全连接层(Feed-forward network)替换成了LeFF层,MSA(Multi-head self-attention)层保持不变,用于捕获全局信息,LeFF层用于捕获局部信息,最终的效果要比DeiT好。
Early Conv.[6] Xiao et al.通过使用多个步长为2的3×3卷积核替代ViT中最初的stem(步长为16的16×16卷积),使得网络在ImageNet-1k上取得1-2%的提高,并且稳定性和泛化能力在下游任务中都有所提高,对于学习率的选择和优化器的选择没有那么敏感,并且收敛速度也更快。
这篇文章表面在ViT模型中使用一个小的卷积核相比于最初的ViT使得模型有更好的泛化能力。
CoAtNet.[7] Dai et al. 提出a Convolution and Attention NetWord(CoAtNet),通过引入深度卷积到注意力模块中,深度卷积中一个卷积核负责一个通道,一个通道只被一个卷积核计算,相比于正常卷积,其参数和运算成本相对比较低,在浅层网络中堆叠卷积层,比较了不同的堆叠方式,比如C-C-C-T,C-T-T-T,C-C-C-T,其中C代表卷积模块,T代表Transformer模块。
通过综合考虑模型泛化能力,迁移能力,模型在训练集上的表现,最后使用C-C-T-T 这种堆叠方式。在没有额外训练数据的情况下,CoAtNet达到了86%的准确率,在ImageNet-21K上预训练时,达到了88.56%的准确率。
参考文献
[1] A. Srinivas, T.-Y. Lin, N. Parmar, J. Shlens, P. Abbeel, and A. Vaswani, “Bottleneck transformers for visual recognition.” in Proc. CVPR, 2021.
[2] H. Touvron, M. Cord, D. Matthijs, F. Massa, A. Sablayrolles, and H. Jegou, “Training data-effificient image transformers distillation through attention,” in Proc. ICLR, 2021.
[3] S. d’Ascoli, H. Touvron, M. Leavitt, A. Morcos, G. Biroli, and L. Sa gun, “Convit: Improving vision transformers with soft convolutional inductive biases,” in Proc. ICLR, 2021.
[4] Cordonnier, J.-B., Loukas, A., and Jaggi, M. On the relationship between self-attention and convolutional layers. arXiv preprint arXiv:1911.03584, 2019.
[5] K. Yuan, S. Guo, Z. Liu, A. Zhou, F. Yu, and W. Wu, “Incorporating convolution designs into visual transformers,” in Proc. ICCV, 2021.
[6] T. Xiao, M. Singh, E. Mintun, T. Darrell, P. Dollar, and R. B. Girshick, “Early convolutions help transformers see better,” ArXiv, vol. abs/2106.14881, 2021.
[7] Z. Dai, H. Liu, Q. V. Le, and M. Tan, “Coatnet: Marrying convolution and attention for all data sizes,” arXiv preprint arXiv:2106.04803, 2021.
私信我领取 目标检测与R-CNN/数据分析的应用/电商数据分析/数据分析在医疗领域的应用/NLP学员项目展示/中文NLP的介绍与实际应用/NLP系列直播课/NLP前沿模型训练营等 干货学习资源。
swin transformer理解要点
这是跑通的分类以及分割源码介绍,大家有需要可以参考一下:
1、 Swin-Transformer分类源码(已跑通)
2、 Swin-Transformer分割源码(已跑通)
3、 Swin-Unet(分割改编)
我们假设图片的大小是224×224的,窗口大小是固定的,7×7。这里每个方框都是一个窗口,每个窗口是固定有7×7个patch,但是patch的大小是不固定的,它会随着patch merging的操作而发生变化。比如我们看这儿,patch大小是4×4的,那怎么变成8×8呢?我们把周边4个窗口的patch拼在一起,相当于patch扩大了2×2倍,从而得到8×8大小的patch。
我们发现经过这一系列的操作之后,patch的数目在变少,最后整张图只有一个窗口,7个patch。所以我们可以认为降采样是指让patch的数量减少,但是patch的大小在变大。
这便是对ViT的一个改进,ViT从头至尾都是对全局做self-attention,而swin-transformer是一个窗口在放大的过程,然后self-attention的计算是以窗口为单位去计算的,这样相当于引入了局部聚合的信息,和CNN的卷积过程很相似,就像是CNN的步长和卷积核大小一样,这样就做到了窗口的不重合,区别在于CNN在每个窗口做的是卷积的计算,每个窗口最后得到一个值,这个值代表着这个窗口的特征。而swin transformer在每个窗口做的是self-attention的计算,得到的是一个更新过的窗口,然后通过patch merging的操作,把窗口做了个合并,再继续对这个合并后的窗口做self-attention的计算。
其实这边困扰了我一小下,因为我们印象中降采样都是像CNN一样,会变小,但是swin transformer没有给我们变小的感觉。其实这就是感受野没理解到位的问题,CNN到最后,设计适当,最后一个特征图的感受野是可以放大到整张图的,swin transformer最后一个stage也是一个窗口涵盖了整张图。
Swin-transformer是怎么把复杂度降低的呢? Swin Transformer Block这个模块和普通的transformer的区别就在于W-MSA,而它就是降低复杂度计算的大功臣。
关于复杂度的计算,我简单的给大家介绍一下,首先是transformer本身基于全局的复杂度计算,这一块儿讲起来有点复杂,感兴趣的同学我们可以会后一起探讨推导过程。在这里,我们假设已知MSA的复杂度是图像大小的平方,根据MSA的复杂度,我们可以得出A的复杂度是(3×3)2,最后复杂度是81。Swin transformer是在每个local windows(红色部分)计算self-attention,根据MSA的复杂度我们可以得出每个红色窗口的复杂度是1×1的平方,也就是1的四次方。然后9个窗口,这些窗口的复杂度加和,最后B的复杂度为9。
W-MSA虽然降低了计算复杂度,但是不重合的window之间缺乏信息交流,所以想要窗口之间的信息有所交流,那么就可以把左图演化成右图这样,但是这就产生了一个问题,如此操作,会产生更多的windows,并且其中一部分window小于普通的window,比如4个window - 9个window,windows数量增加了一倍多。这计算量又上来了。因此我们有两个目的,Windows数量不能多,window之间信息得有交流。
我们看到,原来的图被划分了9个窗口,中间的区域A就是信息交流的证明。我们先把左上部分(蓝色以外的窗口)移动到右下,然后再用切分四块的方法去切这个图片,这时候区域A就被隔出来了,达到了我们想要的效果。
transformer的出现并不是为了替代CNN。因为transformer有着CNN没有的功能性,它不仅可以提取特征,还可以做很多CNN做不到的事情,比如多模态融合。而swin transformer就是一个趋势,将CNN与transformer各自的优势有效的结合了起来。这是暂时对它的一些细节补充。最近听说MLP出来了,还没有细看,时代进展未免也太快了,手里针对ViT改进的文章还没投出去,就已经开始要立不住脚了。
希望可以帮助到大家,如果你觉得这篇文章对你有一定的帮助,那就点个赞支持一下吧!如果有什么问题的话也可以在文章下面评论,我们一起交流解决问题!
以下是我所有文章的目录,大家如果感兴趣,也可以前往查看
??戳右边: 打开它,也许会看到很多对你有帮助的文章