王 璜,李九靈,代 新,馮 維
(1湖北工業(yè)大學(xué)機(jī)械工程學(xué)院,湖北 武漢430068;2天津大學(xué)精密儀器與光電子工程學(xué)院,天津300072;3湖北省現(xiàn)代制造質(zhì)量工程重點(diǎn)實(shí)驗(yàn)室,湖北武漢430068;4武漢科技大學(xué)機(jī)械自動化學(xué)院,湖北 武漢430081))
隨著微電子技術(shù)的發(fā)展,基于DSP-FPGA的可重構(gòu)機(jī)器視覺技術(shù)日益受到青睞,研究愈加廣泛.國內(nèi)浙江大學(xué)蔣慶等[1]、北京航空航天大學(xué)趙振華等[2]設(shè)計(jì)了嵌入式可重構(gòu)的DSP圖像處理系統(tǒng).江南大學(xué)[3]、杭州電子科技大學(xué)[4]、湖北工業(yè)大學(xué)的研究者[5]對算法可重構(gòu)的機(jī)器視覺檢測研究多年,解決了機(jī)器視覺系統(tǒng)在某些特定領(lǐng)域的可重構(gòu)問題.筆者通過對數(shù)字圖像處理理論與方法的研究,嘗試基于Visual C++開發(fā)一套可重用的機(jī)器視覺算法庫.該庫囊括了圖像處理的主要功能,能夠?qū)崿F(xiàn)圖像預(yù)處理、圖像分割、特征識別與提取等功能.對于流水線上、不間斷運(yùn)動的連續(xù)物體視覺可識別量的在線檢測,突出算法的通用性,并通過長期的試驗(yàn)積累,對常用算法加以改進(jìn),以滿足線陣CCD圖像系統(tǒng)海量序列圖像、并行計(jì)算、累積性圖像劣化等特點(diǎn).同時(shí),算法采取參數(shù)化設(shè)計(jì),以經(jīng)典算法為模版,將核心參數(shù)設(shè)置為可調(diào),方便編程實(shí)現(xiàn).通過對多種物體的檢測實(shí)驗(yàn),該庫對于加速理論論證、算法選取、系統(tǒng)實(shí)現(xiàn)有著較大幫助,有利于機(jī)器視覺系統(tǒng)的推廣,滿足企業(yè)日益增長的自動化檢測的實(shí)際需求.
一套完整的機(jī)器視覺系統(tǒng)包含硬件和軟件兩部分.系統(tǒng)硬件實(shí)現(xiàn)圖像采集、各類信號的發(fā)出與處理、控制執(zhí)行機(jī)構(gòu)等功能,圖像處理軟件也固化在PC等硬件中.
圖像經(jīng)采集系統(tǒng)傳入計(jì)算機(jī),經(jīng)處理識別提取特征量,再將后續(xù)操作指令輸出(圖1).
圖1 系統(tǒng)處理流程
圖像采集模塊主要包含相機(jī)、光源、信號同步等硬件.常用相機(jī)主要采用CCD、CMOS兩種芯片.CMOS因生產(chǎn)簡單、成本低而得以較快普及,但是CMOS成像質(zhì)量相較于CCD差,特別在噪聲控制上存在較大差距,使得CMOS在高端應(yīng)用中鮮有建樹.CCD盡管制造復(fù)雜,成本高昂,但因其能保證在復(fù)雜工業(yè)條件下取得良好的圖像,仍占據(jù)目前市場主流.相機(jī)工作方式則主要分為面掃描與線掃描兩種.光源的選擇很多,如常用的LED光源、日光燈、鹵素?zé)舻龋⑶腋鞣N光源在形態(tài)、規(guī)格上也千差萬別.因此,為實(shí)現(xiàn)可重構(gòu)的機(jī)器視覺檢測系統(tǒng),其硬件采集模塊往往采取針對性設(shè)計(jì),具體到不同檢測對象,采用不用的相機(jī)、光源等.
圖像處理模塊相對圖像采集模塊而言,其復(fù)雜程度有過之而無不及.圖像處理模塊同樣依存硬件而工作.目前,能用于圖像處理的硬件種類很多,常用的主要有:計(jì)算機(jī)、FPGA+DSP、單片機(jī)等.其中,計(jì)算機(jī)由于其計(jì)算能力強(qiáng)、可移植性好等一系列特點(diǎn)而成為主流.盡管機(jī)器視覺硬件的發(fā)展十分迅速,但軟件則更新較慢,Microsoft公司的Visual C++仍然是最為高效的圖像處理編程工具.
當(dāng)機(jī)器視覺系統(tǒng)完成圖像采集、圖像處理、被測量識別與分類之后,將可用于控制系統(tǒng)或顯示模塊的信號進(jìn)行輸出.
2.1.1 圖像間運(yùn)算 圖像間的算術(shù)運(yùn)算與邏輯運(yùn)算是圖像處理最為直觀和有效的方法,許多常見的圖像處理技術(shù)均基于此,如在民用領(lǐng)域大量應(yīng)用的高動態(tài)技術(shù)(HDR)、寬動態(tài)技術(shù)(WDR)等,都是通過多次曝光然后再由軟件合成為單幅圖像.但這種技術(shù)在工業(yè)應(yīng)用中卻有著很大的局限性.例如在處理鋼帶、紙張、紡織等具有連續(xù)性的被檢對象時(shí),被檢對象不斷向前運(yùn)動,很難有時(shí)間反復(fù)采集圖像,往往連能夠得到一幅理想圖像都十分困難.因此,圖像間的加法運(yùn)算應(yīng)用較少.圖像間的減法則可用于運(yùn)動物體的檢測;另外,圖像間的減法或除法也可用于校正由于光源或傳感器的非均勻性造成的圖像灰度陰影,在寬門幅物體圖像采集中需定期采用這種手段檢查光源是否存在局部光照衰減過快的問題,也可直接用于校正圖像.
2.1.2 直方圖均勻化 直方圖是分析圖像的重要工具,從直方圖中能直觀看出灰度分布情況.直方圖中灰度值的集中程度反映了圖像的對比度;灰度值集合偏左或偏右則能說明圖像是否存在曝光不足或過爆.直方圖均勻化就是通過“調(diào)整”直方圖,實(shí)現(xiàn)增加圖像動態(tài)范圍的目的.從圖2中可看出,直方圖均衡化盡管增強(qiáng)圖像對比度,但是也增加了圖像的可視顆粒.
2.1.3 平滑濾波算子 圖像處理中,噪聲時(shí)常會帶來圖像退化的問題.噪聲的來源很多,如圖像采集傳送中所受的干擾、直方圖均勻化后增加的可視顆粒,這些噪聲的存在都將會對后續(xù)被測量特征提取帶來不確定因素,有可能增加系統(tǒng)實(shí)現(xiàn)難度.為解決這一問題,常常在圖像預(yù)處理時(shí),對圖像進(jìn)行平滑濾波.
濾波的概念來源于數(shù)字信號處理.圖像是數(shù)字信號的一種,通常將一幅數(shù)字圖像定義為一個(gè)二維函數(shù)f(x,y),其中x與y是縱橫坐標(biāo).濾波可以分為線性濾波和非線性濾波.
圖2 直方圖均勻化
空間濾波器以處理效果可分為平滑空間濾波器與銳化空間濾波器,平滑濾波器用于圖像去噪和模糊處理,銳化濾波器的使用則是為了突出圖像的細(xì)節(jié)信息.線性濾波器是線性系統(tǒng)和頻域?yàn)V波概念在空域的延伸,其特征是使用連續(xù)窗函數(shù)內(nèi)像素的加權(quán)和實(shí)現(xiàn)圖像濾波.設(shè)在M×N圖像f(x,y)上,使用m×n大小的濾波掩模進(jìn)行線性濾波可表示為:
最為常見的線性平滑濾波器諸如算術(shù)均值濾波器、幾何均值濾波器等.它們算法簡單,但常常出現(xiàn)過度平滑現(xiàn)象,導(dǎo)致丟失大量細(xì)節(jié),因此這些濾波器均不能滿足工業(yè)檢測對精度的高要求.當(dāng)信號很平穩(wěn)且噪聲是高斯噪聲,則其所需要的線性濾波器就是最小均方差和高斯濾波器.高斯濾波器適合于消除高斯噪聲,應(yīng)用廣泛.然而,某些不合理的操作會使得目標(biāo)的邊緣過于平緩,在一定程度上造成圖像模糊.
非線性濾波器相對線性濾波而言,其結(jié)果值直接取決于像素鄰域的值,而與線性卷積無關(guān),它包括中值濾波、最大最小值濾波器等等.
因此,濾波器的選擇與設(shè)計(jì)首要考慮的就是其所針對的噪聲類型,對于不同的圖像,濾波器的濾波效果千差萬別,針對性強(qiáng)的濾波器決定了圖像預(yù)處理的優(yōu)劣.
數(shù)字圖像處理中,圖像在采集、傳輸、預(yù)處理等環(huán)節(jié)的不當(dāng)操作都能夠引起圖像銳度降低,被檢對象邊緣弱化,必將導(dǎo)致圖像特征的識別與提取變得困難.行之有效的圖像增強(qiáng)方法是決定機(jī)器視覺系統(tǒng)成敗的關(guān)鍵因素.
常見的空間域銳化濾波是以空間微分來實(shí)現(xiàn)的.微分算子的響應(yīng)強(qiáng)度與圖像在該點(diǎn)的灰度突變程度相關(guān),即增強(qiáng)邊緣和其他突變,減弱灰度變化平緩區(qū)域,也成為梯度.空間域銳化濾波算子可分為一階微分算子和二階微分算子.常見的一階微分算子主要有Roberts、Prewitt、Sobel等;二階微分算子則用到Laplace.Roberts也稱為交叉梯度算子,為2×2的濾波窗,根據(jù)任意一對相互垂直方向的差分來進(jìn)行計(jì)算,該算子對噪聲敏感,且使用不便;Prewitt、Sobel是實(shí)踐中運(yùn)用最為廣泛的梯度算子,對于水平或豎直方向邊緣起作用.式(2)已經(jīng)指出,圖像梯度可分解為x,y兩個(gè)方向的梯度,即:
3×3的圖像領(lǐng)域內(nèi)以第三行和第一行之差近似表示x向的導(dǎo)數(shù),以第三列和第一列之差近似表示y向的導(dǎo)數(shù),同時(shí),模板系數(shù)之和為零,即保證灰度不變區(qū)域的響應(yīng)為零.Sobel與Prewitt區(qū)別在于模板的中心系數(shù)權(quán)值λ不同,Sobel算子權(quán)值一般取為2,使其對噪聲的敏感程度降低,邊緣增強(qiáng)效果也好于Prewit算子.
Laplace則是二階微分算子的代表.從圖中即可發(fā)現(xiàn),Laplace算子是各向同性的,導(dǎo)致其無法識別邊緣方向;另一方面,由于中心點(diǎn)較大的權(quán)值,使其對點(diǎn)具有良好的識別能力,同時(shí),也意味著拉普拉斯算子對噪聲將極為敏感.
圖3 圖像邊緣的微分
圖像中,通常除被檢對象外還有背景存在.檢測量的特征提取首要任務(wù)就是將目標(biāo)與背景分開——即圖像分割,之后再對目標(biāo)做進(jìn)一步處理,分割結(jié)果的好壞直接影響對圖像的理解.
由于被檢對象圖像的顯著差異性,通用型算法很難實(shí)現(xiàn),圖像分割更是如此.特別是圖像分割選取閾值至關(guān)重要,而閾值又往往依賴于圖像統(tǒng)計(jì)學(xué)特征.因此,圖像分割不僅在不同檢測對象上大相徑庭,而且可能在檢測同一對象的不同圖像序列時(shí)也存在細(xì)微差距.
筆者主要從事流水線上、不間斷運(yùn)動的連續(xù)物體視覺可識別量的在線檢測,在研究中發(fā)現(xiàn),這類物體檢測有以下兩個(gè)特點(diǎn):1)工作時(shí)間長;2)長期工作后,系統(tǒng)模型穩(wěn)定性降低,特別是光照條件發(fā)生改變的幾率很大.在這種情況下,閾值分割容易出現(xiàn)圖像序列前后時(shí)間點(diǎn)圖像分割差異顯著,甚至是某些寬門幅物體檢測中,可能在同一圖像不同區(qū)域也存在這種問題.
為避免在圖像分割中,由于光照等因素導(dǎo)致的圖像信息錯(cuò)誤,實(shí)際中運(yùn)用的圖像分割方法應(yīng)具有自適應(yīng)性,以保障圖像分割的準(zhǔn)確性.
工業(yè)檢測中的機(jī)器視覺系統(tǒng)實(shí)際上可看作是多參數(shù)確定,少數(shù)參數(shù)可變的模型整體相對穩(wěn)定,且變化規(guī)律可把握.如在寬門幅檢測中常用的LED條形光源,LED均作陣列布置,其間距相等.若某一LED亮度退化,可根據(jù)LED光強(qiáng)、光照距離等估算出基本退化單元,以此對圖像統(tǒng)計(jì)特征進(jìn)行區(qū)域劃分,根據(jù)不同區(qū)域的統(tǒng)計(jì)學(xué)特征調(diào)整閾值.
數(shù)學(xué)形態(tài)學(xué)表示以形態(tài)為基礎(chǔ)對圖像進(jìn)行分析的數(shù)學(xué)工具,它的基本思想是用具有一定形態(tài)的結(jié)構(gòu)元素,去量度和提取圖像中的對應(yīng)形狀,以達(dá)到對圖像分析和識別的目的.數(shù)學(xué)形態(tài)學(xué)的應(yīng)用可以簡化圖像數(shù)據(jù),保持它們基本的形狀特性,并除去不相干的結(jié)構(gòu).[6]數(shù)學(xué)形態(tài)學(xué)的算法具有天然的并行實(shí)現(xiàn)的結(jié)構(gòu).數(shù)學(xué)形態(tài)學(xué)的基本運(yùn)算主要有四個(gè):膨脹、腐蝕、開運(yùn)算、閉運(yùn)算,通過這些基本運(yùn)算可組合并調(diào)整參數(shù)實(shí)現(xiàn)各種數(shù)學(xué)形態(tài)學(xué)算法.數(shù)學(xué)形態(tài)學(xué)可用于二值圖像、灰度圖像的處理.
面對不同的檢測對象,首先從算法庫中取出潛在可行算法,送入算法選擇模塊.根據(jù)算法效果、效率、接口等條件對算法進(jìn)行篩選.如果可行,就重用;若不可行,重新選擇.
圖4 圖像處理算法重用流程
筆者以網(wǎng)孔織物為研究對象來測試本算法庫.網(wǎng)孔織物的在線檢測,主要面臨如下幾個(gè)問題:1)織物門幅不一;2)檢測速度存在波動;3)張力導(dǎo)致的孔徑變化;4)缺陷尺寸差距巨大,部分缺陷大于單圖像范圍;5)織物與背景的空占比大.針對這些問題,筆者設(shè)計(jì)了一套多相機(jī)并行處理的機(jī)器視覺在線檢測系統(tǒng),利用本算法庫重構(gòu)了一套圖像處理軟件.這里選擇端部的一臺相機(jī)所采集圖像為例.經(jīng)過圖2的預(yù)處理,可以看出圖像中的可視顆粒增多,與噪聲十分類似,這為后續(xù)處理帶來干擾.因此,增加平滑濾波,再由閾值分割與形態(tài)學(xué)處理分離出織物的邊緣與缺陷.
從圖5中可以看出,在檢測過程中,織物邊緣存在波動,這將給織物門幅的測量帶來影響.這里對織物邊緣多次采樣,然后依照廠標(biāo),對織物門幅進(jìn)行測量并輸出數(shù)據(jù)(圖6).
本文限于篇幅,無法對算法庫中所有算子逐一梳理,主要將其中重用頻率較高的算法設(shè)計(jì)加以介紹,并通過導(dǎo)爆管和網(wǎng)孔織物的檢測試驗(yàn)舉例說明.由處理結(jié)果可見,本文提出的算法庫有利于加速項(xiàng)目推進(jìn),且效果較好.
[1] 蔣 慶,蔡晉輝,邊紹輝,等.基于機(jī)器視覺的空瓶圖像檢測系統(tǒng)[J].糧油加工與食品機(jī)械,2003(10):51-53.
[2] 趙振華,鄭 紅.嵌入式可重構(gòu)的多DSP圖像并行處理系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(2):12-15.
[3] 陳祎,白瑞林,趙 潔,等.嵌入式機(jī)器視覺檢測軟件的構(gòu)件化設(shè)計(jì)[J].自動化儀表,2011,32(10):9-13.
[4] 龍智帆,孫志海,孔萬增.算法可重構(gòu)的工業(yè)視覺飲料瓶蓋缺陷檢測[J].杭州電子科技大學(xué)學(xué)報(bào),2012,32(2):47-51.
[5] 趙大興,王 璜,朱錦雷.基于機(jī)器視覺的織物疵點(diǎn)檢測系統(tǒng)[J].湖北工業(yè)大學(xué)學(xué)報(bào),2008,23(6):73-75.
[6] 章毓晉.圖像分析[M].北京:清華大學(xué)出版社,2005.