PyCharm实战:从零到一完成YOLOv11自定义数据集训练
1. 环境准备与数据集配置第一次用PyCharm跑YOLOv11训练时我对着满屏的代码和配置文件差点放弃。后来发现只要环境装对了后面都是顺水推舟。这里分享几个新手容易踩的坑CUDA版本和PyTorch不匹配会导致显卡根本用不上conda环境没隔离可能污染系统Python库。建议按这个顺序配置安装Anaconda创建独立环境Python3.8最稳根据显卡驱动版本选择CUDAnvidia-smi查驱动版本安装对应版本的PyTorch官网有生成命令的工具数据集整理比想象中麻烦。上周帮农业公司做病虫害检测他们提供的2000张图片里有30%是重复拍摄的还有部分没标注。建议先用labelImg检查标注文件再用这个脚本快速查重import hashlib def find_duplicates(image_folder): hashes {} for img_path in Path(image_folder).glob(*.jpg): with open(img_path, rb) as f: img_hash hashlib.md5(f.read()).hexdigest() if img_hash in hashes: print(f重复图片: {img_path} 和 {hashes[img_hash]}) else: hashes[img_hash] img_pathdata.yaml的路径问题折磨了我三天。Windows用户特别注意PyCharm默认用正斜杠(/)而资源管理器复制的是反斜杠()。建议统一用这种格式path: D:/project/datasets # 顶层目录 train: images/train # 相对路径更便携 val: images/val names: 0: 锈病 1: 霉斑病2. 模型训练实战技巧第一次点运行按钮时心跳加速的场景还记得吗YOLOv11的train.py有十几个关键参数新手建议先调这三个imgsz不是越大越好640x640在RTX3060上batch_size能到16调到1280就只能跑4了epochs先用5轮试水看到loss曲线下降太慢再加到50device明明有显卡却跑在CPU上的痛谁懂记得检查device0训练开始后别干等着这三个实时监控方法亲测有效在PyCharm终端运行nvidia-smi -l 1观察GPU利用率用TensorBoard看loss曲线自动生成在runs目录自定义回调函数记录关键指标from ultralytics import YOLO def on_train_epoch_end(trainer): print(f当前mAP50: {trainer.metrics[metrics/mAP50]}) model YOLO(yolov11n.pt) model.add_callback(on_train_epoch_end, on_train_epoch_end)遇到显存爆炸(OOM)别慌试试这些方法减小batch_size建议从16开始试开启梯度累积accumulate2相当于batch_size翻倍用--half参数启用混合精度训练3. 模型验证与效果优化训练完看到mAP50只有0.3时差点砸键盘后来发现是验证集出了问题。分享几个提升精度的实战经验验证集配置陷阱验证集图片不能出现在训练集里用这个脚本检查重叠类别分布要均衡某类样本太少会拉低整体精度建议保留10%数据做最终测试集import pandas as pd def check_data_leakage(train_csv, val_csv): train_df pd.read_csv(train_csv) val_df pd.read_csv(val_csv) overlap set(train_df[image_path]).intersection(set(val_df[image_path])) print(f发现{len(overlap)}张图片同时存在于训练集和验证集)提升精度的五个技巧数据增强mosaic0.5对小样本效果显著迁移学习用--weights参数加载预训练模型自适应锚框autoanchorTrue自动计算最佳锚点早停机制patience10当精度不提升时自动停止学习率预热warmup_epochs3避免初期震荡可视化分析工具比单纯看数字直观多了。用这个代码生成混淆矩阵from ultralytics.yolo.utils import plots results model.val() plots.plot_confusion_matrix(results[confusion_matrix], class_namesmodel.names)4. 工业级部署技巧训练出好模型只是开始真正考验在部署阶段。最近做的钢管缺陷检测项目让我总结出这些经验PyCharm调试技巧用Edit Configurations添加参数--source 0 调用摄像头开启--save-txt保存检测结果到文本调试detect.py时设置--nosave只显示不存图生产环境要考虑的更多模型量化用model.export(formatonnx)转换到ONNX格式TensorRT加速能提升3倍推理速度内存优化用--imgsz 320减小输入尺寸这个异步处理脚本在产线检测中很实用import asyncio from ultralytics import YOLO model YOLO(best.pt) async def process_frame(frame): results await model(frame, streamTrue) return results async def main(): while True: frame get_camera_frame() results await process_frame(frame) show_results(results) asyncio.run(main())遇到光照变化大的场景试试这些方法在data.yaml里增加hsv_h/hsv_s/hsv_v参数训练时加入--augment参数启用高级增强用gamma校正预处理输入图像
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2459419.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!