皇甫森森
(廈門大學(xué)嘉庚學(xué)院信息科學(xué)與技術(shù)學(xué)院 福建 漳州 363123)
高密度、大體量房屋建筑健康狀態(tài)的高時效監(jiān)測評估是維持城市功能正常運行的根本保障,已經(jīng)成為“城市體檢”的緊迫任務(wù)和重要內(nèi)容[1]。目前國家在大部分城市已經(jīng)禁止建立350 m以上的超高建筑物,就是因為高層建筑物隨著時間的推移,日常維護成本越來越高,那么無人機巡檢高層建筑物將會在未來幾年,發(fā)揮重要的作用。人工巡檢高層建筑物,具有安全性低、檢查耗時、成本高等問題。由此結(jié)合無人機可以高空作業(yè)的性能,設(shè)計出一套智能化的巡檢系統(tǒng),為高層建筑物的外觀巡檢帶來了便利。
本文主要對城市中高層建筑物進行巡檢,巡檢主要以裂紋檢測為主,同時也會進行檢測玻璃碎裂和樓頂違建情況。通過無人機對表1包含內(nèi)容進行定期巡檢,避免產(chǎn)生高空違建,高空墜物,墻體以及樓頂裂紋帶來的危險并及時防范。在日常維護高層建筑物的同時也保護大家的人身財產(chǎn)安全。
表1 無人機巡檢項目表
本設(shè)計整個系統(tǒng)的目的是對高層建筑物外觀進行巡檢,以無人機為載體,實現(xiàn)智能拍照,對高層建筑物外觀巡檢提供解決方案。無人機通過自主設(shè)計的巡檢路徑,執(zhí)行自動化任務(wù)檢測。具體設(shè)計如圖1所示。
圖1 無人機巡檢整體框圖
本系統(tǒng)所使用的無人機包含以下模塊:飛控模塊、5G通信模塊、定位導(dǎo)航模塊、遙控模塊、供電模塊以及地面站所需要的其他硬件。
5G通信模塊采用的是中興通信ZM9000 IOT 5G模塊,該模塊基于高通7 mm SDX55芯片平臺進行設(shè)計,可以同時支持NSA/SA組網(wǎng)模式,覆蓋中國三大運營商全部4 G/5G頻段。
飛控采用的是開源PX4固件,運行在Pixhawk4飛控電路板之上。是整個飛行控制的核心。
遙控模塊采用的是樂迪AT9S Pro,FHSS 與 DSSS 混合雙擴頻,具有避免干擾和抗干擾雙重功能,使無人機能在復(fù)雜環(huán)境中仍能穩(wěn)定控制,最長距離可達 3400 m。
定位導(dǎo)航模塊采用的是M8N GPS,它包含一個UBLOX M8N模塊、IST8310 指南針、三色LED指示燈和一個安全開關(guān)。
供電模塊采用的是25C高倍率16 000 mAh容量22 V 6S12S14 S無人機電池。并結(jié)合FTDI(USB轉(zhuǎn)串口適配器)這個硬件串口,實現(xiàn)電壓轉(zhuǎn)換[2]。
由于此系統(tǒng)設(shè)計是針對高空建筑物巡檢設(shè)計,重在建筑物高空巡檢,對于建筑物相對較低區(qū)域可以人工巡檢,無人機不予考慮巡檢。針對此巡檢設(shè)計思路,無人機的飛行路徑設(shè)計要以高空為主,為此規(guī)劃以下飛行路徑。如圖2所示,先從地面垂直上升到最高處,先拍攝樓頂圖片,之后圍繞建筑物螺旋式下降檢測,最后檢測完高空區(qū)域再垂直下降。此設(shè)計路徑既能達到巡檢要求,又能使得無人機電源消耗降到最低。
圖2 無人機路徑規(guī)劃設(shè)計示意圖
對于無人機拍攝的樓頂、高層幕墻玻璃,以及墻體瓷磚相關(guān)圖片進行收集,將拍攝大量的圖片放入已經(jīng)建立好的模型,進行識別處理,如有出現(xiàn)相關(guān)墻體裂紋,瓷磚脫落,樓頂違建等相關(guān)類型圖片,會相應(yīng)彈出識別的圖片進行查看,如圖片屬實,再對高層建筑物進行維護處理。
以下圖像處理技術(shù)主要針對墻體裂紋圖像進行處理,對于上文提到的瓷磚脫落以及玻璃碎裂等情況暫不考慮。對于圖像裂紋圖像處理主要用OpenCV技術(shù)做相關(guān)處理,針對裂紋圖像分別進行灰度化處理,濾波處理,圖像閾值二值化處理,形態(tài)學(xué)算法處理以及對裂紋輪廓的繪制,最終驗證無人機所傳輸圖像結(jié)果,如有裂紋圖像即進行彈窗預(yù)警處理。
無人機采集的 RGB 格式彩色原始圖像,數(shù)據(jù)量大,直接使用處理時間長,效率低。而灰度圖像中的三個顏色分量R、G、B取值相等,灰度值在0~255的范圍內(nèi)變化,只包含亮度信息但不包含顏色信息[3]。對于墻體裂紋檢測,相較于彩色圖像,灰度圖像更具優(yōu)勢,基于人眼對顏色的感知習(xí)慣,文中使用加權(quán)平均值法先對原始圖像進行灰度處理[4]。其計算公式如式(1)。
F(i,j)=A1*R(i,j)+A2*G(i,j)+A3*B(i,j)
(1)
式(4)中,F(i,j)表示為灰度圖中(i,j)處的灰度值;A1,A2,A3 為加權(quán)系數(shù)。使用加權(quán)平均值法不僅能對R、G、B三種顏色分量進行加權(quán)平均處理,還可以在不同的情況下調(diào)節(jié)權(quán)重因子對圖像進行關(guān)鍵處理,在視覺的感知情況下人眼對綠色最強,紅色次之,藍色最弱,所以A2>A1>A3 時將能夠得灰度特征更好的圖像。如圖3、圖4所示。
圖3 無人機采集原圖像
圖4 灰度圖像
灰塵等雜物的干擾以及相機的像素等都會造成圖像中存在一些形狀不規(guī)則的點與線,這就是圖像中的噪聲,它會給圖像識別造成影響,因此需要進行濾除。通常為了減少這些圖像中的噪聲,用高頻干擾的方法進行去噪[5]。
由卷積濾波可知式(2):
G(u,v)=F(u,v)*H(u,v)
(2)
式(4)中,G(u,v)是濾波后的傅里葉變換輸出,它是通過F(u,v)*H(u,v)卷積得到的,其中F(u,v)是原圖的傅里葉變換,H(u,v)是一個近似與高斯函數(shù)的傳遞函數(shù),通過此算法就能有效過濾圖像中的高頻干擾。H(u,v)定義為式(3):
(3)
由此,對濾波函數(shù)H(u,v)的推導(dǎo)就是對圖像濾波處理。以圖像中的一個 3*3像素區(qū)域為例,對圖像中的每一個像素點H(x,y)進行濾波系數(shù)與模板面積的乘法價值掃描,推出所有的產(chǎn)品的綜合。見式(4)。
R=ω(-1,-1)f(x-1,y-1)+ω(-1,0)
f(x-1,y)+…+ω(1,1)f(x+1,y+1)
(4)
則可得到G(x,y),設(shè)圖像的大小為M*N,則M=2A+1,N=2B+1,見式(5)。
(5)
讀取一個灰度圖像并定義了一個3×3的卷積核。使用cv2.filter2D函數(shù)將卷積核應(yīng)用于圖像并返回一個濾波后的圖像。最后,使用cv2.imshow函數(shù)將原始圖像和濾波后的圖像顯示在屏幕上,并使用cv2.waitKey,cv2.destroyAllWindows等函數(shù)來進行處理顯示,如圖5所示。
圖5 高斯濾波圖
對墻體裂紋圖像采用自定義閾值法的方式進行圖像二值化(Binarization)處理[6];因墻體裂紋提取后的圖像去掉了復(fù)雜的背景只保留了墻體和裂紋信息,所以在此基礎(chǔ)上采用該方法能夠有效保留墻體的積核特征,能夠較好地反映圖像整體和局部特征,從而達到分割出裂紋缺陷目標。該算法實現(xiàn)步驟:
選取一個初始閾值G,G=(Gmin+Gmax)/2,式中Gmin 為缺陷圖像最小灰度值,Gmax為缺陷圖像最大灰度值;
根據(jù)閾值G把給定圖像分割成兩組圖像,記為R1和R2;R1由灰度值大于G的所有像素組成,R2由灰度值小于等于G的所有像素組成。
計算R1和R2均值μ1和μ2;計算出新的閾值G1,且G1=(μ1+μ2)/2;
通過OpenCV調(diào)用相關(guān)函數(shù),處理的二值化結(jié)果如圖6所示。
圖6 二值化圖
基于自定義閾值法得到的圖6二值化圖像,可以看到,該算法可有效對墻體裂紋缺陷進行有效提取。但是二值圖像在特征提取后可能仍會出現(xiàn)一些細小的噪點,邊緣出現(xiàn)不相干的信息,影響判斷的準確性。因此可以再進行形態(tài)學(xué)算法進行優(yōu)化處理。形態(tài)學(xué)分為膨脹與腐蝕、開運算與閉運算[7]:
針對此墻體裂紋二值化圖片做了膨脹和腐蝕處理如圖7、圖8所示。
圖7 膨脹處理圖
圖8 腐蝕處理圖
輪廓檢測是指在數(shù)字圖像處理中,通過對圖像中物體的邊緣進行提取,生成表示其形狀的輪廓線。輪廓檢測常用于圖像分析和計算機視覺領(lǐng)域中的物體檢測、圖像識別和形狀匹配等方面。輪廓檢測的一般步驟包括圖像預(yù)處理、邊緣檢測、輪廓提取和輪廓特征提取等。其中,邊緣檢測是輪廓檢測的重要步驟之一,常用的邊緣檢測算法包括Sobel算子、Prewitt算子、Canny算子等[8-9]。
在此實驗中用的Canny算子[10],首先圈定裂紋的輪廓,再對圖中的墻體裂紋進行篩選處理。這樣做的主要目的是去除無關(guān)的輪廓或者將目標物體的輪廓從圖像中分離出來。輪廓篩選的方法包括基于形狀特征、面積、周長、方向等特征的篩選。常見的輪廓處理方法包括輪廓的填充、輪廓的平滑、輪廓的擬合和輪廓的裁剪等,來進行篩選。
對于識別到的墻體裂縫進行相關(guān)繪制步驟如下:
(1)讀取圖像:使用OpenCV庫中的imread()函數(shù)讀取需要處理的墻體圖像。
(2)選擇裂縫區(qū)域:使用OpenCV庫中的矩形選擇函數(shù)cv2.rectangle()選擇需要添加裂縫的墻體區(qū)域。
(3)創(chuàng)建新圖層:使用OpenCV庫中的圖像拷貝函數(shù)cv2.clone()在圖片墻體區(qū)域上創(chuàng)建一個新圖層。
(4)繪制主要的裂縫:使用OpenCV庫中的線段繪制函數(shù)cv2.line(),在新圖層上繪制主要的裂縫。
(5)添加細節(jié):在主要的裂縫上,使用OpenCV庫中的線段繪制函數(shù)cv2.line()添加更多細節(jié)。這些細節(jié)可以是更細小的裂縫、碎片、脫落的表面等等。這些細節(jié)可以使繪畫更加真實。
經(jīng)過以上對圖像預(yù)處理、灰度處理、二值化處理、濾波降噪處理、形態(tài)學(xué)處理、輪廓檢測與篩選處以及最后的裂縫繪制處理等圖像處理技術(shù),最后檢測到墻體裂紋圖片如圖9、圖10所示。紅色矩形框定裂縫區(qū)域,紅色線來繪制相關(guān)裂縫。
圖9 繪制裂縫圖
圖10 輪廓圖
為進一步驗證本文所提算法對裂紋識別的有效性,本文對無人機采集的120張圖像進行驗證,其中100張圖像含有不同的墻體裂縫,20張為正常無裂縫圖像,其裂縫圖像用紅色矩形框標記出裂縫位置并預(yù)估大小,用以驗證所提出算法對于墻體裂紋檢測的準確程度。記錄下識別帶裂縫圖片的總個數(shù)并對其圖片預(yù)測處理,統(tǒng)計準確檢測出缺陷的個數(shù)。見表2。
表2 無人機巡檢裂紋圖像檢測結(jié)果
針對人工巡檢高層建筑物出現(xiàn)的檢測困難、風(fēng)險高、效率低下等問題,利用無人機可以高空作業(yè),實時傳輸圖像的優(yōu)點,從無人機的硬件設(shè)計到無人機巡檢高層建筑物的路徑規(guī)劃以及到無人機所采集圖片的圖像處理等相關(guān)技術(shù),設(shè)計出一套完整的無人機對高層建筑物巡檢系統(tǒng)。該系統(tǒng)能夠根據(jù)用戶需求,進行高層建筑物巡檢,包含樓頂違建、瓷磚脫落、墻體裂紋等要素進行巡檢;可以實現(xiàn)偵查、拍照、視屏等功能,并對視頻、照片信息進行云存儲;能夠?qū)Ω鱾€要素進行圖像分類、歷史數(shù)據(jù)追蹤;能夠以網(wǎng)站的形式展示巡檢結(jié)果、生成可視化巡檢報告;能夠采用OpenCV圖像處理技術(shù)對潛在的墻體問題進行預(yù)警。利用無人機巡檢及可視化巡檢結(jié)果追蹤預(yù)警,給高層建筑物巡檢帶來了極大便利。