楊 鑌,王延長,李培弘,劉濟林
(浙江大學信息與通信工程研究所,杭州 310027)
在月球車自主漫游、道路檢測、隧道監測、金屬焊接實時檢測、智能交通等相關領域,圖像信息作為最前端的信息輸入直接影響著后端機器視覺算法執行的效果。這些領域對攝像機的動態范圍和曝光模式提出了苛刻的要求。為此,本文提出了一種基于對數曲線響應功能傳感器的曝光算法,在過曝光情況下,利用分段曝光及對數曲線響應曝光的方法對圖像進行處理,算法對感興區間與自適應判別的目標區間進行評估,動態調節分段閾值及相關的電壓參數,從而實現對過曝區域的信息復原,提升攝像系統的動態范圍。
當前的曝光算法均基于傳統的傳感器模式。由于絕大多數的攝像系統并不存在機械快門,改變曝光時間長短及模擬/數字增益成為控制曝光量大小的唯一途徑。一種較為簡單的自動曝光控制方法是評估當前圖像的亮度,并將它與用戶自定義的理想指標相比較,通過控制電路增大或縮短曝光時間,增強或減弱模擬/數字增益值,逐漸逼近理想亮度區間[1],這類算法對過曝圖像或者過暗圖像的曝光控制結果會顯得過暗或過亮。另一些比較普遍的曝光算法即通過研究不同光照條件下的亮度與曝光值之間的關系來進行曝光控制[2-5],或將圖像分為幾個不同權值區域[6-7]進行曝光評估,這些算法依然受到來自傳感器的硬件限制。
為了克服單幀圖像動態范圍的限制,一類基于多曝光融合進行動態范圍增強的相關算法開始應用。Goshtasby[8]對同一場景攝取不同曝光參數下的多副圖像,對圖像進行分塊,求取圖像序列中單幀圖像每個圖像塊的信息熵,并將擁有最大信息量的圖像塊保存下來,合并成新的場景圖像。Szeliski[9]通過對一系列不同曝光參數圖像的相同位置像素求平均,再利用直方圖均衡將平均圖像映射到新的強度上從而增大單幀圖像的動態范圍。這類方法規避了單曝光參數下攝像系統在圖像動態范圍上的缺陷,通過多曝光圖像的拼接從而獲得對比細節豐富的圖像,大大提高了圖像的動態范圍,對于沒有實時性要求的靜態圖像系統,該方法效果較好,但對于實時性需求較高的系統不能滿足要求。
輻射照度響應函數即相機接收到的場景光強幅度 L與最終成像的像素亮度值 B相關聯的函數。

傳統傳感器的響應函數如圖1所示[8]。圖像中的單色像素灰度值并非實際場景中光強的真實反映,受成像過程中電子元器件各種非線性因素的影響,響應函數呈現出單調遞增的曲線。這種曲線在數字處理過程中常被模擬為線性遞增函數。如圖 2所示。

圖1 相機響應曲線

圖2 輻射響應曲線的線性模擬
當輻射光強 L超出傳感器的量程時,就會呈現出過曝現象。這種約束也極大地限制了圖像的動態范圍。
對數曲線響應傳感器將輻射響應曲線的高亮度區段近似為對數函數曲線,本文利用 Photonfocus公司的 OEM-D1024E CMOS圖像傳感器進行實驗,其輻射響應曲線如圖 3所示[11]。

圖3 對數曲線響應傳感器的輻射響應曲線
對數曲線響應傳感器將整個響應過程模擬類對數曲線,以近似對數函數的響應方式響應光亮信息,并將其轉化為有效的電壓信息傳遞給視覺系統,從而提高整幅圖像的動態范圍。
傳感器原理使分段曝光的控制成為可能[11]。圖4給出一種 3段式曝光響應曲線。整個曝光過程分為三段處理:原點至拐點 a的線性段、拐點 a、b間的低對數曲線段、拐點 b后的高對數曲線段。線性段主要對應低光強區域,以線性響應方式將光強信息轉化為電平信息進行處理。低對數曲線段使用了低光強模式,響應曲線以對數曲線形式反饋光強信息,對中等亮度區域進行處理。高對數曲線段增強了對數曲線段曝光電平,對高亮像素進行廣電轉換,保證了原來在線性條件下過曝的區域復原了部分細節信息。

圖4 三段式輻射響應曲線
算法分為兩個部分:感興區間及目標區間的曝光調整,流程如圖 5所示。

