无人机机载视频去雾系统设计
2020-06-29秦春霞杨珂任萍郑洁3赵远鹏陈贵锋
秦春霞杨珂任萍郑洁3赵远鹏陈贵锋
(1.西北工业大学 电子与信息学院,西安 710129; 2.西北工业大学 第365所,西安 710065;3.山西汾西重工有限责任公司,太原 030027; 4.国家电网陕西省电力公司检修公司,西安 710000)
0 引言
在无人机对地侦察中,需要获取地面感兴趣目标较为清晰的图像数据,但空中雾霾等因素会影响获取的图像质量K.M.He等提出基于暗通道先验的图像去雾算法,利用软抠图细化透射率[1];其后K.M.He采用导向滤波来提高运行效率,但该算法对空中区域的处理效果尚需改善[2];Berman利用雾度线基础上,利用不同的透射系数恢复了距离图和无雾图像[3]。F.Meng等提出一种有效的正则化去雾算法,通过探索固有的边界约束来恢复无雾图像[4]。范新南等利用亮通道先验和模糊聚类对雾图进行场景分类[5];王晗等提出信息熵与保真度相结合的单幅图像去雾方法。虽然上述算法在去雾效果上都有各自优势,但需要满足机载实时处理等应用需求方面,需要解决相关工程应用实现。针对机载视频去雾处理系统需要,周晓波[6]和龚亮[7]分别采用FPGA实现相关去雾算法,李昂[8]和张海滨[9]利用ARM实现去雾算法效果。上述方法都可以得到较好的去雾效果,但存在时序和逻辑功能实现复杂、硬件资源和功耗要求高,外围接口电路设计也较复杂等问题,机载视频处理应用得到限制。为此,本文采用具有去雾功能的ASIC芯片TS1601[10],根据机载视频处理需要,利用Freescale公司i.MX6嵌入式系统[11]设计系统控制初始化、去雾控制、去雾视频压缩处理、接口电路和指令响应等软件设计。
1 系统总体方案
系统机载图像去雾处理流程:首先,采用Techwell公司TW9912芯片采集模拟数据[12],采用Semtech公司GS2971芯片获取数字高清数据[13],设计BT.656/BT.1120数字视频信号输出;其次,采用TSSI公司专用去雾处理芯片TS1601设计相关去雾处理[10];接着,采用i.MX6处理器完成TS1601、视频采集和遥控遥测指令接收处理工作;最后,针对无人机信道受限情况,完成i.MX6数字视频信号H.264的压缩和数据组帧等工作。系统总体框图如图1所示。
图1 图像去雾系统总体框图
此外,采用Winbond公司W25Q80BV芯片设计SPI Flash存储,设计实现TS1601和TW9912采集芯片I2C接口控制功能、GS2971芯片GSPI接口配置和控制、遥控/遥测指令处理电路完成机载遥控接收和遥测指令回报等。
1 硬件设计
1.1 去雾芯片设计
TSSI公司的TS1601是一款高清视频处理芯片,具有去雾处理、2D/3D图像去噪等功能。TS1601可接收/发送BT.656和BT.1120格式等通用数字视频信号。TS1601具有以下几点:1)输入输出的格式:分别接收模拟视频输出的BT.656和数字高清视频输出的BT.1120;2)外围接口:外围接口有16个GPIO口,可被复用为I2C总线和UART等接口,还有专用SPI总线接口[6]等接口的控制和通信;3)低功耗:TS1601处理芯片具有低功耗;4)设计简单:去雾算法参数设置可以实时调整,时序、逻辑功能、去雾参数等实现相对简单。
1.2 视频采集芯片设计
标准模拟视频采集芯片的D1图像分辨率为奇偶场720×288两幅BT.656隔行数据,如果将其输出到i.MX6的720×576逐行视频接口,就会出现top和bottom两幅720×288(奇偶帧)视频效果。常用隔行转逐行处理方法有以下几种:1)对top和bottom两场交错生成一帧图像处理算法;2)用top或bottom一场代替一帧图像,但其插值算法会损害图像清晰度;3)图像运动补偿算法,算法CPU占用和处理时间较大,达不到实时要求;4)采用TW9912等芯片内部硬件处理方法,通过内部反交错引擎的隔行扫描视频转换成逐行BT.656视频数字信号,由硬件完成复杂的运动补偿等图像处理算法,视频采集效果最好,并且不占用系统处理资源,可满足系统实时处理需要。因此,将TW9912设计为逐行输出,计算其输出像素时钟pixclk并对i.MX6的视频接口进行配置。BT.656并行接口除了传输4:2:2的YCbCr视频数据流外,还有行、列同步所用的控制信号。TW9912一帧PAL制式分辨率为720×576的图像数据由一个625行、每行1728字节(1 440+280+4+4=1 728)的数据块组成。其中,23~311行(288)是偶数场视频数据,336~624行(288)是奇数场视频数据,其余为垂直控制信号。根据公式:像素时钟pixclk=行数据×行数×帧率。对于PAL制式分辨率为720×576的隔行扫描图像数据,pixclk频率为:PAL:(1 440+280+4+4)×625×25=27 000 000。如果采用逐行输出方式,PAL制式的pixclk应为54 MHz,比隔行输出pixclk=27 MHz增大一倍,其帧数也增大一倍由PAL:25->50。此外,由于在视频图像的采集过程中,不同端口大小、不同阶段,数据的字节顺序是非常重要的。为了对图像数据进行灵活打包,在视频接口软件设计数据缓存交换空间进行打包。
数字视频信号芯片GS2971是一款支持标清、高清和3 Gb/s多种速率的SDI接收器,该芯片利用SPI总线进行初始化配置和控制。设计中,设计GS2971完成接入SDI视频YCBCR数据转换和BT.1120输出,经过匹配电阻接入i.MX6视频处理芯片,保持视频信号传输阻抗匹配。
2 软件设计
根据系统功能和设计的需要,系统软件采用模块化设计,其中主程序、去雾处理算法、H.264压缩处理、遥控指令响应程序、遥测信息回报等软件分别采用嵌入式平台软件编程。
2.1 系统主程序设计
系统主程序流程如图2所示。主处理程序主要分为芯片初始化、芯片探测、事件发送和响应操作和内核循环5个模块。根据需要,系统处理主程序采用嵌入式模块化的设计思想,软硬件有机结合构成一个功能完整的一体化的控制模块。具体设计如下:
上电后,程序对系统进行初始化,完成视频接口芯片TW9912和GS2971、去雾处理芯片TS1601初始化工作、i.MX6嵌入式系统初始化、串口初始化、系统相关处理事件初始化;实现模块化设计,针对系统各个接口和去雾处理参数配置脚本设计;系统初始化时,可以根据系统硬件设置和控制参数情况,直接调用对应脚本文件,能够快速、直接、准确地配置模块参数;内核循环流程,设计无人机视频H.264压缩码率受控处理软件,解决压缩编码的运动估计搜索范围、最大关键帧间距、SPI接口缓冲区码率控制机制问题,完成系统SPI输出码率受限软件设计[12]。
图2 系统处理主程序软件流程图
2.2 系统去雾遥控指令接收处理设计
无人机机载去雾处理系统在满足去雾功能基础上,i.MX6接收的遥控指令包括同步帧头和控制指令等,接收和处理的遥控和遥测指令数据需要逐字节进行解析、判断、处理和回报。设计遥控指令的每帧指令由64个字节组成,前两个字节为遥控指令帧头。当嵌入式系统串口接收到遥控指令后,系统根据遥控指令帧结构完成相应遥控解译操作。其他功能设计如下:
1)机载去雾系统初始化:由于系统通过初始化完成相关TS1601去雾接口和状态配置,因此需要关闭系统中断响应并在去雾配置完成后再根据需要开启。
2)TS1601芯片的去雾功能初始化:根据机载视频去雾处理要求,完成TS1601芯片的去雾处理算法参数设置(参见2.3节),系统采用配置脚本方式,快速准确实现机载去雾处理模式设置。TS1601芯片初始化流程如图3所示。
图3 TS1601芯片初始化流程
2.3 系统视频去雾参数设计
无人机机载视频大多是场景变化缓慢对地观测场景,应针对机载图像特性和实际工程情况设计去雾参数。对于机载获取的图像雾化主要表现为图像对比度和明度减小,去雾处理上需要提高图像对比度和明度。因此,机载视频去雾参数系统采用大气散射模型从机载图像去雾I(x)、大气光值A和透射率t(x)中恢复出图像J(x)[1]:
(1)
(2)
式中,Ω(x)表示一块方形区域,Ic表示含雾图像的一个颜色通道。在求取透射率图时使用最小值滤波并不符合机载视频图像景物深度基本一致的情况[1-3,5],改进的去雾算法复杂度较高[3-5],不利于机载景物深度变化较大的区域透射率的实时估算。例如,超低能见度情况下地面雾霾浓度过大,图像去雾处理时会使去雾后的图像噪声偏大,需要进行不完全去雾;当地面能见度较高雾霾浓度很低,不需要对图像进行去雾处理。针对机载图像视场变化缓慢的快速去雾处理,本文提出一种机载图像HSV分量确定透射率。
首先,机载图像色调、饱和度和明度各分量的平均值分别为:
(4)
式中,Sum(H),Sum(S)和Sum(V)为图像中所有像素点色调分量H、饱和度分量S、明度分量V的总和,N1、N2、N3为分量值不为0的像素点数量,AveH,AveS和AveV为图像中各分量的平均值。根据实验数据测试分析,结合飞机总体设计对机载图像去雾处理系统技术指标要求,将机载含雾图像按照如下含雾等级设定。
含雾图像等级1:
(AveH<100)&&(AveS<0.07)&&(AveV<0.5)
(5)
含雾图像等级2:
(AveH<125)&&(AveS<0.2)&&(AveV<0.48)
(6)
其次,根据HSV分量确定含雾图像等级对透射率进行调整,在含雾图像等级为1的区域需要对透视率进行放大,而在含雾图像等级为2的区域需要对透视率保持不变,定义透射率为:
(7)
式中,阈值M定义为含雾图像中对比度大于图像HSV分量对比度阈值S(一般取S=2)的像素值个数p占总像素点个数n相比,即:M=p/n。无人机机载含雾图像表现为对比度较差,所选取的阈值M也应该不同:图像中对比度区域较小的图像选取较大的M值;图像对比度较大选取较小的阈值M。本文按照含雾等级的去雾处理方法,不同于文献[2-4]复杂参数计算方法,计算效率得到提高并且系统实时性也得到保障。
2.4 视频去雾处理设计
视频去雾处理芯片TS1601中有视频去雾寄存器、I2C总线的寄存器、SPI总线寄存器、OSD寄存器等多种寄存器。通过设置相关去雾寄存器(DEMIST_ENABLE、DEMIST_WIN_LT等)的状态来达到去雾的目的。其他有关图像去噪,视频OSD功能处理等软件流程略。
无人机机载视频大多是场景变化缓慢对地观测场景,应针对机载图像特性和实际工程情况采用不同去雾方式和模式对视频进行实时去雾处理。设计视频去雾处理软件如下:首先进行去雾功能的初始化,包括设置去雾最大的亮度和最大的色度;其次,根据输入设备判定并更新相应的脚本参数;然后,去雾系统根据从串口接收到的去雾指令进行处理,获得去雾事件的ID号和参数temp,并根据事件的ID号判断去雾事件的类型。在去雾事件中软件设计中:1)若temp=0,设置去雾的工作模式为关闭的状态;2)若temp=1,设置去雾的工作模式为全双工方式,设置去雾的工作电平为高电平有效,根据获取的参数temp=1选择去雾模式1并对相关的寄存器进行设置;3)若temp=2,设置去雾的工作模式为全双工方式,设置去雾的工作电平为低电平有效,根据获取的参数temp=1选择去雾模式2并对相关的寄存器进行设置。
3 实验测试
采用实际硬件平台,完成相关去雾处理方法的实验测试。实验测试采用实际采集图像和相关公开测试图像进行测试对比,图像去雾效果对比如图4和图5所示。图4(a)、(b)表示含雾等级1去雾效果图,图4(c)、(d)表示含雾等级2去雾效果图。从含雾等级1结果看,由于含雾量一般,区域透射率保持不变,而含雾等级2其含雾量较大,区域透射率需要进行调整,两种等级去雾后的图像都接近于自然。
图4 去雾前和去雾后处理效果对比图
为了更加客观地比较含雾等级去雾处理的效果,选择典型文献[2-4]去雾方法进行比较,并利用TenenGrad函数、方差函数、平均梯度梯度函数等3种清晰度评价函数[15]来评价去雾效果,并对得到函数值做归一化处理,结果如表1所示。由图5测试结果可见,根据含雾等级对透射率进行进行分析和加权调整,相对于文献[2-4]具有良好的的适应性。K.M.He等算法[2]对于大部分图像具有良好的去雾效果,所提暗通道先验方法存在对大气光近似目标场景估计不足等问题,缺乏层次感,去雾图像整体亮度偏暗并存在失真情况,图5(b)第二幅图像左上角还会出现不均匀色块情况;Berman等[3]算法整体亮度和色彩对比度上有所提升,但是某些图像的边缘出现伪轮廓,如图5(c)第一幅图像远处的模糊场景并没有清晰恢复;F.Meng等[4]算法对于弱光照区域会出现对比度和亮度偏低的情况,如图5(d)第三幅图像所示天空区域图像信息丢失并出现色块。由表1可见,本文算法绝大多数情况下各项评价指标是最优的,D.Berman等[3]和F.Meng等[4]算法分别在图5(c)第二幅图和图5(d)第一幅图TenenGrad函数指标客观评价要优于本文方法,但本文方法在保持去雾优良效果的同时还保持较快处理速度,进一步增强算法的实用性。
图5 文献方法和本文方法去雾前和去雾后处理效果对比图
4 结束语
本文提出一种无人机机载图像去雾处理系统设计。系统可根据机载含雾图像等级进行去雾图像参数化分析,完成相关图像压缩、遥控遥测指令接收和发送、机载实时去雾
表1 去雾性能客观评价结果
等处理工作,满足机载视频图像去雾系统实时性处理需要。实验测试结果表明,该系统满足无人机机载视频去雾处理的需求,可有效降低图像去雾处理复杂度,具有功耗小、易实现和适应性强等特点,满足无人机机载图像实时性去雾处理要求。