單德強 胡超
摘 要:提出一種檢測鏡片屈光度等光學參數的方法,點光源穿過準直物鏡形成的垂直光線再依次穿過眼鏡鏡片和哈特曼柵格會得到哈特曼光闌圖,利用樹莓派原裝鏡頭拍攝得到光線形成的哈特曼光闌圖。在樹莓派上對得到的哈特曼光闌圖進行數據處理,并進行一系列的公式的計算最終得到球鏡度等鏡片參數。
關鍵詞:眼鏡屈光度;樹莓派;哈特曼光闌;圖像處理
中圖分類號:TH741 文獻標志碼:A 文章編號:2095-2945(2018)27-0013-03
Abstract: A method of measuring optical parameters such as diopter of lens is presented. The vertical ray formed by point light source passing through collimating objective lens will get Hartmann diaphragm map when it passes through lens and Hartmann grid in turn. The Hartmann diaphragm of light is captured using the original Raspberry Pi lens. On the Raspberry Pi, the data of the Hartmann diaphragm are processed, and a series of formulas are used to calculate the lens parameters, such as the spherical degree of mirror.
Keywords: diopter of lens; Raspberry Pi; Hartmann diaphragm; image processing
眼鏡是矯正眼球屈光、保護眼睛健康,改善視力功能的一種特殊專用的醫療儀器,是驗光中主要的光學矯正方法。焦度計[1]是眼鏡鏡片檢測必不可少的國家強制性測量和檢測儀器,是確定眼鏡鏡片的中心點,檢測鏡片的頂點屈光度、柱面度數、柱面透鏡軸位角度和棱鏡度等透鏡參數的測量儀器。現在的自動焦度計都帶有一個微型電腦,可以進行處理數據等操作,獲得的主要參數有球面透鏡光焦度,柱面透鏡光焦度,柱面透鏡軸位和棱鏡光焦度。通過自動焦度計檢測和分析鏡片的過程實現了快速化和自動化,節約了大量的時間和精力,而且還減少了一些人為的測量讀數錯誤或者計算錯誤。
眼鏡屈光度的檢測主要包括四個步驟,即光斑圖像的獲取、圖像閾值分割及二值化[2]、光斑質心的提取、光學參數的計算。目前,對于眼鏡屈光度檢測有許多不同的方法,但是均有其各自的優點與缺點。利用莫爾偏折技術實現鏡片屈光度的測量能夠達到很高的測量精度,基本原理是根據被測物體所引起的莫爾條紋的偏移量來測量物體的特性,但莫爾條紋的處理比較復雜,而且處理時間較長,無法滿足工業測量的需求。而基于PSD等位置探測器的鏡片檢測方法雖然相對簡單,但是對于位置探測器的精度要求很高,并且難以保證測量誤差。另外還有其他使用以ARM和CCD為核心的嵌入式測量系統,都可以實現鏡片測量的功能。而本文提出的鏡片測量方法,只需要將拍到的光斑圖像進行特征點提取處理后,對光斑特征點之間的距離進行計算從而得到相對精確的屈光度參數,而不需要使用位置探測器等進行鏡片中心點的定位和尋找,從而能夠大大節省圖像處理的時間,并且測量實驗所需的硬件價格低廉,比較適合于工業上的應用。
1 儀器結構
自動焦度計通常是由光學系統、精密機械、光電檢測裝置及電氣控制裝置等部分組成,涉及到光、電機和電力等方面的技術。圖1為自動焦度計的簡單的結構示意圖,包括光源、準直物鏡、待測鏡片的支座、哈特曼光闌板、成像板、圖像拍攝攝像頭、電子控制處理系統(樹莓派)以及LCD顯示屏幕(圖中未畫出)等。選擇了高亮度發光二極管作為點光源,通過準直物鏡的光線能夠得到比較理想的平行光[3]。被測鏡片可能是遠視鏡,近視鏡或漸進多焦點鏡片。哈特曼光闌板柵格上有五個大孔和若干個小孔,每個小孔和打孔都是等間隔的,在光線穿過后會形成等間隔的光斑圖。
2 測量原理
自動焦度計的測量主要是測量光線穿過哈特曼光闌板上的柵格后落在成像板上的五個大光斑點以及其他一些小光斑點的位置和距離的變化[4]。測量原理如圖2所示,當沒有被測鏡片或者鏡片是度數為0的透鏡時,光源穿過Hartmann光闌板的柵格投影到成像板上,形成的光斑點的位置是在位置1;而當要測量的鏡片是為負透鏡(近視透鏡)時,平行光通過要測量的透鏡鏡片且會發生偏折現象,并且光斑的位置會被投影到位置2;待測鏡片為正透鏡(遠視透鏡)時,平行光線經過偏折光斑點位置會向中心點偏移[5]。控制攝像頭捕捉哈特曼光斑點圖像,對光斑圖像進行去噪聲、區域分割、二值化等預處理,計算出光斑特征點的幾何坐標參數和光斑中心的移動,然后用先前獲得的標準透鏡鏡片圖像坐標數據執行插值和誤差計算處理[6]。最后,計算被測透鏡鏡片的相關光學參數。
2.1 球鏡度(SPH)的測量計算
當要測量的透鏡鏡片是球面鏡時,點光源穿過哈特曼光柵形成的光斑圖像的四個大孔的中心是圖3中的A、B、C和D四個點。已知哈特曼光柵十字準線上兩個大孔中心之間的距離為d,待檢測透鏡鏡片會發生平行光線會聚或發散的情況,會使光斑圖像上的標線上的兩光斑點的中心距離是d0,則待檢測透鏡鏡片的球鏡面頂焦度即為:
2.2 柱鏡度(CYL)的測量計算
3 實驗分析
3.1 實驗環境
Raspberry Pi[7]也可以作為一個嵌入式微型計算機進行圖像處理,通過OpenCV就可以使用Raspberry Pi上的幀差異方法來檢測Raspberry Pi攝像頭捕獲的圖像,通過控制程序,可以直接控制執行器。因此,將OpenCV與Raspberry Pi相結合來處理圖像,可以獲得一個簡潔高效的自動運動檢測控制中心。
Raspberry Pi作為微型計算機,只需打開顯示器和接通鼠標、鍵盤等即可實現傳統計算機上實現的大部分功能,如文字處理,圖像處理等。所以使用Raspberry Pi進行圖像處理有很多優點。Raspberry Pi的運算速度也非常快,并且具有GPIO接口,能夠通過編寫程序實現對GPIO接口的控制來實現對執行器的控制。Raspberry Pi也相對比較便宜,所以使用Raspberry Pi作為圖像處理的核心平臺,與傳統的計算機相比較不管是在性價比還是在處理圖像功能的完整性上都有著獨特的優勢。對于Raspberry Pi上的圖像處理,OpenCV是首選工具。OpenCV的全稱是(Open Source Computer Vision Library),它是一個基于開源發行的跨平臺計算機視覺庫,可以運行在Linux、Windows、Mac OS等操作系統上。其特點是較高的移植性和多功能通用性,開源,跨平臺,兼容多種操作系統等。使用的編程語言是基于C函數以及少量的C++類語言構成,還提供了與其他編程軟件語言的接口:例如,Python、Ruby、Matlab等編程語言,大大增強了其通用性和多功能性。
OpenCV的優勢總結下來就是開源;代碼規范;具備了良好的可以后續的開發和改進的能力。但是同樣的缺點也更加明顯,對于圖像分析研究的代碼運行、分析圖像信息的運行速度比較慢,并且運行分析過程中的穩定程度還不夠,程序相對也是更獨立,因此與其他相關函數庫不兼容;對于一些更具體的視覺問題的解決方案需要依靠硬件,有著相對較高的硬件要求[8]。OpenCV的主要目標是構建一個易于使用的計算機視覺框架,并將Raspberry Pi當作嵌入式的微型計算機與之相結合起來,用于解決許多計算機視覺相關應用的復雜問題。
3.2 實驗誤差分析
球鏡度測量誤差:球鏡度誤差可以分為內部誤差和外部誤差,當光線穿過鏡片時在鏡片內部發生偏折時產生的誤差可當作內部誤差,而外部的誤差則指在成像板上得到的光斑圖像處理過程中測量計算光斑特征點距離時所產生的誤差。因此當鏡片是度數很大的正透鏡(遠視鏡)時,鏡片中心的厚度很大,需要對測得的球鏡度重新校正,已達到盡可能的消除誤差的目的。
棱鏡度測量誤差:通過分析可以知道棱鏡度的大小是由棱鏡頂角、折射率和入射光的入射角決定的。假如光線沒有垂直平面入射,也有可能會造成一定的誤差。
3.3 實驗結果分析
圖4是實驗采集的圖像,由于拍攝所使用的攝像頭的分辨率不夠高,同時也存在光的衍射、噪聲等問題,使得拍攝采集到的圖像有些模糊不清楚,質量并不是很高,對于圖像的分析處理比較不利,對收集的圖像進行去噪和二值化等預處理是非常必要的。在預處理過程中,使用OpenCV自帶的一些圖像處理模塊用于簡單的圖像處理,然后使用Python編程查找預處理后的光斑圖像上的五個大孔的中心坐標點的位置。同時,計算從四個大孔中心到鏡片中心的距離。該算法的第一步是找到透鏡鏡片的中心,然后左右搜索另外同一個水平方向的三個大孔;接著上下搜索縱向的三個大孔。最后通過計算公式編程計算得到鏡片的球面透鏡焦度數、柱面透鏡焦度數、棱鏡度數等參數的值。不過通過對實驗整體過程的分析,攝像頭的分辨率不夠高,導致圖像的精準度不夠,也對最終得到的實驗計算結果產生一些誤差;另一方面,使用Python編程計算速度還是不夠快,如果圖像的分辨率更高可能程序運行時長。
4 結束語
本文提出了一種基于樹莓派微型計算機檢測鏡片屈光度的方法,利用樹莓派作為電子處理單元,通過對哈特曼光闌圖的分析和計算等能夠快速實現球鏡度、柱鏡度和散光度等鏡片參數的測量。相對比于簡單的單點測量法,解決了檢測鏡片的局限性;而莫爾偏折法以及朗奇光柵法對于圖像的處理又太過于復雜,同時測量的時間也長,并且非常依賴采樣點的準確性,難以真正地在工業中使用。而根據本文提出的方法可以采用發光二極管、準直物鏡、哈特曼光闌板、樹莓派微型計算機、LCD顯示屏、拍攝攝像頭等構成一個自動的鏡片屈光度檢測的測量系統,有較強的現實意義。整個系統能夠比較準確的測量計算鏡片屈光度的光學參數,而且整個系統所使用的設備價格均比較合理。
參考文獻:
[1]馬玉瑩.自動焦度計的應用[J].中國計量,2015,8:77-78.
[2]劉晨,張輝,柯玉軍.自動焦度計的研制[J].光學儀器,2003,12(25):40-44.
[3]何小群.基于圖像處理技術的自動焦度測量方法[D].重慶大學,2009,6.
[4]劉國成,翟超.基于FPGA的哈特曼光斑圖像處理算法設計[D].中國科學技術大學,2016,5.
[5]劉晨.焦度計綜述[J].應用光學,2004,25(1):55-57.
[6]吳澤楷,李恭強,王文濤,等.基于改進圓擬合算法的激光光斑中心檢測[J].激光與紅外,2016,46(3):347-350.
[7]柯博文.樹莓派(Raspberry Pi)實戰指南[M].北京:清華大學出版社,2015:142-175.
[8]毛星云,冷雪飛.OpenCV3編程入門[M].北京:電子工業出版社,2015:10-20.