李眾邦,解夢(mèng)達(dá),孫 鵬,2,*,劉澤楷,婁 群
(1.中國(guó)刑事警察學(xué)院,沈陽(yáng) 110854;2.司法部司法鑒定重點(diǎn)實(shí)驗(yàn)室,上海 200063)
視頻偵查技術(shù)通過(guò)分析涉案視頻以確定犯罪嫌疑人身份、所乘車(chē)輛及涉案物品等信息,進(jìn)而對(duì)犯罪嫌疑人進(jìn)行追蹤定位,為案件偵破提供線索,是當(dāng)代公安工作中的核心偵查手段之一。然而,偵查人員得到的第一手涉案視頻往往由于場(chǎng)景光源變化產(chǎn)生色彩偏差,影響偵查人員對(duì)目標(biāo)的判斷,甚至導(dǎo)致基于目標(biāo)色彩的錯(cuò)誤同一認(rèn)定,誤導(dǎo)偵查方向,削損大量偵查力量。為解決上述問(wèn)題,需要對(duì)視頻幀進(jìn)行光照估計(jì)獲取光源色彩信息,以將偏色視頻色彩校正至與在標(biāo)準(zhǔn)光源下一致。以上過(guò)程即被稱(chēng)為色彩恒常。
現(xiàn)有色彩恒常算法可分為以下兩類(lèi):第一類(lèi)是基于低級(jí)統(tǒng)計(jì)量的算法,包括白斑算法、灰度世界算 法[1]、Shades of Gray(SoG)算法[2]、灰度邊緣算法[3]等;第二類(lèi)是基于學(xué)習(xí)的算法,包括色域映射算法、基于自然圖像統(tǒng)計(jì)的算法以及基于貝葉斯學(xué)習(xí)的算法等。盡管基于低級(jí)統(tǒng)計(jì)量的算法不如基于學(xué)習(xí)的算法光照估計(jì)精度高,但是前者往往速度更快且在跨設(shè)備光照估計(jì)中性能更佳[4]。
針對(duì)偏色視頻的色彩恒常實(shí)現(xiàn)通常將視頻幀視作單幅圖像處理。然而,對(duì)于偏色視頻的色彩恒常算法設(shè)計(jì)不僅需要考慮到算法的光照估計(jì)精度及跨設(shè)備運(yùn)行可行性,還需考慮算法運(yùn)行的實(shí)時(shí)性。針對(duì)上述需求,本文提出了一種基于局部過(guò)曝抑制的降采樣白斑算法。在標(biāo)準(zhǔn)數(shù)據(jù)集及自建數(shù)據(jù)集中的實(shí)驗(yàn)結(jié)果表明,該算法可在采集自多個(gè)設(shè)備的視頻幀及圖像中均表現(xiàn)出較高光照估計(jì)性能,且對(duì)2K以上圖像的處理時(shí)間低至0.03 s。
常見(jiàn)的色彩恒常算法模型均基于Lambert反射模型建立。Lambert反射模型將物體表面的反射類(lèi)型視為漫反射,公式為:
式(1)中,?c(x)代表圖像坐標(biāo)x處像素的c(c∈{R,G,B})通道取值,m(x)代表Lambert陰影系數(shù),I(λ)代表光源的色彩,ρc(λ)代表相機(jī)靈敏度函數(shù),S(x,λ)代表坐標(biāo)x處物體表面的光譜反射率,ω代表可見(jiàn)光波長(zhǎng)范圍(380~780 nm),λ代表可見(jiàn)光波長(zhǎng)。假設(shè)圖像場(chǎng)景由單一光源均勻照明,由相機(jī)觀察到的光源色彩ec與光源的實(shí)際色彩I(λ)及相機(jī)的靈敏度函數(shù)ρc(λ)相關(guān)[5]:
基于窄帶假設(shè),成像設(shè)備僅在某一特定波長(zhǎng)處存在響應(yīng),則聯(lián)合式(1)與式(2),圖像在坐標(biāo)x處三通道像素值?(x)=[?R(x) ?G(x) ?B(x)]T為:
白斑算法假設(shè)圖像RGB各色彩通道的最大響應(yīng)由場(chǎng)景中完美反射表面引起。由于完美反射表面能夠反射所捕捉到的全部光源[6],因此RGB各通道的最大分量值可視為圖像場(chǎng)景中的光源色彩。該算法優(yōu)點(diǎn)在于簡(jiǎn)單高效,但往往會(huì)由于壞點(diǎn)、噪聲像素干擾或數(shù)碼相機(jī)的有限曝光范圍導(dǎo)致光照估計(jì)精度較差[7]。
降采樣白斑算法基于傳統(tǒng)白斑算法進(jìn)行改進(jìn),其主要思路是通過(guò)在圖像中以隨機(jī)化選取像素的降采樣形式來(lái)規(guī)避對(duì)傳統(tǒng)白斑算法影響較大的壞點(diǎn)及噪聲像素。該算法的改進(jìn)依據(jù)是利用大多數(shù)圖像存在許多具有均勻或緩慢色彩變化的像素表面這一特性來(lái)規(guī)避壞點(diǎn)及噪聲像素,由于圖像場(chǎng)景的同一表面中具有均勻或緩慢色彩變化的像素具有較高的相似度,因此可以通過(guò)降采樣的方法僅選取部分像素代表整個(gè)表面,從而忽略剩余可能存在壞點(diǎn)或噪聲的表面像素。在降采樣過(guò)程中,每次隨機(jī)采集N個(gè)像素作為一個(gè)樣本,然后針對(duì)該樣本應(yīng)用白斑算法進(jìn)行光照估計(jì)。為了避免可能采集到的壞點(diǎn)或噪聲像素破壞單一樣本,上述過(guò)程將執(zhí)行M次,最終的光照估計(jì)為來(lái)自M個(gè)樣本的M個(gè)估計(jì)光源平均值。實(shí)驗(yàn)結(jié)果表明,該算法具有較高的光照估計(jì)性能,同時(shí)也代表了白斑算法和灰度世界算法的一種降采樣的泛化:當(dāng)M設(shè)為1時(shí),可視為基于降采樣的白斑算法;當(dāng)N設(shè)為1時(shí),則可視算法為基于降釆樣的灰度世界算法[8]。依據(jù)參考文獻(xiàn)[8],我們?cè)O(shè)置M為20,N為60。
綜上所述,降采樣白斑算法計(jì)算簡(jiǎn)便、效率高,同時(shí)有效弱化了圖像壞點(diǎn)、噪聲像素對(duì)傳統(tǒng)白斑算法的干擾。然而,該算法在降采樣過(guò)程中仍然存在誤選到過(guò)曝像素的可能性,這將導(dǎo)致算法在視頻偵查中的應(yīng)用效率降低。
降采樣白斑算法本質(zhì)為利用隨機(jī)采樣得到的各通道分量最大值獲取光源色彩信息。但事實(shí)上由于相機(jī)動(dòng)態(tài)范圍有限,采樣得到的各通道分量最大值可能由于發(fā)生色彩裁剪而無(wú)法代表圖像的真實(shí)光源色彩信息。針對(duì)此問(wèn)題,本文在執(zhí)行降采樣白斑算法前采用掩模覆蓋的方式對(duì)圖像局部過(guò)曝像素進(jìn)行抑制,從而弱化色彩裁剪對(duì)光源色彩估計(jì)的干擾。
無(wú)論是白斑算法還是基于降采樣的白斑算法,均依賴(lài)于白斑假設(shè)尋找圖像中由完美反射表面產(chǎn)生的最大通道響應(yīng)進(jìn)行光照估計(jì)。然而由于相機(jī)有限的動(dòng)態(tài)范圍,白斑假設(shè)往往可能錯(cuò)誤選取到圖像中的過(guò)曝像素,導(dǎo)致產(chǎn)生錯(cuò)誤的光照估計(jì)。為進(jìn)一步研究過(guò)曝像素對(duì)基于白斑假設(shè)色彩恒常算法的影響,利用ColorCheckerREC數(shù)據(jù)集[9]進(jìn)行預(yù)實(shí)驗(yàn),在對(duì)圖像做歸一化處理后,設(shè)定初始過(guò)曝像素的判定閾值為1,并以0.01為步長(zhǎng)依次遞減,RGB三通道任一通道分量小于判定閾值的像素將被視為過(guò)曝像素。在對(duì)過(guò)曝像素進(jìn)行掩模操作后,將基于白斑假設(shè)選取的像素進(jìn)行光照估計(jì),并采用下式評(píng)估光照估計(jì)精度:
式(4)中,ee和et分別代表估計(jì)光源色彩及真實(shí)光源色彩,errangular則代表兩者間的角誤差,角誤差越低代表算法的光照估計(jì)性能越好。
基于白斑假設(shè)的光照估計(jì)角誤差如圖1所示,在未去除過(guò)曝像素(閾值為1)時(shí),基于白斑假設(shè)選取的像素在光照估計(jì)中角誤差較大,這是由于白斑假設(shè)基于圖像通道分量最大值選取像素進(jìn)行光照估計(jì),然而由于相機(jī)的動(dòng)態(tài)范圍有限,通道分量的最大值并不能較好地反映光源色彩信息,因此最終得到的光照估計(jì)角誤差較高。隨著閾值的降低,可以發(fā)現(xiàn)基于白斑假設(shè)的光照估計(jì)角誤差逐漸降低,并在閾值為0.93后升高,這是由于在閾值設(shè)定過(guò)低時(shí),圖像中益于光照估計(jì)的高光像素同樣被去除,這導(dǎo)致了光照估計(jì)角誤差的升高。綜上,過(guò)曝像素的去除有利于弱化過(guò)曝像素對(duì)白斑假設(shè)選取像素點(diǎn)時(shí)的干擾,實(shí)現(xiàn)光照估計(jì)性能的提升。此外,針對(duì)過(guò)曝像素的閾值確定同樣與光照估計(jì)性能關(guān)聯(lián),因此需要準(zhǔn)確選取過(guò)曝像素的閾值。
將像素的三通道分量值分別與所設(shè)定的過(guò)曝閾值t進(jìn)行比較,任一通道分量值大于t的像素判定為過(guò)曝像素,則本文所構(gòu)建過(guò)曝像素的判定標(biāo)準(zhǔn)如下式所示:
式(5)中,?c(x1,y1)為1代表判定為過(guò)曝像素,?c(x1,y1)為0則代表判定為未過(guò)曝像素。最后,將過(guò)曝像素集合采用掩模覆蓋。本文算法的總流程見(jiàn)圖2。
圖1 基于白斑假設(shè)的光照估計(jì)角誤差Fig. 1 Angular error under white patch hypothesis
圖2 基于局部過(guò)曝抑制的降采樣白斑算法流程Fig. 2 Operating flowchart of the algorithm to downsample the white patches for inhibiting local over-exposed pixels
實(shí)驗(yàn)環(huán)境為Inter(R)Core(TM)i7-8750CPU @2.20 GHZ,16 GB內(nèi)存。各類(lèi)色彩恒常算法的測(cè)試均基于MATLAB2017a平臺(tái)實(shí)現(xiàn)。所用數(shù)據(jù)集為標(biāo)準(zhǔn)數(shù)據(jù)集ColorCheckerREC和自建數(shù)據(jù)集,部分參數(shù)見(jiàn)表1。
表1 ColorCheckerREC數(shù)據(jù)集和自建數(shù)據(jù)集內(nèi)圖像參數(shù)Table 1 Statistics of image parameters in the dataset of eihter the ColorCheckerREC or the self-built
自建數(shù)據(jù)集共包含圖像360張,以每個(gè)拍攝場(chǎng)景為一組,分為室內(nèi)場(chǎng)景和室外場(chǎng)景共30組(室外20組,室內(nèi)10組)。每組中包含12張照片,分別由佳能700D、尼康D7100兩種不同型號(hào)的相機(jī)在鎢絲燈、陰影、白色熒光燈三種偏色白平衡模式下拍攝。相同場(chǎng)景及白平衡模式下的相機(jī)取景盡可能保持一致。圖像均為JPG格式且分辨率為1 500×1 000。相機(jī)拍攝模式設(shè)置為手動(dòng),兩部相機(jī)在相同場(chǎng)景下將采用一致的快門(mén)時(shí)間及光圈數(shù),具體參數(shù)設(shè)置將參考場(chǎng)景進(jìn)行微調(diào)以確保圖像正確曝光。
為設(shè)定過(guò)曝閾值,本文采用經(jīng)驗(yàn)閾值方法,通過(guò)實(shí)驗(yàn)的方式確定最佳閾值。分別對(duì)標(biāo)準(zhǔn)數(shù)據(jù)集ColorCheckerREC和自建數(shù)據(jù)集進(jìn)行測(cè)試,以1為起始值,0.01為步長(zhǎng)依次遞減作為閾值,并計(jì)算在不同閾值下得到的光照估計(jì)角誤差均值及中值。實(shí)驗(yàn)結(jié)果如圖3、圖4所示。
由圖3及圖4可看出,本文算法在兩類(lèi)數(shù)據(jù)集中的光照估計(jì)角誤差均隨設(shè)定閾值減小先降低后升高。由于角誤差中值更適于作為衡量色彩恒常算法性能的指標(biāo)[10],因此本文對(duì)標(biāo)準(zhǔn)數(shù)據(jù)集ColorCheckerREC和自建數(shù)據(jù)集的閾值分別選取為0.83及0.99。
圖4 自建數(shù)據(jù)集角誤差Fig. 4 Angular error with the self-built dataset
為對(duì)比本文算法與常見(jiàn)色彩恒常算法性能,設(shè)計(jì)在標(biāo)準(zhǔn)數(shù)據(jù)集ColorCheckerREC進(jìn)行測(cè)試,對(duì)比算法為灰度世界算法、白斑算法、降采樣白斑算法、灰度陰影算法以及一階、二階灰度邊緣算法。此外,為研究不同算法在不同采集設(shè)備中的性能,本文構(gòu)建了一類(lèi)由Nikon及Canon相機(jī)拍攝的色彩恒常數(shù)據(jù)集,為模擬偏色視頻中對(duì)視頻幀的處理,該數(shù)據(jù)集由不同場(chǎng)景及光照條件下的圖像組成。各色彩恒常算法在兩類(lèi)數(shù)據(jù)集中的光照估計(jì)角誤差如表2、表3所示,表中同樣給出了各算法針對(duì)單幅圖像的平均運(yùn)行速度。
表2 各算法在ColorCheckerREC數(shù)據(jù)集中角誤差及運(yùn)行速度統(tǒng)計(jì)Table 2 Angular errors and running speeds from the indicated algorithms with ColorCheckerREC dataset
表3 各算法在自建數(shù)據(jù)集中角誤差及運(yùn)行速度統(tǒng)計(jì)Table 3 Angular errors and running speeds from the indicated algorithms with the self-built dataset
觀察表2及表3可知,普通白斑算法雖然運(yùn)算速度優(yōu)于其他的色彩恒常算法,但是對(duì)于標(biāo)準(zhǔn)數(shù)據(jù)集ColorCheckerREC和自建數(shù)據(jù)集來(lái)說(shuō),無(wú)論是均值角誤差還是中值角誤差,該算法所給出的結(jié)果均較差。本文算法主要解決了降采樣白斑算法中易受過(guò)曝像素干擾的問(wèn)題,因此相比降采樣白斑算法在兩類(lèi)數(shù)據(jù)集光照估計(jì)的準(zhǔn)確性均得到了較大提高,且在對(duì)比算法中為最優(yōu)。最后對(duì)比各算法的運(yùn)行速度,可以發(fā)現(xiàn)降采樣白斑算法的單幅圖像運(yùn)行速度最快,且低于同類(lèi)型白斑算法,這是由于降采樣操作降低了算法在處理單幅圖像中的數(shù)據(jù)量,因此算法的運(yùn)行速度可以得到明顯提升。相比之下,本文算法雖然速度略慢于降采樣白斑算法,但相比白斑算法運(yùn)行速度仍具有明顯優(yōu)勢(shì),對(duì)2 K以上圖像的處理時(shí)間僅為0.03 s左右,可以在視頻偏色校正中達(dá)到較好的實(shí)時(shí)性。為進(jìn)一步分析本文算法的時(shí)間復(fù)雜度,設(shè)圖像像素?cái)?shù)為K,M、N分別為1.2節(jié)定義降采樣操作參數(shù),則本文算法采用大O計(jì)法(Big-O notation)的時(shí)間復(fù)雜度為O(M×N+K)。
由于本文算法需要遍歷圖像像素以執(zhí)行過(guò)曝判定,因此算法速度與輸入圖像尺寸相關(guān),故在圖像尺寸不同的ColorCheckerREC數(shù)據(jù)集以及自建數(shù)據(jù)集中運(yùn)行時(shí)間不同。最后,觀察表4可知,本文算法在跨設(shè)備的光照估計(jì)中具有較低的角誤差及較高的穩(wěn)定性,這表明本文算法同樣可以在采集設(shè)備未知或采集設(shè)備不同的情況下使用。
圖5中不同算法的光照估計(jì)角誤差標(biāo)記在圖像右下角。如圖5所示,白斑算法和降采樣白斑算法都易于受過(guò)曝像素影響,因此角誤差較高,且校正后在視覺(jué)上存在明顯的偏色。而本文采用的基于局部過(guò)曝抑制的降采樣白斑算法將對(duì)算法光照估計(jì)性能影響較大的過(guò)曝像素采用掩模覆蓋,因此可以得到更低的光照估計(jì)角誤差,校正后在視覺(jué)上無(wú)明顯的偏色。
表4 不同采集設(shè)備下本文算法角誤差統(tǒng)計(jì)Table 4 Angular errors with the here-built algorithm having been deployed under different acquisition equipment
圖5 算法可視化(a:原始圖像;b:標(biāo)準(zhǔn)圖像;c:白斑算法;d:降采樣白斑算法;e:本文算法)Fig. 5 Exampled visualization with the algorithm of (a: original image; b: Ground Truth; c: White Patch; d: Downsampling White Patch; e: the Proposed in this paper)
視頻偵查應(yīng)用中,基于色彩恒常算法的偏色視頻校正有利于獲取目標(biāo)真實(shí)色彩特征,從而精確鎖定嫌疑目標(biāo),準(zhǔn)確且快速地發(fā)現(xiàn)犯罪線索。本文針對(duì)現(xiàn)有色彩恒常算法運(yùn)行速度慢且光照估計(jì)精度欠佳的問(wèn)題,提出了基于局部過(guò)曝抑制的降采樣白斑算法。通過(guò)掩模覆蓋視頻幀或圖像中局部區(qū)域過(guò)曝像素,再以隨機(jī)選取像素的方式進(jìn)行降采樣并應(yīng)用白斑算法,可以在采集自多個(gè)設(shè)備的視頻幀或圖像中快速執(zhí)行光照估計(jì)并進(jìn)行色彩校正。本文算法的不足之處在于難以處理多光源照明造成的視頻偏色問(wèn)題,且過(guò)曝閾值選取依賴(lài)于先驗(yàn)知識(shí),因此后續(xù)工作將重點(diǎn)圍繞多光源的光照估計(jì)以及過(guò)曝閾值的自動(dòng)選取開(kāi)展。