087、MobiSAM轻量级注意力在YOLOv12中的适配:移动端友好设计与VisDrone小目标检测实验对比
087、MobiSAM轻量级注意力在YOLOv12中的适配:移动端友好设计与VisDrone小目标检测实验对比兄弟们,今天这篇咱们聊聊MobiSAM。先说个真实场景——上个月我在给一个无人机巡检项目做模型压缩,客户要求模型跑在Jetson Orin上,帧率不能低于30FPS,同时还得把VisDrone里那些密密麻麻的车辆和行人检出来。原版YOLOv12直接跑,mAP50倒是能到42.7,但FPS只有17,卡得跟幻灯片似的。我一开始想的是砍backbone层数,结果小目标直接崩了,mAP50掉到38.9,那叫一个惨。后来翻到MobiSAM这篇论文,思路挺有意思——它把SAM(Segment Anything Model)里的注意力机制做成了轻量级版本,专门为移动端设计。我当时就想,这玩意儿要是能塞进YOLOv12的neck或者head里,说不定能解决“既要快又要准”这个矛盾。先说MobiSAM的核心思想。原版SAM用的是标准的全局自注意力,计算复杂度是O(n²),对于高分辨率特征图来说,这玩意儿在移动端根本跑不动。MobiSAM的改进点在于把注意力分解成两个部分:一个是在空间维度上做局部窗口注意力,另一个是在通道维度上做全局注意力。具体来说,它把特征图分成若干个不重叠的窗口,在每个窗口内部计算自注意力,窗口大小固定为7×7,这样计算量就降到了线性复杂度。然后为了弥补局部窗口丢失的全局信息,它又加了一个通道注意力分支,这个分支用全局平均池化生成通道权重,再和窗口注意力的输出做融合。这个设计思路跟Swin Transformer有点像,但MobiSAM更激进——它把窗口注意力里的相对位置编码直接去掉了,换成了一种可学习的通道缩放因子,理由是移动端部署时位置