基于箱形图的自适应分段非线性变换算法研究

2022-12-12 03:05丁帅帅冯迎宾
沈阳理工大学学报 2022年6期
关键词:均衡化直方图分段

丁帅帅,于 洋,冯迎宾

(沈阳理工大学自动化与电气工程学院,沈阳 110159)

红外相机通过捕获电磁波进行成像。 一般情况下,人体目标的温度会高于周围环境,在红外图像上的显示效果为人体目标比周围环境亮。 基于这种亮度差,提出一种基于箱形图的自适应非线性变换算法,可实现根据红外图像特点自动生成参数,并在保证图像平滑过渡的前提下,增强红外图像[1]。

红外图像增强算法有很多,常用的有直方图均衡化[2-3]、自适应直方图均衡化[4]、直方图规定化[5]、对比度受限的自适应直方图均衡化[6]、灰度变换[7]以及空域滤波[8]等方法。 陈明亮等[9]针对灰度图像分段线性变换[10]转折点选取的问题,提出了在直方图基础上使用OTSU 法[11-12]和格拉布斯法[13]得到分段线性变换函数双转折点的方案,该方案可以自动选择转折点,确定变换曲线,但该方案仅适用于双峰图。 郭晓川[14]提出一种基于小波变换的红外图像增强算法,孙晓斐等[15]提出了基于特征融合的红外图像增强算法,陈龙等[16]提出一种改进自适应分段线性变换算法,通过寻找灰度集中区域最大灰度级,比较灰度直方图簇的个数,在候选集中自动选取适合于当前原始图像的参数取值,但这种方法在灰度分布不均匀时会造成算法计算失误。 郭钰璐[17]提出一种融合边缘信息的对比度增强算法,该方法将分层处理和增强滤波相结合实现红外图像的对比度增强。

本文在分段线性变换方法的基础上,采用箱形图思想,通过排序统计的方法,实现自动确定灰度集中分布区间的功能,一定程度上解决因图片灰度分布不均造成的灰度分布区间选取错误问题,增强算法稳定性,再结合引入分段点的三次样条插值的非线性灰度变换,达到自适应增强图像的效果。

1 自适应分段非线性变换算法

1.1 算法原理

本文采用一种基于箱形图原理的自适应分段非线性变换算法,该算法可以根据输入红外图像的灰度特点,自动计算出红外图像集中分布区间,实现动态调整分段点,再经过一种非线性灰度变换,达到图像增强效果。 本文算法整体流程图如图1所示。

图1 本文算法流程图

使用红外摄像头采集8 位、256 灰度级的图像。 首先采用箱形图原理,将输入的红外图像扁平化为一维数组形式,然后按照从小到大的顺序排序分位,找出图像灰度集中的灰度区间,获得集中分段点,从灰度区间右侧到灰度255 之间另取一点作为调整分段点,用以改变非线性曲线形状,再加上灰度级0 和灰度级255 共5 个分段点,将这些分段点进行三次样条插值,通过改变调整分段点,可以生成不同的变换曲线。 对图像像素进行灰度变换,遍历整个图像得到的即是处理好的图像。

1.2 求取自适应分段点

能否准确获取灰度集中区域分段点关系到算法处理效果的好坏,过窄或者过宽的范围都会影响最终效果。 通常情况下,红外图像大部分像素的灰度值集中在某一范围内,导致红外图像整体偏暗,因此找到该范围区间成为解决图像整体对比不明显的关键所在。 一些自适应求取灰度集中分布方法以灰度直方图中灰度个数最大的灰度值作为灰度集中分布的中心,向两边搜索。 该方法在灰度图中出现局部峰值(例如极白点处和极黑点处)时,可能会出现局部窄范围峰值超过真正灰度分布区域峰值的情况,导致程序判断错误。 本文获取灰度集中分布区间的方法基于箱形图,通过对图像灰度值排序分位来判断灰度分布情况,避免了因出现局部峰值导致判断错误的情况,增强了算法稳定性。 具体步骤如下。

(1)将红外图像数组扁平化为一维数组,按照从小到大的顺序排列,记总长度为n;

(2)取排序后数组的第25%的元素值,记为Q1,则

(3)取排序后数组的第50%的元素值,即数组的中位数,记为Q2,则

(4)取排序后数组的第75%的元素值,记为Q3,则

(5)取Q1 与Q3 的差值为IQR,即

(6)记分段区间上限为MAX,则

(7)记分段区间下限为MIN,则