圖5 算法流程圖
(1)感興區間調整 區間的灰度評估和線性曝光調整;
(2)目標區間調整 區間的對比度評估和曲線響應曝光,整個曝光過程涉及兩個關鍵參數:曝光時段、曝光電平[12]。
由于視覺系統應用的范圍極廣,實際場景復雜多變,算法需要對所關注的場景進行區間劃分,對應曝光曲線的分段組成。
區間劃分主要包括兩個區間的選擇,感興區間與目標區間。感興區間表示視覺系統所最為關心的區域,該區域的圖像細節對于整體圖像處理而言權重系數最大。對數曲線響應曝光算法的首要任務是保證感興區間的細節完整度。因而,感興區間的輻射響應曲線應盡量呈現線性狀態。目標區間表征了圖像過曝區域,該區域由算法自適應計算,對應輻射響應曲線中的對數曲線段。感興區間的選擇為人工選擇,根據不同的系統應用自定義區間范圍,以圖 6為例,圖 6為模擬月球表面環境場景,為看清月球車車身細節,我們將月球車車身設置為感興區間。線性曝光調整穩定后,由于沙土的反光效果而在圖像中形成兩塊過曝區域,它們將被自動判別為目標區間,并將通過對數曲線響應方式進行曝光。

圖6 算法區域分布圖
為了滿足系統的實時性,算法將盡量與可編程器件(FPGA)相融合,并精簡結構。目標區間判定算法如下:
(1)圖像二值化,將圖像中高亮度區域(灰度值255)與其余區域分割開;
(2)掃描線種子填充算法[13-14]填充過曝區域,并統計運算過程中過曝區域的邊界信息及像素點數目。
圖像二值化操作在 FPGA流水線中完成,整個流程附加一個比較器,由于像素位寬為 8比特,最低位的數值對圖像內容基本沒有影響,系統將最低位映射為與 255的比較輸出。整合方法將使原本在CPU中運算的二值化時間復雜度由 O(N)降低為O(1)。二值化模塊如圖 7所示。掃描線種子填充是本文算法中唯一在 CPU中處理的模塊,對于一副512×512的圖像,掃描線種子填充算法的時間成本控制在 20ms以內[10],滿足實時要求。

圖7 基于FPGA的圖像二值化模塊
感興區間和目標區間的邊界信息被傳遞給 FPGA,并進入圖像評估模塊。
對于感興區間的灰度評估將更多的關注算法復雜度及實時性的需求。由于線性曝光區域的細節保留較為完整,本算法將應用基于 FPGA的區域平均及逼近迭代算法。
區域平均算法將統計感興區間內所有的像素點的灰度值,取均值后與閾值區間相比較,當灰度平均值位于設定閾值區間內時,表明當前的線性曝光參數已滿足系統要求。當灰度平均值在閾值區間外時,將采用迭代迫近法調整線性曝光參數(見§3.3)。
灰度平均值的計算通過可編程邏輯器件(FPGA)中進行并行計算,時間復雜度為 O(1),如圖 8所示。條件選擇器的界定參數包含了感興區域的邊界信息。

圖8 基于FPGA的灰度評估模塊
當感興區間處于穩定曝光狀態后,將對目標區間進行對比度評估。
對比度指的是一幅圖像中明暗區域最亮的白和最暗的黑之間不同亮度層級的測量。在本算法中,結合 FPGA的特點,提出了一種基于直方圖灰度標準差評估方法。對于大小為 M×N的目標區間 w內每個像素點 In,取目標區間內的均值:

然后求取目標區間內的灰度標準差 GSD(Grayscale Standard Deviation)

將式(3)中根號內部展開得到:

由式(4)可知,在進行對比度評估過程中可以通過一個乘法器及一個累加器在 FPGA中實現灰度標準差評估模塊,如圖 9所示。條件選擇器的界定參數包含了過曝區域的邊界信息。

圖9 基于 FPGA的 GSD評估模塊
由于乘法器的固定延時在 FPGA流水線的工作模式下對圖像傳輸沒有影響,整個系統的時間復雜度亦等于 O(1)。
感興區間的圖像評估完成后,根據評估結果進行迭代逼近調整。假設當前的圖像灰度均值,當前的曝光參數 Ew,理想狀態下的圖像灰度值,由于圖像灰度與曝光值在一定程度上近似線性關系,則目標曝光參數 E的公式如下:

對比步進法,迭代逼近法周期更短,圖像的狀態轉換能在較少的幀間完成,且所有運算僅涉及到乘法器,可以在FPGA中利用硬件資源完成,時間復雜度為O(1)。
目標區間的曝光參數算法將遵循步進法進行調整。以三段式曝光為例,主要的曝光參數包括 T1,T2(曝光時間段,以曝光時間 100歸一化),V1,V2(曝光電平,0~20,對應的曲線斜率等級)。參數相互間的的曝光特性曲線如圖 10所示[11]

