纯合成数据训练,真实图像Pose mAP达0.97:亚琛工大用YOLOv11实现风电关键点检测

0 阅读8分钟

【导读】  自主无人机巡检风电叶片时,需要准确检测风机及其关键特征(叶尖、塔顶、轮毂等)来实现安全定位和避障。然而,现有方法依赖人工标注的真实图像,在天气、光照、风机型号等多样性方面受到限制。德国亚琛工业大学(RWTH Aachen)自动控制研究所提出了一种基于合成数据的解决方案:通过可定制的渲染工具箱生成带标注的合成风机图像,完全不使用真实图像进行训练,仅用合成数据训练 YOLOv11 关键点检测网络,并设计了针对叶尖排列不变性的改进损失函数。在83张从未见过的真实风机图像上,该方法的 Pose mAP50-95 达到 0.97。

论文标题:  Wind Turbine Feature Detection Using Deep Learning and Synthetic Data

作者:  Arash Shahirpour, Jakob Gebler, Manuel Sanders, Tim Reuscher

机构:  Institute of Automatic Control (IRT), RWTH Aachen University

论文链接:  arXiv:2507.21611v1


一、真实数据标注贵且多样性不足——为什么要用合成数据?

自主无人机巡检风电叶片时,无人机需要根据 RGB 相机图像提取风机的关键特征,以估计风机相对于无人机的位置和偏航角,从而实现安全导航和精准定位。

论文指出现有方法存在三个核心限制:

  1. 多样性不足:现有数据集通常在单一风电场、单一相机条件下采集,在天气、光照、风机型号和背景复杂度方面的覆盖有限,影响模型的泛化能力;
  2. 标注成本高:人工标注不适合大规模数据集(如10,000张以上),且难以扩展;
  3. 仅针对静止风机:部分方法仅处理叶片停止状态的风机,不适用于运行中的风机巡检。

然而,风机具有结构化、大致均匀的几何形态和可预测的外观,这使得用合成渲染图像替代真实图像进行训练在理论上是可行的。合成数据还可以系统性地控制和变化光照、背景复杂度和风机配置等视觉因素。


二、方法:合成数据生成 + 改进损失函数的 YOLOv11

2.1 合成数据生成工具箱

图片

图片来源于原论文

论文基于 BlenderProc2(Blender 的 Python 接口)开发了一套可定制的渲染工具箱,用于生成带标注的合成风机图像。工具箱的核心设计如下:

风机模型多样性:  在初始 CAD 模型基础上扩展了多种变体,包含不同的叶片厚度和叶片长度。

背景多样性:  先以透明背景渲染风机图像,再与从 Kaggle 获取的 4319 张随机风景图像合成,模拟风机在自然环境中的真实视觉背景。

可配置参数:  工具箱支持以下参数的灵活配置:

参数类别具体参数
光照太阳方位角、高度角、灰尘密度
风机布局每张图像中的风机数量(1-4台)、位置
风机姿态偏航角 ψ、叶片旋转角 ϕ
相机离地高度、距原点距离、焦距,以及可选的横滚/俯仰/偏航角

数据增强:  在渲染图像上还叠加了以下增强操作:

  • HSV 色彩偏移(前景和背景分别独立偏移)
  • JPEG 压缩伪影(40%的图像)
  • 高斯随机噪声(40%的图像)
  • 10%的图像使用随机噪声背景

论文共生成了 12,977 张训练图像 和 3,273 张验证图像,渲染耗时约 270 分钟。

2.2 关键点定义

图片

图片来源于原论文

论文定义了风机的 7 个关键特征点:3 个叶尖、轮毂前后端各1个、塔顶和塔底各1个。这些关键点可用于估计风机相对于无人机的位置和偏航角。

2.3 改进的损失函数:叶尖排列不变性

这是论文的一个技术亮点。在关键点检测中,每个关键点需要分配唯一索引。论文最初按角度区间([0°,120°)、[120°,240°)、[240°,360°))为三个叶尖分配固定标签。但这种方式存在两个问题:

  1. 当风机偏航旋转180°时,区间标签需要重新分配,否则标签对齐失败;
  2. 区间硬边界附近的预测会产生较大的损失惩罚。

解决方案:  论文修改了三个叶尖的 OKS(Object Keypoint Similarity)损失函数。对于预测的三个叶尖坐标和真实坐标,遍历所有 3! = 6 种排列,选择使欧氏距离之和最小的排列作为最优匹配:

