湖南鐳目科技有限公司,湖南長(zhǎng)沙 410100
智能線陣相機(jī)(Smart Line Scan Camera)是一種高度集成化的微小型機(jī)器視覺(jué)系統(tǒng),具有易學(xué)、易用、易維護(hù)、安裝方便等特點(diǎn),可在短期內(nèi)構(gòu)建起可靠而有效的機(jī)器視覺(jué)系統(tǒng)。
在鋼鐵行業(yè)中,基于線陣相機(jī)的鋼材表面質(zhì)量檢測(cè)系統(tǒng)已經(jīng)得到了較為廣泛的應(yīng)用。傳統(tǒng)的表面質(zhì)量檢測(cè)系統(tǒng)需要配備相機(jī)、工控機(jī)電腦和圖像處理軟件,整個(gè)系統(tǒng)成本高、維護(hù)量大。隨著超大規(guī)模集成電路技術(shù)的發(fā)展,DSP和FPGA芯片性能的快速提高,智能相機(jī)的功能越來(lái)越豐富,可滿足多種機(jī)器視覺(jué)的應(yīng)用需求。目前國(guó)內(nèi)工業(yè)應(yīng)用圖像檢測(cè)領(lǐng)域,以采用進(jìn)口智能相機(jī)為主,存在設(shè)備價(jià)格高,二次開發(fā)周期長(zhǎng)等問(wèn)題。
因此,本公司采用DSP和FPGA開發(fā)出一款工業(yè)智能線陣相機(jī),用于高速運(yùn)動(dòng)的軋鋼、玻璃、鋁板等表面的檢測(cè),不僅能夠滿足檢測(cè)系統(tǒng)性能要求,而且能夠有效降低設(shè)備成本和維護(hù)量,縮短系統(tǒng)研發(fā)周期,現(xiàn)已在國(guó)內(nèi)多家大型鋼鐵企業(yè)得到了成功應(yīng)用。
智能相機(jī)從工作邏輯功能上主要分為圖像采集、圖像數(shù)據(jù)提取轉(zhuǎn)換、圖像處理和圖像傳輸[1]。
本文所論述的智能相機(jī)硬件結(jié)構(gòu)由圖像傳感器、FPGA芯片、DSP芯片、電源模塊以及其他外設(shè)單元組成,如圖1所示。
圖像傳感器負(fù)責(zé)圖像采集,把通過(guò)鏡頭后的物體光學(xué)成像數(shù)據(jù)轉(zhuǎn)換成電信號(hào),以LVDS形式輸出到下級(jí)。我們使用Anafocus公司的高速CMOS線陣傳感器。它集成了兩個(gè)像素行:1行是4096像素的7μm像素行,另外一行是2048像素的14μm像素行,同時(shí)它的SOC架構(gòu)提供了像素陣列,數(shù)據(jù)輸出和高速A/D采樣、傳感器控制、光學(xué)校準(zhǔn)等功能,在7μm的4K像素模式下,行頻可以高達(dá)18180 lps,非常適合高速運(yùn)動(dòng)物體的拍攝。
FPGA芯片采用的是Xilinx公司的spartan6系列芯片,它價(jià)格便宜而且內(nèi)置資源豐富,同時(shí)提供多種開發(fā)工具軟件。
DSP芯片使用的是TI的C64x芯片,其主頻最高可達(dá)1.2GHz,提供了豐富的外設(shè)接口,具有高速、靈活、可靠、可編程、低功耗等特點(diǎn)[2-3]。
圖像傳感器輸出LVDS把圖像數(shù)據(jù)發(fā)送到FPGA邏輯芯片中,F(xiàn)PGA利用嚴(yán)格的時(shí)序邏輯對(duì)LVDS進(jìn)行捕獲采樣,轉(zhuǎn)換成8/12bit的灰度圖像數(shù)據(jù)。同時(shí)FPGA還利用標(biāo)準(zhǔn)的SPI核產(chǎn)生SPI串行信號(hào)對(duì)傳感器進(jìn)行控制和寄存器配置。FPGA同時(shí)還與DSP的EMIFA接口連接,因此它還需要適配EMIFA的時(shí)序邏輯。FPGA的EMIFA接口采用32bit的同步模式與DSP通信,時(shí)鐘速率可達(dá)62.5MHz,通信速率非常高。FPGA收到從傳感器過(guò)來(lái)的灰度圖像數(shù)據(jù)先緩存到內(nèi)部的RAM空間,當(dāng)數(shù)據(jù)量達(dá)到一幀圖像后,通過(guò)連接到DSP的GPIO引腳的控制線發(fā)送中斷,通知DSP讀取EMIFA接口,讀取圖像數(shù)據(jù)。在DSP中,收到FPGA的GPIO中斷通知后,使用DMA從接口讀取圖像數(shù)據(jù),不用CPU參與。DSP數(shù)據(jù)收到數(shù)據(jù)后再進(jìn)行圖像處理和分析,最后通過(guò)千兆以太網(wǎng)發(fā)送到外部,同時(shí)通過(guò)以太網(wǎng)還可以接收外部命令和參數(shù),對(duì)相機(jī)內(nèi)部進(jìn)行控制和圖像參數(shù)調(diào)整。
在智能相機(jī)中,軟件設(shè)計(jì)是很重要的一部分。軟件包括DSP圖像處理模塊、與PC上位機(jī)的通信協(xié)議、以及與FPGA通信等,共同構(gòu)成一個(gè)系統(tǒng)整體[4]。在TI C6000系列DSP上,開發(fā)軟件主要有以下幾個(gè)層次,每一層TI都有提供相關(guān)的庫(kù)或者類似的代碼。軟件整體層次如圖2所示。
從FPGA過(guò)來(lái)的圖像數(shù)據(jù),通過(guò)EMIFA接口與DSP連接,在DSP中映射為內(nèi)存CE4地址段。每次數(shù)據(jù)到來(lái),F(xiàn)PGA通過(guò)中斷通知DSP。在DSP中斷程序中,啟動(dòng)DSP的EDMA搬移到數(shù)據(jù)到程序內(nèi)部數(shù)組RAM空間。
在本過(guò)程中,為保證FPGA連續(xù)到來(lái)的數(shù)據(jù)不丟失,設(shè)計(jì)了一個(gè)ping-pang緩存的功能,如圖3所示。使用兩個(gè)數(shù)組,EDMA交替搬移數(shù)據(jù)到兩個(gè)數(shù)組中,其中一個(gè)在EDMA搬移數(shù)據(jù)占用時(shí),另外一個(gè)數(shù)組的數(shù)據(jù)用來(lái)進(jìn)行圖像處理,保證兩者不產(chǎn)生競(jìng)爭(zhēng)導(dǎo)致數(shù)據(jù)錯(cuò)誤,同時(shí)也不影響FPGA中斷效率。
智能相機(jī)與上位機(jī)通信的軟件模塊是采用socket的TCP/IP協(xié)議,根據(jù)上位機(jī)發(fā)送過(guò)來(lái)的指令和參數(shù)選擇合適的算法進(jìn)行圖像處理,然后把處理后的結(jié)果圖片發(fā)送到上位機(jī)。
根據(jù)上面描述的硬件結(jié)構(gòu),F(xiàn)PGA邏輯是在Spartan6芯片中的邏輯功能。它的功能主要包括:
(1)LVDS差分信號(hào)采集核
用于根據(jù)傳感器行有效信號(hào)采集LVDS數(shù)據(jù),轉(zhuǎn)換成灰度像素?cái)?shù)據(jù)。傳感器使用3組差分?jǐn)?shù)據(jù)信號(hào),1組SYNC同步信號(hào)和1組LVAL行有效信號(hào)輸出數(shù)據(jù)。采集核把數(shù)據(jù)信號(hào)轉(zhuǎn)換為并行8/12bit灰度數(shù)據(jù),同時(shí)輸出對(duì)應(yīng)行有效信號(hào)和同步時(shí)鐘信號(hào),供后續(xù)模塊使用。
(2)圖像數(shù)據(jù)轉(zhuǎn)換緩存核
用于將前面采集核的數(shù)據(jù)和時(shí)鐘以及行有效信號(hào),PING-PANG緩存到RAM空間,然后發(fā)送到下一級(jí)。
(3)EMIFA時(shí)序邏輯功能核
它的作用是適配DSP的EMIF接口。DSP使用EMIFA接口與FPGA連接,所以FPGA需要解析EMIFA接口信號(hào)時(shí)序,它使用EMIFA同步接口,32根數(shù)據(jù)線和16根地址線,以及幾個(gè)CE使能信號(hào)。
(4)Micro-blaze核
Micro-blaze核作為FPGA中的CPU,F(xiàn)PGA內(nèi)部外設(shè)所需要的驅(qū)動(dòng)代碼都是通過(guò)它運(yùn)行。例如,控制傳感器的SPI主設(shè)備功能和中斷功能。目前FPGA的SPI做主設(shè)備與傳感器從設(shè)備通信,配置參數(shù)在Microblaze核中進(jìn)行運(yùn)行配置。
內(nèi)嵌圖像處理算法是智能相機(jī)區(qū)別與傳統(tǒng)相機(jī)的一個(gè)重要方面,也是決定相機(jī)性能的關(guān)鍵之一。因此定制化的研發(fā)了圖像處理算法能夠更好的實(shí)現(xiàn)軋鋼、玻璃、鋁板等表面的缺陷檢測(cè)、分類和定位。
(1)圖像預(yù)處理
CMOS圖像傳感器的空間噪聲主要來(lái)源于兩大類噪聲:一是暗電流的非均勻性,二是圖像的非均勻性響應(yīng)(Photo Response Non. Uniformity, PRNU),這兩類噪聲通過(guò)增減偏移和增益調(diào)節(jié)的方法進(jìn)行校正。
相關(guān)雙采樣法是降低上述幾種噪聲的有效方法,不僅可以消除了輸入信號(hào)中的復(fù)位噪聲,還抑制了1/f噪聲和由電源電壓帶來(lái)的低頻噪聲。CMOS傳感器已經(jīng)集成了處理電路,輸出信號(hào)已經(jīng)是數(shù)字信號(hào),因此給設(shè)計(jì)帶來(lái)了很大的方便。
(2)圖像自動(dòng)校正處理
采用了一種混合的并行校正算法,即將兩點(diǎn)法、邊緣檢測(cè)、均值濾波以及圖像融合有序地結(jié)合在一起進(jìn)行圖像并行的校正與處理。此種方法不僅抑制了CMOS的暫態(tài)噪聲,而且還增強(qiáng)了圖像的邊緣信號(hào),使得本相機(jī)系統(tǒng)更加有助于工業(yè)現(xiàn)場(chǎng)檢測(cè)的應(yīng)用。
算法按時(shí)間段劃分分為三個(gè)階段:第一階段執(zhí)行兩點(diǎn)法校正;第二階段執(zhí)行邊緣檢測(cè)與均值濾波,將兩點(diǎn)法校正后的像素同時(shí)傳給邊緣檢測(cè)模塊與均值濾波模塊進(jìn)行處理;第三階段是圖像融合,即把邊緣檢測(cè)后的圖像與均值濾波后的圖像進(jìn)行融合,合并為一幅圖像。
(3)圖像識(shí)別與缺陷檢測(cè)算法
首先使用圖像灰度補(bǔ)償?shù)念A(yù)處理方法來(lái)改善并規(guī)范圖像的灰度分布,實(shí)現(xiàn)優(yōu)化圖像質(zhì)量的目的。然后將預(yù)處理之后的帶鋼表面圖像經(jīng)過(guò)梯度處理和二值化處理,可以將圖像的灰度異常變化的區(qū)域顯示出來(lái),實(shí)現(xiàn)缺陷目標(biāo)快速檢測(cè)。接著使用數(shù)學(xué)形態(tài)學(xué)濾波濾去二值圖像中的噪聲點(diǎn),再采用高精度的圖像分割方法將缺陷區(qū)進(jìn)行分割。圖4為圖像檢測(cè)流程圖,圖5為鋼坯缺陷在線識(shí)別效果。
(4)缺陷定位與缺陷分類算法
通過(guò)在現(xiàn)場(chǎng)采集的大量缺陷圖像的特征提取和分類檢測(cè),并將各類缺陷檢測(cè)結(jié)果暫存于緩存區(qū),再對(duì)各個(gè)缺陷進(jìn)行定位。把缺陷所在位置的橫坐標(biāo)、縱坐標(biāo)、幀數(shù),鋼坯長(zhǎng)度的數(shù)據(jù)提取出來(lái)暫存緩存區(qū),實(shí)時(shí)發(fā)給上位機(jī)進(jìn)行統(tǒng)計(jì);同時(shí)根據(jù)系統(tǒng)終端的顯示和存儲(chǔ)要求,將原始圖像數(shù)據(jù)給上位機(jī)進(jìn)行實(shí)時(shí)圖片顯示,給用戶一個(gè)直觀的圖像動(dòng)態(tài)顯示和方便后續(xù)數(shù)據(jù)查找。
采用自主研發(fā)的智能相機(jī)為核心的表面檢測(cè)系統(tǒng)在國(guó)內(nèi)某大型鋼鐵公司得到了成功的應(yīng)用,圖6和圖7分別為系統(tǒng)的整體結(jié)構(gòu)和軟件界面。本系統(tǒng)的最小缺陷檢測(cè)尺寸可達(dá)到0.5mm×0.5mm;對(duì)輥印粘傷、夾雜、氧化物結(jié)疤、劃痕、空洞等缺陷的檢測(cè)率〉95%;被測(cè)鋼板最快速度可達(dá)18m/s。通過(guò)長(zhǎng)期現(xiàn)場(chǎng)使用證明采用本系統(tǒng)后,鋼廠提高了產(chǎn)品過(guò)程質(zhì)量控制率,保證成品品質(zhì),投訴和客退降低了30%,同時(shí)降低了生產(chǎn)成本。
本文設(shè)計(jì)了一種基于DSP和FPGA智能線陣相機(jī)。系統(tǒng)充分發(fā)揮了FPGA硬件處理速度快,適合做大量、簡(jiǎn)單、重復(fù)運(yùn)算的特點(diǎn),創(chuàng)新性地采用FPGA做前端圖像預(yù)處理,使得FPGA不只是用來(lái)實(shí)現(xiàn)智能相機(jī)所需的控制電路,更能夠參與圖像處理,分擔(dān)DSP圖像處理任務(wù),大大節(jié)省了DSP的資源和圖像處理時(shí)間,提升了系統(tǒng)的性能和集成度。定制化的圖像處理算法能夠更好的實(shí)現(xiàn)軋鋼、玻璃、鋁板等表面的缺陷檢測(cè)、分類和定位。它是一種模塊化、高可靠性、易于實(shí)現(xiàn)的機(jī)器視覺(jué)解決方案。