YOLO与SAHI模型在建筑外立面表观损伤检测中的协同应用*

2022-02-17 08:46陈志强陈小杰
施工技术(中英文) 2022年24期
关键词:外立面表观切片

陈志强,杨 霞,陈小杰

(1.上海房屋质量检测站,上海 200031; 2.上海市房地产科学研究院,上海 200031)

0 引言

近年来,建筑外墙饰面脱落伤人事故时有发生,建筑外立面安全问题成为人们关注的焦点。一般情况下,建筑外墙饰面损伤有一个由轻微到严重逐渐发展的过程,在饰面脱落前建筑外墙面常常已存在开裂、渗水等表观损伤。因此,通过现场检测尽早发现建筑外立面开裂等表观损伤,及时采取修缮措施就显得尤为重要。

建筑表观损伤的传统检测方式是人工目视检测法,主要包括直接目视检测和借助望远镜、无人机等辅助装置进行的间接目视检测[1-2]。直接目视检测法现场检测效率低,高层建筑顶部楼层外立面损伤易漏检。无人机间接目视检测法存在人工读片工作量大,不同检测人员对损伤判别标准不一致等问题。另一种建筑表观损伤检测方法是数字图像处理法。目前,数字图像处理法相关研究主要集中于建筑表面裂缝检测[3-4]。数字图像处理法需手动提取损伤特征,检测效果受图像噪声影响较大,目前无有效解决办法[5]。近年来,深度学习技术已被广泛应用于医疗诊断、金融贸易、无人驾驶等领域[6-9],并取得显著效果。

目前,深度学习技术在建筑损伤检测领域也有一定的应用。张英楠等[10]利用YOLOv4实现了历史建筑清水墙风化、泛碱、绿植覆盖3种典型损伤的智能诊断及区域划分。马健等[11]提出利用 YOLOv5 对古建筑木结构裂缝进行智能检测的方法,相比于传统的人工检测方法具有高效、便捷、成本低的优点。王念念[5]对Faster R-CNN,MASK R-CNN算法在古建筑表面损伤检测中的应用进行了研究,实现了故宫古建筑表面损伤的快速识别、定位、分割、测量与评估。陈墨等[12]对R-CNN算法在建筑表面裂缝缺陷识别中的应用进行了研究,得到了识别效率较高、识别精度较好的结果。林汨圣等[13]对 Faster R-CNN 算法框架在居住建筑外墙面损伤检测中的应用进行了研究,证明了该方法可有效对外墙损伤情况进行检测判定,效率较高且效果良好。

当目标物体的像素点数<32×32,或目标物体的尺寸小于原图尺寸的0.1倍时,目标物体可看作是小目标物体[9]。现有基于深度学习的目标检测技术对建筑外墙细小裂缝、局部小块脱落等小目标检测效果较差,而类似损伤在建筑外立面表观损伤检测中大量存在。对图像进行切片处理是提高小目标检测效果的有效方法。赵楚等[14]对高分辨率的瓷砖缺陷数据集进行了切片处理,再采用改进的Faster R-CNN算法对瓷砖缺陷进行检测,试验获得较好的检测效果。陈祖歌[15]对图像切片后将切片与原图一起作为模型输入以放大小目标的输入信息的方式对SSD模型进行优化,并在PASCAL VOC和MS COCO数据集上进行试验验证,验证结果表明该方法能有效改善多尺度目标的检测精度。王胜科等[16]对原始高分辨率航拍图像进行切片处理,然后将裁剪出的小尺寸块图通过改进后的CenterNet网络进行检测,根据其提出的G-NMS算法聚合检测结果,该方法在数据集 UAV_OUC 和 VisDrone2019上获得了较好的试验结果。

