石海林,付 敏,朱 革,陳 凡,冷從陽(yáng),喬俊紅,魏曉波
(1.重慶理工大學(xué)機(jī)械檢測(cè)技術(shù)與裝備教育部工程研究中心時(shí)柵傳感及先進(jìn)檢測(cè)技術(shù)重慶市重點(diǎn)實(shí)驗(yàn)室,重慶 400054;2.重慶理工大學(xué)機(jī)械工程學(xué)院,重慶 400054)
隨著工業(yè)生產(chǎn)的快速發(fā)展和生活的需要,圖像檢測(cè)技術(shù)已經(jīng)廣泛地運(yùn)用到各行業(yè)中,如工業(yè)檢測(cè)、儀器儀表、物聯(lián)網(wǎng)等眾多領(lǐng)域[1]。一般情況下,圖像檢測(cè)都需要一套完整的光學(xué)系統(tǒng),通過(guò)鏡頭對(duì)入射光線進(jìn)行傳輸引導(dǎo),將被測(cè)對(duì)象的光信號(hào)引導(dǎo)至圖像傳感器對(duì)應(yīng)的位置上,經(jīng)光電轉(zhuǎn)換成相應(yīng)的電信號(hào),這個(gè)過(guò)程叫做聚焦成像,其中圖像傳感器與鏡頭之間必須留有一定的距離來(lái)實(shí)現(xiàn)焦距調(diào)節(jié)與聚焦[2-3]。由于透鏡的復(fù)雜性,以及圖像傳感器與透鏡之間的距離,導(dǎo)致現(xiàn)有的圖像檢測(cè)裝置尺寸較大,難以實(shí)現(xiàn)檢測(cè)系統(tǒng)的微型化[4]。這樣使得在空間距離短、目標(biāo)物體小的檢測(cè)條件下,難以完成光學(xué)成像系統(tǒng)的組裝,從而導(dǎo)致檢測(cè)效果不好,甚至無(wú)法檢測(cè)[5-6]。因此,如何實(shí)現(xiàn)低成本、近距離、小范圍圖像檢測(cè),成為圖像檢測(cè)技術(shù)的一個(gè)關(guān)注熱點(diǎn)。
近年來(lái),隨著近場(chǎng)圖像檢測(cè)需求的不斷增加,為解決圖像采集對(duì)光學(xué)成像系統(tǒng)的依賴,研究人員提出了多種不同的解決方案。文獻(xiàn)[7]提出了基于編碼孔徑成像的無(wú)鏡頭相機(jī)架構(gòu),用特別設(shè)計(jì)的編碼孔徑替代鏡頭,直接安裝在傳感器的前面成像。為了進(jìn)一步提高檢測(cè)圖像的分辨率,在原有編碼孔徑成像技術(shù)的基礎(chǔ)上,增加一塊編碼遮光板放在鏡頭前,運(yùn)用圖像統(tǒng)計(jì)學(xué)原理對(duì)場(chǎng)景深度信息進(jìn)行提取,并利用算法程序重新聚焦[8-9]。上面兩種方法雖然實(shí)現(xiàn)了無(wú)鏡頭成像的測(cè)量,但是并沒(méi)有減小成像裝置的體積。用透射式LCD液晶光調(diào)制器來(lái)代替鏡頭,將其放在成像目標(biāo)和傳感器之間,通過(guò)控制光調(diào)制器的像素對(duì)光線進(jìn)行選擇性穿透,對(duì)透過(guò)的光進(jìn)行壓縮測(cè)量,利用算法來(lái)重建圖像,完成無(wú)鏡頭的測(cè)量[10-11]。文獻(xiàn)[12]采用相位衍射光柵與CMOS傳感器陣列集成一種新的無(wú)鏡頭傳感器,當(dāng)傳感器接收到各方向光線時(shí),根據(jù)這些光強(qiáng)信息獲得一幅扭曲的圖像。為了得到正常的圖像,通過(guò)對(duì)扭曲的圖像進(jìn)行算法處理即可實(shí)現(xiàn),將成像裝置的厚度減小至1 mm以內(nèi)。日立公司在感光元件前面增加一塊帶有同心圓圖案的光學(xué)薄膜,當(dāng)光線穿過(guò)薄膜時(shí)會(huì)形成陰影,并被傳感器接收;利用相關(guān)先驗(yàn)信息進(jìn)行算法計(jì)算,將相近的同心圓疊加在陰影上,就會(huì)產(chǎn)生根據(jù)光線入射角形成的莫爾條紋,這些莫爾條紋經(jīng)過(guò)處理后就可以實(shí)現(xiàn)無(wú)鏡頭成像[13-14]。這種方法不僅有效減小了成像裝置的厚度,而且能夠根據(jù)實(shí)際需要調(diào)節(jié)焦距。文獻(xiàn)[15]提出了一種基于4f系統(tǒng)的全相位反射式壓縮編碼孔徑光學(xué)成像系統(tǒng),利用反射式空間光調(diào)制器對(duì)透過(guò)的光線進(jìn)行處理,將采集的低分辨率圖像進(jìn)行解碼重建。
雖然上述圖像檢測(cè)技術(shù)采用不同的方法實(shí)現(xiàn)了光線的傳輸和成像場(chǎng)景的聚焦,完成了無(wú)鏡頭成像的圖像檢測(cè),但是基本上都是用尺寸較小的光學(xué)器件替代光學(xué)鏡頭,如LCD空間光調(diào)制器、編碼掩膜、衍射光柵等;這些光學(xué)器件的成本比較高,難以安裝,并且因光強(qiáng)調(diào)制過(guò)程復(fù)雜增大后續(xù)的圖像處理算法難度。因此,為了實(shí)現(xiàn)近距離、小目標(biāo)的圖像檢測(cè),本文在現(xiàn)有無(wú)鏡頭成像技術(shù)的基礎(chǔ)上,設(shè)計(jì)了一種低成本、無(wú)需光學(xué)鏡頭的近場(chǎng)圖像檢測(cè)系統(tǒng)。該系統(tǒng)將CMOS圖像傳感器看作一個(gè)精密排列的二維光敏陣列,F(xiàn)PGA驅(qū)動(dòng)CMOS圖像傳感器,讀取近場(chǎng)透光面在每個(gè)光敏單元的光強(qiáng)值,用階梯圖像算法對(duì)透光面的輪廓進(jìn)行識(shí)別和圖像重建,真正實(shí)現(xiàn)在無(wú)鏡頭條件下的光強(qiáng)直接成像,進(jìn)一步減少成像裝置的體積,并實(shí)現(xiàn)低成本、無(wú)鏡頭、近場(chǎng)圖像檢測(cè)功能。
FPGA圖像驅(qū)動(dòng)系統(tǒng)總體架構(gòu)如圖1所示,F(xiàn)PGA作為核心控制單元,負(fù)責(zé)圖像傳感器的驅(qū)動(dòng)與初始化、圖像數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)的處理和圖像的顯示。首先,主控單元FPGA通過(guò)SCCB(serial camera control bus)協(xié)議產(chǎn)生控制信號(hào)對(duì)圖像傳感器進(jìn)行初始化設(shè)置,并將初始化數(shù)據(jù)寫入圖像傳感器內(nèi)部的寄存器中,按照行、列的驅(qū)動(dòng)方式并行驅(qū)動(dòng)所有的像素單元;其次,將每個(gè)像元采集的光強(qiáng)值通過(guò)DVP(digital video port)接口緩存到外部存儲(chǔ)器SDRAM中,并通過(guò)調(diào)用FIFO中的IP核進(jìn)行數(shù)據(jù)的寫入與讀??;然后將采集的圖像數(shù)據(jù)進(jìn)行灰度轉(zhuǎn)換,對(duì)處理后的數(shù)據(jù)用圖像識(shí)別算法進(jìn)行處理,得到光強(qiáng)圖像信息;最后HDMI控制器將處理后的數(shù)據(jù)按照TMDS(transition minimized differential signal)協(xié)議的格式發(fā)送到顯示器,實(shí)時(shí)地顯示在無(wú)鏡頭條件下的圖像傳感器檢測(cè)的圖像信息。為了保證寫入寄存器中數(shù)據(jù)的準(zhǔn)確性,通過(guò)增設(shè)一個(gè)按鍵來(lái)進(jìn)行控制數(shù)據(jù)的讀寫操作。
圖1 驅(qū)動(dòng)系統(tǒng)總體架構(gòu)
為了便于處理采集的圖像數(shù)據(jù),本系統(tǒng)選用低功耗、直接輸出數(shù)字信號(hào)的CMOS傳感器OV5640。該圖像傳感器內(nèi)部有豐富的寄存器,需要通過(guò)SCCB協(xié)議寫入數(shù)據(jù)來(lái)初始化CMOS圖像傳感器,使其按照行列的方式輸出光強(qiáng)數(shù)據(jù)。為了完成圖像傳感器的初始化,需要先根據(jù)上電時(shí)序要求進(jìn)行程序設(shè)計(jì),完成上電操作。在圖像傳感器的初始化階段中,F(xiàn)PGA作為SCCB接口的主設(shè)備,而CMOS傳感器則為從設(shè)備。根據(jù)SCCB寫數(shù)據(jù)的時(shí)序約束圖,可以分為5個(gè)階段:第一階段在SIO_C高電平時(shí),SIO_D信號(hào)被拉低,表示開始傳輸數(shù)據(jù);第二階段先發(fā)送CMOS傳感器的地址和寫入數(shù)據(jù)指令,再發(fā)送讀寫命令,以便進(jìn)行讀寫操作;第三階段是寫內(nèi)部寄存器的地址,由于SCCB每次只能寫8位地址,而寄存器的地址是16位,所以需要發(fā)送2次才能完成;第四階段將需要設(shè)置的數(shù)據(jù)寫入相應(yīng)的內(nèi)部寄存器中;第五階段為寫數(shù)據(jù)的結(jié)束階段,表示圖像傳感器初始化完成。圖像傳感器初始化RTL圖如圖2所示。
圖2 圖像傳感器初始化RTL圖
對(duì)設(shè)計(jì)的SCCB程序進(jìn)行功能仿真如圖3所示,并向某一地址的寄存器中寫入數(shù)據(jù),其實(shí)現(xiàn)過(guò)程與時(shí)序約束圖一致,說(shuō)明OV5640初始化成功。
圖3 SCCB功能仿真圖
完成圖像傳感器初始化設(shè)置后,在光源的照射下,圖像數(shù)據(jù)通過(guò)DVP接口按照RGB的格式進(jìn)行輸出,其中16位的二進(jìn)制數(shù)表示一個(gè)像素單元的數(shù)據(jù)。由于DVP接口一次只輸出8 bit的數(shù)據(jù),那么1個(gè)像素單元的數(shù)據(jù)就需要輸出2次,在輸出數(shù)據(jù)后需要將這2個(gè)字節(jié)的數(shù)據(jù)進(jìn)行拼接。根據(jù)前面的分析發(fā)現(xiàn)圖像傳感器在發(fā)送數(shù)據(jù)之前需要一定的時(shí)間完成初始化,但是在這段時(shí)間內(nèi)仍然有數(shù)據(jù)輸出,為了確保發(fā)送的圖像數(shù)據(jù)的正確性,本系統(tǒng)會(huì)將前面幾幀的數(shù)據(jù)丟棄。
DVP輸出的圖像數(shù)據(jù)所占用的內(nèi)存是很大的,而FPGA內(nèi)部并沒(méi)有這么大的存儲(chǔ)空間來(lái)用于圖像數(shù)據(jù)的存儲(chǔ),故需要將數(shù)據(jù)存入外部的SDRAM存儲(chǔ)器中。在SDRAM中有許多個(gè)邏輯單元,通過(guò)行列地址和BANK地址對(duì)存入SDRAM存儲(chǔ)器中的數(shù)據(jù)進(jìn)行讀寫操作。要正確地使用SDRAM存儲(chǔ)器,同樣需要先對(duì)SDRAM進(jìn)行初始化設(shè)置,其初始化仿真結(jié)果如圖4所示。在完成SDRAM存儲(chǔ)器的初始化設(shè)置后,便可以對(duì)采集的圖像數(shù)據(jù)進(jìn)行寫入和讀取操作。
圖4 SDRAM功能仿真
考慮到SDRAM存儲(chǔ)器和DVP接口之間速率的不匹配,或者后續(xù)的圖像數(shù)據(jù)發(fā)送時(shí)鐘不同步,引入了讀寫FIFO(WFIFO、RFIFO)來(lái)解決數(shù)據(jù)跨時(shí)鐘域傳輸?shù)膯?wèn)題。在數(shù)據(jù)寫入SDRAM存儲(chǔ)器時(shí),先將數(shù)據(jù)寫入WFIFO中,當(dāng)寫入WFIFO中的數(shù)據(jù)個(gè)數(shù)達(dá)到某一值時(shí),再將數(shù)據(jù)寫入SDRAM中;讀RFIFO中的數(shù)據(jù)原理與其類似。
為了提高信號(hào)傳輸?shù)目煽啃院透咝?,HDMI控制器將數(shù)據(jù)按照TMDS協(xié)議格式進(jìn)行發(fā)送。首先HDMI控制器將FIFO中的數(shù)據(jù)在時(shí)序發(fā)生器中合成后面顯示所需的標(biāo)準(zhǔn)時(shí)序;再將控制信號(hào)和數(shù)據(jù)按照TMDS協(xié)議合成10位并行編碼;最后并行的10位編碼數(shù)據(jù)經(jīng)過(guò)并串轉(zhuǎn)換模塊轉(zhuǎn)換成差分的串行數(shù)據(jù)。TMDS的編碼實(shí)現(xiàn)主要是將原始數(shù)據(jù)通過(guò)邏輯運(yùn)算來(lái)實(shí)現(xiàn)的,其中10位編碼數(shù)據(jù)的前8位是原始數(shù)據(jù)經(jīng)過(guò)異或運(yùn)算得來(lái)的,第9位是指示前8位數(shù)據(jù)進(jìn)行何種運(yùn)算的指示信號(hào)。為了驗(yàn)證HDMI控制器設(shè)計(jì)的正確性,選取某一周期進(jìn)行圖像數(shù)據(jù)的傳輸,并以8’h5f等3個(gè)數(shù)據(jù)作為輸入數(shù)據(jù),其仿真結(jié)果如圖5所示。根據(jù)仿真結(jié)果分析,該HDMI控制器設(shè)計(jì)合理,能夠正確地傳輸圖像數(shù)據(jù)信息。
圖5 HDMI控制器仿真結(jié)果
在完成上述各模塊的設(shè)計(jì)之后,用光源驅(qū)動(dòng)電路作用于光源,對(duì)其光斑大小用設(shè)計(jì)的圖像檢測(cè)系統(tǒng)進(jìn)行檢測(cè),其光斑形狀如圖6所示。在顯示器上能夠清晰地看到光源的光斑形狀,說(shuō)明該圖像驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)成功。
圖6 光源的光斑圖像
該圖像檢測(cè)系統(tǒng)是為了實(shí)現(xiàn)在近場(chǎng)條件下,對(duì)微小尺寸物體的準(zhǔn)確成像檢測(cè)。成像系統(tǒng)結(jié)構(gòu)模型及尺寸如圖7所示,其中余弦透光面柵距為0.2 mm,余弦透光面長(zhǎng)寬均為5 mm,余弦透光面與圖像傳感器之間的距離為4 mm,光源距離定極板3 mm。由于待檢測(cè)物體的體積較小,必須通過(guò)固定裝置將其固定在圖像傳感器的前方,保證光源、余弦透光面、圖像傳感器三者在同一直線上,從而獲得較好的檢測(cè)效果。光源對(duì)圖像質(zhì)量的優(yōu)劣有著重要的影響,因此選擇均勻性較好的LED光源。光源的照射范圍較小使得光源與余弦透光面之間的距離進(jìn)一步減小,這樣整個(gè)圖像檢測(cè)系統(tǒng)總體呈現(xiàn)出近距離、尺寸小的特點(diǎn)。
圖7 成像系統(tǒng)結(jié)構(gòu)模型
根據(jù)上述原理搭建如圖8所示的圖像檢測(cè)平臺(tái),其中FPGA選用數(shù)字邏輯資源豐富的Intel 10CL025YU256C8。該實(shí)驗(yàn)平臺(tái)以光場(chǎng)式時(shí)柵位移傳感器為載體,選用均勻性較好的LED光源iC-TL46作為發(fā)光元件,照射在多排連續(xù)余弦陣列上,將余弦透光面通過(guò)固定支架固定在距離LED光源3 mm處的位置,并在其后方安裝有CMOS圖像傳感器OV5640,用于接收透過(guò)透光面的光強(qiáng)信號(hào)。
圖8 圖像檢測(cè)平臺(tái)
在搭建好圖像平臺(tái)之后,利用光源驅(qū)動(dòng)電路作用于LED光源,使其發(fā)生交變。在光源的照射下,LED光源透過(guò)透光面之后的光強(qiáng)被圖像傳感器OV5640接收,將接收到的數(shù)據(jù)先不進(jìn)行算法處理,通過(guò)FPGA控制系統(tǒng)直接輸出并在顯示器上進(jìn)行顯示,得到直接驅(qū)動(dòng)后無(wú)鏡頭檢測(cè)圖像如圖9所示。
圖9 直接驅(qū)動(dòng)后的檢測(cè)圖像
由于在圖像傳感器前面沒(méi)有鏡頭,不能對(duì)檢測(cè)的圖像進(jìn)行聚焦,所以通過(guò)FPGA直接驅(qū)動(dòng)的圖像檢測(cè)系統(tǒng)不能得到清晰的余弦透光面圖像,需要運(yùn)用算法程序重建原始場(chǎng)景圖像。算法實(shí)現(xiàn)流程圖如圖10(a)所示。首先,在光源照射下,圖像傳感器檢測(cè)到的彩色圖像數(shù)據(jù)量較大,會(huì)占用很大的存儲(chǔ)空間,因此需要通過(guò)灰度轉(zhuǎn)換處理將圖像傳感器OV5640采集的彩色圖像轉(zhuǎn)換成灰色圖像。其次,對(duì)于圖像檢測(cè)中存在的噪聲問(wèn)題,該系統(tǒng)采用中值濾波的方式來(lái)進(jìn)行處理,中值濾波是一種能有效抑制噪聲的非線性信號(hào)處理技術(shù),中心點(diǎn)用該點(diǎn)的一個(gè)鄰域中各點(diǎn)值的中值代替,消除圖像中孤立的噪聲點(diǎn)[16]。經(jīng)去燥處理后的圖像變得模糊,難以區(qū)分圖像的邊緣或輪廓信息,故需要通過(guò)直方圖均衡化方法增強(qiáng)圖中的有效信息,使模糊的圖像變得更加清晰,便于后續(xù)的處理。直方圖均衡化方法通過(guò)計(jì)算某一像素點(diǎn)和它具有微小距離的像素點(diǎn)之間的灰度差值,描繪檢測(cè)圖像的灰度直方圖,在特定灰度范圍將數(shù)據(jù)均勻分布,增強(qiáng)圖像的對(duì)比度。然后運(yùn)用階梯圖像算法識(shí)別圖像的邊緣,選取3×3的算法模板對(duì)每個(gè)像素點(diǎn)乘以相應(yīng)的權(quán)值,進(jìn)行加權(quán)運(yùn)算;再分別從橫向和縱向上一個(gè)像素點(diǎn)到下一個(gè)像素點(diǎn)進(jìn)行差分運(yùn)算,得到每個(gè)像素點(diǎn)的橫縱方向梯度值;對(duì)得到的梯度值進(jìn)行均值運(yùn)算就能夠得到每個(gè)像素點(diǎn)的梯度值。將得到的梯度值與設(shè)定的閾值進(jìn)行比較,梯度值大于閾值的地方就是該圖像的邊緣處。經(jīng)反復(fù)實(shí)驗(yàn)驗(yàn)證,當(dāng)閾值為150的時(shí)候,該系統(tǒng)能夠得到較好的邊緣圖像。在經(jīng)過(guò)前面幾步的處理之后,圖像信息和其他無(wú)關(guān)信息已經(jīng)被明顯地區(qū)別開。最后,將圖像傳感器上每個(gè)光敏單元的光強(qiáng)值數(shù)據(jù)進(jìn)行傅里葉變換,通過(guò)運(yùn)行速度較快的全變分正則化算法實(shí)現(xiàn)圖像重建,進(jìn)而得到原始場(chǎng)景圖像數(shù)據(jù),對(duì)這些圖像數(shù)據(jù)進(jìn)行拼接即可得到清晰的光強(qiáng)圖像。
圖10 算法實(shí)現(xiàn)流程圖
圖像重建的算法實(shí)現(xiàn)過(guò)程如圖10(c)所示,該算法通過(guò)并聯(lián)卷積跳線的方式提取更加完整的圖像信息;為了得到更高分辨率的圖像,在求解最優(yōu)解的時(shí)候,對(duì)最小二乘法的損失函數(shù)進(jìn)行改進(jìn),在正則項(xiàng)中加入全變分約束條件。通過(guò)算法重建得到原始場(chǎng)景圖像信息,對(duì)這些圖像數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換和拼接,合成彩色的光強(qiáng)圖像,圖像拼接過(guò)程如圖10(b)所示。再次利用搭建的圖像檢測(cè)平臺(tái)進(jìn)行測(cè)試,得到經(jīng)算法處理后的透光面圖像如圖11所示。該檢測(cè)圖像邊緣清晰,能夠正確分辨出每個(gè)余弦透光面的形狀。
圖11 算法處理后透光面圖像
本文對(duì)近距離、小目標(biāo)、無(wú)鏡頭的光強(qiáng)直接成像圖像檢測(cè)系統(tǒng)的設(shè)計(jì)流程進(jìn)行了詳細(xì)闡述,搭建了相應(yīng)的檢測(cè)裝置,并進(jìn)行了實(shí)驗(yàn)驗(yàn)證。根據(jù)實(shí)驗(yàn)結(jié)果得到以下結(jié)論:
(1)該圖像檢測(cè)系統(tǒng)能夠在不增加成本的條件下,通過(guò)獨(dú)立檢測(cè)圖像傳感器中每個(gè)光敏單元的光強(qiáng)信息,配合輪廓識(shí)別的階梯圖像算法實(shí)現(xiàn)光強(qiáng)成像;
(2)根據(jù)設(shè)計(jì)的檢測(cè)系統(tǒng)和搭建的檢測(cè)平臺(tái),完成了在5 mm范圍內(nèi)柵距為0.2 mm的多排連續(xù)透光面圖像的直接測(cè)量,驗(yàn)證了該系統(tǒng)在近場(chǎng)、無(wú)鏡頭條件下,光強(qiáng)直接準(zhǔn)確成像的可行性。該系統(tǒng)設(shè)計(jì)從檢測(cè)光強(qiáng)變化的思路實(shí)現(xiàn)了無(wú)鏡頭成像,具有很好的應(yīng)用價(jià)值。