YOLO-v5实战:用预训练模型快速检测图片中的物体
YOLO-v5实战用预训练模型快速检测图片中的物体1. 引言为什么选择YOLO-v5在计算机视觉领域物体检测是一项基础而重要的任务。YOLOYou Only Look Once系列模型因其速度快、精度高的特点成为工业界和学术界的热门选择。YOLO-v5作为该系列的最新版本之一在保持高精度的同时进一步优化了推理速度。本文将带你快速上手YOLO-v5预训练模型无需复杂训练过程直接使用现成模型完成物体检测任务。通过本教程你将学会如何快速部署YOLO-v5环境如何使用预训练模型进行物体检测如何解读检测结果并保存输出常见问题的解决方法2. 环境准备与快速部署2.1 系统要求YOLO-v5对硬件要求相对友好可以在以下环境中运行操作系统Linux/Windows/macOSPython3.7或更高版本GPU推荐NVIDIA GPUCUDA支持但CPU也可运行内存至少8GB处理大图片时建议16GB以上2.2 快速安装最简单的方式是使用CSDN星图镜像该镜像已预装所有必要组件# 拉取镜像如果使用CSDN星图服务 docker pull csdn-mirror/yolo-v5或者通过pip安装所需依赖pip install torch torchvision pip install opencv-python pip install matplotlib2.3 下载YOLO-v5代码git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt3. 使用预训练模型进行检测3.1 加载模型YOLO-v5提供了多个预训练模型大小和精度各不相同import torch # 可选的模型yolov5n, yolov5s, yolov5m, yolov5l, yolov5x model torch.hub.load(ultralytics/yolov5, yolov5s) # 加载最小的yolov5s模型模型大小与性能对比模型参数量推理速度(ms)mAP0.5yolov5n1.9M2.70.28yolov5s7.2M3.20.37yolov5m21.2M4.70.45yolov5l46.5M6.30.49yolov5x86.7M9.10.513.2 准备输入图片YOLO-v5支持多种输入格式# 本地图片文件 img data/images/zidane.jpg # 图片URL img https://ultralytics.com/images/zidane.jpg # OpenCV图像 import cv2 img cv2.imread(zidane.jpg) # PIL图像 from PIL import Image img Image.open(zidane.jpg) # numpy数组 import numpy as np img np.array(Image.open(zidane.jpg))3.3 执行推理# 执行推理 results model(img) # 查看结果 results.print() # 打印检测结果 results.show() # 显示检测结果4. 结果处理与可视化4.1 理解检测结果YOLO-v5的检测结果包含以下信息边界框坐标(x1, y1, x2, y2)格式类别标签如person, car, dog等置信度分数0-1之间的数值表示检测可靠性4.2 结果可视化方法# 保存检测结果图片 results.save() # 保存到runs/detect/exp目录 # 获取Pandas格式的结果 df results.pandas().xyxy[0] print(df) # 获取JSON格式的结果 json_results results.pandas().xyxy[0].to_json(orientrecords) print(json_results)4.3 自定义可视化import cv2 # 获取检测结果 detections results.xyxy[0].numpy() # 在原图上绘制检测框 img_with_boxes results.render()[0] # 显示结果 cv2.imshow(Detection Results, img_with_boxes) cv2.waitKey(0) cv2.destroyAllWindows()5. 进阶使用技巧5.1 批量处理图片import glob # 批量处理文件夹中的所有图片 images glob.glob(data/images/*.jpg) results model(images) # 保存所有结果 results.save()5.2 调整检测参数# 设置置信度阈值默认0.25 model.conf 0.5 # 只显示置信度大于0.5的检测 # 设置IOU阈值非极大值抑制 model.iou 0.45 # 默认0.45 # 设置检测类别只检测人和车 model.classes [0, 2] # 0是人2是车5.3 使用GPU加速# 检查GPU是否可用 device cuda if torch.cuda.is_available() else cpu # 将模型移到GPU model model.to(device) # 执行推理时确保输入也在GPU results model(img.to(device))6. 常见问题与解决方案6.1 检测速度慢可能原因使用了大模型(yolov5x)在CPU上运行图片分辨率过高批量处理时batch size设置过大解决方案# 使用更小的模型 model torch.hub.load(ultralytics/yolov5, yolov5n) # 调整图片大小 model.imgsz 320 # 默认640 # 减小batch size model.batch_size 4 # 默认166.2 检测结果不准确可能原因目标物体太小目标物体与训练数据差异大光照条件差解决方案# 使用更大的模型 model torch.hub.load(ultralytics/yolov5, yolov5x) # 调整置信度阈值 model.conf 0.4 # 降低阈值可能检测到更多物体 # 尝试不同的IOU阈值 model.iou 0.3 # 降低IOU阈值可能减少误检6.3 内存不足错误可能原因图片分辨率过高批量处理图片过多GPU显存不足解决方案# 减小图片尺寸 model.imgsz 320 # 减小batch size model.batch_size 2 # 使用CPU模式 model model.cpu()7. 总结与下一步建议通过本教程你已经掌握了使用YOLO-v5预训练模型进行物体检测的基本方法。以下是关键要点回顾快速部署使用预构建镜像或简单pip安装即可开始模型选择根据需求在速度(yolov5n)和精度(yolov5x)之间权衡灵活输入支持本地文件、URL、OpenCV/PIL图像等多种输入格式结果处理提供多种格式输出和可视化选项性能调优通过调整参数优化检测效果和速度下一步建议尝试在自己的数据集上微调模型探索视频流实时检测了解TensorRT加速部署研究YOLO-v5与其他视觉任务的结合获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2471092.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!