TPH-YOLOv5自定义数据集训练:从数据标注到模型部署的完整流程

TPH-YOLOv5自定义数据集训练:从数据标注到模型部署的完整流程
TPH-YOLOv5自定义数据集训练从数据标注到模型部署的完整流程【免费下载链接】tph-yolov5项目地址: https://gitcode.com/gh_mirrors/tp/tph-yolov5想要在无人机拍摄场景中实现高效目标检测吗TPH-YOLOv5作为基于Transformer预测头的改进版YOLOv5模型专门针对无人机视角下的目标检测进行了优化。本指南将带您从零开始完成TPH-YOLOv5自定义数据集训练的完整流程让您轻松掌握这个强大的目标检测工具什么是TPH-YOLOv5TPH-YOLOv5Transformer Prediction Head YOLOv5是专门为无人机拍摄场景优化的目标检测模型。它在YOLOv5的基础上引入了Transformer预测头显著提升了在复杂场景中的检测性能。在VisDrone Challenge 2021竞赛中TPH-YOLOv5获得了第四名的优异成绩表现与第一名模型相当接近。TPH-YOLOv5作为改进版本进一步提升了推理效率并降低了计算成本同时保持了优秀的检测性能。这两个模型都特别适合处理无人机视角下的目标检测任务如交通监控、农业监测、灾害评估等场景。准备工作与环境配置项目克隆与依赖安装首先克隆项目仓库并安装必要的依赖git clone https://gitcode.com/gh_mirrors/tp/tph-yolov5 cd tph-yolov5 pip install -r requirements.txt环境要求Python 3.7或更高版本PyTorch 1.7CUDA 11.0如需GPU加速至少8GB内存推荐16GB以上数据准备与标注格式转换数据集结构规划TPH-YOLOv5支持多种数据集格式推荐使用YOLO格式。数据集目录结构应如下custom_dataset/ ├── images/ │ ├── train/ │ │ ├── image1.jpg │ │ └── image2.jpg │ └── val/ │ ├── image3.jpg │ └── image4.jpg └── labels/ ├── train/ │ ├── image1.txt │ └── image2.txt └── val/ ├── image3.txt └── image4.txt标注格式转换如果您使用的是VisDrone或其他格式的数据集需要转换为YOLO格式。TPH-YOLOv5提供了专门的转换脚本VisDrone2YOLO_lable.py可将VisDrone标注转换为YOLO格式# 标注转换核心代码 def convert(bbox, img_size): dw 1/(img_size[0]) dh 1/(img_size[1]) x bbox[0] bbox[2]/2 y bbox[1] bbox[3]/2 x x * dw y y * dh w bbox[2] * dw h bbox[3] * dh return (x,y,w,h)创建数据集配置文件在data/目录下创建您的自定义数据集配置文件例如custom.yaml# 数据集路径配置 path: ../datasets/custom_dataset train: images/train val: images/val # 类别数量与名称 nc: 10 # 自定义类别数量 names: [person, car, bus, truck, bicycle, motorcycle, train, boat, airplane, bird]模型训练全流程选择合适的基础模型TPH-YOLOv5提供了多种模型配置您可以在models/目录中选择yolov5l-xs-tph.yaml- TPH-YOLOv5轻量版yolov5l-tph-plus.yaml- TPH-YOLOv5版本yolov5s.yaml- 小模型快速推理yolov5l.yaml- 大模型高精度开始训练使用train.py脚本开始训练您的自定义模型# 基础训练命令 python train.py --img 1536 --batch 4 --epochs 80 --data ./data/custom.yaml --weights yolov5l.pt --cfg models/yolov5l-xs-tph.yaml --name custom-tph # 使用Adam优化器 python train.py --img 1536 --adam --batch 4 --epochs 80 --data ./data/custom.yaml --weights yolov5l.pt --hy data/hyps/hyp.VisDrone.yaml --cfg models/yolov5l-xs-tph.yaml --name v5l-xs-tph关键训练参数说明--img 1536输入图像尺寸无人机场景建议使用较大尺寸--batch 4批处理大小根据GPU内存调整--epochs 80训练轮数--data数据集配置文件路径--weights预训练权重文件--cfg模型配置文件--name训练结果保存名称训练过程监控训练过程中TPH-YOLOv5会自动生成训练日志和可视化结果您可以在runs/train/目录下找到训练损失曲线验证精度指标模型权重文件训练参数配置模型验证与性能评估验证模型性能使用val.py脚本验证训练好的模型python val.py --weights runs/train/custom-tph/weights/best.pt --img 1536 --data ./data/custom.yaml --task val --batch-size 8性能指标解读TPH-YOLOv5提供了全面的评估指标mAP0.5IoU阈值为0.5时的平均精度mAP0.5:0.95IoU阈值从0.5到0.95的平均精度Precision精确率Recall召回率F1-ScoreF1分数模型推理与部署单张图像检测使用detect.py进行单张图像检测python detect.py --weights runs/train/custom-tph/weights/best.pt --source data/images/bus.jpg --img 1536 --conf 0.25批量图像检测# 检测整个目录 python detect.py --weights runs/train/custom-tph/weights/best.pt --source path/to/images/ --img 1536 # 检测视频文件 python detect.py --weights runs/train/custom-tph/weights/best.pt --source path/to/video.mp4 --img 1536实时摄像头检测python detect.py --weights runs/train/custom-tph/weights/best.pt --source 0 --img 1536模型优化技巧超参数调优TPH-YOLOv5提供了多种超参数配置文件位于data/hyps/目录hyp.VisDrone.yaml- VisDrone数据集专用超参数hyp.UAVDT.yaml- UAVDT数据集专用超参数hyp.scratch.yaml- 从头开始训练的超参数hyp.finetune.yaml- 微调训练的超参数数据增强策略TPH-YOLOv5内置了丰富的数据增强方法随机透视变换色彩空间增强HSV马赛克数据增强混合增强MixUp复制粘贴增强模型集成如果您使用多个模型进行推理可以使用加权框融合WBF技术提升检测精度python wbf.py在wbf.py中设置图像路径和文本路径即可实现多模型结果的融合。常见问题与解决方案问题1内存不足解决方案减小批处理大小--batch参数或输入图像尺寸--img参数问题2训练收敛慢解决方案使用预训练权重--weights yolov5l.pt调整学习率增加训练轮数问题3检测精度低解决方案检查数据标注质量增加训练数据量尝试不同的数据增强策略调整模型配置问题4推理速度慢解决方案使用较小的模型版本如yolov5s.yaml减小输入图像尺寸启用TensorRT加速高级功能与应用多尺度训练TPH-YOLOv5支持多尺度训练提升模型对不同尺寸目标的检测能力python train.py --img 640,1536 --multi-scale --data ./data/custom.yaml --weights yolov5l.pt迁移学习利用预训练模型进行迁移学习加速收敛python train.py --weights yolov5l-xs-1.pt --data ./data/custom.yaml --epochs 50 --freeze 10模型导出将PyTorch模型导出为ONNX或TensorRT格式python export.py --weights runs/train/custom-tph/weights/best.pt --img 1536 --include onnx实际应用案例无人机交通监控TPH-YOLOv5特别适合无人机视角下的交通监控能够准确检测车辆、行人等目标# 实时交通监控示例 python detect.py --weights custom-traffic.pt --source traffic_video.mp4 --conf 0.3 --classes 0 1 2 3农业作物监测在农业无人机应用中TPH-YOLOv5可以检测作物生长状态、病虫害等# 农业监测配置 python train.py --data ./data/agriculture.yaml --weights yolov5l.pt --cfg models/yolov5l-tph-plus.yaml --img 1024灾害评估在灾害救援场景中快速检测受灾区域和人员位置# 灾害评估模型训练 python train.py --data ./data/disaster.yaml --weights yolov5l.pt --epochs 100 --img 1536总结与展望通过本指南您已经掌握了TPH-YOLOv5自定义数据集训练的完整流程。从数据准备、标注转换到模型训练、验证和部署每个步骤都有详细的说明和实用技巧。TPH-YOLOv5的强大之处在于专门优化针对无人机视角的特殊优化高效性能Transformer预测头提升检测精度灵活配置支持多种模型架构和训练策略易于使用清晰的命令行接口和配置选项无论您是进行学术研究还是工业应用TPH-YOLOv5都能为您提供强大的目标检测能力。现在就开始您的自定义数据集训练之旅打造专属于您的目标检测模型吧小贴士在实际应用中建议先从较小的数据集开始训练验证流程正确后再扩展到全量数据集。同时定期保存模型检查点防止训练中断导致的数据丢失。祝您在TPH-YOLOv5的世界里探索愉快期待看到您的创新应用✨【免费下载链接】tph-yolov5项目地址: https://gitcode.com/gh_mirrors/tp/tph-yolov5创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考