摘 要:隨著各種嵌入式處理器速度的極大提高與集成電路的發展,大量的嵌入式設備被越來越多的應用于人們生活的方方面面。以自帶Linux操作系統的ARMS3C2440開發板為開發平臺,完成了建筑物裂紋實時監測系統的算法實現與最終的軟件開發。與一般的裂紋檢測系統不同,這里通過將裂紋邊緣檢測與裂紋寬度測量分開進行,使得裂紋位置鎖定與測量結果更準確。通過使用QT進行界面設計,使得所開發的軟件更具智能性、用戶友好性等特點。
關鍵詞:裂紋實時監測系統;Linux操作系統;ARMS3C2440開發板;QT
中圖分類號:TP29 文獻標識碼:A
文章編號:1004-373X(2009)21-138-03
Development and Research of Intelligent Building Crack′s Real-time
Measuring System Based on ARMS3C2440
ZUO Yongbo
(Electrical College,Hunan University,Changsha,410082,China)
Abstract:With the enhancement of variety of embedded processor′s speed and the development of integrated circuits,a large number of embedded devices are increasingly being applied in each aspects of people's living.In this study,with Linux operating system ARMS3C2440 development board for the development platform,the building crack monitoring system for real-time algorithm implementation and the final software development is completed.Different from the general crack detecting system,adopting edge of the crack detection and crack width measurement separately,making crack and measuring the results of locking position is more accurate.Using QT for interface design,making the software developed by a more intelligent,user-friendly and so on.
Keywords:crack real-time monitoring system;Linux operating system;ARMS3C2440 development board;QT
0 引 言
在建筑業中,評價墻體裂紋,地面裂紋是評價房屋質量的一項重要指標。由于傳統的利用手工標尺進行裂紋寬度測量的方法既不準確又不方便,于是將嵌入式應用于自動測量建筑裂紋寬度成為了許多研究者的重要研究內容。
本研究將問題劃分為以下兩個部分:
(1) 裂紋寬度測量算法;
(2) 將以上所開發軟件移植到ARM開發板,并優化算法提高軟件運行速度。
1 裂紋寬度測量算法
計算裂縫寬度關鍵是要利用圖像分割技術得到裂縫的真正邊緣。雖然已有文獻介紹了多種分割方法[1-4],但是未見有針對裂縫測試儀采集到的裂縫圖像進行處理的方法。因此,本文針對裂縫圖像,提出了結合OTSU圖像分割與Sobel邊緣檢測的混合算法進行裂紋檢測與寬度測量。
1.1 圖像獲取
圖像獲取過程如圖1所示:被檢測的裂縫通過光學系統在CMOS圖像傳感器上成像,然后通過USB接口將裂縫圖像輸出到ARM上進行處理。
裂縫圖像如圖2所示。裂縫寬度分布范圍較廣,自幾十至幾百像素不等,但遠遠小于圖像的寬度值。裂縫周圍有部分噪聲,有的圖像含有大量污染區域,這成為裂縫位置鎖定的難點。
1.2 OTSU圖像分割
通過與已有圖像分割方法如:直方圖法、OTSU法、區域分割法等進行比較發現,OTSU在最后的效果上占有明顯的優勢。因此采用OTSU方法進行圖像的分割。
圖像分割的結果如圖3所示。觀察結果,很容易發現圖像的邊緣很大區域被錯分為與裂縫一樣。于是直接計算裂縫寬度時會導致將錯分的區域計算成裂縫。因此除了計算裂縫寬度外,對候選裂縫集合進行有效剔除是另一個重要任務。對選裂縫集合進行有效剔除將會在下一小節中進行討論。
分割完圖像后,計算所有可能成為裂縫的區域的寬度。采用從圖像給定行的起始位置開始計算裂縫寬度,當發現像素灰度由0變為255,記為一個裂縫的左邊緣起始位置;當查找到像素灰度由255變為0,記為一個裂縫的右邊緣結束位置。通過這種方法可以獲取給定行的所有可能的裂縫寬度。但是在具體試驗中發現,計算對單行的裂縫進行寬度測量還是存在比較大的誤差。于是采用求取給定行上下5行共10行的平均值的方法。這樣可以有效地去除毛刺的干擾。通過這種方法,得到一個裂縫的候選集合,并且計算出候選集合中每一個位置的寬度。
1.3 Sobel邊緣檢測
以上小節得出了裂縫的候選集合,但是事實上這個候選集合含有大量的非裂縫區域。這一節中的主要內容是設計算法剔除這些干擾裂縫,獲取更小的裂縫候選集合。在試驗中,由于裂縫具有明顯的邊緣,而干擾圖像區域有比較模糊的邊緣或者僅有一個邊緣等,通過分析,提出采用Sobel邊緣檢測的方法進行裂縫位置的鎖定。Sobel算子由兩個卷積核組成,如圖4所示,圖像中的每個點都用這兩個核做卷積,一個核對通常的垂直邊緣相應最大,而另一個對水平邊緣相應最大。兩個卷積的最大值作為該點的輸出位。運算結果是一幅邊緣幅度圖像。
通過對原始圖像采用Sobel邊緣檢測得到如圖5所示結果。
但是,這個結果很明顯存在很多微小的干擾,這些干擾必須予以剔除,否則將對鎖定裂縫邊緣沒有任何效果。通過對邊緣檢測結果圖像仔細分析發現,雖然存在微小干擾,但是他們的灰度值普遍偏小,針對這一發現,對緣檢測結果圖像做與上一節中一樣的圖像分割,這會將微小的干擾有效地剔除。實際的實驗結果也驗證了這一點,如圖6所示。
同過對分割后的邊緣圖像進行觀察,圖像仍然存在一些微小的干擾,但這些干擾相對于未處理的緣檢測結果圖像已經很少,將在后續的處理中對圖像裂縫添加附加約束,從而取出這些干擾的影響。
1.4 基于裂縫特征的附加約束
通過對大量的裂縫圖像進行分析,發現圖像裂縫有如下特點:
(1) 裂縫灰度值低于墻體的灰度值。
(2) 裂縫的寬度相對于整個圖像不超過圖像寬度的1/3。
(3) 污染的墻體區域一般呈大的塊狀出現,且很多僅含有一個邊界,另一邊界延伸至圖像外面。
(4) 墻體的一些微小的干擾呈小塊狀出現。
(5) 裂縫一般為帶狀。
使用ARM處理器處理圖像,由于其速度慢且有實時性要求,故不能處理整張的圖像,換句話說,必須處理局部圖像。這就很明顯增加了剔除候選裂縫的難度。該系統顯然是無法使用特點(4)、特點(5)的。因此僅使用了前三個特點,并提出了約束:剔除寬度高于圖像寬度1/3的裂縫候選集,剔除寬度低于1/10的裂縫候選集。
通過添加以上約束,實驗效果有了明顯的提高。圖7是PC機的結果,由于同時使用了5個約束效果比較好。圖8是ARM系統運行的截圖,由于在ARM上不方便分步計算出每一個步驟,故直接給出了帶有測量結果的截圖。
2 基于Linux的QT界面設計算法
前文討論的是主要的算法部分,完整的裂紋測量系統還包括用戶接口部分,即圖形界面接口。在ARM上采用QT進行界面設計已經比較成熟,它具有以下主要特點:
(1) 入門容易、學習成本低。了解基本概念后就可以邊查文檔邊寫程序。
(2) 跨平臺效果好。本來是Linux下的工具庫,在Windows下默認觀感也很好。
3 軟件移植與程序優化
由于最終的程序是運行在ARM系統上,而由于ARM處理圖像時的速度慢與裂縫測量儀器的實時性要求,必須對程序進行優化,并將算法移植到ARM系統上,使之可以正確運行。
軟件的移植比較容易。由于一開始很注重將PC機上仿真成功的算法及時移植到ARM上,故程序的移植變得比較容易。
但是程序的優化是一個問題,雖然現在的ARM速度已經提高了很多,但是在處理圖像時還是很吃力,加上算法中需要對原圖像兩次獨立處理,相當于加倍了ARM的負擔。通過對大量裂縫圖像的分析,針對前文中提出的裂縫特點以及結合ARM本身的運算速度條件,提出剔除處理全部圖像的算法。采用了只處理給定行位置上下10行的區域。通過只處理這20行圖像,極大地提高了程序的運行速度。以上方法并行,還采用多線程編程方法,通過將圖像采樣與圖像的處理分為兩個進程完成,有效地提高了程序的運行速度。
4 實驗結果分析
該程序分別在PC機和ARM開發板上運行,效果如圖7,圖8所示。
通過大量的實驗發現該算法能較好地檢測出裂縫的分布和寬度。在算法中采用了結合OTSU圖像分割與Sobel邊緣檢測的混合算法進行裂紋檢測與寬度測量。這種算法能分別有效利用邊緣檢測與圖像分割兩種方法各自的優點。另外在該算法中加入了一些分析獲得的約束條件,這能極大地彌補邊緣檢測與圖像分割混合方法的不足,從而有效地提高了裂紋位置鎖定與裂縫寬度測量的精度。
5 結 語
針對墻體裂紋測量,設計出了一套適用于裂縫寬度檢測的算法。該算法能較好地檢測出裂縫的分布和寬度。采用邊緣檢測與圖像分割混合的方法并通過對大量圖像進行分析,對算法添加了一系列符合圖像裂縫特征的約束條件,極大地提高了算法的準確性與健壯性。分別將程序運行于PC機系統與ARM系統,并針對ARM系統的特點對算法進行了一系列優化,引入了并行處理技術,在提高ARM運行速度的同時,使得ARM系統檢測出的結果達到與PC機系統幾乎同等的效果。
參考文獻
[1]施樹明,初秀民,王榮本.瀝青路面破損圖像測量方法研究 [J].公路交通科技,2004,24(7):12-16.
[2]陸玲,陳國明,戴揚.水下結構物裂縫特征定量分析與測量 [J].計算機測量與控制,2004,12(1):10-12.
[3]甘玲,李濤,趙輝,等.CP神經網絡在圖像邊緣檢測中的應用 [J].四川大學學報:自然科學版,2003,35(3):93-96.
[4]王大志,黃劫,徐樹英.采用灰度直方圖的孔型識別和二值化閾值自動匹配 [J].測控技術,2005,24(2):48-49.
[5]耿飛,錢春香.圖像分析技術在混凝土收縮裂縫定量測試與評價中的應用研究 [J].東南大學學報:自然科版,2003,33(6):773-776.
[6]Kima K S,Kangb K S,Kangc Y J,et al.Analysis of an Internal Crack of Pressure Pipeline Using ESPI and Hearography[J].Optics&Laser; Technology,2003,35(8):639-643.
[7]陳果,左洪福.圖像閾值分割的兩種新技術[J].模式識別與人工智能,2002,15(4):468-473.
[8]胡霞.國內外路面快速檢測技術的現狀與發展[J].中外公路,2003(6):95-99.
[9]張娟.基于數字圖像處理的路面裂縫自動識別與評價系統[J].長安大學學報,2004(2):18-22.
[10]付忠良.圖像閾值選取方法——OTSU方法的推廣[J].計算機應用,2000,20(5):37-39.
[11]羅水云,王龍文,于潤橋.嵌入式系統在螺紋探傷儀中的應用.現代電子技術,2007,30(10):61-62,68.
作者簡介 左勇波 男,1987年出生,重慶渝中人。研究方向為電路設計及嵌入式應用。