陈 力
(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训练该图集后,根据生成模型对木材内部缺陷的实际识别效果验证可以得出:该程序生成的仿真数据能较好地代替真实数据,取得了满意的应用效果。