
068、YOLOv11改进-遥感场景旋转框检测头设计即插即用涨点方案从一次失败的遥感项目说起去年接了个卫星图像目标检测的活儿,甲方要求检测机场里的飞机朝向。我一开始图省事,直接用YOLOv11的水平框检测头往上怼,结果发现两架并排停着的飞机,预测框直接糊成一团——水平框的IoU阈值一卡,NMS把其中一架给干掉了。更离谱的是,跑道上的飞机头朝东还是朝西,水平框根本区分不出来,甲方验收时直接甩了句“你们这检测结果连飞机往哪飞都看不出来”。那段时间我对着遥感图像里密密麻麻的旋转目标,第一次意识到水平框检测在遥感场景下的局限性有多致命。后来我花了三周时间,把YOLOv11的检测头改成了旋转框版本,最终在DOTA数据集上mAP涨了6.8个点,尤其是大长宽比目标(比如桥梁、船舶)的召回率直接翻倍。今天就把这套即插即用的旋转框检测头设计方案拆开揉碎了讲清楚。旋转框检测头的核心痛点YOLOv11原本的检测头输出是(batch, 4 + num_classes, grid_h, grid_w),4个值对应(x, y, w, h)。旋转框检测需要额外预测一个角度参数θ,变成5参数表示法(x, y, w, h, θ)或者8参数表示法(x1,y1,x2,y2,x3,y3,x4,y4)。这里有个坑:直接用角度回归会面临角度周期性问题——0度和179度在数值上差179,但在物理意义上几乎重合。我一开始用MSE loss训角度,模型直接崩了,预测的角度在0和π之间疯狂震