杨佳义,陈 勇
(1. 重庆邮电大学移通学院智能工程学院,重庆401520; 2. 重庆邮电大学自动化学院,重庆400065)
低照度(微光、夜视或特殊场景)环境下,视频图像往往具有对比度低、信息量少、灰度谱带宽窄、图像层次感弱等缺陷,导致人眼难以辨识,因此,针对低照度视频图像增强的研究具有重要的现实意义[1-2]。
目前,低照度图像增强的常用方法有基于直方图均衡化[3]和 Retinex 理论[4]。直方图均衡化会提高图像全局对比度,并不适用于低照度视频图像局部增强,增强彩色图像时还容易出现颜色失真。文献[5-7]中提出了利用直方图均衡化的改进 算法 ;文献[8]中提 出的 EFF(Exposure Fusion Framework)算法能获取最佳曝光比,通过曝光融合增强图像;文献[9]中提出对低光照视频图像取反,加上去雾算法进行增强。但这类改进方法只对特定场景应用有效,适用性差。
基于人类视觉的亮度和颜色感知的Retinex 理论通过分离原图光照分量提取目标图像分量,传统多尺度Retinex 算法[10]对R、G、B 三通道采用高斯模糊估计光照分量,破坏了原有的颜色关系,增强后图像颜色严重失真。文献[11]中提出的 LIME(Low-light image enhancement via Illumination Map Estimation)算法在RGB 三通道中寻找最大值来估计光照;文献[12]中提出的MF(Multi-scale Fusion)算法基于形态闭合估计光照分量;文献[13]中提出的NPEA(Naturalness Preserved Enhancement Algorithm for non-uniform illumination images)通过亮度滤波器和双对数变换获取光照分量。文献[14]中将传统的MSR(Multi-Scale Retinex)算法中的三个高斯滤波器替换为三个导频滤波器来提取光照分量,通过改进光照分量估计的方式改善了增强效果。但是该类算法引入了伪影噪声,不利于低照度图像信息挖掘。
基于深度学习的低照度图像增强[15]算法的复杂度高,应用于视频图像增强处理的实时性差。
针对上述问题,本文算法依据人类视觉分辨率感知特性,在不引入伪信息的基础上设置阈值补偿增强低照度图像,建立补偿系数的自动寻优模型,并嵌入DirectShow 视频处理平台实现视频图像的自适应增强。对比实验结果表明,本文算法在不引入伪影下,增强效果和实时性最好。
人类视觉恰可分辨的差异称为JND(Just Noticeable Difference),参考文献[16]中关于对比度分辨率随背景灰度变化的规律,见式(1)。
其中i为背景灰度:i ∈[0,47]为暗视觉,人眼的恰可分辨灰度
图1 Flowerpot原图Fig. 1 Original Flowerpot
对比度分辨率补偿后,图1 中掩盖的盆栽和栏杆信息可以分辨出其形状,有效改善了图像质量。采用平均灰度、信息熵、对比度、灰度层次和谱线带宽等视觉感知图像质量特征参数分析图像特征[17-18],用于图像的无参考客观质量评价[19]。
平均灰度AG(Average Gary)计算图像的亮度水平,公式如下:
其中:Gray(m,n)为像素点(m,n)的灰度值。
图像所含的信息用信息熵IE(Information Entropy)量度,差异呈指数变化;i ∈(47,255]为明视觉,恰可分辨的差异在1.17到1.75个灰度级。
低照度环境下图像信息被背景掩盖,如在0灰度附近需约23灰度级的差异才能达到1 JND,机器视觉能分辨1个灰度级差异,而人眼却无法分辨。对恰可分辨的灰度级差异进行比例积分运算,暗视觉下相邻灰度级补偿到1 JND,使本来不能分辨的信息达到恰可分辨。低照度图像的补偿原理如下:
式中:OG(x,y)和TG(x,y)分别表示在图像像素点坐标(x,y)处补偿前的原始灰度值和补偿后的目标灰度值,取值范围为[0,255]。对于8 位的数字系统,补偿后的目标灰度值大于255,令其等于255,小于1 则令其等于0,否则会出现补色反色。k值为对比度分辨率补偿比例系数,作为调节补偿深度的可变参数。对图1 的Flowerpot 原图RGB 三通道分别作对比度分辨率补偿,不同比例系数k 补偿效果图及度谱(对应灰度图像的灰度级像素分布)如图2所示。公式如下:
其中:p(i)是灰度/色度为i的像素的概率(百分数)。
一幅图像的对比度用平均对比度AC(Average Contrast)量度:
其中:Cc(x,y)为像素点(x,y)的色度梯度。
灰度层次HF(Hierarchy Factor)反映图像的柔和度,对于8位图像系统,共有256灰度层次。图像层次用灰度谱线的比例数表示,灰度层次HF定义为:
式中,n为图像的灰度谱线数。
灰度谱带宽BWF(BandWidth Factor)反映灰度谱分布结构,百分带宽表示为:
其中:RG、LG分别表示灰度谱的右值和左值。
图2 不同补偿比例系数k值的补偿效果Fig. 2 Compensation effects of different compensation proportion coefficient k values
图2 中不同比例系数k 值补偿增强后图像的质量参数如表1所示,随着比例系数k值的增大,图像的平均灰度、平均对比度、灰度谱带宽都增大,信息熵和灰度层次先增大后减小。
表1 不同补偿比例系数k值补偿后的图像质量评价参数Tab. 1 Image quality evaluation parameters with different compensation proportion coefficient k values
比例积分补偿变换后量化为[0,255]的数字量容易出现过补偿和欠补偿。如图2(a)、(b)所示,当补偿比例系数取0.3 和0.5 时,明视觉灰度级分布集中,灰度谱带宽小于1,对比度补偿不足;如图2(c)、(d)所示,当补偿比例系数取值过大时(如0.7、0.9),出现过补偿,图像效果有曝光现象。由式(1)知,当补偿程度小于1.5 个灰度级差异时,相邻灰度级达不到最小可分辨差异,补偿不再有意义。定义对比度分辨率补偿程度为CDegree(Compensate Degree):
由式(1)可知,明视觉的恰可分辨差异在1到2之间,为保证明视觉的灰度级达到恰可分辨,令明视觉补偿程度CDegree为1.5,则CDegree为1.5 所对应的灰度级为对比度分辨率补偿阈值Th。定义加阈值的分段补偿算法如下:
式中:TG(x,y)Th为阈值处的补偿后的目标灰度。当补偿程度CDegree≥1.5 时,采用比例积分补偿;当补偿程度CDegree<1.5时,进行线性拉伸补偿。
图1 进行加阈值的对比度分辨率补偿,当k= 0.5 时补偿后的图像如图3所示。
图3 加阈值的对比度分辨率补偿效果Fig. 3 Compensation effect of contrast resolution with threshold
补偿后灰度图像的谱线具有了0到255的全带宽谱线,挖掘暗视觉图像信息的同时,保证了明视觉的补偿程度,相较于图2(a)中地面的栅条信息更加明显,更适宜于图像信息挖掘。加阈值前后补偿图像质量评价参数对比如表2 所示,在相同的补偿比例系数下,加入阈值补偿后图像的平均灰度、平均对比度、信息熵、灰度谱带宽、灰度层级都提高了。
在视频图像处理应用中,需要自适应提取补偿比例系数k值。补偿系数不同时补偿效果不同,如图2 所示,随着补偿比例系数k值的增加,图像的补偿效果先由差逐渐变好,然后再由好逐渐变差,呈凸函数特性,具有最佳补偿比例系数k值。通过提取视频图像特征参数,结合主观评价方式选取补偿后最佳图像,建立补偿比例系数k自动寻优模型,从而实时获取单帧图像最佳补偿系数,建模技术方案如图4所示。
表2 加阈值补偿前后图像评价质量参数Tab. 2 Image quality evaluation parameters before and after compensation with threshold
图4 补偿比例系数k自动寻优模型建立技术方案Fig. 4 Technical scheme for establishing automatic optimization model of compensation proportion coefficient k
采集低照度环境下平均灰度值为0 到47 间的原始图像20 幅,每幅图像取5 个不同补偿比例系数k,获得测试图像样本集。参照数字电视图像质量主观评价方法标准(GY/T134—1998)的观察条件,组织10 名观测员主观评测选取最佳视觉效果图像。观测者在评价时,会因为认知方向、知识背景、情绪等因素的不同而得出不同的评价结果。评价结果采用数学统计的方法,对每一组数据丢弃偏差过大评价结果,以均值方法提取最终评价结果。运用数据分析软件AGrapher 数理统计拟合最佳补偿比例系数k的预测模型如图5 所示。图5 中横坐标为原图平均灰度AGO(AG of Original image),纵坐标为比例系数k,图中圆圈为实验择优点实验数据,最佳补偿比例系数k的预测模型关系如下:
其中:AGO为原始图像平均灰度值。
图5 最佳补偿比例系数k值预测模型Fig. 5 Prediction model of optimal compensation proportion coefficient k value
利用微软提供的DirectShow 平台开发具有视频图像自适应补偿增强的应用程序,来验证补偿算法的实用性和实时性。
DirectShow 是Windows平台下通用的视频处理技术,可以快速搭建视频播放、捕获和编辑应用程序。为了实现视频图像自适应补偿增强,开发对比度分辨率补偿(Contrast Resolution Compensation,CRCpensate)Filter。以标准的 Transform Filter基本的类 CTransformFilter 作为父类。 重写函数CTransformFilter::CheckInputType,调用 canPerformTransform函数检查输入的视频的媒体格式;函数CTransformFilter::CheckTransform 检查输出的媒体类型和输入的媒体类型是否匹 配 ;CTransformFilter::DecideBufferSize 通 过 本 Filter 的OutPutPin接口和下级InputPin接口协商预留每个Sample的缓存大小;CTransformFilter::GetMediaType 利用上一个 Filter 支持的媒体类型来决定输出的媒体类型;CTransformFilter::Transform中实现对比度分辨率补偿算法。
CRCpensate 类的Transform 函数从输入Sample 中获得视频流数据,处理后放入输出Sample 的内存中,发送给Video Render。算法的实现流程如图6所示。
在Transform函数中,获得当前媒体类型的代码如下:
AM_MEDIA_TYPE*pmt=&(m_pInput->CurrentMediaType());//结构体AM_MEDIA_TYPE定义媒体类型
为使Filter Graph Manage 调用补偿Filter,注册补偿Filter,CLSID(Class Identifiers)为CLSID_CRCpensate。
DirectShow 的SDK(Software Development Kit)提供了各种流媒体的应用案例,例程SimplePlayer提供了本地视频播放的应用示例,例程AMCap 提供了视频采集应用的示例。构建视频图像处理链表响应,链表创建的主要流程如图7所示。
补偿Filter 的CLSID 定义在iCRCpensate.h 文件中。应用程序中通过包含initguid. h 头文件来将CLSID 定义转换成GUID (Globally Unique IDentifier) 常 量 形 式 。 在BuildProcessGraph 函数中实现视频采集处理链表,ICaptureGraphBuild2 接口提供的RenderStream 智能连接方式自动完成了指定Pin后续的Filter链路的构建。建立新的处理链表,插入补偿Filter,先找到智能连接的原链表中的SmartTee Filter,销毁 SmartTee Filter 后面的 Filter,建立实时预览和实时处理的链表。
函数FindFilterByCLSID 通过滤波器的CLSID 号CLSID_SmartTee 找到 SmartTee Filter,NukeDownstream 函数实现销毁SmartTee Filter 下游的所有 Filter,AddFilter 方法加入对比度分辨率补偿Filter,并创建后面的链表。
图6 补偿算法流程Fig. 6 Flowchart of compensation algorithm
图7 创建补偿链表流程Fig. 7 Flowchart of compensation link list creation
在AMCap 原有窗口添加视频补偿处理命令,实时视频处理窗口如图8所示。
图8 实时视频处理窗口Fig. 8 Real-time video processing window
本地视频处理播放器设计如图9 所示,主对话框左右分别显示补偿前和补偿后的视频图像。
图9 本地视频文件处理系统Fig. 9 Local video file processing system
为了测试补偿增强算法在不同场景的适用性,采用低照度背景下视频帧图像book、自然环境图像guid和vgg图像数据集中两幅图像oxford_000240 和oxford_003366 做增强效果对比。对比低照度图像处理的LIME 算法[11]、MF 算法[12]、NPEA算法[13]、Dong 算法[9]、MSRCR(Multi-Scale Retinex with Color Restoration)算法[20]和 EFF 算法[8],算法的参数设置参考文献[8],不同算法处理后图像如图10所示。
主观评价以上算法对4 幅原图都有增强效果。取视频帧图像book 对比不同增强算法处理后客观图像质量,评价参数平均灰度AG、平均对比度AC、信息熵IE、灰度谱带宽BWF、灰度层次HF和算法运行时间T(基于Matlab R2018a 测试)如表3所示。
图10 不同增强算法处理效果Fig. 10 Processing effects of different enhancement algorithms
表3 不同算法图像质量评价参数和运行时间Tab. 3 Image quality evaluation parameters and running times of different algorithms
从表3 的客观图像质量评价参数可以看出,几种算法中MSRCR 算法处理后图像的平均灰度、平均对比度、信息熵、灰度层次最高,而且具有满带宽;但是由图10 主观评价对比增强效果可以看出,MSRCR 算法处理后有明显的偏色,整体偏灰。LIME 算法对原图Book 有较好的增强效果,但是从oxford_000240 图像处理效果看引入了伪影噪声,整体颜色偏红,过度增强了原始图像。除了EFF算法和本文算法,其他几种算法增强的灰度层级HF都高于原图像,引入了伪信息。
本文的对比度分辨率自适应补偿算法在这几种算法中运行时间最短,除了MSRCR算法和LIME补偿算法,处理后的平均灰度、平均对比度、信息熵最高,灰度谱达到满带宽,图像增强后颜色自然,效果明显,可以适用于低照度环境的不同场景,增强后不引入伪信息,有利于暗视觉信息挖掘。
采用Dirctshow 平台验证低照度下视频图像自适应补偿增强算法实时性。实验室暗室模拟低照度环境,ST-900 型微弱光光度计测试环境照度范围为0.01~5 lux,前端采集设备采用USB 数字摄像头,捕获数据流格式为YUY2,分辨率为640×480,采集帧率为30 帧/s。图11(a)、(b)分别为同一次测试的采集视频实时渲染的属性和加入补偿Filter 对比渲染的属性。测试结果显示,加入补偿Filter的视频渲染标准偏差帧时间4 ms,平均同步偏移6 ms,标准偏差同步偏移5 ms。偏移时间多在程序启动时产生,正常运行后可以达到同步,视觉效果没有延迟现象,满足实时性要求。
图11 视频实时补偿属性Fig. 11 Video real-time compensation properties
本文依据人类视觉感知特性,基于对比度分辨率差异补偿思想,提出加入阈值的对比度分辨率补偿算法,有效挖掘低照度环境的暗视觉信息,建立补偿比例系数的自适应寻优提取模型。实验测试表明,自适应补偿算法应用于低照度视频图像增强实时性好,在不引入伪信息的前提下有效提高了图像质量,能够广泛应用于不同光照条件下的低照度场景,挖掘暗视觉图像信息。
自适应补偿主要用于挖掘暗视觉信息,如果提取的目标信息处于中间灰度级,需要分区域提取出目标图像补偿才能对指定区域达到最佳补偿效果。普通视频图像采集设备的设计是为工作的明视觉条件设计的,需要进一步研究低照度彩色视频图像的颜色补偿,还原符合人类视觉感知的颜色信息。