SAHI框架可与各类目标检测方法集成,显著提高小目标检测能力[17-18]。Delhez等[19]使用SAHI对原始分辨率为3 456×6 144的鸟类图片进行了目标检测测试,测试结果表明,未使用SAHI时Resnet50和MobileNetv3模型无法正确检测鸟类,使用SAHI后这些模型甚至能检测到地平线上非常小的鸟。Keles等[20]使用VisDrone2019Det数据集对小目标检测的YOLOv5和YOLOX模型进行了基准测试,并研究了SAHI的影响,研究结果表明,SAHI的应用效果对所有模型都有了实质性改进,YOLOv5模型的效果相对更大。

应用SAHI可显著提高模型的小目标检测效果,但尚无应用于建筑损伤检测的案例。为了解SAHI在建筑外立面表观损伤检测中的应用效果,本文采用YOLO与SAHI集成框架对2幢高层住宅外墙饰面开裂、渗水、脱落,以及外墙附着物空调机架锈蚀4种表观损伤的无人机照片进行了训练与预测试验。

1 YOLO与SAHI基本原理和模拟使用

1.1 YOLO基本原理与模拟使用

YOLO是一种基于回归的目标检测算法,由Redmon等于2016年首次提出[21]。该算法将目标检测的分类和定位用一个神经网络实现,在目标检测领域得到广泛应用。YOLO 将输入图像分成S×S个单元格,单元格借助 anchor boxes 进行边界框的预测。边界框的信息采用五元组T(x,y,w,h,c) 表示,x,y表示边界框的横坐标与纵坐标,w,h表示其宽度和高度,c表示置信度,它反映当前边界框是否包含预测目标及其预测准确性的估计概率。

以YOLOv1为基础,通过不断改进,YOLOv2[22],YOLOv3[23],YOLOv4[24],YOLOv5[25]算法被相继提出,算法的检测精度、速度、小目标检测能力逐步提升。目前广泛应用的是由Ultralytics公司发布的YOLOv5。Yolov5s网络是Yolov5系列中深度最小、特征图宽度最小、AP精度最低的网络,但因其对计算机硬件要求较低,仍是目前YOLO系列中应用最广泛的网络模型。

本研究采用目标检测算法YOLOv5s模型进行建筑外立面表观损伤检测试验。

1.2 SAHI基本原理与模拟使用

YOLO检测算法具有高效、高精度的特点,但对小目标的检测效果欠佳,特别是对高分辨率图像小目标的检测效果很差。建筑外立面表观损伤检测工作中,为了提高现场检测效率或限于现场检测条件,一般采用高分辨率相机,在保证目标清晰的同时,一次拍摄尽可能大的外立面区域,此时,如何保证裂缝、脱落等大量小目标不漏检便成为YOLO检测算法在建筑外立面表观损伤检测中应用必须解决的关键问题。

为了解决小目标检测问题,Fatih Cagatay Akyon等提出了名为切片辅助推理(slicing aided hyper inference,SAHI)的框架。首先,将原始图像切分为M×N个重叠的切片pI1 ,pI2,…,pIl。在保持高宽比的同时,调整每个切片大小,然后对每个重叠的切片都独立地应用目标检测正向传递。可同时选择使用原始图像的全推理检测较大的目标。最后,将全部切片预测结果与原始图像的全推理结果使用NMS合并回原始大小后作为最终预测结果输出。

本研究采用SAHI库实现图像切片,调用YOLOv5实现目标预测,最后再通过SAHI库合成切片预测结果。

2 基于YOLOv5s和SAHI的建筑外立面表观损伤检测

为了实现建筑外立面表观损伤检测,设计检测系统流程如图1所示。检测流程分为建立数据集、模型训练和损伤识别3个阶段,其中建立数据集阶段包括数据采集、损伤标注、图像切片、图像增强和数据集切分等步骤。SAHI的作用主要是在建立数据集阶段实现高分辨率图像自动切片,以及损伤识别阶段将高分辨率图像切片后送入YOLO网络进行目标预测,并将切片图像上的预测结果组合成全图目标预测结果后输出。YOLO的作用主要是在模型训练阶段根据训练数据集完成模型训练,得到建筑外立面表观损伤检测模型,并在损伤识别阶段对SAHI切片后的图像进行目标预测。

