基于YOLOv5的道路裂缝检测,加入一种基于内容引导注意力(CGA)的混合融合提升2个多点

💡💡💡本文主要内容:详细介绍道路裂缝检测整个过程,从数据集到训练模型到结果可视化分析。

💡💡💡通过加入一种基于内容引导注意力(CGA)的混合融合提升检测性能,

特征融合创新 | 一种基于内容引导注意力(CGA)的混合融合 | IEEE TIP 2024 浙大

map从原始的0.952提升至0.977

博主简介

AI小怪兽,YOLO骨灰级玩家,1)YOLOv5、v7、v8优化创新,轻松涨点和模型轻量化;2)目标检测、语义分割、OCR、分类等技术孵化,赋能智能制造,工业项目落地经验丰富;

原创自研系列, 2024年计算机视觉顶会创新点

《YOLOv8原创自研》

《YOLOv5原创自研》

《YOLOv7原创自研》

23年最火系列,内涵80+优化改进篇,涨点小能手,助力科研,好评率极高

《YOLOv8魔术师》

《YOLOv7魔术师》

《YOLOv5/YOLOv7魔术师》

《RT-DETR魔术师》

应用系列篇:

《YOLO小目标检测》

《深度学习工业缺陷检测》

《YOLOv8-Pose关键点检测》

1.道路裂缝检测

传统的路面裂缝检测识别方法主要是依靠人工 进行检测,但人工检测工作效率低,作业风险系数 大,且容易受主观因素影响。由于近年来计算机视 觉和图像检测、目标识别技术的快速发展,研究者通 过人工选取裂缝特征,实现对路面裂缝的自动检测。 但人工选取特征具有很强的主观性,在特征选择上 的优劣决定了路面裂缝检测的性能。

1.1 数据集介绍

数据集大小390张,类别["crack"]

细节图:

2.基于YOLOv5的手机顶盖焊缺陷检测

2.1 修改crack.yaml

train: ./data/crack/train.txt
val: ./data/crack/val.txt

# number of classes
nc: 1

# class names
names: ["crack"]

2.2 修改train.py

def parse_opt(known=False):
    parser = argparse.ArgumentParser()
    parser.add_argument("--weights", type=str, default=ROOT / "weights/yolov5s.pt", help="initial weights path")
    parser.add_argument("--cfg", type=str, default="models/yolov9/yolov5s.yaml", help="model.yaml path")
    parser.add_argument("--data", type=str, default=ROOT / "data/crack.yaml", help="dataset.yaml path")
    parser.add_argument("--hyp", type=str, default=ROOT / "data/hyps/hyp.scratch-high.yaml", help="hyperparameters path")
    parser.add_argument("--epochs", type=int, default=100, help="total training epochs")
    parser.add_argument("--batch-size", type=int, default=16, help="total batch size for all GPUs, -1 for autobatch")
    parser.add_argument("--imgsz", "--img", "--img-size", type=int, default=640, help="train, val image size (pixels)")
    parser.add_argument("--rect", action="store_true", help="rectangular training")
    parser.add_argument("--resume", nargs="?", const=True, default=False, help="resume most recent training")
    parser.add_argument("--nosave", action="store_true", help="only save final checkpoint")
    parser.add_argument("--noval", action="store_true", help="only validate final epoch")
    parser.add_argument("--noautoanchor", action="store_true", help="disable AutoAnchor")
    parser.add_argument("--noplots", action="store_true", help="save no plot files")
    parser.add_argument("--evolve", type=int, nargs="?", const=300, help="evolve hyperparameters for x generations")
    parser.add_argument(
        "--evolve_population", type=str, default=ROOT / "data/hyps", help="location for loading population"
    )

2.3 结果可视化分析

PR_curve.png

PR曲线中的P代表的是precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系,一般情况下,将recall设置为横坐标,precision设置为纵坐标。PR曲线下围成的面积即AP,所有类别AP平均值即Map

3.加入一种基于内容引导注意力(CGA)的混合融合

特征融合创新 | 一种基于内容引导注意力(CGA)的混合融合 | IEEE TIP 2024 浙大

原文链接:YOLOv5独家原创改进: 特征融合创新 | 一种基于内容引导注意力(CGA)的混合融合 | IEEE TIP 2024 浙大-CSDN博客

我们提出了一种新的注意力机制,即内容引导注意力(CGA),以一种从粗到精的方式生成特定频道的SIMs。CGA通过输入特征引导SIM的生成,为每个通道分配唯一的SIM,使模型参加每个通道的重要区域。因此,可以强调特征中编码的更多有用信息,从而有效地提高性能。此外,提出了一种基于cgaba的混合融合方案,将编码器部分的低级特征与相应的高级特征有效融合。

map从原始的0.952提升至0.977

关注下方名片,即可获取源码。

相关推荐
LZXCyrus1 分钟前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
Enougme4 分钟前
Appium常用的使用方法(一)
python·appium
一直学习永不止步10 分钟前
LeetCode题练习与总结:最长回文串--409
java·数据结构·算法·leetcode·字符串·贪心·哈希表
懷淰メ10 分钟前
PyQt飞机大战游戏(附下载地址)
开发语言·python·qt·游戏·pyqt·游戏开发·pyqt5
我感觉。19 分钟前
【机器学习chp4】特征工程
人工智能·机器学习·主成分分析·特征工程
hummhumm24 分钟前
第 22 章 - Go语言 测试与基准测试
java·大数据·开发语言·前端·python·golang·log4j
YRr YRr28 分钟前
深度学习神经网络中的优化器的使用
人工智能·深度学习·神经网络
DieYoung_Alive28 分钟前
一篇文章了解机器学习(下)
人工智能·机器学习
夏沫的梦29 分钟前
生成式AI对产业的影响与冲击
人工智能·aigc
hummhumm40 分钟前
第 28 章 - Go语言 Web 开发入门
java·开发语言·前端·python·sql·golang·前端框架