易燕,鄭力新,周凱汀,林似水
(1.華僑大學(xué) 信息科學(xué)與工程學(xué)院,福建 廈門361021;2.華僑大學(xué) 工學(xué)院,福建 泉州362021;3.廈門科華恒盛股份有限公司,福建 廈門361008)
目前,紡織企業(yè)的布匹疵點(diǎn)檢測基本上是由人工完成的,檢測速度慢、漏檢率高,亟需一種能夠快速檢測疵點(diǎn)的自動檢測系統(tǒng).織物疵點(diǎn)檢測的機(jī)器視覺實(shí)現(xiàn)是近年來國內(nèi)外學(xué)者在圖像領(lǐng)域的熱門研究課題之一[1].龔艷軍[2]提出了相機(jī)+數(shù)字信號處理器(DSP)+計(jì)算機(jī)的硬件結(jié)構(gòu),并通過自適應(yīng)小波分解的疵點(diǎn)檢測算法找出最適合布匹紋理的小波,但該方法實(shí)現(xiàn)復(fù)雜,實(shí)時性得不到保障.文獻(xiàn)[3]提出了利用PC機(jī)構(gòu)建雙緩沖并行系統(tǒng)代替專業(yè)的DSP開發(fā)板,但其采用的雙閾值結(jié)合形態(tài)學(xué)的算法過于簡單,檢測率并不理想.趙振宏等[4]構(gòu)建了相機(jī)+多DSP+FPGA的硬件結(jié)構(gòu),但對于如何使用多協(xié)處理器來提高檢測系統(tǒng)的處理性能,并未給出方法.本文構(gòu)建一種多機(jī)并行處理平臺,將不同的疵點(diǎn)檢測算法運(yùn)行在平臺之上以提高算法的處理性能.
圖1 多機(jī)平臺硬件系統(tǒng)框圖Fig.1 Hardware system block diagram of multiprocessor platform
采用多處理器方式可獲得較高的處理性能,但傳統(tǒng)結(jié)構(gòu)中服務(wù)器大部分時間都處于空閑狀態(tài),且一般采用緊耦合的方式,即各個處理器的處理任務(wù)事先分配好,運(yùn)行時不能調(diào)整 .這樣可使系統(tǒng)獲取一個較好的性能,但各部分容易相互影響,可能致使整個系統(tǒng)崩潰.為克服傳統(tǒng)結(jié)構(gòu)的不足,考慮容錯機(jī)制[5-6],整個系統(tǒng)采用松耦合方式,即在運(yùn)行過程中動態(tài)分配各個處理器的處理任務(wù),且服務(wù)器也參與處理 .圖1為多機(jī)平臺的硬件系統(tǒng)框圖.
根據(jù)疵點(diǎn)檢測圖像處理一般過程,抽象出圖像處理算法的一般模型,如圖2所示.圖像處理算法由一系列相互遞進(jìn)的過程組成,每個過程又由多個相互獨(dú)立的處理函數(shù)組成.將圖像處理算法看成是可以在多臺計(jì)算機(jī)之間并行處理而互不影響、相互獨(dú)立的任務(wù),即引出多機(jī)平臺的軟件架構(gòu)(圖3).
圖2 圖像處理算法模型Fig.2 Model of image processing algorithms
硬件系統(tǒng)是由多臺計(jì)算機(jī)通過千兆以太網(wǎng)組成的小型局域網(wǎng),具有網(wǎng)絡(luò)傳輸速度快、環(huán)境簡單、干擾因素少的特點(diǎn).依據(jù)具體情況,數(shù)據(jù)的可靠傳輸至關(guān)重要而數(shù)據(jù)包的順序則無關(guān)緊要,因此協(xié)議的關(guān)鍵是解決數(shù)據(jù)發(fā)送過程中的丟包問題.參照TCP(transmission control protocol)協(xié)議的可靠性機(jī)制[7],以及 UDT(UDP-based data transfer protocol)等實(shí)現(xiàn)過程,引入了簡單的握手機(jī)制及數(shù)據(jù)重發(fā)機(jī)制,其框架如圖4所示.圖4中:實(shí)線表示數(shù)據(jù)流;虛線表示控制流.
圖3 多機(jī)平臺軟件整體框圖Fig.3 Software block diagram of multiprocessor platform
圖4 可靠傳輸協(xié)議Fig.4 Reliable transport protocol
管理層負(fù)責(zé)任務(wù)的分配、跟蹤及對其他層的管理,具體實(shí)現(xiàn)了對客戶端的管理和對任務(wù)結(jié)構(gòu)體的定義 .把任務(wù)封裝成一個一維數(shù)組,通過傳輸協(xié)議發(fā)送給客戶端,而客戶端接收到任務(wù)結(jié)構(gòu)體后,將任務(wù)進(jìn)行解析,重新分配內(nèi)存,獲得可用的內(nèi)存指針.1.4.1 任務(wù)結(jié)構(gòu)體定義 根據(jù)傳輸數(shù)據(jù)特點(diǎn)及傳輸協(xié)議定義了任務(wù)結(jié)構(gòu)體(圖5).其中,客戶端索引指處理該任務(wù)的客戶端的標(biāo)識碼,該字段值由任務(wù)分配算法根據(jù)客戶的處理情況進(jìn)行指定,實(shí)現(xiàn)任務(wù)的動態(tài)分配.函數(shù)索引指處理該任務(wù)所需函數(shù)的標(biāo)識碼,通過該字段值可指定任務(wù)的處理函數(shù),實(shí)現(xiàn)不同任務(wù)對應(yīng)不同的處理算法.
1.4.2 任務(wù)封裝與解析 任務(wù)封裝的意義是將任務(wù)結(jié)構(gòu)體中對應(yīng)的數(shù)據(jù)全部放到一個數(shù)組里面,以便對該任務(wù)進(jìn)行發(fā)送.任務(wù)解析則相反,是將數(shù)組中的數(shù)據(jù)解釋成任務(wù)的結(jié)構(gòu),以便應(yīng)用程序進(jìn)行處理.在任務(wù)傳遞時,如果只是將普通的結(jié)構(gòu)體轉(zhuǎn)換成數(shù)組的形式,是很容易實(shí)現(xiàn)的,有所不同的是結(jié)構(gòu)體里面包含圖像指針.圖像指針?biāo)赶虻膬?nèi)容里面又包含圖像數(shù)據(jù)指針.因此需要對任務(wù)結(jié)構(gòu)體做專門的處理,將需要的數(shù)據(jù)封裝成一個數(shù)組,以便程序進(jìn)行傳遞.在圖5所示的任務(wù)結(jié)構(gòu)體中,圖像指針為OpenCV里使用的IplImage結(jié)構(gòu) .該結(jié)構(gòu)體中定義了圖像的寬、高、位深、通道數(shù)等信息,而圖像的數(shù)據(jù)則是以指針的方式給出.因此,可將任務(wù)結(jié)構(gòu)體封裝成一個數(shù)組.
任務(wù)解析是將數(shù)組解析成圖5所示的任務(wù)結(jié)構(gòu)體形式,但這里并不能簡單地將指針進(jìn)行賦值.原因在于兩臺電腦的內(nèi)存分配不一樣,例如在電腦A中,分配的圖像結(jié)構(gòu)體指針為0x0012c288,而在電腦B中,該指針?biāo)赶虻膬?nèi)存有可能已被占用.因此,在任務(wù)的解析時,需要對各個數(shù)據(jù)空間進(jìn)行重新申請、分配,然后賦值相應(yīng)的指針.
圖5 任務(wù)結(jié)構(gòu)體Fig.5 Structure of task
將圖2算法模型實(shí)例化,假設(shè)其實(shí)例化算法任務(wù)遞進(jìn)模型如圖6所示.圖6中算法的任務(wù)遞進(jìn)分為4個過程,每個過程中包含1個或多個相互獨(dú)立的處理函數(shù),將它們定義為任務(wù),需將其分配到客戶端進(jìn)行并行處理.
對于任務(wù)分配的客戶端,先定義了分配算法函數(shù) .然后,通過調(diào)用分配算法函數(shù),得到處理任務(wù)的客戶端信息.最后,按照圖5所示結(jié)構(gòu)體填充過程對應(yīng)的任務(wù)并標(biāo)記為Tij(i表示第幾個過程,j表示該過程中第幾個處理函數(shù)),例如:過程1的處理函數(shù)f1,1(x,y),f1,2(x,y),f1,3(x,y)對應(yīng)的任務(wù)分別為T11,T12,T13.
圖6中算法的遞進(jìn)關(guān)系可以從過程和任務(wù)兩個思路來理解 .過程的思路是,圖像進(jìn)入后,由過程1進(jìn)行處理,等
待過程1全部處理后再轉(zhuǎn)由過程2處理,按此順序遞進(jìn)處理,最后由過程4處理輸出結(jié)果.為了直觀的說明任務(wù)分配的情況,其具體分配情況如圖7所示.
圖6 算法的任務(wù)遞進(jìn)Fig.6 Steps of the task algorithm
圖7 基本實(shí)現(xiàn)的任務(wù)分配情況Fig.7 Task assignment of basic implementation
通過圖7可以看出:如果以“過程”為基元來處理的話,可能導(dǎo)致某一段客戶端的閑置.通過在客戶端實(shí)現(xiàn)一個任務(wù)列表,存儲2個以上的任務(wù)來節(jié)省任務(wù)的分配與接收時間 .在與過程不沖突的前提下,以“任務(wù)”為基元,根據(jù)“誰最閑,誰處理”的原則,在分配任務(wù)前計(jì)算客戶端任務(wù)的處理量大小(任務(wù)的運(yùn)算量之和),并將需要分配的任務(wù)按照處理量的大小進(jìn)行排序,將處理量最大的任務(wù)分配給總處理量最小的客戶端 .這樣不僅克服了任務(wù)分配不均的問題,同時也避免了時間的浪費(fèi),這就是“任務(wù)”的思路.
Gabor算法作為一種多尺度空間-空間頻域?yàn)V波方法,非常適用于提取多尺度的紋理特性[8].其一般處理過程為預(yù)處理、Gabor濾波、特征提取、圖像融合,然后進(jìn)行分類等后處理,最后輸出結(jié)果 .二維Gabor函數(shù)空間表達(dá)式的一般形式[9-10]為
式(1)中:σx,σy是尺度因子,決定函數(shù)的空間擴(kuò)展;F表示Gabor函數(shù)的中心頻率 .由式(1)變形可得
圖8 算法的實(shí)現(xiàn)過程及任務(wù)分配情況Fig.8 Process of algorithm and allocation of task
測試采用的PC機(jī)配置均為Intel(R)Core(TM)2,2.66 GHz,4 G,800 MHz.將實(shí)際拍攝的疵點(diǎn)圖像在不同數(shù)量PC機(jī)構(gòu)建的多機(jī)平臺下進(jìn)行實(shí)驗(yàn).
測試圖片大小為512 px×512 px,以斷緯疵點(diǎn)圖像的檢測為例,其處理結(jié)果如圖9所示.
圖9 疵點(diǎn)圖像處理結(jié)果Fig.9 Result of processed defect image
分別利用1個尺度、2個方向(0°,90°)和2個尺度、4個方向(0°,45°,90°,135°)的 Gabor算法,對勾絲、斷經(jīng)、斷緯三類疵點(diǎn)多次測試并計(jì)算平均時間(t)和加速比(γ),結(jié)果如表1所示.其中:加速比γ為單臺處理機(jī)處理所需要的時間與p臺處理機(jī)處理所需的時間的比值.
表1 三類疵點(diǎn)的處理時間及加速比Tab.1 Processing time and speed ratio of three kinds of fabric defect
從表1可知:1個尺度、2個方向(0°,90°)的Gabor算法下,1臺服務(wù)器+1臺客戶端的加速比均值約為1.67,較單服務(wù)器方式增幅可達(dá)到0.67;對于1臺服務(wù)器+2臺客戶端時,加速比不僅沒有提高反而降低 .這是由于Gabor算法僅有1個尺度、2個方向,按照任務(wù)分配準(zhǔn)則,在服務(wù)器參與處理的情況下,只能將任務(wù)分配給3臺處理器(1服務(wù)器+2客戶端)中的兩臺,這樣其中一臺就處于空閑狀態(tài),同時服務(wù)端要對空閑客戶端進(jìn)行管理,從而導(dǎo)致了上述現(xiàn)象.此外,從1個尺度、2個方向(0°,90°)和2個尺度、4個方向(0°,45°,90°,135°)的 Gabor算法計(jì)算結(jié)果對比可知,算法復(fù)雜度越高,處理時間越長,但系統(tǒng)的加速效果越好,為降低漏檢率和保證實(shí)時性提供了有利的條件.
對于疵點(diǎn)檢測可將圖片分割為兩部分,分別送給兩臺計(jì)算機(jī)處理,最后將結(jié)果進(jìn)行拼接 .這種架構(gòu)用于提高檢測速度[11],這也是許多學(xué)者正在研究的一種架構(gòu).通過單機(jī)檢測算法,分別測試512 px×512 px,512 px×256 px兩種圖片大小的處理時間,并與1臺服務(wù)器+1臺客戶端處理512 px×512 px大小的圖片的處理時間進(jìn)行對比,結(jié)果如表2所示.
表2 圖片處理時間的對比Tab.2 Contrast of image processing time
從表2可知:提出的多機(jī)任務(wù)架構(gòu)相對于拼接架構(gòu)單機(jī)處理速度提升了約10.2%,可見該架構(gòu)具有一定的優(yōu)勢.
通過對已有并行處理結(jié)構(gòu)的研究分析,結(jié)合疵點(diǎn)檢測算法的一般過程,構(gòu)建了布匹疵點(diǎn)檢測多機(jī)并行處理平臺 .實(shí)驗(yàn)表明,平臺能夠獲得較為顯著的加速效果.然而,對疵點(diǎn)的分類算法尚未進(jìn)行研究,對于其他檢測算法效果仍有待驗(yàn)證.雖將處理過程分解成任務(wù)并動態(tài)分配給客戶端,但對如何結(jié)合“數(shù)據(jù)分解”的方式,進(jìn)一步提高多機(jī)系統(tǒng)的處理性能,仍需進(jìn)一步研究.
[1] KUMAR A.Computer-vision-based fabric detection:A survey[J].IEEE Transactions on Industrial Electronics,2008,55(1):348-363.
[2] 龔艷軍.布匹疵點(diǎn)自動檢測系統(tǒng)的研究和設(shè)計(jì)[D].武漢:華中科技大學(xué),2005:8-12,33-46.
[3] CHO C S,CHUUNG B M,PARK M J.Development of real-time vision-based fabric inspection system[J].IEEE Transactions on Industrial Electronics,2005,52(4):1073-1079.
[4] 趙振華,鄭紅.嵌入式可重構(gòu)的多 DSP圖像并行處理系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(2):12-15.
[5] 陳筠.嵌入式多處理器實(shí)時系統(tǒng)的容錯研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2006:4-17.
[6] 張兵.多DSP并行處理模塊的實(shí)現(xiàn)及任務(wù)分配算法[D].上海:上海大學(xué),2007:33-44.
[7] 武奇生.網(wǎng)絡(luò)與 TCP/IP協(xié)議[M].西安:西安電子科技大學(xué)出版社,2010:142-151.
[8] UNSER M.Texture classification and segmentation using wavelet frames[J].IEEE Transactions on Image Processing,1995,4(11):1549-1560(doi:10.1109/83.469936).
[9] MANJUNATH B S,MA W Y.Texture features for browsing and retrieval of image data[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1996,18(8):837-842(doi:10.1109/34.531803).
[10] BODNAROVA A,BENNAMOUN M,LATHAM S J.Textile flaw detection using optimal Gabor filters[C]∥Proceedings 15th International Conference on Pattern Recognition.Barcelona:IEEE Press,2000:799-802(doi:10.1109/ICPR.2000.903038).
[11] HSU S,SAWHNEY H S,KUMAR R.Automated mosaics via topology inference[J].IEEE Computer Graphics and Application,2002,22(2):44-54(doi:10.1109/38.988746).