2026/4/6 4:18:11
网站建设
项目流程
设计个人网站的步骤,自己做的网站如何发布,网站怎么做网页游戏,福州商城网站yolov5-seg #xff0c;4000张yolo格式的裂缝分割数据#x1f6e0;️ 如何使用 YOLOv5-seg 训练 4000 张 YOLO 格式裂缝分割数据集#xff08;含 PR 曲线分析#xff09;✅ 目标#xff1a;使用 YOLOv5-seg 模型训练一个高精度的 裂缝语义分割模型#xff0c;支持 4000 张…yolov5-seg 4000张yolo格式的裂缝分割数据️ 如何使用YOLOv5-seg训练 4000 张 YOLO 格式裂缝分割数据集含 PR 曲线分析✅目标使用 YOLOv5-seg 模型训练一个高精度的裂缝语义分割模型支持 4000 张标注图像✅任务类型实例分割Instance Segmentation——识别并分割出图像中的裂缝区域✅输出完整训练流程、配置文件、代码示例、PR曲线解读与优化建议 一、环境准备# 创建虚拟环境conda create -n yolov5_segpython3.9-y conda activate yolov5_seg# 克隆官方 YOLOv5 仓库含 segmentation 分支gitclone https://github.com/ultralytics/yolov5.gitcdyolov5# 安装依赖pipinstall-r requirements.txt pipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118✅ 使用ultralytics/yolov5是推荐版本已支持segment功能。 二、数据集准备YOLO 格式1. 数据结构要求datasets/crack_segmentation/ ├── images/ │ ├── train/ # 2800 张训练图 │ └── val/ # 1200 张验证图 └── labels/ ├── train/ # 对应 .txt 文件 └── val/2. YOLO 格式标签.txt文件每行格式class_id x_center y_center width height segmentationclass_id: 0裂缝类x_center, y_center: 边界框中心点归一化width, height: 边界框宽高归一化segmentation: 多边形顶点坐标归一化格式为x1 y1 x2 y2 x3 y3 ... xn yn 示例labels/train/img_001.txt0 0.45 0.62 0.2 0.3 0.4 0.6 0.5 0.6 0.55 0.7 0.5 0.7 0.55 0.6 0.5 0.5✅ 建议使用LabelMe或CVAT工具标注再转换为 YOLO 格式。 三、创建data.yaml# data.yamlpath:./datasets/crack_segmentationtrain:images/trainval:images/val# number of classesnc:1names:[crack] 四、训练模型train.py# train.pyimportosimportsys sys.path.append(./)frommodels.experimentalimportattempt_loadfromutils.datasetsimportLoadImagesAndLabelsfromutils.generalimportcheck_file,check_img_sizefromutils.plotsimportplot_resultsfromutils.torch_utilsimportselect_device# 设置参数device0# GPU 编号batch_size16imgsz640epochs100weightsyolov5s-seg.pt# 预训练权重可选datadata.yamlnamecrack_segmentation# 启动训练!python train.py \--batch-size{batch_size}\--epochs{epochs}\--img640\--data{data}\--weights{weights}\--name{name}\--device{device}\--workers4\--patience10\--save-period10\--project runs/segment \--exist-ok✅ 输出路径runs/segment/crack_segmentation/ 五、评估结果与 PR 曲线解读你提供的Precision-Recall CurvePR 曲线显示特征解读初始段接近 (0,1)在低召回率下模型具有很高的精确度误检少下降趋势平缓随着召回率提升精确度下降较慢 → 模型鲁棒性强在 Recall ~0.8 时 Precision ~0.7表明模型在保持较高召回的同时仍能维持良好精度✅理想 PR 曲线特征越靠近左上角越好AUC曲线下面积越高越好0.9 优秀❌ 若曲线陡降说明模型存在大量误检或漏检。 六、推理测试检测 分割# detect.pyimporttorchfrommodels.experimentalimportattempt_loadfromutils.datasetsimportLoadImagesfromutils.generalimportnon_max_suppression,scale_coordsfromutils.plotsimportplot_one_box,plot_masks# 加载模型modelattempt_load(runs/segment/crack_segmentation/weights/best.pt,map_locationcpu)model.eval()# 推理图片image_pathtest.jpgimgcv2.imread(image_path)imgcv2.cvtColor(img,cv2.COLOR_BGR2RGB)# 推理withtorch.no_grad():predmodel(torch.tensor(img).permute(2,0,1).float().unsqueeze(0)/255.0)[0]# NMSprednon_max_suppression(pred,conf_thres0.5,iou0.45,classesNone,agnosticFalse)# 可视化fordetinpred:iflen(det):for*xyxy,conf,clsindet:# 绘制边界框plot_one_box(xyxy,img,color(0,255,0),labelcrack)# 绘制掩码maskmaskdet[0][...,5:]# 获取 maskplot_masks(img,mask,xyxy) 七、如何提升性能1.数据增强# train.py 中添加--mosaic0.5--mixup0.5--hsv_h0.015--hsv_s0.7--hsv_v0.42.调整学习率--lr00.001# 初始学习率--warmup_epochs33.使用更大数据量当前 4000 张数据足够训练但若想更高精度建议扩充至 8000 张4.模型选择模型参数量精度推荐场景yolov5s-seg小中移动端/边缘设备yolov5m-seg中高平衡性能yolov5l-seg大很高服务器部署 八、导出模型ONNX / TensorRT# export_model.pyfrommodels.experimentalimportattempt_loadimporttorch modelattempt_load(runs/segment/crack_segmentation/weights/best.pt)model.export(formatonnx)# 导出 ONNXmodel.export(formatengine)# 导出 TensorRT需 CUDA