宫玲瑞,姜 博,王金帅,孟 娜,汪 霖,张嘉洋,陈晓璇
(西北大学 信息科学与技术学院, 陕西 西安 710127)
近年来,随着无人机技术的不断发展,以无人机为飞行载体的航空摄影在遥感观测领域的占比也在不断地提高,具有灵活度高、数据采集时效性强、成本低等诸多优势。
在具体成像过程中,成像视场角与成像焦距有着直接的关系,即焦距愈长,视场角愈小,相机成像的范围愈小,故无人机航拍由于成像焦距长而视场角十分有限。所以,无人机摄影通常依靠在曝光时间内的飞行运动来增大成像视场,但同时也带来了运动像移问题。此外,由于航拍成像的路径较长,常常导致空气粒子对光线的衰减较大,相当于地面摄像时有雾的情况,即使在良好天气条件下得到的无人机航拍图像也存在雾化现象。因此,无人机航拍清晰化一般涉及图像去模糊和去雾两个突出问题。
随着各类图像去模糊和去雾技术的不断提升,其清晰化恢复达到了较好效果,但与此同时,大多数算法均在性能优越的PC机上实现。相比于PC机,嵌入式设备具有专用性强、使用周期长、操作便捷等诸多优势,研究适用于嵌入式设备的图像清晰化系统,具有十分重要的工程应用意义。本文设计以图像清晰化为目标,以嵌入式设备为计算平台的无人机航拍数据处理系统。
常用的图像去模糊处理方法是在建立图像退化模型的基础上,被划分为模糊核估计及非盲去模糊两个阶段[1]。直线运动的模糊核估计主要围绕求取图像模糊角度和模糊长度这两个未知量展开,多使用Radon变化[2-5]、主条纹分析[6]、对数谱估计[7]、Boottom-hat频谱分析[8]、图像正则项[9]等方法,近年来,热门的稀疏表示、深度学习算法[2,10-13]也被应用到直线运动模糊核估计之中。无人机航拍成像过程中因位置及姿势的不断变化而造成明显的图像运动模糊,通过建模推演,一般情况下可视为和航拍相机位置、姿势相映射的图像直线运动模糊。在获取无人机航拍相机成像时间内飞行参数的条件下,可通过分析相机位置与图像成像位置之间的对应关系,估算求解模糊核估计所需的模糊核参数,即模糊长度l和模糊角度θ。针对上述无人机成像特点,本文首先对其飞行模式进行理论分析,估算航拍运动模糊核的像移长度和像移角度,再采用具有快速数字信号处理能力的嵌入式DSP平台,搭建相应的无人机航拍图像清晰化系统。
以航拍相机镜头中心为原点,平行于镜头平面水平方向为x轴,平行于镜头平面竖直方向为y轴,垂直于镜头平面向外为z轴,建立航拍相机的镜头坐标系。以相机成像像面的中心为原点,以像面水平方向和竖直方向分别为x轴、y轴,建立航拍相机的像面坐标系。无人机航拍成像过程中,目标与航拍相机镜头的相对位置和目标在像面上的成像位置之间存在几何关系[9],本节分析了相机镜头位置变化时,地面航拍目标在镜头坐标系与像面坐标系中位置变化的对应关系,得到镜头位置变动对应的航拍目标像面的像移量。
设定航拍目标在相机镜头坐标系中的坐标为(Lx,Ly,Lz),在成像平面坐标系中的坐标为(Ix,Iy)。并设定在航拍相机成像过程中,目标在镜头坐标系中的移动量为(ΔLx,ΔLy,ΔLz),在像面坐标系中的像移量为(ΔIx,ΔIy),通过式(1)可计算航拍成像中相机位置变化对应的目标在像面的像移量[14]。
(1)
(2)
其中,h和f分别为航拍相机的初始高度和焦距,且h≪f,以满足航拍相机运动对应到像面上像移为平移变换,这在一般应用中容易满足。
上述航拍目标在相机像面坐标系中的像移量是以长度作为度量,而估计求解无人机航拍图像模糊参数时,需要获取像素级像移量,本文在研究相机成像参数构成的基础上,完成航拍目标长度像移量到像素级像移量的换算,进而得到图像的模糊核参数:像移长度和像移角度。
通常航拍相机的参数指标与普通相机基本相同,常见指标包括最大长度分辨率、最大宽度分辨率、像面长宽比和传感器尺寸等,故这些参数指标在实际中为已知量。设航拍相机传感器尺寸为ICS,像面长宽比为IPH:IPW,最大长度和宽度分辨率为RH和RW,λ为相机参数,取值16 mm,航拍图像的模糊长度L和模糊角度θ可分别通过式(3)和式(4)得到。
(3)
(4)
1.1节求取了航拍直线运动的模糊核参数,此时,图像清晰化问题就变换成模糊核已知的非盲去模糊问腿。传统非盲去模糊方法一致基于图像退化模型,依赖图像先验并使用能量泛函,通过逆卷积求解原始清晰图像的最优估计值[15]。本文旨在构建面向嵌入式DSP的无人机航拍图像清晰化系统,因此选取求解过程简单、运算速度较快的维纳滤波逆卷积算法。将模糊图像与卷积模糊核后原始清晰图像的估计值作差,维纳滤波逆卷积算法通过最小化该差值的均方值,求解使得均方误差最小的最优估计值,其数学表达式为[16]
(5)
其中:L(u,v)代表模糊图像;P(u,v)代表原始清晰图像的估计值,E|·|2代表求取均方误差。
进而推导出维纳滤波逆卷积算子的频域表达式为
(6)
其中:H(u,v)代表模糊矩阵;H*(u,v)是H(u,v)的共轭数表达式,故|H(u,v)|2=H*(u,v)×H(u,v);N2(u,v)代表噪声的功率谱密度(本文假设其为0);F2(u,v)代表输入模糊图像的功率谱密度。在维纳滤波逆卷积算子已知的情况下,使用式(7)求解原始清晰图像的频域估计值[17-20],
P(u,v)=L(u,v)/W(u,v)。
(7)
除无人机飞行运动对高分辨率航拍图像的采集带来挑战外,由于无人机航拍成像路径较长,常常导致空气粒子对光线的衰减较大,类似于有雾的地面拍摄情况。因而,即使在良好天气条件下,无人机航拍图像也存在一定的雾化现象。本文对含有直线运动模糊的无人机航拍图像去模糊后,基于简单且易实现的视觉增强型去雾原理,使用目前流行的导引滤波器提取图像的边缘和细节信息,并进行增强型图像去雾处理。导引滤波理论假设滤波后的图像与导引图像线性相关,用p表示滤波前图像、q表示滤波后图像、D表示导引图像,那么,在半径为r、中心在像素k的邻域ωk内,q和D的关系[21]可表示为
qi=akDi+bk, ∀i∈ωk。
(8)
其中,(ak,bk)是对应于局部邻域ωk求得的线性常系数。对式(8)两边同时取梯度运算得到q=aD,因为梯度是图像边缘的直接反映,可以看出滤波后图像和导引图像具有相似的边缘结构。从理论上讲,导引滤波器能较好地保持图像的边缘信息,同时对边缘的内部细节进行均值平滑,但整个导引滤波器模型的求解过程并非定值求解而是估计求解过程,其对边缘信息的保持以及对边缘内部细节的均值平滑都是近似的,即导引滤波后图像的边缘和内部细节均会受到损失。所以,本文在参考He等人导引滤波器增强应用思路的基础上[21],同时考虑航拍长焦距成像普遍存在边缘细节信息成像损失较大的特点,采用滤波前图像p与导引滤波后图像q的差值作为图像边缘和内部细节信息的反应。这里暂时忽略了图像噪声,将该边缘和内部细节放大一定的倍数再叠加到滤波前图像p之上,可实现简单快捷的增强型图像去雾处理,其表达式为
Ie=p+ε(p-q)。
(9)
其中:Ie为增强型去雾结果;ε为增强系数(一般1<ε<3)。通过式(9)可以实现低算法复杂度和高运行速度的航拍图像去雾处理。
本文针对无人机航拍图像开展了航拍像移、增强去雾等原理研究,并提出航拍去模糊和去雾增强的清晰化算法。选取以TMS320C6748 DSP为核心的开发平台,搭建无人机航拍图像的清晰化恢复系统。
本文采用Tronlong公司生产的以TMS320C6748DS芯片为核心的TL138/1808/6748-EVM-A3作为 DSP开发板,TL070A LCD作为图像显示屏。系统的设计思路为:基于PC上的DSP编译环境编写程序,使用仿真器TI XDS100V3将程序代码及PC上存储的待处理图像数据送入开发板,存储在片上DDR2(double data rate 2)存储器中。随后通过DSP的CPU读取存储器内的程序和图像数据,利用已有的图像去模糊和去雾模块进行航拍图像后期清晰化处理,运行结果由EDMA3(enhanced direct memory access 3)模块送入TL070A LCD显示屏的显存内,实现航拍原始清晰图像的显示,同时图像恢复结果也可存储在PC机上。图1为所设计系统的功能模块图。
图1 基于DSP平台的系统设计基本结构图Fig.1 Basic structure diagram of system design based on DSP platform
基于PC机上的DSP编译器Code Composer Studio,使用C语言编写程序代码。依据2.1节无人机航拍图像清晰化系统的设计思路,软件设计包含4个步骤:①DSP和功能模块的使能及初始化,依次进行CPU、外设、EDMA3、LCD调色板及LCD液晶屏初始化配置,通过DSP的CPU控制开发板从片外存储器DDR2中读取程序和代码,使用CPU的片内缓存空间Cache临时存储CPU运算过程所产生的中间数据,随后将运算结果通过EDMA3输出到LCD的显存空间中,再结合LCD显示屏的LCDC(liquid crystal display controller)配置参数,在LCD显示器上显示系统运算结果;②图像数据输入,为尽力减小图像数据量同时避免过度压缩图像数据,使用8深度的位图文件作为输入图像格式,存储图像头文件信息并提取其像素数据;③航拍图像清晰化处理,以第1节所述算法为依据,编写相应的代码;④LCD液晶屏的图像数据显示,该部分通过EDMA3将已经通过清晰化处理的航拍图像从开发板CPU的Cache缓存中传送到LCD的显存单元,参照LCDC的初始化配置参数,显示经过系统清晰化处理后的航拍图像。图2为系统软件设计步骤图。
图2 系统软件设计步骤图Fig.2 System software design step diagram
通常情况下,PC机的硬件资源较为充足,而小型DSP平台的硬件资源十分有限,在代码实现方面,基于PC机运行的程序多选用函数库丰富、语言简练的高级编程语言,且较少接触硬件底层。而嵌入式设备常选用接近底层的汇编语言或面向过程的C语言,程序编写繁琐且代码量大,且需考虑底层存储器及外设模块的配置部署,在很大程度上加大了运用嵌入式设备进行系统搭建并在该平台上运行程序的难度。虽然本文清晰化系统设计过程选取的Tronlong TL138/1808/6748-EVM-A3 DSP开发板主频峰值可达456 MHz,且集成了充分的外设模块,并支持超长指令字(VLIW)等快速处理技术,但在系统的执行过程中,易出现由于运算数据量大和运行时间长导致的程序跑飞、运行结果出错或运行速度过慢等技术难点。
空间图像进行卷积和快速傅里叶变换、逆变换等运算操作,所产生庞大内存开销使得DSP上的存储资源分配难度增加,CPU内存资源不足、片上内存处理缓慢、访存冲突等问题均会导致系统设计实现困难。此外,庞大的内存开销也使得代码的执行时间大幅度增加,这样不仅仅会降低系统的效率,还会使开发板上计时器超时中断或跑飞。
为解决上述技术难点,本系统采用合理分配DSP系统的存储空间和加速处理的解决方案。首先,将部分存储开销较大的数据段和代码段置于运行速度较慢的片上存储器DDR2当中,与此同时,开启片内Cache快速缓存器,用来缓存代码运行过程中的临时变量和数据,以减少因DSP系统的片上存储速度与片内CPU运行速度差异较大而导致程序运行时间过长的情况。其次,针对程序的并行优化问题,在原始代码的基础之上运行程序,并根据生成MAP文件的内容、运行结果的报错位置以及单步调试,灵活调整代码顺序或加入部分空操作来避免程序访存冲突,使得程序能够实现-o3级别的流水线并行操作。此外,本系统设计实现过程中,还采用重新定义访存冲突函数和矩阵数据内存段的方法,将易冲突数据均单独放置,且为堆栈保留足够大的存储空间,以保证系统代码快速、准确地执行。
本文使用大疆DJIPhantom 3 Advanced 无人机拍摄72张原始清晰图像,再利用Matlab自带的图像加模糊算法,生成已知模糊核参数(选择模糊长度为3~7,模糊角度为30°~45°)且与原始清晰航拍图像一一对应的直线运动模糊图像,作为去模糊实验所用的图像数据集。本文在对无人机摄影曝光时间内运动像移研究的基础上,采用后期验证性实验方案,假设用以求解模糊核长度与角度的相机参数为已知。本实验所用软件平台为Code Composer Studio 5.50,编程语言为C语言。在实验素材预处理阶段,将图像尺寸统一调整为256×256,格式设定为8位色深度位图格式。此外,定量化测试实验结果均基于Matlab 2017b平台实现。
本仿真实验已知的无人机相机参数为:焦距f为0.2mm;成像传感器尺寸ICS为1/2.3英寸;像面长宽比为1∶1;最大长度分辨率RH为256;最大宽度分辨率RW为256;无人机飞行高度为30 m;航拍目标在镜头坐标系中的移动为(0.134 m,0.143 m,0.2 m)。并选用模糊核半径为15,噪声功率谱为0,导引滤波系数为0.01,滤波窗口大小为17,增强系数为1.3的实验参数。图3展示了部分航拍图像在该DSP平台上清晰化的实验结果。其中,图3中的第1列图A、B、C为待处理的航拍模糊图像(加模糊处理),图3中第2列图D、E、F为去模糊后图像,图3中第3列图G、H、I分别为图D、E、F进行去雾处理后的图像,图3中的第4列图G、H、I为原始清晰航拍图像(未加模糊)。为了显示并对比,对图3中图像统一进行了大小调整。
通过对比可以看出,相比于原始航拍模糊图像,去模糊后图像在视觉上的清晰度提升明显,去雾后图像在边缘范畴等重要细节也提升明显。例如,去模糊前的图3A、3B、3C中红圈部分十分模糊,在去模糊后的图3D、3E、3F中则基本可以看清,而在去雾后图3G、3H、3I中,视觉效果则有着更明显的增加。这说明所设计的基于DSP平台的无人机航拍图像清晰化系统具有良好的非盲去模糊恢复和增强型去雾效果。
从实验结果可以看出,本文基于DSP平台的无人机航拍图像清晰化系统处理效果出色,但为了严谨起见,在上述主观评价的基础上,采用平均梯度、对比度和信息熵作为客观评价指标,选用经典的维纳滤波算法、Lucy-Richard算法、约束最小二乘算法,以及Chowdhury等人最新提出的FOTV算法[22]作为对比算法,与本文所提算法进行定量的对比分析。客观评价结果如表1~3所示,所展示指标值均为航拍数据集均值。对比表1~3中的数据,可以明显看出,本文航拍图像集在所提算法上的平均梯度和对比度均大于其他4种算法;线性模糊长度为3,角度为30°时,相较其他4种算法,本文所提算法的信息熵均值最大,而在其他两种模糊参数下,所提算法也取得了除约束最小二乘法外最大的信息熵均值,即可证明本文所提无人机航拍清晰化方法对含有直线运动模糊的航拍图像具有显著的清晰化效果。
图3 基于DSP平台的航拍图像清晰化实验结果Fig.3 The experimental results of clearing aerial images based on DSP platform
表1 72幅航拍图像数据集平均梯度均值对比结果Tab.1 Mean average gradient results of 72 aerial image datasets
表2 72幅航拍图像数据集对比度均值对比结果Tab.2 Mean contrast ratio results of 72 aerial image datasets
表3 72幅航拍图像数据集信息熵均值对比结果Tab.3 Information entropy ratio results of 72 aerial image datasets
为了进一步验证所提算法和所搭建面向DSP的无人机航拍图像清晰化系统的有效性,使用图像去模糊常用的GOPRO普通图像数据集,预处理得到868幅256×256大小的原始清晰图像,并采用Matlab自带的图像加模糊算法,生成已知模糊核参数(模糊长度为3~7,模糊角度为30°~45°)且与原始清晰航拍图像一一对应的直线运动模糊图像,作为去模糊实验所用的图像数据集。
图4展示了在线性模糊参数长度为3、角度为30°时,部分GOPRO普通图像数据集样本在本文所提算法、维纳滤波算法、Lucy-Richard算法、约束最小二乘算法以及FOTV算法中的处理结果。通过图4可以看出,相比于其他4种算法,本文所提算法处理得到的结果图边缘对比度明显较高,但同时与原始清晰图像的差距也更大。
表4展示了在线性模糊参数长度为3、角度为30°时,GOPRO普通图像数据集平均梯度、对比度和信息熵这3项指标值的对比结果。通过对比可以看出,在GOPRO数据集中,本文所提算法的平均梯度、对比度和信息熵这3项指标值都优于其他算法。
表4 GOPRO普通图像数据集平均梯度、对比度和信息熵均值对比结果Tab.4 Comparison results of average gradient, contrast and information entropy of GOPRO ordinary image datasets
低成本的航拍图像清晰化方法,尤其是其在嵌入式上的实现问题研究具有一定的实践意义。因此,本文针对无人机航拍成像过程的坐标变换关系及影响无人机航拍图像质量的两个主要因素,开展旨在实现图像清晰化的去模糊和去雾研究。首先,结合无人机成像特点对其飞行模式进行理论分析,估算航拍运动模糊核的像移长度和像移角度两个模拟参数;其次,采用维纳滤波算法和视觉增强型去雾算法进行适合于嵌入式DSP的无人机航拍图像清晰化处理;最后,使用C6748DSP开发板,搭建适用于资源有限的嵌入式DSP平台的航拍图像清晰化(去模糊和去雾)系统。该系统具有低成本、易操作、高可靠性、易维护的特点。
本文所提算法还存在诸多不足,算法研究中未采集真实飞行参数,致使现阶段实验为仿真验证,之后的研究会着重关注实际飞行拍摄参数的采集,将仿真验证转变为实际飞行参数的验证。
图4 部分GOPRO普通图像数据集样本在5类算法中的实验结果对比Fig.4 Comparison results of some GOPRO ordinary image dataset samples in five kinds of algorithms