通过以上步骤,当输入红外图像时,能够自动获取灰度集中区域的分段点,输入不同红外图像时,会针对不同的图像得到不同的分段点,达到自适应计算集中分段点的效果。

由于红外设备参数的不同以及环境的复杂多样,为使改进算法有更好的适应性,针对公式(5)和公式(6),引入调整参数θ,取值范围设为( -0.5,0.5),则

θ值默认为0,在图像处理过程中用以对选定的范围大小进行补偿,针对不同硬件设备属性以及要达到的目标效果,可以通过调整θ值实现。

1.3 非线性变换

传统分段线性变换方式的优点是算法原理简单,比较容易实现,线性变换函数示意图如图2a 所示。 由于线性变换算法简单,在复杂的图像处理中,仅仅采用线性变换会导致图像过渡非常生硬,尤其在灰度变化较大和集中分布区间端点附近的区域,会导致图像失真。 变换结果对比如图3所示,图3a 经线性变换获得结果如图3b 所示。 由图3b 可见,图像感兴趣区域亮度得到了提升,背景区域灰度值得到了抑制,但是图像边缘过渡较为生硬,甚至出现了不连贯现象。 针对传统线性变换的缺点,本文基于三次样条插值方法,通过引入调整点参数,生成符合变换要求的三次样条函数[18-20]进行灰度变换,示意图如图2b 所示,变换结果见图3c。

图2 灰度变换函数示意图

图3 变换结果对比

灰度变换函数横坐标为输入图像灰度,纵坐标为输出图像灰度,在未经算法处理时,输出图像灰度等于输入图像灰度。 设灰度图像灰度集中分布区间为(a,b),则在灰度变换函数上集中分段点可设为(a,a)和(b,b)两点,变换函数首尾两端点为(0,0)和(255,255),如果直接对这些分段点进行三次样条插值,则生成的变换曲线为一条斜率为1 的直线,图像变换前后无变化,如图4所示。

图4 未引入调整分段点的灰度变换函数

为解决三次样条插值后得出的变换函数无效果的问题,引入一调整分段点(c,d),实现灰度变换函数形状的改变,如图5所示。

图5 引入调整分段点的灰度变换函数

点(c,d)位置的选取直接影响到曲线形状,因此必须找到合适的位置引入调整分段点。 图5中(a,b)区间为灰度图集中分布区域,也是红外图像中背景色集中部分,因此可通过将(a,b)区间曲线下拉来达到抑制背景效果;(b,255)区间是感兴趣区域分布点,可通过将(b,255)区间曲线上拉来突出目标;(0,a)区间是暗色分布区,不做单独处理。 因此,满足以上要求的方法为在(a,b)区间做下拉点和(b,255)区间做上拉点。 由于(a,b)区间位于灰度级中间,与图像暗色分布区相邻,直接在该区间引入调整点下拉处理,对暗色区域影响较大,会导致图像暗色过度拉亮,不符合增强效果,因此只能在(b,255)区间引入调整分段点(c,d)。

通过多次实验,确定最佳c、d取值为

求出调整分段点(c,d)后,对(0,0)、(a,a)、(b,b)、(c,d)、(255,255)五点进行三次样条插值,即可获得适合该图片的非线性变换曲线,最后进行灰度变换,获得处理后结果。 对于不同的灰度图像,算法自动计算出不同的(a,b)区间,同时根据不同的(a,b)区间引入不同的调整分段点,生成不同的变换曲线,实现各阶段自适应调整。

2 实验结果

本文的实验结果包括两个方面,一是自适应分段点的精确度,二是采用三次样条曲线实现图像灰度变换的效果。 实验采用平台为Inteli7 11800H、NVIDIAGeForce 3050Ti 的笔记本, 在Miniconda 环境下使用Python 语言编程实现。

2.1 求取自适应分段点

由于本文研究背景为车载行人检测,所以实验选取的素材为红外摄像头在室外道路上拍摄的行人图像。 图6为四组行人红外图像,图7为图6中四组图像的灰度直方图。

图6 行人红外图像

直方图中峰形区域是图像中灰度级聚集的地方,该区域所对应的灰度范围也是本文所求的灰度集中区域的分段点取值范围。 从图7直方图中可直接得出图6中各个红外图像的峰值范围,如表1所示。

表1 直方图峰值范围

本文算法所得到的灰度集中区域分段区间如表2所示。

表2 自适应算法分段区间

由表1和表2对比可知,本文所采用的基于箱形图的自适应分段非线性变换算法得出的结果与实际结果相差不大,且实际的峰值范围并不是确定范围,有一定的可扩展性,因此采用该算法求取图像的灰度集中区域分段区间是可行的。

