陳 力
(1 浙江農林大學 信息工程學院, 杭州311300;2 林業感知技術與智能裝備國家林業局重點實驗室, 杭州311300)
由于木材無損檢測技術在古樹名木保護、木質資源利用領域中存在著重要的研究意義和應用價值,而迅速發展成一項實用技術[1]。 相比于傳統的破壞性檢測技術,其非形變的優勢突破了被測木材形狀和尺寸的桎梏,可以廣泛應用于古建筑木材檢測、古樹名木保護、城市林業、木材加工等領域[2]。
21 世紀以來,研究者用一些傳統檢測技術在木材無損檢測領域做了一些嘗試。 孫吉男、李華等分別利用超聲波技術探測了紅櫟木材和永樂大鐘木結構鐘架的內部缺陷,為超聲波檢測木材內部腐朽開了先河[3-4];楊學春、王立海以東北林區12 種樹種為對象進行實驗分析,證明了應力波無損檢測系統檢測木材內部缺陷的可行性[5];趙更寅利用X 射線在木材內部的穿透能力,對原木內部缺陷進行測定,為后人在該方向的研究上提供了理論前提和技術基礎[6]。 總結前期的研究均存在著檢測效率、檢測準確率、檢測成本等方面的不足。
隨著近些年計算機性能的發展,部分研究者采用機器學習算法結合傳統方法,構建缺陷識別模型,顯著提升了木材內部缺陷識別的準確度。 在此基礎上,本文將應力波無損檢測技術和卷積神經網絡結合,通過實現應力波特征矩陣仿真程序來構建特征矩陣圖像數據集——Eigen Matrix Net,用以生成深度學習模型,并用該模型實現木材內部缺陷特征的識別[7]。
應力波木材無損檢測技術基于應力波特性,敲擊時木材中生成的應力波在木材中以一定速率傳播,當木材內部出現異常時,應力波不能沿直線進行傳播,傳播時間會增加,即應力波在木材中的傳播時間與傳播截面的紋理角、裂痕、空洞和腐朽等情況存在正相關[8]。
應力波木材無損檢測設備的每個傳感器都是獨立的檢測通道,兩兩之間組成應力波信號傳播通道來獲取數據。 如圖1 所示,當檢測裝備的傳感器數量為x 時,總信號通道數y 為x 的組合數,見公式(1)。


圖1 應力波無損檢測傳感原理示意圖Fig.1 Schematic diagram of sensing principle for stress wave nondestructive testing
因在每次敲擊傳感器后,該傳感器為該組數據的信號發起點,其余傳感器為該組數據的信號接收點,因此單次敲v(x1,x2)擊實際可獲得x × (x - 1) 個速度數據,一次完整的實驗可獲取一個x ×x 的二維矩陣。 公式(2)為速度矩陣中坐標(x1,x2) 位置的速度數值;x1為信號發起點的傳感器編號, x2為信號接收點的傳感器編號。

其中,π ≥θ =∠( x1,x2) ,S 為橫截面的周長。
一次木材無損檢測實驗最終得到的矩陣公式(3):

應力波速度特征矩陣在轉化為特征矩陣圖的過程中,首先需要對矩陣進行歸一化處理,使數值間的絕對值關系轉化為相對值關系。 通過公式(4)將原矩陣A 轉化為處理完成的矩陣B。

其中A(xi,xj)為原矩陣中坐標 ( xi,xj) 位置的數值;B(xi,xj)為處理后矩陣中坐標 ( xi,xj) 位置的數值; AMIN和 AMAX分別表示去除了坐標為A(xi,xj)(i =j) 后矩陣A 中數值的極值。
將矩陣B 各值以顏色通道對應表示上色,轉化為特征矩陣圖,整個轉化過程如圖2 所示。
仿真程序基于pyhton 開發,桌面端程序的開發應用了pypi 里的wxPython 界面庫來開發前端界面。整體系統設計采用了MVC 模式,使用MVC 框架的目的是將View 和Model 的實現進行代碼分離,從而使仿真程序可以使用不同的表現形式。 即保持系統全程低耦合度,系統設計框架如圖3 所示。

圖2 應力波速度矩陣轉化特征矩陣圖Fig.2 Stress Wave Velocity Matrix Transform to Eigen Matrix

圖3 仿真程序系統設計框架Fig.3 System Design Framework of Simulator
系統分為以下幾個模塊:
(1)Model(模型)。 用于處理應用程序數據邏輯的部分。 模型對象主要負責在數據庫中存取數據,包括記錄用戶操作、傳輸數據、將左側繪圖區的缺陷特征信息以數據的形式保存下來并傳輸到右側,以及記錄、保存圖片和相關標注信息。
(2)View(視圖)。 是仿真程序中處理數據顯示的部分。 程序中負責展示仿真程序生成的圖像和效果。
(3)Controller(控制器)。 是仿真程序中用以處理用戶交互的部分,控制器負責從視圖當中讀取數據、向模型發送數據并控制用戶輸入。
如圖4、圖5 所示,仿真程序共包含3 個區域,分別為繪畫區、展示區和選擇區,下方是選擇區,其中包含了空洞、裂縫、腐朽3 種不同的缺陷類別可供選擇。 當選擇空洞時,將用戶輸入的2 個點具象為缺陷圓心和缺陷圓周上的點,以此確定缺陷在坐標軸上的位置和大小,并在繪畫區以白色的圓表示出來,從而和灰色的背景區別開來。 與此同時,右側展示區將最終的特征矩陣圖展示出來,并可以保存到預設路徑中。 選擇裂縫和缺陷流程類似。

圖4 仿真程序界面Fig.4 Interface of simulation program

圖5 仿真程序運行效果Fig.5 Running effect of simulation program
該程序左上角功能菜單中有清除功能、保存功能、自動保存功能(如圖6 所示)。

圖6 仿真程序功能菜單Fig.6 Simulator Function Menu
其中,清除功能主要用于清理繪畫區和展示區的圖像,恢復初始狀態,以方便用戶再次工作。 保存功能將展示區的特征矩陣圖以png 格式保存到系統預設的路徑中。 同時,目錄中還會針對每張特征矩陣圖生成對應的xml 格式的標注文檔(如圖7 所示),該標注文檔中記錄了特征矩陣圖中的缺陷特征信息,免去深度學習訓練時人工手動標注的困擾。自動保存功能是仿真程序的核心功能,可以在繪圖區隨機設定缺陷位置、缺陷形狀(針對裂縫和腐朽類型缺陷)和缺陷大小,并將生成的對應展示區的特征矩陣圖像自動保存到系統預設的路徑中。 自動生成圖片的張數由程序預先設定,因此可以批量生成大量的特征矩陣圖像,滿足深度學習訓練需要。

圖7 特征矩陣圖標注文檔Fig.7 Eigen matrix graph Tagging document
本文基于python 開發實現應力波特征矩陣仿真程序,通過程序構建了一個特征矩陣圖像數據集——Eigen Matrix Net,在使用卷積神經網絡Faster R-CNN訓練該圖集后,根據生成模型對木材內部缺陷的實際識別效果驗證可以得出:該程序生成的仿真數據能較好地代替真實數據,取得了滿意的應用效果。