# dcmyolo **Repository Path**: wanggang2020/dcmyolo ## Basic Information - **Project Name**: dcmyolo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-28 - **Last Updated**: 2026-07-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dcmyolo ## 说明 dcmyolo(dreams create miracles),基于 **YOLOv10** 的目标检测工具包,使用 ultralytics 框架,提供训练、推理、ONNX 导出等完整流程。 ## 环境要求 - Python 3.10+ - PyTorch 2.0+ - CUDA 12.1 ## 快速开始 ### 环境配置 ```bash conda create -n yolov8-test-py310 python=3.10 -y conda activate yolov8-test-py310 pip install -r requirements.txt ``` ### 数据准备 标注数据需转换为 YOLO 格式(images/ + labels/),支持以下方式: **方式一:从 VOC 格式转换** ```bash python annot2yolo.py --input_type voc \ --input_dir data/voc \ --output_dir data/yolo_dataset \ --classes_path dcmyolo/model_data/voc_classes.txt ``` **方式二:从旧版 txt 格式转换** ```bash python annot2yolo.py --input_type txt \ --txt_path data/train.txt \ --output_dir data/yolo_dataset \ --classes_path dcmyolo/model_data/voc_classes.txt ``` 转换后会在 `output_dir` 生成 `dataset.yaml`,可直接用于训练。 **方式三:直接准备 YOLO 格式** ``` dataset/ ├── images/ │ ├── train/ # 训练图片 │ └── val/ # 验证图片 ├── labels/ │ ├── train/ # 训练标签 (.txt) │ └── val/ # 验证标签 (.txt) └── dataset.yaml # 数据集配置 ``` 标签格式(每行一个目标): ``` ``` 坐标归一化到 [0, 1]。 ### 训练 ```bash # 方式一:使用 data.yaml python train_dcmyolo.py \ --data data/dataset.yaml \ --model s \ --epochs 100 \ --batch 16 \ --imgsz 640 # 方式二:使用旧版 txt 标注(自动转换) python train_dcmyolo.py \ --model s \ --train_annotation_path data/train.txt \ --val_annotation_path data/val.txt \ --classes_path dcmyolo/model_data/voc_classes.txt \ --epochs 100 \ --batch 16 # 方式三:指定 YOLO 格式目录 python train_dcmyolo.py \ --model s \ --data_dir data/yolo_dataset \ --classes_path dcmyolo/model_data/voc_classes.txt \ --epochs 100 ``` #### 模型规格 | 参数 | 模型 | 说明 | |------|------|------| | `--model n` | YOLOv10-Nano | 最快,最小 | | `--model s` | YOLOv10-Small | 速度快 | | `--model m` | YOLOv10-Medium | 平衡 | | `--model l` | YOLOv10-Large | 精度高 | | `--model x` | YOLOv10-XLarge | 最高精度 | ### PyTorch 推理 ```bash # 单张图片 python predict_dcmyolo.py \ --model_path yolov10s.pt \ --operation_type predict_image \ --source image.jpg \ --show # 视频 python predict_dcmyolo.py \ --model_path runs/train/exp/weights/best.pt \ --operation_type predict_video \ --source video.mp4 \ --video_save_path output.mp4 # 摄像头实时检测 python predict_dcmyolo.py \ --model_path yolov10s.pt \ --operation_type predict_webcam # 批量处理目录 python predict_dcmyolo.py \ --model_path best.pt \ --operation_type predict_dir \ --source data/images \ --save_dir runs/detect ``` ### ONNX 导出与推理 ```bash # PTH → ONNX 导出 python predict_onnx.py \ --operation_type export_onnx \ --model_path best.pt \ --onnx_path model.onnx # ONNX 推理 python predict_onnx.py \ --operation_type predict_image \ --onnx_path model.onnx \ --source image.jpg python predict_onnx.py \ --operation_type predict_video \ --onnx_path model.onnx \ --source video.mp4 \ --video_save_path output.mp4 ``` ## YOLOv10 特点 - **NMS-free 训练**:一致的匹配策略,推理无需 NMS - **C2f + CIB 模块**:高效的特征提取 - **SCDown**:空间-通道解耦下采样 - **PSA**:位置敏感自注意力 - **v10Detect 检测头**:DFL + 一对多/一对一双分支 ## 项目结构 ``` dcmyolo/ ├── train_dcmyolo.py # YOLOv10 训练入口 ├── predict_dcmyolo.py # YOLOv10 推理入口 ├── predict_onnx.py # ONNX 导出与推理 ├── annot2yolo.py # 标注格式转换工具 ├── labelme2voc.py # LabelMe → VOC 转换 ├── voc2annotation_txt.py # VOC → 旧版 txt 转换 ├── make_anchors.py # K-Means anchors 生成 ├── dcmyolo/ │ ├── model_data/ # 模型配置文件 │ ├── utils/ # 工具函数 └── requirements.txt ```