基于深度学习的古建筑木结构裂缝复杂纹理轮廓特征提取方法
2022-11-05阎卫东刘国奇
马 健,阎卫东,刘国奇
(沈阳建筑大学土木工程学院,辽宁 沈阳 110168)
《“十四五”文物保护和科技创新规划》提出,要加强古建筑木结构病害探测、智能诊断等关键技术攻关,完成抢救性保护向预防性保护的切实转变。在此背景下,开展古建筑木结构裂缝检测关键技术研究具有重要意义。我国古建筑木结构可以简化为杆系单元和变刚度单元组合的梁-柱体系,而几乎所有的梁、柱构件都会出现裂缝,并在后续荷载及应力集中作用下扩展成为危险裂缝,从而引发构件发生脆断,甚至导致整体结构出现连续性倒塌[1-2]。由此可见,裂缝的萌生及扩展是影响古建筑木结构健康服役的重大隐患,裂缝识别成为了保护古建筑木结构的关键前提。然而,当前我国古建筑木结构裂缝识别主要依靠人工检测,少部分借助了超声波、应力波、皮罗钉等物理检测仪器,以上方式均属于接触式检测方法,在古建筑木结构裂缝识别过程中存在成本高、效率低、误差大、测不全等局限[3-5]。基于此,笔者利用YOLO v5算法对古建筑木结构裂缝进行了识别,取得了较好效果,实现了古建筑木结构裂缝智能检测,为古建筑智能运维与健康管理研究领域提供了新的方法。
1 古建筑木结构裂缝检测方法
古建筑木结构裂缝检测理论与方法的相关研究较少,现有研究方法相对传统,存在一定的缺陷和不足。A.Franciso[6]等提出了利用超声波来检测古建筑木结构裂缝。E.Miguel等[7]介绍了应力波法在古建筑木结构裂缝损伤检测中的应用,阐述了裂缝与木结构力学性能之间的关系,定量评价了木梁腐蚀后的残余强度。D.J.Cown等[8]通过两个“皮罗钉木材测试器”实验,评估了树木的木材密度,取得了较好的检测结果。马德云[9]总结了古建筑木结构安全性评估的有效方法,并介绍了各个方法的不足。由此可见,古建筑木结构裂缝检测主要依托人工检测识别危险裂缝,少部分引入了超声波、应力波、皮罗钉等无损检测仪器,但均无法实现智能检测,存在一定的弊端。
近年来,随着大数据与人工智能的快速发展,深度学习以其强大的建模和表征能力,为古建筑木结构裂缝识别智能化发展提供了可能。YOLO是一种新的目标检测方法,是第一个在检测精度、检测速度都取得不错效果的单阶段目标检测算法,并且成功应用于农业[10]、地质学[11]、遥感[12-13]和医学[14]等领域。此外,还广泛应用于交通运输领域,例如交通标志检测[15]、路面凹坑检测[16]。
除了YOLO系列模型,基于深度学习的目标检测方法还包括SSD和Faster RCNN等系列。为了寻求更加适合古建筑木结构的检测方法,笔者将利用YOLO、SSD以及Faster RCNN三个系列模型中使用率较高、检测效果较好的四个模型对古建筑木结构裂缝检测效果进行研究,并从平均损失函数、精度、召回率、平均精度、每秒传输帧数、推理时间、总运行时间和权重等定量指标进行性能比较分析。
2 数据采集及处理
2.1 数据采集
古建筑木结构裂缝较多,但是目前在国内还没有发现公开发布的古建筑木结构裂缝图片数据集,对古建筑木结构裂缝检测方法研究造成了阻碍。笔者基于自身研究领域,一直在搜集古建筑木结构裂缝图像,并且公开发布了一个包含474张图片的古建筑木结构裂缝图片数据集[17]。然而,在研究过程中发现,图片数据集的数量、质量等都会对古建筑木结构裂缝检测精度造成影响。因此,为了证实和改善这一问题,笔者利用同一台相机设备,按照固定焦距重新采集了沈阳建筑大学八王书院裂缝图片,并形成了一个包含594张图片的新的古建筑木结构裂缝图片数据集。
2.2 数据处理
实验数据的选取、处理以及数据信息生成的方法参照文献[20],不同的是,文中古建筑木结构裂缝图片选自于新的数据集,图片质量更加清晰、数量更加丰富,部分标注后的图片如图1所示。
图1 标注后的古建筑木结构裂缝图Fig.1 Annotated timber structure crack diagram of ancient buildings
2.3 数据信息文件生成
将裂缝图片标注完成后进行保存,利用标签软件LabelImg系统生成voc格式的裂缝图片,图片的标注信息生成为xml文件,包含文件夹名称、图片名称、图片路径、数据源,图片大小节点等标签信息命名为crack。其中“0”表示古建筑木结构裂缝标注的类别,“0”的个数表示标注裂缝的条数,如表1所示。
表1 裂缝标注信息情况表Table 1 Crack labeling information table
3 实验模型及方案
3.1 模型简介
3.1.1 YOLO模型
YOLO是一种新的单阶段目标检测方法,兼具速度快、效率高、准确率高等特性。
笔者已有的研究成果表明,YOLO v5在YOLO系列模型里更加适用于古建筑木结构裂缝的检测。
3.1.2 SSD模型
SSD是一种单阶段的通用物体目标检测算法,其全称是Single Shot MultiBoxDetector。其中,Single Shot指的是SSD算法属于单阶段检测方法,MultiBox说明SSD是多框预测。
3.1.3 Faster RCNN模型
Faster RCNN是一种比较典型的目标检测算法,主要是在Fast RCNN的基础上提出了RPN候选框生成算法,大大提高了目标检测速度。Faster RCNN网络结构包括四个部分:卷积层、RPN网络、Rol pooling及分类和回归。
3.2 训练平台
实验采用戴尔(DELL)笔记本电脑,机型为游匣G15 5511-R1866B2021款,系统配置为GeForce RTX3060,CPU型号为17-11800H,内存16 G,操作系统为Windows10,开发平台使用pycharm,编程语言为Python。基于Facebook开发的Pytorch深度学习框架,使用建立的COCO数据集。
3.3 训练方案
选取594张古建筑木结构裂缝图片的815条裂缝作为训练样本,利用YOLO v5、SSD和Faster RCNN模型进行训练,从而对古建筑木结构裂缝图片进行检测。训练过程中,超参数设置是否科学直接影响古建筑木结构裂缝检测结果。文中的超参数设置包括四个步骤:训练、测试、模型选择和部署。第一步,在训练阶段与一个“模型生成器”配对组件,通过对网络超参数的优化,生成n个不同的模型;第二步,测试每个训练模型的鲁棒性,基于训练阶段优化的超参数配置,对每个训练好的模型进行测试;第三步,模型选择器根据查全率选择最佳模型;第四步,将该系统部署到实际应用中,可以使用一个估计组件,用最适合的模型来匹配系统的要求。根据测试实际需要,每个模型训练轮数总共为300轮,使用单gpu加速训练。
4 实验结果分析
4.1 模型评价指标
4.1.1 Objectness值
Objectness代表训练平均损失,表示推测目标检测损失函数的均值,该数值越小,表明目标检测越精准。
4.1.2 Precision值
Precision代表精度,表示找对的数量与找到的所有数量的比值,衡量的是一个分类器分出来的正类的概率,计算式如式(1)所示:
(1)
式中:P为精度;TP为被识别出来含裂缝的正类样本数量;FP为被识别出来的不含有裂缝的负样本数量。
4.1.3 Recall值
Recall代表召回率,表示找对的正类与所有本应该被找对的正类的比值,衡量的是一个分类能把所有的正类都找出来的能力,计算式如式(2):
(2)
式中:R为召回率;TP为被识别出来含裂缝的正类样本数量;FN为没有被识别的含有裂缝的正类样本数量。
4.1.4 AP值
对检测目标进行识别时,检验精度指标用mAP表示,代表多个类别AP的平均值。由于本研究中检测样本只有古建筑木结构裂缝一个种类,所以可直接用AP作为裂缝检测的评价指标。AP代表模型检测效果的优劣程度,数值越大表示检测结果越好。根据Recall和Precision制作一条曲线,该条曲线下面的区域面积就是AP,AP值就是对该面积进行积分,计算如下:
(3)
4.1.5 FPS值
FPS是图像领域的有关概念,表示的是训练过程中每秒传输的图片帧数。当模型的FPS值超过30的时候,证明该模型可以实现实时处理图像。
4.1.6 Interfence time值
Interfence time代表推理时间,指的是推理一张图片所需要的时间,是考量模型训练速度的重要指标。
4.1.7 Total runtime值
Total runtime代表模型完成图片训练的总运行时间,是考量模型训练速度的重要指标。
4.1.8 Weight值
Weight代表在原有模型的基础上,根据古建筑木结构裂缝检测需求所生成模型的大小,越小代表模型越轻便。
4.2 结果分析
4.2.1 模型训练结果
笔者分别用YOLO v5s、SSD 300、Faster RCNN(mobilenet_v2)和Faster RCNN(resnet50_fpn)四个模型对古建筑木结构裂缝进行训练,训练300轮后,得到相关指标数值结果。四个模型的部分训练结果如图2、图3、图4、图5所示。
图2 YOLO v5s模型结果Fig.2 YOLO V5s model experiment results
图3 SSD 300模型结果Fig.3 SSD 300 model experiment results
图4 Faster RCNN(mobilenet_v2)模型结果Fig.4 Faster RCNN(mobilenet_v2)model experiment results
图5 Faster RCNN(resnet50_fpn)模型结果Fig.5 Faster RCNN(resnet50_fpn)model experiment results
4.2.2 训练结果分析
对以上图表信息进行汇总,结合训练过程产生的实验数据,形成不同模型性能对比所需的评价指标,结果见表2。
表2 四种模型性能对比评价指标Table 2 The performance of the four models was compared and evaluated
从表2可以得出,训练300轮的情况下,各个模型训练结果分析如下。
Faster RCNN(mobilenet_v2)模型:平均损失函数为0.25,精度为79.26%,召回率最小为45.62%,平均精度为0.79,每秒传输帧数最小为12.55,推理时间最大为79.67 ms,训练总运行时间为6.15 h,权重最大为628 MB。由此可见,Faster RCNN(mobilenet_v2)模型在四个模型里是最重的模型,古建筑木结构裂缝检测推理速度最慢、每秒传输速度最慢,综合性能较差。
Faster RCNN(resnet50_fpn)模型:平均损失函数为0.16,精度为82.83%,召回率为55.93%,平均精度为0.83,每秒传输帧数为17.51,推理时间为57.12 ms,训练总运行时间为7.67 h,权重为315 MB。由此可见,Faster RCNN(resnet50_fpn)模型在四个模型里是比较重的模型,古建筑木结构裂缝检测训练总运行时间较长,推理速度较慢、每秒传输速度较慢,识别裂缝的能力和精度相对较好。
SSD 300模型:平均损失函数最大为3.11,精度最小为67.34%,召回率为49.94%,平均精度最小为0.67,每秒传输帧数为76.05,推理时间为13.15 ms,训练总运行时间最小为1.67 h,权重为100 MB。由此可见,SSD 300模型在四个模型里是属于比较轻便的模型,古建筑木结构裂缝检测总运行时间最短,推理时间相对较快,检测速度较快,但是该模型是四个模型里损失函数最大、检测精度最低的。
YOLO v5s模型:平均损失函数最小为0.01,精度最大为96.37%,召回率最大为98.26%,平均精度最大为0.99,每秒传输帧数最大为125.16,推理时间最小为8.03 ms,训练总运行时间最大为7.69 h,权重最小为13 MB。由此可见,YOLO v5s模型在四个模型里是最轻便的模型,古建筑木结构裂缝检测速度最快、损失率最小、准确率最高,识别裂缝的正确率也是最高的,唯一不足就是总的训练运行时间比其他三个模型长。
4.2.3 测试结果分析
图6展示了YOLO v5s、SSD 300、Faster RCNN(mobilenet_v2)和Faster RCNN(resnet50_fpn)四个模型的部分测试效果。从图中可以看出,YOLO v5s模型的置信度为0.91,SSD 300模型的置信度为0.60、Faster RCNN(mobilenet_v2)模型的置信度为0.96,Faster RCNN(resnet50_fpn)模型的置信度为0.99。由此可见,除了SSD 300模型的测试效果较差,其他三个模型均取得了较好的测试效果。
图6 裂缝侧视图Fig.6 Fracture testing diagram
5 结 语
笔者以实现古建筑木结构裂缝智能检测速度快、精度高为目标,在前期研究的基础上优化了古建筑木结构裂缝图片数据集。运用YOLO、SSD和Faster RCNN系列模型中比较典型的基于深度学习的目标检测方法,对古建筑木结构裂缝进行了检测对比分析。YOLO v5s模型在4个模型里是最轻便的模型,裂缝检测速度最快、损失率最小、准确率最高,识别裂缝的正确率也最高,是最适合古建筑木结构裂缝智能检测的模型。