基于YOLOv10n改进的古建筑木结构裂缝检测算法

📅 2026/7/4 11:06:53
基于YOLOv10n改进的古建筑木结构裂缝检测算法
1. 古建筑木结构裂缝检测技术概述古建筑木结构作为我国文化遗产的重要组成部分其健康状况直接关系到建筑的安全性和使用寿命。传统的人工检测方法存在效率低、主观性强、难以全面覆盖等问题。随着计算机视觉技术的发展基于深度学习的自动检测方法为古建筑木结构缺陷检测提供了新的解决方案。木结构常见的缺陷包括裂缝、腐朽、虫蛀和木节等其中裂缝是最常见也最需要关注的缺陷类型。裂缝不仅影响美观更会降低木结构的承载能力和耐久性。准确识别裂缝类型对于评估木结构健康状况至关重要例如干缩裂缝通常较浅而细长受力裂缝则较宽且可能贯穿整个截面腐朽裂缝常伴有木材变色和结构疏松现象。2. 基于YOLOv10n的改进算法设计2.1 算法改进思路针对古建筑木结构裂缝检测的特殊性我们对YOLOv10n算法进行了针对性改进特征提取网络优化引入CBAM注意力机制模块使网络能够聚焦于裂缝区域采用改进的PANet结构增强多尺度特征融合能力增加浅层特征提取通道提升对小裂缝的检测能力检测头结构创新设计自适应锚框机制根据输入图像动态调整锚框尺寸引入全局边缘信息传递模块增强裂缝边界识别优化分类和回归分支的网络结构损失函数改进分类损失采用Focal Loss解决样本不平衡问题定位损失改进CIoU函数增加边缘约束项置信度损失调整权重分配策略2.2 关键技术实现2.2.1 注意力机制实现CBAM模块包含通道注意力和空间注意力两个子模块class CBAM(nn.Module): def __init__(self, channels, reduction16): super(CBAM, self).__init__() # 通道注意力 self.avg_pool nn.AdaptiveAvgPool2d(1) self.max_pool nn.AdaptiveMaxPool2d(1) self.fc nn.Sequential( nn.Linear(channels, channels // reduction), nn.ReLU(inplaceTrue), nn.Linear(channels // reduction, channels) ) # 空间注意力 self.conv nn.Conv2d(2, 1, kernel_size7, padding3) def forward(self, x): # 通道注意力 avg_out self.fc(self.avg_pool(x).squeeze()) max_out self.fc(self.max_pool(x).squeeze()) channel_att torch.sigmoid(avg_out max_out).unsqueeze(2).unsqueeze(3) # 空间注意力 avg_out torch.mean(x, dim1, keepdimTrue) max_out, _ torch.max(x, dim1, keepdimTrue) spatial_att torch.sigmoid(self.conv(torch.cat([avg_out, max_out], dim1))) return x * channel_att * spatial_att2.2.2 全局边缘信息传递边缘信息传递模块通过以下公式实现特征融合E_fused α·E_edge (1-α)·F_original其中α通过注意力机制自适应计算α σ(Conv([E_edge, F_original]))3. 数据集构建与实验设计3.1 数据集构建我们构建了包含4122张图像的古建筑木结构数据集类别训练集验证集测试集总计裂缝21006003003000腐朽56016080800虫蛀2106030300木节1123216160总计29828524264260数据增强策略随机旋转-15°~15°亮度调整±25%对比度调整±0.2高斯模糊σ0~3椒盐噪声1.8%像素3.2 实验设置训练配置硬件NVIDIA RTX 3090 GPU框架PyTorch 1.9.0优化器AdamW (lr1e-4)批量大小16训练轮次100评价指标精确率(Precision)召回率(Recall)F1分数mAP0.5推理速度(FPS)4. 实验结果与分析4.1 性能对比算法对比结果算法精确率召回率F1值mAP0.5FPSYOLOv5s0.8420.8210.8310.79845.2Faster R-CNN0.8670.8350.8500.82112.5YOLOv8n0.8750.8480.8610.83952.3YOLOv10n0.8890.8680.8780.87158.0本文算法0.9230.9070.9150.91248.64.2 消融实验模块有效性验证配置mAP0.5参数量(M)推理速度(ms)基线YOLOv10n0.8712.812.5注意力机制0.8892.913.2边缘传递0.9023.013.8自适应锚框0.9083.014.1完整模型0.9123.013.85. 系统实现与应用5.1 系统架构检测系统包含以下模块图像采集模块支持单张/批量图像导入实时视频流采集预处理模块自动方向校正尺寸归一化(640×640)对比度增强检测模块改进YOLOv10n模型多线程推理结果展示模块缺陷可视化标注分类统计报告历史对比功能5.2 实际应用案例系统已应用于多个古建筑检测项目故宫太和殿检测检测面积1200㎡发现裂缝86处检测时间3小时人工需3天颐和园长廊检测检测长度728米发现腐朽23处虫蛀15处6. 优化经验与注意事项6.1 模型训练技巧学习率设置初始lr1e-4采用余弦退火策略最小lr1e-6数据增强策略小目标增强随机复制粘贴小裂缝mosaic增强比例0.5HSV调整范围H(±0.015), S(±0.7), V(±0.4)训练技巧冻结骨干网络训练20轮使用EMA模型decay0.9999早停策略patience156.2 部署优化建议模型量化FP16量化速度提升1.5倍INT8量化速度提升2.2倍精度下降2%推理优化TensorRT加速多batch推理图像预处理GPU加速移动端适配模型剪枝通道剪枝30%轻量化检测头设计自适应分辨率调整7. 常见问题与解决方案7.1 检测问题排查问题现象可能原因解决方案漏检细小裂缝下采样过大增加浅层特征输出误检木纹特征混淆增强边缘特征提取检测框偏移锚框不适配使用K-means重新聚类锚框类别混淆样本不均衡调整分类损失权重7.2 性能优化建议精度提升增加困难样本挖掘引入更多真实场景数据使用更大的输入分辨率速度优化通道剪枝知识蒸馏模型量化鲁棒性增强更多光照条件数据对抗训练测试时增强(TTA)8. 未来发展方向多模态融合结合红外热成像三维点云数据声波检测数据智能化扩展裂缝发展趋势预测自动修复建议生成风险评估模型技术深化自监督预训练神经架构搜索动态网络设计在实际应用中我们发现模型的性能在不同光照条件下存在波动这是下一步需要重点优化的方向。同时将检测系统与BIM技术结合构建古建筑数字孪生模型也是值得探索的方向。