# myyolopro **Repository Path**: ooooinfo/myyolopro ## Basic Information - **Project Name**: myyolopro - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-18 - **Last Updated**: 2025-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 多物体检测项目(使用YOLOv8) > 注意:您可能想输入的是"YOLO"(You Only Look Once),这是一种流行的目标检测算法,而非"YOVO"。 ## 项目介绍 这个项目使用YOLOv8(一种先进的目标检测算法)来识别图片中的多种物体,包括: - 汽车 (car) - 人 (person) - 拖车 (truck) - 车牌 (license_plate) - 需要自定义训练 - 搭电设备 (battery_jumper) - 需要自定义训练 - 轮胎 (tire) - 需要自定义训练 YOLO是计算机视觉领域广泛使用的实时目标检测模型,能够快速准确地识别图像中的物体。 ## 安装依赖 在运行代码之前,您需要安装以下Python库: ```bash pip install -r requirements.txt ``` ## 使用方法 ### 交互式模式(推荐) 直接运行脚本,进入交互式界面: ```bash python car_detection.py ``` 然后按照提示选择要执行的操作: 1. 检测单张图片 2. 批量检测文件夹中的图片 3. 创建自定义数据集结构 4. 退出 ### 命令行参数模式 ```bash # 检测单张图片 python car_detection.py --image your_image.jpg # 批量检测文件夹中的图片 python car_detection.py --folder your_folder/ # 调整置信度阈值 python car_detection.py --image your_image.jpg --conf 0.7 # 使用自定义训练的模型 python car_detection.py --image your_image.jpg --model path/to/your/custom/model.pt --custom # 创建自定义数据集结构 python car_detection.py --create_dataset your_dataset/ # 训练自定义模型 python car_detection.py --train your_dataset/data.yaml --epochs 100 ``` ## 代码说明 - `MultiObjectDetector`类封装了YOLO模型的加载和多物体检测功能 - 默认使用`yolov8n.pt`模型(最小最快的模型),您可以根据需要更换为更大的模型 - 代码会自动在检测到的物体周围绘制不同颜色的边框并显示置信度 - `AnnotationTool`类提供了创建数据集结构和训练自定义模型的功能 ## 自定义物体识别 ### 预训练模型支持的物体 YOLOv8预训练模型可以直接识别以下物体: - 人 (person) - 类别ID: 0 - 汽车 (car) - 类别ID: 2 - 卡车/拖车 (truck) - 类别ID: 7 ### 自定义训练支持的物体 对于以下物体,需要创建自定义数据集并训练模型: - 车牌 (license_plate) - 类别ID: 80 - 搭电设备 (battery_jumper) - 类别ID: 81 - 轮胎 (tire) - 类别ID: 82 ### 自定义训练流程 1. **创建数据集结构**: ```bash python car_detection.py --create_dataset your_dataset/ ``` 这将创建标准的YOLO数据集目录结构和标注指南。 2. **准备和标注图片**: - 将图片放入`your_dataset/images/train`、`your_dataset/images/val`和`your_dataset/images/test`目录 - 使用标注工具(如LabelImg、Roboflow或CVAT)为图片创建标注 - 将标注文件放入对应的`your_dataset/labels/train`、`your_dataset/labels/val`和`your_dataset/labels/test`目录 3. **训练自定义模型**: ```bash python car_detection.py --train your_dataset/data.yaml --epochs 100 ``` 训练完成后,模型权重将保存在`runs/detect/yolov8n_custom/weights/`目录下。 4. **使用自定义模型进行检测**: ```bash python car_detection.py --image your_image.jpg --model runs/detect/yolov8n_custom/weights/best.pt --custom ``` ## 批量处理功能 批量处理功能可以一次性检测文件夹中的所有图片: 1. 使用命令行: ```bash python car_detection.py --folder your_image_folder/ ``` 2. 或在交互式模式中选择选项2 检测结果将保存在`your_image_folder/detection_results/`目录中。 ## 检测结果说明 - 检测结果图片会以`output_原始文件名.jpg`的形式保存 - 图片中会显示检测到的物体边界框和置信度 - 不同物体使用不同颜色标识: - 人 (person): 绿色 - 汽车 (car): 蓝色 - 拖车 (truck): 红色 - 车牌 (license_plate): 黄色 - 搭电设备 (battery_jumper): 紫色 - 轮胎 (tire): 青色 ## 注意事项 - 首次运行时会自动下载YOLOv8模型权重文件(约6MB) - 自定义训练需要足够的标注数据才能获得良好的效果(建议每个类别至少200张标注图片) - 训练自定义模型时,您可以通过调整`--epochs`参数来改变训练轮数 - 您可以通过调整`--conf`参数来改变检测的置信度阈值 - 对于自定义类别(车牌、搭电设备、轮胎),必须使用自定义训练的模型才能识别 ## 常见问题 - **问:为什么代码中使用的是YOLO而不是YOVO?** **答:** 经过搜索和分析,我们认为"YOVO"很可能是"YOLO"的拼写错误。YOLO是计算机视觉领域知名的目标检测算法,而YOVO并未作为类似技术被广泛认知。 - **问:运行代码时出现"找不到图片文件"的错误怎么办?** **答:** 请确保您指定的图片路径是正确的,并且图片文件确实存在于该位置。 - **问:为什么我的自定义类别(车牌、搭电设备、轮胎)没有被检测到?** **答:** 这些是自定义类别,需要使用`--create_dataset`创建数据集,进行标注,然后使用`--train`训练模型,最后使用`--custom`参数和自定义模型路径才能识别。 - **问:如何提高检测的准确率?** **答:** 可以尝试使用更大的模型(如yolov8s.pt, yolov8m.pt等)、调整置信度阈值、增加训练数据量或进行自定义模型训练。 祝您使用愉快!