YOLO-v5从零开始:手把手教你运行第一个检测程序

发布时间:2026/7/29 16:25:17

YOLO-v5从零开始:手把手教你运行第一个检测程序 YOLO-v5从零开始手把手教你运行第一个检测程序1. 认识YOLO-v5YOLOYou Only Look Once是当前最流行的实时目标检测算法之一由华盛顿大学的研究团队开发。与传统的两阶段检测方法不同YOLO采用单阶段检测策略将目标检测视为一个回归问题直接在图像上预测边界框和类别概率。YOLO-v5作为该系列的最新实现版本相比前代具有以下优势更快的推理速度在相同硬件条件下YOLO-v5的推理速度比YOLO-v4快约30%更小的模型体积最小的yolov5s模型仅27MB适合移动端部署更简单的使用方式提供完善的Python接口和预训练模型降低使用门槛2. 环境准备2.1 硬件要求YOLO-v5可以在多种硬件环境下运行但为了获得最佳性能建议满足以下配置GPUNVIDIA显卡推荐RTX 2060及以上内存至少8GB RAM存储空间20GB可用空间如果没有GPU也可以在CPU上运行但速度会明显降低。2.2 软件环境我们将使用CSDN星图镜像提供的YOLO-v5预装环境无需手动安装依赖。这个镜像已经包含了Python 3.8PyTorch 1.12.1CUDA 11.3GPU版本所有必要的Python库3. 快速启动YOLO-v53.1 访问镜像环境在CSDN星图平台启动YOLO-v5镜像后你可以通过两种方式使用Jupyter Notebook适合交互式开发和调试SSH终端适合批量处理和长时间训练3.2 运行第一个检测程序让我们从最简单的示例开始检测一张包含人物的图片import torch # 加载预训练模型默认使用yolov5s model torch.hub.load(ultralytics/yolov5, yolov5s) # 指定测试图片使用官方示例图片 img https://ultralytics.com/images/zidane.jpg # 执行推理 results model(img) # 显示结果 results.show()这段代码会自动下载yolov5s预训练模型约27MB从网络加载示例图片执行目标检测显示带有检测框的结果3.3 代码解析让我们分解这段代码的关键部分# 加载模型 model torch.hub.load(ultralytics/yolov5, yolov5s)ultralytics/yolov5指定模型仓库yolov5s选择模型大小ssmall还有nano、medium、large、xlarge等版本# 输入图像 img https://ultralytics.com/images/zidane.jpg支持多种输入格式URL、本地路径、PIL图像、OpenCV图像、numpy数组等# 处理结果 results.print() # 打印检测结果到控制台 results.show() # 显示带标注的图像 results.save() # 保存结果到runs/detect/exp目录结果对象提供了多种输出方式4. 使用自己的图片进行检测4.1 本地图片检测要检测本地存储的图片只需修改输入路径# 检测本地图片 results model(path/to/your/image.jpg) # 保存结果 results.save() # 结果保存在runs/detect/exp目录4.2 批量检测YOLO-v5支持批量处理多张图片# 批量检测 imgs [image1.jpg, image2.jpg, image3.jpg] results model(imgs) # 保存所有结果 results.save()4.3 实时摄像头检测还可以连接摄像头进行实时检测import cv2 # 打开摄像头0通常是默认摄像头 cap cv2.VideoCapture(0) while True: # 读取帧 ret, frame cap.read() # 执行检测 results model(frame) # 显示结果 cv2.imshow(YOLO, np.squeeze(results.render())) # 按q退出 if cv2.waitKey(1) 0xFF ord(q): break # 释放资源 cap.release() cv2.destroyAllWindows()5. 理解检测结果YOLO-v5的检测结果包含丰富的信息。让我们看一个典型输出image 1/1: 720x1280 2 persons, 1 tie Speed: 10.0ms pre-process, 25.0ms inference, 2.0ms NMS per image at shape (1, 3, 640, 640)检测对象识别出2个人和1条领带处理速度总耗时约37ms约27FPS图像尺寸输入被调整为640x640进行处理结果对象还包含结构化数据# 获取检测结果的Pandas格式 print(results.pandas().xyxy[0])输出示例xmin ymin xmax ymax confidence class name 0 749.50 43.50 1148.0 704.5 0.895323 0 person 1 433.50 433.50 517.5 714.5 0.640243 0 person 2 114.00 195.00 1095.0 708.0 0.689735 27 tie各列含义xmin, ymin, xmax, ymax边界框坐标confidence检测置信度0-1class类别IDname类别名称6. 常见问题与解决方案6.1 模型下载失败如果在国内使用可能会遇到模型下载慢的问题。解决方法手动下载模型文件.pt到本地修改代码指定本地路径model torch.hub.load(ultralytics/yolov5, yolov5s, pretrainedFalse) model.load_state_dict(torch.load(path/to/yolov5s.pt))6.2 检测效果不佳如果对某些场景检测效果不好可以尝试使用更大的模型如yolov5m或yolov5l调整置信度阈值model.conf 0.6 # 提高置信度阈值减少误检 model.iou 0.45 # 调整NMS的IoU阈值6.3 性能优化技巧减小输入尺寸加快推理速度但降低精度model.imgsz 320 # 默认是640使用半精度减少显存占用model model.half() # 转换为FP16批量处理提高GPU利用率results model([img1, img2, img3]) # 批量处理7. 总结通过本文你已经学会了如何在CSDN星图镜像中快速启动YOLO-v5环境运行第一个目标检测程序并理解结果使用自己的图片和视频进行检测解决常见问题和优化性能YOLO-v5的强大之处在于它的易用性和高效性。作为入门你可以尝试不同的预训练模型yolov5n, yolov5s, yolov5m, yolov5l, yolov5x探索更多的结果处理方法如.crop()提取检测对象考虑在自己的项目中集成YOLO-v5获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关新闻