2.2 非线性变换

在获取图像灰度集中分布区域后,即可引入调整分段点,将包含调整分段点在内的五个点进行三次样条插值,生成对应的变换曲线。 变换的曲线在各分段点过渡比较光滑,变换效果如图8所示。

图8 灰度变换前后对比

图8a、8b、8c、8d 各组左边是原图,右边是变换后图像,通过对变换前后的图像对比,可看出变换后图像目标主体更加突出,环境背景得到抑制。图9a、9b、9c、9d 分别是图8a、8b、8c、8d 采用的变换曲线,顶端为直线是因为灰度级最大为255,将图像亮的地方灰度值拉高可以更加突出目标。 从图9中可以看出,对于不同的红外图像,算法生成的自适应集中分段点不同,引入的调整分段点也不同,在目标分段区间调整点上拉后,背景区间自动下拉,实现了通过一个调整点控制多个分段的效果,而且过渡区域比较平滑,为传统分段变换算法所不具有的功能。

图9 灰度变换曲线

2.3 调整分段点对变换结果的影响

本文采用五点三次样条插值方法生成灰度变换曲线,五点分别是灰度变换函数的首尾两点(0,0)和(255,255),通过箱形图算法求取的自适应分段点(a,a)和(b,b)以及引入的调整点(c,d)。针对图8b 左侧原图,改变调整点的位置,其处理效果如图10 所示。

图10 调整分段点对变换结果的影响

由图10 可以看出,不同的分段点选取会使得变换后的结果差别显著:图10a增强过度,背景被完全抑制,近似二值化处理,丢失信息过多;图10b 目标融入背景,无法突出目标;图10c 是根据本文算法生成调整点处理后的结果,在适当保留背景信息的同时有效地突出目标,取得了更加理想的效果。

2.4 算法对比

为了比较不同变换算法处理后的效果,本文使用同一张图像,分别采用直方图均衡化、自适应直方图均衡化、直方图规定化、对比度受限的自适应直方图均衡化和本文算法,将5 种处理效果进行对比,结果如图11 所示。

直方图均衡化用来增加全局对比度;自适应直方图均衡化用来改进图像的局部对比度;直方图规定化产生处理后有特殊直方图的图像;对比度受限的自适应直方图均衡化能限制自适应均衡化中噪声的问题。 从图11 中可以看出,图11b、11c 和11e 对图像背景抑制效果不好,图11d 虽然背景抑制效果较好,但也增强了部分干扰信息。 综合来看,在此环境中本文算法效果较佳。

图11 算法对比

传统的图像质量评价方法,例如峰值、信噪比等,仅仅是对像素点之间的纯数学统计,没有考虑到人眼视觉系统感知特性。 因此,本文采用更能贴近人主观感受的结构相似性图像评价指标SSIM 对图像质量进行客观评价。 针对图11 中不同算法的评价结果如表3所示。

表3 SSIM 评价结果

SSIM 评价指标结果范围为0 至1,指标结果越接近1,说明算法处理效果越好。 由表3可知,在五种图像处理算法中,本文所采用的算法处理效果最好。

3 结论

针对红外图像成像效果不佳、目标主体突出不明显的问题,本文在研究分段线性变换算法的基础上,提出一种基于箱形图的自适应分段非线性变换算法。 该算法能够根据红外图像的不同,自动计算出不同图像的灰度集中分布区间,无需人为输入参数。 算法采用基于箱形图的统计学思想,通过排序分位,避免了因出现局部少量灰度峰值使算法失效的问题,算法稳定性更强。 在灰度非线性变换方面,引入调整分段点,生成不同分段变换曲线,从而保证了曲线过渡平滑,使经过变换后的图像过渡更自然。 通过实验证明,本文提出的算法能够针对不同图像生成合适的自适应参数,解决传统算法无法自适应的问题。 在变换结果方面,能够提高图像前景目标的亮度,同时能抑制背景色,图像过渡自然。 通过与其他几种增强算法的对比,突显了本文算法的优势,证明了本文算法取得的处理效果更好。

猜你喜欢
均衡化直方图分段
符合差分隐私的流数据统计直方图发布
基于FPGA的直方图均衡图像增强算法设计及实现
生活中的分段计费
用直方图控制画面影调
分段计算时间
分段函数“面面观”
中考频数分布直方图题型展示
3米2分段大力士“大”在哪儿?
制度变迁是资源均衡化的关键
EDIUS 5.1音量均衡化