程大騫 付文智 陳東杰 王慕冰 陳 彥 李朝榮
(北京航空航天大學 1物理科學與核能工程學院, 2物理科學與核能工程學院物理實驗中心,北京 100191)
在薄透鏡焦距測量實驗中,需要判斷透鏡成像的清晰位置。然而由于人眼評估清晰度的靈敏度低,在一定范圍內均認為清晰,因此實驗中常通過測讀法(從左至右與從右至左各尋找一個清晰點,重復至少5次或以上)來減小誤差。即便如此,仍然存在一定誤差,同時多次重復測讀耗費大量時間。本文基于計算機視覺,搭建由低成本攝像頭、計算機組成的系統,實時評估成像的清晰度。實驗結果表明,本系統可以減小誤差,并且節省80%的測讀時間,同時使用的攝像頭成本約為200元,且不改變實驗的其他步驟,可以在實驗課程中推廣使用。
透鏡焦距測量的常用方法有自準直法、物距像距法、共軛法和平行光管法等。在近軸光線條件下,薄透鏡的成像規律可用公式(1)表示為
(1)
以共軛法為例[1],設凸透鏡的焦距為f,使物與屏的距離L>4f并保持不變,見圖1。移動透鏡至x1處,在屏上成放大實像(A1B1),再移至x2處,成縮小實像(A2B2)。令x1和x2間的距離為a,物到像屏的距離為b,由式(1)和圖1中所給出的幾何關系,可導出式(2),進而可求出焦距:

圖1 共軛法測凸透鏡的焦距
(2)
本系統使用攝像頭對屏幕拍攝,輸出實時清晰度評估,可用于任何測量焦距的實驗方法。

圖5 原圖(a)、原圖直方圖分布(b)與對象提取結果(c)
本文使用計算機視覺代替人眼,完成對透鏡成像清晰度的評估。
硬件方面,本系統僅需電腦與低成本攝像頭。本文使用1/3英寸CMOS感光元件的USB免驅動攝像頭,售價約200元,方便在實驗課程中推廣。程序控制攝像頭捕獲一幀圖像之后,首先進行預處理,包括去除椒鹽噪聲,并分割出成像區域;其次進行Sobel算子卷積,求得梯度圖,再求梯度圖的直方圖統計;最后基于直方圖,根據高梯度像素的數量和相對梯度的分布來評估成像清晰度。系統以20Hz運行,基于OpenCV實現[2]。系統運行框圖見圖2。

為了提高系統的易用性與魯棒性,本文借鑒測讀法,實驗中從左至右、從右至左各獲取一個成像清晰的起始位置,取算術平均值作為成像清晰的位置。系統實物圖如圖3所示。

圖3 系統實物圖
由于在弱光下使用低成本攝像頭,圖像有明顯的椒鹽噪聲,本文使用中值濾波過濾。相對于高斯濾波等降噪手段,中值濾波可更多地保留梯度。由圖4可見,原圖具有較明顯的噪聲,使用3×3卷積核可以濾除一部分,使用5×5卷積核可以基本濾除,因此使用后者。

圖4 原圖(左)、3×3卷積核中值濾波(中)、5×5卷積核中值濾波(右)
當成像較小時,由于透鏡較小,屏幕周邊會有光照影響,干擾之后的處理,需要濾除。
由于中心部位亮度顯著大于周邊光,統計直方圖如圖5所示(直方圖略去低亮度部分),因此根據直方圖,用二值化將高亮度部分濾出作為掩膜,再進行開運算消除暗噪聲并放大掩膜,最后將得到的掩膜疊加在原圖像上,得到提取之后的圖像。
對焦清晰度評估算法非常成熟[3],但在本實驗中,場景單一、形狀固定,而光照對比度大、亮度低、噪聲較大,因此需要特殊設計算法,以克服以上約束。
本文提出的方法首先計算Sobel梯度圖,并且對梯度圖統計直方圖分布。然后基于梯度圖的直方圖分布,評估成像清晰度。
首先使用Sobel算子,得到預處理之后圖像的梯度圖。同樣,使用不同大小的Sobel卷積核可以得到不同結果,對比之后選用3×3的卷積核,并求得其直方圖,如圖6所示。
由圖6可看到,對焦清晰時邊緣銳利,在梯度圖中亮度高,亦即梯度圖直方圖中靠右的部分。圖7為兩張圖像的梯度圖局部與兩梯度圖的直方圖,直觀可見左圖比右圖更加銳利。
由圖7兩直方圖可見,清晰圖像的梯度分布更加靠右,也就是極高梯度的像素數更多。因此,我們同時考慮高梯度像素的數量與分布,設計算法。我們對梯度從高到低進行統計(即直方圖從右到左),將某梯度值對應的像素個數與本梯度對應的權重相乘,再按梯度從高到低,以此把值相加,當和到達一定閾值時,以對應的梯度值為判斷依據,稱截止梯度noff。當截止梯度值高于一定值時,認為這幅圖像是清晰的。權重的形式為指數,即滿足式(3)。

圖6 Sobel梯度圖與對應的直方圖(a) 3×3卷積核; (b) 5×5卷積核; (c) 對應的直方圖

圖7 兩幅圖的梯度圖局部與對應的直方圖
本算法有3個參數,即分布權重底數a、分布閾值u及總和閾值Sumth。實驗中發現,本算法對參數選擇并不敏感,本系統中選擇a=1.95,u=242,Sumth=4000。最終將算法編寫成應用程序。若評估清晰,則顯示白色方框,如圖8所示。

圖8 軟件運行截圖
使用者需要使用測讀法,即將透鏡(或其他光具)從左至右、從右至左各移動一次,記下來兩次開始出現白框的位置,取算術平均值,即為清晰成像的位置。最終程序在Python下實現[4],單幀圖像的處理用時約為5ms,可以實現20Hz的圖像評估,滿足實時性需求。
(3)
本文使用計算機代替人眼評估清晰度,目的是減小誤差并節省時間,實驗圍繞目的設計。
由于本文的評估對象是成像清晰度,亦即光具座的位置,難以獲得真值,于是使用多人多次測讀的方式獲得一個誤差很小的值來代替真值。具體方法是:4人在同一實驗條件下,分別測讀5次,得到針對一個清晰成像點的40個數據(即20組),算術平均之后,可以得到方差僅為單次測量方差的5%的測量值,作為真值。同時由本系統對同一條件下的清晰成像位置進行單次測量,與真值對比。
本文使用共軛法進行測量,即有一大一小兩個清晰成像點,進而計算平均值,與計算機對比,結果如表1所列。

表1 人與計算機測量結果對比
結果表明,本系統可以輸出較為精確的結果。同時,由于只需要單次往返測量,比實驗中使用的5次測讀法,可節省80%的時間。
本系統使用計算機和低成本攝像頭,實現了對透鏡成像清晰度的評估,可以減小誤差,并且節省該實驗的大量時間。系統基于圖像梯度,利用高梯度像素的數量和分布,對成像清晰程度評估。本系統成本低廉,并且實現實時評估,可以應用在實驗課程中。