4. 图像预处理

在无人机降落标志识别任务中,机载相机采集到的原始图像往往受到光照变化、运动模糊、传感器噪声以及复杂背景的干扰。如果直接把彩色原图送入检测或跟踪算法,不仅计算量大,而且特征稳定性差。图像预处理的目标,就是在保留降落标志关键结构的前提下,抑制干扰、增强对比、突出轮廓,为后续的角点检测、轮廓拟合与位姿解算提供更“干净”的输入。

本节的核心逻辑可以概括为:降维 → 去噪 → 增强 → 提边 → 整形 → 选色。六个步骤并非必须全部使用,而是根据飞行阶段、光照条件和标志类型灵活组合。

一、核心原理:六类预处理手段的作用

灰度化是把三通道彩色图像压缩为单通道亮度图。常用加权公式为 Y = 0.299R + 0.587G + 0.114B,它符合人眼对绿色更敏感的视觉特性。灰度化后数据量降为原来的三分之一,后续滤波、边缘检测的计算速度显著提升。对于以黑白棋盘、H 形、T 形为主的降落标志,灰度图已经足够表达结构信息。

滤波去噪用于抑制高斯噪声、椒盐噪声和压缩伪影。高斯滤波适合平滑随机噪声;中值滤波对椒盐噪声和细小纹理特别有效,且能较好保留边缘;双边滤波在平滑的同时保留强边缘,适合标志边界清晰的场景。无人机在悬停时画面较稳,可选用较小核;高速下降时运动模糊明显,应避免过度平滑。

直方图均衡通过重新分配灰度分布提升整体对比度。全局均衡在逆光或阴影下容易放大背景噪声,因此实际中更常用 CLAHE(限制对比度自适应直方图均衡),它分块处理并限制对比度拉伸,能在保留局部细节的同时避免噪声爆炸。

边缘检测用于提取标志的几何轮廓。Sobel 计算简单、方向性强;Canny 通过双阈值和滞后连接得到细且连续的边缘,是降落标志轮廓提取的首选。阈值设置需结合图像梯度分布,过高会断边,过低会引入大量背景纹理。

形态学操作包括腐蚀、膨胀、开运算和闭运算。开运算先腐蚀后膨胀,可去除小噪点、断开细连接;闭运算先膨胀后腐蚀,可填补轮廓空洞、连接断裂边缘。对二值化后的标志区域,闭运算常用于把虚线轮廓补成闭合区域,便于轮廓面积和中心点计算。

颜色空间选择决定后续分割的稳定性。RGB 对光照敏感;HSV 将色调、饱和度、明度分离,适合按颜色提取红色或蓝色标志;YCrCb 在肤色和亮度分离上表现好,也常用于嵌入式视觉;Lab 接近人眼感知,适合色差明显的场景。若标志为黑白,则灰度空间即可;若标志含彩色环,则优先 HSV。

二、方法流程:一条可落地的预处理链

下面给出面向降落标志的典型预处理流水线,适用于机载算力有限的嵌入式平台:

输入:BGR 原图 frame
1. 灰度化:gray = cvtColor(frame, COLOR_BGR2GRAY)
2. 去噪:blur = medianBlur(gray, 5) 或 GaussianBlur(gray, (5,5), 0)
3. 增强:clahe = createCLAHE(2.0, (8,8)); eq = clahe.apply(blur)
4. 边缘:edges = Canny(eq, 60, 150)
5. 形态学:kernel = getStructuringElement(MORPH_RECT, (3,3))
   closed = morphologyEx(edges, MORPH_CLOSE, kernel, iterations=1)
6. 颜色辅助:hsv = cvtColor(frame, COLOR_BGR2HSV)
   mask = inRange(hsv, lower_red, upper_red)
输出:closed 与 mask 融合后的候选区域

该流程的关键在于顺序:先灰度化再滤波,可减少计算量;先增强再边缘,可让弱边缘更易被 Canny 捕获;先边缘再闭运算,可把断裂轮廓连接成完整区域。若标志为纯色,可把第 6 步的颜色掩膜与边缘图做按位与,快速锁定候选区域。

降落标志图像预处理流水线 原始 BGR 彩色图像 灰度化 Y=0.299R+0.587G+0.114B 滤波去噪 中值 / 高斯 / 双边 直方图均衡 CLAHE 局部增强 边缘检测 Canny 双阈值 形态学操作 闭运算连接轮廓 颜色空间 HSV / YCrCb / Lab 候选区域 送入检测跟踪 3 通道 1 通道 抑制噪声 提升对比 提取轮廓 补洞 / 去噪点 按色分割 ROI 输出 参数建议:中值核 3~5;CLAHE clipLimit 2.0、tile 8×8;Canny 低阈 50~80、高阈 150~200; 形态学核 3×3、闭运算 1 次;HSV 红色 H 0~10 与 170~180,S、V 按实拍标定。

三、案例场景:不同光照下的参数取舍

场景一:正午强光、标志反光。此时灰度图高光区域饱和,Canny 容易在反光边缘产生伪轮廓。建议先做 CLAHE 压缩高光,再用较小的高斯核去噪,Canny 高阈值适当提高,形态学闭运算核缩小到 3×3,避免把相邻噪点连成假区域。

场景二:傍晚弱光、草地背景。图像整体偏暗,标志与草地灰度接近。此时应优先使用 HSV 空间提取标志颜色,若标志为白色,则改用 Lab 的 L 通道做自适应阈值。直方图均衡可显著拉开标志与背景的差距,但要注意噪声同步放大,需在中值滤波后再增强。

场景三:高速下降、运动模糊。模糊会使边缘变宽、Canny 边缘不连续。可先做一次轻度锐化或使用双边滤波保留边缘,再以闭运算连接断裂轮廓。若仍不稳定,应降低跟踪帧率或改用光流预测补偿,而不是一味加大形态学核。

四、常见误区与复盘清单

误区 后果 修正建议
先边缘检测再滤波 噪声被当成边缘,轮廓杂乱 先滤波去噪,再做 Canny
全局直方图均衡用于逆光 背景噪声被放大,标志反而模糊 改用 CLAHE,限制对比度
Canny 阈值固定不变 不同光照下断边或过检 按梯度中位数自适应设定双阈值
形态学核过大 标志与背景粘连,中心点偏移 核不超过 5×5,优先闭运算 1 次
始终使用 RGB 分割颜色 光照变化时颜色漂移严重 改用 HSV 或 YCrCb,固定色调范围
复盘时建议记录每组参数对应的识别成功率与耗时。预处理不是越复杂越好,能在机载算力约束下稳定输出候选区域,才是最优链路。
注意:颜色空间转换、CLAHE 和 Canny 都会引入额外计算。若帧率低于 20 FPS,应优先保证灰度化与中值滤波,把颜色分割放到 ROI 内执行,避免全图重复计算。

综上,灰度化负责降维,滤波负责去噪,直方图均衡负责增强,边缘检测负责提轮廓,形态学负责整形,颜色空间负责按色锁定目标。六者按“先降维、再去噪、后增强、再提边、最后整形与选色”的顺序组合,才能让降落标志在复杂光照和运动条件下依然稳定可辨,为后续的识别与跟踪打下可靠基础。