YOLO-V5实战指南用YOLOv5s模型检测图片结果可视化展示1. YOLOv5简介与环境准备1.1 YOLOv5核心特点YOLOYou Only Look Once是当前最流行的实时目标检测算法之一。YOLOv5作为最新版本相比前代具有以下优势速度快在标准GPU上能达到140FPS的检测速度精度高在COCO数据集上达到56.8%的mAP易部署提供PyTorch实现支持多种硬件平台模型轻量最小的yolov5n模型仅1.9MB1.2 环境准备本教程使用CSDN星图平台的YOLO-V5镜像已预装所有依赖环境。如需本地运行可通过以下命令准备环境# 创建conda环境可选 conda create -n yolov5 python3.8 conda activate yolov5 # 安装PyTorch根据CUDA版本选择 pip install torch torchvision torchaudio # 克隆YOLOv5仓库 git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt2. 快速上手图片检测2.1 加载预训练模型YOLOv5提供5种预训练模型从轻量到高精度依次为yolov5n最小yolov5s推荐yolov5myolov5lyolov5x最大import torch # 加载预训练模型默认yolov5s model torch.hub.load(ultralytics/yolov5, yolov5s) # 查看模型信息 print(model.names) # 输出可识别类别2.2 执行目标检测支持多种输入源URL、本地文件、PIL图像、OpenCV帧、numpy数组等# 检测网络图片 img_url https://ultralytics.com/images/zidane.jpg results model(img_url) # 检测本地图片 local_results model(bus.jpg) # 假设当前目录有bus.jpg3. 结果可视化与分析3.1 多种结果展示方式YOLOv5提供丰富的结果处理方法# 打印检测结果控制台输出 results.print() # 显示带标注的图像弹出窗口 results.show() # 保存结果图像默认保存到runs/detect/exp results.save() # 获取检测结果的Pandas DataFrame df results.pandas().xyxy[0] print(df.head())3.2 结果解读示例假设检测zidane.jpg的输出如下image 1/1: 720x1280 2 persons, 1 tie Speed: 10.2ms pre-process, 12.4ms inference, 1.2ms NMS per image at shape (1, 3, 640, 640)这表示检测到2个人和1条领带预处理耗时10.2ms推理耗时12.4ms非极大值抑制耗时1.2ms输入图像被调整为640x640进行处理4. 进阶使用技巧4.1 批量处理与参数调整# 批量检测多张图片 batch_results model([img1.jpg, img2.jpg, img3.jpg]) # 调整置信度阈值默认0.25 model.conf 0.5 # 只显示置信度50%的检测 # 调整IOU阈值默认0.45 model.iou 0.3 # 更宽松的重叠检测标准 # 指定检测类别默认检测所有类别 model.classes [0, 15] # 只检测人和猫4.2 结果后处理# 获取检测框坐标和类别信息 detections results.xyxy[0] # [x1, y1, x2, y2, confidence, class] # 裁剪检测到的物体 cropped_imgs results.crop() # 返回PIL图像列表 # 自定义可视化 import cv2 img cv2.imread(zidane.jpg) for det in detections: x1, y1, x2, y2, conf, cls det.numpy() cv2.rectangle(img, (int(x1), int(y1)), (int(x2), int(y2)), (0,255,0), 2) cv2.putText(img, f{model.names[int(cls)]} {conf:.2f}, (int(x1), int(y1)-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0,255,0), 2) cv2.imwrite(custom_result.jpg, img)5. 实际应用案例5.1 交通场景检测# 检测交通场景 traffic_img https://ultralytics.com/images/bus.jpg traffic_results model(traffic_img) traffic_results.show()典型输出检测公交车、行人、交通标志等可统计各类型物体数量可用于交通监控系统5.2 零售商品识别# 调整模型识别零售商品 retail_model torch.hub.load(ultralytics/yolov5, yolov5s, classes80) # COCO类别 retail_results retail_model(supermarket.jpg)应用场景货架商品识别自动库存管理顾客行为分析6. 总结与建议6.1 关键要点回顾通过本教程我们掌握了YOLOv5环境的快速搭建方法使用预训练模型进行目标检测的完整流程多种结果可视化和分析方法实际应用场景的代码实现6.2 使用建议模型选择移动端yolov5n或yolov5s服务器端yolov5l或yolov5x性能优化# 使用半精度推理加速 model model.half().to(cuda) # 使用TensorRT加速 model torch.hub.load(ultralytics/yolov5, yolov5s, pretrainedTrue).autoshape()扩展学习自定义数据集训练模型量化与优化部署到边缘设备获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。