π = arg min 求和 ||P_πi · p̂ − p||²

然后使用最优排列后的预测坐标计算 OKS 损失。这使得损失函数对叶尖的固定排序不变,网络可以独立于角度位置学习叶尖的视觉定位。

2.4 模型选择

论文使用 YOLOv11 的关键点检测变体,分别训练了两个尺寸的模型:

模型参数量训练时间
YOLOv11-s9.4M4小时22分钟
YOLOv11-m20.1M8小时4分钟

均训练 150 个 epoch,硬件为 AMD Ryzen 9 3900X + NVIDIA RTX 3080(10GB)。


三、实验结果

3.1 验证数据集

论文使用两个验证集:

  • 合成验证集:3,273 张工具箱生成的图像;
  • 真实验证集:83 张从网络来源随机选取的真实风机图像(来自 Unsplash、Kaggle、Adobe Stock 等),手动裁剪和标注。真实验证集中的风机型号在训练中从未出现,与训练数据没有刻意的相似性。

3.2 检测性能

论文 Table 2 的完整数据如下:

模型数据集mAP50 BoxmAP50-95 BoxmAP50 PosemAP50-95 Pose
YOLOv11-s合成0.98970.92520.98810.9731
YOLOv11-s真实0.99290.87240.99290.9722
YOLOv11-m合成0.99060.94190.98970.9782
YOLOv11-m真实0.99100.86960.99200.9703

图片

图片来源于原论文

关键发现:

  • 两个模型在真实图像上的 Pose mAP50-95 均超过 0.97(s: 0.9722, m: 0.9703),而它们完全没有见过任何真实训练图像,验证了合成数据训练的强泛化能力;
  • mAP50-95 Box 在真实数据上有所下降(从合成的 0.92-0.94 降至真实的 0.87),论文解释这是因为边界框检测在高 IoU 阈值下对大小和对齐的微小偏差更敏感;相比之下,关键点检测(Pose)在高阈值下仍保持稳定;
  • 真实数据上的部分指标略高于合成数据,论文认为这是由于真实验证集仅83张图像,规模有限,无法达到合成数据集同等的复杂度和多样性,扩大真实数据集可能会导致更低但更真实的分数;
  • s 和 m 模型精度相当(真实数据上 s 甚至略高0.3%),论文推测在更大、更多样化的场景中 m 模型可能表现更好。

3.3 推理速度

模型推理时间端到端延迟
YOLOv11-s2.0 ms2.4 ms
YOLOv11-m4.6 ms5.1 ms

s 模型的推理速度显著更快,适合机载部署场景中对算力和功耗敏感的需求。


四、方法优势与未来方向

优势

  1. 零真实数据训练:完全基于合成数据训练,消除了昂贵的真实数据采集和人工标注需求;
  2. 强泛化能力:在从未见过的真实风机型号上达到 Pose mAP50-95 = 0.97,验证了合成数据在结构化目标检测场景中可替代真实数据;
  3. 叶尖排列不变损失函数:通过最优排列匹配解决了旋转对称关键点的标签分配问题;
  4. 开源可复现:渲染工具箱和训练模型均已在 GitHub 公开发布;
  5. 轻量高效:s 模型仅 9.4M 参数、2.4 ms 端到端延迟,适合无人机机载部署。

未来方向

  • 论文指出当前验证仅基于静态图像,尚未在视频帧上进行测试,视频中可能存在的运动模糊等因素需要进一步验证;
  • 计划扩展工具箱以从预测中提取数值数据,如偏航角和叶片旋转速度;
  • 将在更大的真实数据集和视频数据上进行测试。

五、总结

本文提出了一种基于合成数据训练 YOLOv11 关键点检测网络的方法,用于自主无人机巡检中的风机特征检测。通过可定制的 BlenderProc2 渲染工具箱生成多样化的合成训练图像,并设计了叶尖排列不变的改进损失函数,模型在完全不使用真实训练数据的情况下,在83张未见过的真实风机图像上达到了 Pose mAP50-95 = 0.97。该方法受到德国联邦经济与能源部 AutoFlow 项目资助,渲染工具箱和模型均已开源。结果表明,在风机这类具有结构化几何形态的目标上,精心设计的合成数据可以有效替代真实数据进行模型训练。