图1 建筑外立面表观损伤检测流程

2.1 试验配置

采用云服务器,系统配置为RTX 3060,12.6GB显存GPU,6核E5-2680 v4CPU,30GB内存,操作系统为Ubuntu;编程语言为Python3.8;深度学习平台为PyTorchv1.10,训练和预测模型使用Ultralytics公司的YOLOv5s6.0,切片推理框架使用SAHI0.9.2。

2.2 建立数据集

在进行模型训练之前,需通过人工标注方式建立数据集。数据集的建立包括数据采集、损伤标注、图像切片、图像增强、数据集切分等步骤。

1)数据采集 以2幢高层建筑作为研究对象,采集了60张图片,建立了一个建筑外立面表观损伤数据集。所有图片均采用大疆无人机air mini拍摄。受限于无人机硬件性能,无人机无法贴近建筑外立面拍摄。拍摄得到的建筑外立面损伤照片像素分辨率为 4 000× 2 250,每张照片基本占据4个楼层高度。该建筑外立面表观损伤主要有裂缝、剥落、渗漏、空调支架锈蚀4种类型。典型损伤照片如图2所示。

图2 建筑外立面典型表观损伤类型

2)损伤标注 建立图像数据集后,需对图像进行特征提取与标注。损伤标注是由经验丰富的检测工程师对采集的建筑外立面损伤照片进行检查,筛选出存在指定损伤类型的照片,在照片上用矩形框标记出每处损伤位置,并指定损伤类型。可采用labelImg等工具进行标注,如图3所示。

图3 在原始照片上标注损伤部位

3)图像切片 无人机拍摄的原始照片像素分辨率为4 000×2 250,远高于YOLOv5模型采用的像素分辨率640×640。如直接利用高分辨率照片进行训练,YOLO会对照片进行预处理,将高分辨率照片转换为像素分辨率640×640的图像再进行后续模型训练,这将造成大量小目标损伤标注丢失,严重影响模型训练效果。因此,需对高分辨率照片进行处理,使之符合YOLO模型的要求。图片切片可达到这一目的。SAHI可实现高分辨率图像的自动切片,将每张高分辨率照片分割为多张低分辨率照片,并自动筛选出包含损伤标注的低分辨率照片,舍弃不包含损伤标注的纯背景照片。在对高分辨率照片进行分割时,相对应的损伤标注文件也应进行分割处理。60张外立面损伤照片经过图片切片处理后,得到1 383个带有局部损伤标注的照片。切片处理后的典型照片如图4所示。

4)图像增强 当模型包含多个类别,而各类别样本数量相差过大时,模型训练效果较差。因此,对于样本数量较少的类别,应对样本数据进行增强处理。常见的增强方式有旋转、模糊、移位、马赛克等。本次研究建筑外立面主要损伤类型为裂缝,剥落类型样本数量明显偏少。为了平衡训练样本数量,对剥落类型样本进行了数据增强处理,数据增强后,带有局部损伤标记的照片增加到1 663个。数据增强典型损伤照片如图5所示。

图5 旋转增强处理前后的脱落损伤照片

5)数据集切分 将整个数据集分为训练集、验证集和测试集,其中训练集占80%,验证集和测试集分别占10%。

2.3 模型训练

采用经过损伤标注、图片切片、数据增强处理后建筑外立面损伤照片作为训练样本,利用YOLOv5s模型进行训练。训练次数预设为600次。模型文件、初始权重文件均采用默认设置。

经过532次迭代训练后,模型训练结果如表1及图6~9所示。

表1 模型训练结果

图6 模型训练定位损失变化曲线

图7 模型训练置信度损失变化曲线

图8 模型训练分类损失变化曲线

图9 模型训练精度指标变化曲线