圖10 對數曲線傳感器曝光特性曲線
在 T1時間段內以電壓 T1進行光電信息轉換,在 T2時間段內變換電壓為 V2。
依據曝光特性曲線及目標區間的圖像評估,算法流程為:
(1)設置 T1=T2,V1=V2=V,步進調整電壓 V使目標區間灰度均值位于高亮度區間,記錄當前的V值作為最終的 V1值。
(2)設置 T1=T2,V1=V2=V,步進調整電壓 V使目標區間灰度均值位于低亮度之間,記錄當前的V值作為最終的 V2值。
(3)步進調整 T1,使目標區間的 GSD獲得 7個步進單位(14-20)中的區域最優解。記錄 T1。
第 1和第 2階段通過計算目標區間的灰度均值,在不同的灰度閾值區間內獲取曝光參數中的V1,V2,閾值區間保證了目標區間的圖像復原包含了較大的灰度跨度。第 3階段依據基于灰度標準差的對比度評估計算和調整曝光時間 T1,將目標區間的灰度進行擴展,最大化細節恢復的程度。
在明暗對比強烈的場景下獲取了普通曝光與基于對數曲線響應傳感器的高動態范圍曝光結果如圖 11所示(我們設置室內區域為感興區間)。
圖11(a)為室內場景原圖,窗外區域過曝造成細節丟失。將感興區間設定為室內部分區域,
算法自動將窗外區域設定為目標區間,如圖 11(c)。經過對數曲線響應曝光算法,窗外細節得到很大程度上的復原。原圖與對數曲線響應曝光后圖像的灰度直方圖如圖 12所示。

圖11 普通曝光與對數曲線響應曝光結果

圖12 實驗前后圖像直方圖比較
感興區間細節部分并沒受到影響,處理前后直方圖分布大致相同,而目標區間的直方圖對比度則明顯增強,分布更廣,細節更豐富。圖像動態范圍約110 dB,接近傳感器 120 dB極限。
本文算法實時性分析如表 1所示(以 512×512圖像為例)。
時間復雜度為 O(1)表示算法模塊在 FPGA流水線中完成,無需額外時間損耗,對于一副 512×512的圖像,除去邏輯損耗,處理速率接近 40幀/s。
本文算法與圖像分區曝光算法、多曝光圖像拼接算法的性能比較如表 2所示。

表1 算法實時性分析

表2 3種自動曝光算法比較
對數曲線響應傳感器的研究尚處于起步階段,本文針對傳感器的特點,提出了一種分段性曲線曝光的自動算法,能夠自動評估圖像亮度等級,處理實際場景中明暗跨度大,逆光強烈等情況,在機器視覺領域具有廣闊的應用前景。同時算法與可編程邏輯器件緊密融合,通過硬件的并行計算降低了軟件層次的時間復雜度,從而保證前端視覺系統的實時性。
[1]Cho M,Lee S G,Nam B D.The Fast Auto-Exposure Algorithm Based on the Numerical Analysis[C]//Proceedings of the SPIE Conference on Sensors,Cameras,and Applications for Digital Photography,1999,3650:93-99.
[2]徐培鳳,李正明,孫俊.基于圖像的自動曝光算法研究[J].光學儀器,2005(2):59-61.
[3]楊海濤,常義林,王靜,等.一種基于亮度直方圖的自動曝光控制方法[J].光學學報,2007,27(5):841-847.
[4]Sampat N,Venkataraman S,Yeh T,et al.System Implications of Implementing Auto-Exposure on Consumer Digital Cameras[C]//Proceedings of the SPIE Conference on Sensors,Cameras,and Applications for Digital Photography,1999,3650:100-107.
[5]王雷斌,張愛武,葉澤田,等.一種自適應快速曝光控制方法[J].測繪科學,2009,34(2):115-117.
[6]甘玉泉,高偉.一種基于圖像分區的自動曝光算法[J].微計算機信息,2009,25(12):303-304.
[7]梁佳毅,洪志良.適用于大動態范圍場景的自動曝光控制算法[J].光電工程,2008,35(5):89-92.
[8]Goshtasby A.Fusion of Multi-Exposure Images[J].Image and Vision Computing,2005,23(6):611-618.
[9]Szeliski R.System and Process for Improving the Uniformity of the Exposure and Tone of a Digital Image[P].US,6687400:2004-02-03.
[10]Grossberg M D,Nayar SK.What is the Space of Camera Response Functions[C]//Proceedings of IEEE Computer Vision and Pattern Recognition Wisconsin,USA:IEEE,2003:602-609.
[11]Photonfocus A G.LinLog-Principle and Practical Example[R].Datasheet,2007,2:21.
[12]Harton A V.A High Dynamic Range CMOS Image Sensor with Pixel Level ADC and In-Situ Image Enhancement[J].Proc SPIEIST Electronic Imaging,2005,5677:67-77.
[13]Pal N R,Pal S K.A Review on Image Segmentation Techniques[J].Pattern Recognition,1993,26(9):1277-1294.
[14]郭文平,龍幫強.掃描線種子填充算法的改進[J].天津工業大學學報,2008,27(2):48-52.