江俊佳,沈建新,周 喆,韓 鵬
(南京航空航天大學 機電學院,江蘇 南京 210016)
裂隙燈顯微鏡[1]可以通過調(diào)節(jié)轉(zhuǎn)鼓的放大倍率觀察眼部表淺或深部組織的病變,對人眼疾病篩查具有重要意義,而對其成像質(zhì)量起關(guān)鍵性作用的結(jié)構(gòu)就是轉(zhuǎn)鼓。目前在進行轉(zhuǎn)鼓裝校時,主要依靠人工觀察顯示器上轉(zhuǎn)鼓圖像的2 組十字叉絲的中心距離來判斷轉(zhuǎn)鼓前后2 塊鏡片中心的重合度[2]。為解決由于人的主觀感受而造成的隨機性、不準確性與效率低下等一系列問題,研究轉(zhuǎn)鼓數(shù)字化裝校技術(shù)勢在必行。
轉(zhuǎn)鼓數(shù)字化裝校技術(shù)的研究重點在于如何實現(xiàn)轉(zhuǎn)鼓圖像中的2 組十字叉絲的準確檢測,即直線檢測。Hough 變換[3-5]由于良好的魯棒性,已經(jīng)成為提取圖像直線的一個常用算法,但此算法也存在計算量大、復雜度高、峰值難以確定等問題,難以應用于實際生產(chǎn)線中[6]。針對這些問題,研究人員提出了一系列的改進算法與應用,例如:Xu L 等人提出隨機Hough 變換(RHT)[7],該算法能夠有效解決標準Hough 變換中消耗內(nèi)存大、精度低等問題;Matas J 等人提出一種概率Hough 變換算法(PPHT)[8];劉通等人利用改進的PPHT 變換算法解決了空間碎片漫反射激光測距回波數(shù)據(jù)信噪比低與難以快速高效地提取有效數(shù)據(jù)點的問題[9];鄢然等人利用PPHT 變換建立了一種編布花邊的實時識別算法[10];鞏學美改進了標準PPHT 變換,并進行了遙感圖像的道路識別[11];Chutatape 等人提出一種將Hough 空間轉(zhuǎn)換為一維空間的改進算法;張振杰提出基于一維的Hough 變換算法[12],該算法主要分為邊緣分組、直線編組和直線精確處理3 個過程;段汝嬌則提出基于像素點聚類的方法來提高Hough 變換的運算速度[13]。
由于轉(zhuǎn)鼓裝校生產(chǎn)線對裝校速率有一定的要求,且對轉(zhuǎn)鼓圖像的檢測精度要求很高,不允許有多余直線出現(xiàn)。而標準概率Hough 變換雖然執(zhí)行效率很高,但由于該變換是對整幅圖像的像素點進行投票計算,而在轉(zhuǎn)鼓圖像中,由于2 組十字刻線的線寬不一致,光學鏡片缺陷造成的污點這2 個原因,使該算法在對轉(zhuǎn)鼓圖像中的同一條直線進行檢測時,很容易在同一直線位置檢測出多條直線。
本文針對這種情況提出一種基于改進的概率Hough 變換的轉(zhuǎn)鼓數(shù)字化裝校技術(shù)。CCD 相機拍攝轉(zhuǎn)鼓圖像后,自動進行十字叉絲檢測、直線交點檢測,提取有效交點并計算交點距離。通過對轉(zhuǎn)鼓圖像的實驗檢測,驗證了該技術(shù)的可行性。
在目前的轉(zhuǎn)鼓裝校平臺上,轉(zhuǎn)鼓裝校技術(shù)的主要原理為:如圖1所示,光源發(fā)出的光束經(jīng)過位于物鏡1 前焦面上的十字叉絲1 和物鏡1 發(fā)射出平行光。然后通過轉(zhuǎn)鼓的一組透鏡(這一組透鏡能夠?qū)κ植娼z1 進行放大或縮?。?。再通過物鏡2 和帶有十字叉絲2 的目鏡成像在CCD 相機上,通過數(shù)據(jù)線傳輸?shù)斤@示器顯示。最后人眼觀察顯示器上的轉(zhuǎn)鼓圖像,主觀判斷圖像中十字叉絲1 與十字叉絲2 的中心距離,以此來判斷轉(zhuǎn)鼓前后鏡片的中心重合度。
由于每個人的主觀感受不一致,長時間工作導致的人眼疲勞,使得人眼觀察叉絲中心距離存在隨機性等問題,從而導致了裂隙燈轉(zhuǎn)鼓的裝校質(zhì)量得不到保證。
圖1 轉(zhuǎn)鼓裝校系統(tǒng)Fig.1 Assembly and adjustment system of rotary drum
對于原始轉(zhuǎn)鼓圖像,首先將其灰度化,再利用濾波、Canny 邊緣檢測等圖像技術(shù)進行預處理,再通過改進的概率Hough 算法檢測十字叉絲直線,準確提取直線后利用制定的十字叉絲交點篩選規(guī)則對交點進行有效篩選,最后計算有效交點之間的距離來判定十字叉絲中心的距離。轉(zhuǎn)鼓數(shù)字化裝校技術(shù)流程如圖2所示。
圖2 數(shù)字化轉(zhuǎn)鼓裝校流程圖Fig.2 Digital assembly and adjustment flow chart of rotary drum
由于相機本身缺陷、光路透鏡缺陷以及現(xiàn)場環(huán)境干擾,得到的圖像中存在的噪聲會使邊緣檢測產(chǎn)生無效的邊緣,影響后期的直線檢測精度。圖像平滑處理(濾波)是消除圖像噪聲的常用方法,能夠在盡量保留圖像細節(jié)的前提下對噪聲進行抑制,其處理效果的好壞將直接影響到后續(xù)圖像處理和分析的可靠性。濾波的對象是在圖像生成和傳輸過程中受到多種因素擾動形成的受污圖像。由于高斯濾波器能夠在保留圖像輪廓信息的同時可以較好地消除噪聲,且實際使用效果非常出色,所以選擇高斯濾波器進行濾波[14]。
邊緣是圖像最重要的特征之一,邊緣檢測能使算法更加精確提取圖像中的直線。在邊緣檢測的經(jīng)典算法中,由于Canny 算法是一個多級邊緣檢測算法,作為當今最優(yōu)的邊緣檢測算法之一,具有較好的邊緣定位能力和抗噪性能[15]。所以選用Canny邊緣檢測算法進行檢測。
由于十字叉絲1 的線寬會隨著轉(zhuǎn)鼓放大倍率的改變而改變,而目鏡上的十字叉絲2 的線寬不會改變。并且由于光學透鏡和CCD 相機鏡頭存在缺陷和污染,導致拍攝的轉(zhuǎn)鼓圖像存在很多污點。由于這2 點原因,如果直接利用標準PPHT 算法對同一直線進行檢測,同一條直線位置將被檢測出多條直線。而經(jīng)過研究發(fā)現(xiàn),對于轉(zhuǎn)鼓圖像而言,同一直線位置檢測出來的直線斜率近似。為了提高PPHT 算法檢測轉(zhuǎn)鼓圖像中直線的準確率,對標準PPHT 算法進行改進。
改進的算法首先利用標準PPHT 算法對圖像進行檢測,再對同多條斜率近似的直線進行歸一化擬合,改進算法步驟流程如圖3所示。
圖3 改進算法流程圖Fig.3 Flow chart of improved algorithm
改進的概率Hough 算法可以檢測出4 條直線,但由于2 組十字叉絲的位置不同,得到的交點個數(shù)也不同,情況分別如下:
1)2 組十字叉絲所產(chǎn)生的2 個交點互不落在對方直線上,此時存在6 個交點,如圖4(a)所示;
圖4 十字叉絲交點圖Fig.4 Crosshair intersection diagrams
2)2 組十字叉絲所產(chǎn)生的2 個交點,其中一個落在對方某一直線上,此時存在4 個交點,如圖4(b)所示;
3)2 組十字叉絲相互平行,并且所產(chǎn)生的2 個交點互不落在對方直線上,此時存在4 個交點,如圖4(c);
4)2 組十字叉絲存在2 條直線重合,所產(chǎn)生的2 個交點不重合,此時存在2 個交點,如圖4(d);
5)2 組十字叉絲所產(chǎn)生的2 個交點相互重合,此時存在一個交點,如圖4(e)。
對于計算2 組十字叉絲中心距離而言,有效交點只有十字叉絲原始的2 個交點。因此需要對上述的交點情況制定交點篩選規(guī)則:
情況1:如圖5若兩點連線與原有的4 條直線重合,則這2 個交點不是原十字刻線的交點,如AB、AC、AF、AE、BC、BD、BE、CD、CF、DE、DF;剩余AD、BF、CE不與原有直線重合,由于 ∠ABD和∠AFD為直角,所以ABDF共圓,且AD為直徑,所以BF<AD;在 ΔBCF中,由于 ∠CBF為鈍角,所以BF<CF,在 ΔCEF中,由于∠CFE為直角,所以CF<CE;可推導出BF<CE;所以BF為2 個交點距離最短的直線,即與原直線不重合的直線中距離最短的直線的2 個端點即為原十字叉絲的2 個交點。
圖5 六交點十字叉絲圖Fig.5 Diagram of 6 intersections crosshairs
情況2:由于原有2 個交點所連直線長度最小,所以相距最近的2 個交點即為原十字叉絲的交點。
情況3:由于2 組十字叉絲相互平行時,組成一個矩形,矩形的對角線大于任意一邊長,且2 條對角線相同,所以對角線距離即為最后所需要求取的十字刻線交點距離,此時無需求出具體的交點。
情況4:2 交點即為原十字叉絲交點,距離即為所求距離。
情況5:只存在一個交點,中心完全重合。
對原圖像進行圖像預處理后,通過改進的PPHT 算法進行直線檢測,提取直線全部交點,利用制定的交點篩選規(guī)則篩選出有效交點,最終計算交點距離來量化2 組十字叉絲中心距離。
為了驗證圖像預處理操作、改進的PPHT 算法、制定的交點篩選規(guī)則對轉(zhuǎn)鼓圖像十字叉絲檢測以及交點篩選的準確性,進行了實驗驗證。
實驗中使用的硬件和軟件如下:德國IDS 公司生產(chǎn)的型號為UI148xLE-C 的工業(yè)相機,日本Computar 公司生產(chǎn)的焦距為16 mm、最大光圈為F1.4、像場2/3 英寸的工業(yè)鏡頭;使用Visual Studio2013 中的OPENCV3.0.0 庫進行開發(fā);計算機硬件配置:處理器Core(TM)i5-7500 主頻3.40 GHz;內(nèi)存DDR4 16 G;顯卡NVIDIA GeFoRce GTX1060 3G。
實驗平臺采用IDS 相機作為光電接收器件,使用LED 光源、光學透鏡、導軌、光學鏡座等光學元件,搭建了如圖6所示的轉(zhuǎn)鼓裝校平臺。
圖6 轉(zhuǎn)鼓裝校平臺Fig.6 Drum mounting platform
為了有效去除原圖像轉(zhuǎn)為灰度圖后圖像中存在的噪聲并且保留直線輪廓信息,本文使用高斯濾波器對圖像去除噪聲,如圖7所示;圖8為Canny邊緣檢測圖,由于圖中直線存在一定的寬度,所以每一條直線存在2 條邊緣。
圖7 高斯濾波Fig.7 Gaussian filtering
圖8 Canny 檢測Fig.8 Canny detection
圖9為標準概率Hough 算法的直線檢測圖,在該圖中存在同一條直線被檢測出多條斜率近似的直線的情況。設置合適算法參數(shù),通過標準概率Hough 變換,4 條直線一共檢測出11 條直線,顯然這是不符合實際使用要求的。
圖9 標準PPHT 算法直線檢測圖Fig.9 Standard PPHT algorithm line detection chart
圖10 為利用改進的概率Hough 算法的直線檢測圖,在該圖中,同一直線檢測出的多條直線被歸一化擬合成同一直線。
圖10 改進PPHT 算法直線檢測圖Fig.10 Improved PPHT algorithm line detection chart
表1為本文改進的PPHT 變換和標準PPHT 變換檢測轉(zhuǎn)鼓圖像直線所消耗的時間和直線檢測數(shù)量的對比表。同時分析圖9、圖10 和表1,改進的概率Hough 算法雖然比標準概率Hough 算法消耗的時間較多,但是精度和準確度高了很多,直線數(shù)量由標準概率Hough 算法檢測的11 條,精確到由改進的概率Hough 算法檢測的4 條,且耗時差在1 s 以內(nèi),既可以滿足生產(chǎn)線的直線檢測準確度精度要求,也能滿足生產(chǎn)線上的實時性要求。
表1 直線檢測結(jié)果對比表Table1 Straight line detection results comparison table
根據(jù)改進的PPHT 算法檢測出的4 條十字叉絲直線,可以得到直線的所有交點,如圖11 所示。再通過上文中制定的交點篩選規(guī)則能夠準確篩選出原十字叉絲的交點,并進行連線計算交點距離,如圖12 所示。
圖11 交點提取Fig.11 Intersection extraction
圖12 交點篩選Fig.12 Intersection screening
利用圖像預處理方法、改進的PPHT 算法和交點篩選規(guī)則,基于VS2013,結(jié)合OPENCV3.0.0,構(gòu)建MFC 人機交互界面,編寫適合于生產(chǎn)線使用的軟件。在對轉(zhuǎn)鼓圖像的實時處理過程中,轉(zhuǎn)鼓圖像的直線數(shù)量信息、交點數(shù)量、坐標信息及有效交點的距離信息都會實時更新在軟件界面上,如圖13所示。
圖13 轉(zhuǎn)鼓數(shù)字化裝校軟件Fig.13 Drum digital installation software
在本實驗中,通過灰度化、高斯濾波、Canny邊緣檢測等圖像預處理操作后,利用改進后的概率Hough 變換100%檢測出十字叉絲長直線,通過交點篩選規(guī)則能夠很好地篩選出2 組十字叉絲的交點并通過計算2 點間距離來判斷轉(zhuǎn)鼓鏡片中心重合度。
實驗結(jié)果表明,本文提出的轉(zhuǎn)鼓數(shù)字化裝校技術(shù),通過對原圖像預處理,利用改進的PPHT 直線檢測算法,制定交點篩選規(guī)則,能夠?qū)崿F(xiàn)對轉(zhuǎn)鼓圖像中的2 組十字叉絲中心距離進行精確計算,從而實現(xiàn)對裂隙燈轉(zhuǎn)鼓的數(shù)字化裝校過程。該裝校技術(shù)與目前的轉(zhuǎn)鼓裝校技術(shù)相比較,具有更好的客觀性、更高的精確度,能夠代替人眼進行轉(zhuǎn)鼓圖像十字叉絲中心距離的計算,從而實現(xiàn)了轉(zhuǎn)鼓數(shù)字化裝校,提高了裂隙燈的成像質(zhì)量。