楊佳義,陳 勇
(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
本文依據人類視覺感知特性,基于對比度分辨率差異補償思想,提出加入閾值的對比度分辨率補償算法,有效挖掘低照度環境的暗視覺信息,建立補償比例系數的自適應尋優提取模型。實驗測試表明,自適應補償算法應用于低照度視頻圖像增強實時性好,在不引入偽信息的前提下有效提高了圖像質量,能夠廣泛應用于不同光照條件下的低照度場景,挖掘暗視覺圖像信息。
自適應補償主要用于挖掘暗視覺信息,如果提取的目標信息處于中間灰度級,需要分區域提取出目標圖像補償才能對指定區域達到最佳補償效果。普通視頻圖像采集設備的設計是為工作的明視覺條件設計的,需要進一步研究低照度彩色視頻圖像的顏色補償,還原符合人類視覺感知的顏色信息。