图6~9中各参数解释如下:①定位损失(box_loss) bounding box的损失均值,数值越小表示预测方框越准;②置信度损失(obj_loss) 目标检测loss均值,数值越小表示目标检测越准;③分类损失(cls_loss) 目标分类loss均值,数值越小表示目标分类越准;④精确率(Precision) 指总的目标识别结果中正确识别目标所占的比例,即找对的正类/所有找到的正类;⑤召回率(Recall) 指在总的目标中,被正确识别出来的目标所占的比例,即找对的正类/所有真正的正类;⑥平均精度均值(mAP@0.5) 表示阈值为0.5时的平均精度均值,mAP是用Precision和Recall作为两轴作图后围成的面积,m表示平均,@后面的数表示判定iou为正负样本的阈值;⑦平均精度均值(mAP@0.5∶0.95) 表示在不同IoU阈值(从0.5到0.95,步长0.05)上的平均精度均值。

2.4 损伤识别

利用已训练好的YOLO模型对外立面损伤照片进行检测时,被检测照片分辨率应与训练样本照片分辨率一致,否则检测效果会变差,甚至完全无法对目标进行检测。可将被检测照片切割为像素分辨率640×640的多张小照片后再对每张小照片进行检测,然后将检测结果重新拼接为一张完整的照片。上述功能可利用SAHI工具实现。

为了检验模型的识别效果,采用训练得到的模型对测试集中的样本进行测试。外立面损伤典型检测结果如图10所示。

图10 外立面表观损伤检测结果

测试结果显示,模型对测试集照片中大部分裂缝、脱落、渗水、空调支架锈蚀等外立面表观损伤都能较好地识别出来,但也存在个别漏检或误检情况。图11中窗洞顶裂缝漏检,图12中空调管道阴影、晾衣架钢丝绳、墙面污迹被误检为裂缝。将误检目标图像作为背景图像输入网络进行模型训练,可减少误检情况发生,但目标漏检与误检主要还是因为本次试验所采用的训练样本量较小,当目标特征与背景特征相似度较高时,模型无法准确区分。因此,本研究下一步工作应扩充建筑外立面表观损伤检测的训练数据集,提高模型对裂缝损伤特征的检测能力。

图11 裂缝漏检(圆圈部位)

图12 裂缝误检(空调管道阴影、晾衣架钢丝绳、墙面污迹)

3 结语

1)建筑外立面表观损伤高分辨率照片数据集通过图像切片、图像增强处理后,采用YOLOv5s模型训练可达到较好的训练效果。利用训练好的模型,采用YOLO与SAHI集成框架可直接对建筑外立面损伤高分辨率照片进行检测。

2)为了实现建筑外立面表观损伤检测,首先确定建筑外立面表观损伤的类型,采用无人机采集建筑外立面损伤图像。然后对图像进行标注,制作数据集。将数据集输入网络进行训练并验证,最后得到建筑外立面表观损伤检测模型。在进行模型训练之前,需通过人工标注方式建立数据集。数据集的建立包括数据采集、损伤标注、图像切片、图像增强、数据集切分等步骤。

3)本次检测选取2幢高层建筑,采集了60张图片,60张外立面损伤照片经过图片切片处理后,得到1 383个带有局部损伤标注的照片,该建筑外立面表观损伤主要有裂缝、剥落、渗漏、空调支架锈蚀4种类型。对样本数量较少的剥落类型样本进行数据增强处理后,带有局部损伤标记的照片增加到 1 663 个。经过532次迭代训练后,平均精度均值达81.9%。

猜你喜欢
外立面表观切片
老旧小区外立面整体改造的实践分析
建筑设计中色彩对外立面的创新性应用思考
绿盲蝽为害与赤霞珠葡萄防御互作中的表观响应
新局势下5G网络切片技术的强化思考
钢结构表观裂纹监测技术对比与展望
网络切片标准分析与发展现状
例析对高中表观遗传学的认识
对倒锥型外立面满堂脚手架施工技术的探讨
肾穿刺组织冷冻切片技术的改进方法
冰冻切片、快速石蜡切片在中枢神经系统肿瘤诊断中的应用价值比较