尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

yolov5识别demo

yolov5识别demo
📅 发布时间:2026/6/19 16:59:11
# 1. 安装 PyTorch(核心深度学习框架,根据你的CUDA版本选择,无GPU可安装CPU版) # CPU版(通用,无NVIDIA显卡优先选择) pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu # GPU版(有NVIDIA显卡,需先安装CUDA 11.7+/cuDNN 8.5+,以CUDA 11.8为例) # pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 2. 安装 YOLOv5 依赖(包含opencv、numpy等) pip install opencv-python numpy pandas ultralytics

图片目标识别

# 导入必要的库 from ultralytics import YOLO import cv2 import os def yolov5_image_detection(image_path, save_path="output_result.jpg"): """ YOLOv5 图片目标识别函数 :param image_path: 输入图片路径(相对/绝对路径) :param save_path: 识别结果图片保存路径 """ # 1. 加载 YOLOv5 预训练模型(yolov5s 是最小、最快的模型,适合快速测试) # 可选模型:yolov5n(更小)、yolov5m、yolov5l、yolov5x(更大,精度更高,速度更慢) model = YOLO("yolov5s.pt") # 2. 验证输入图片是否存在 if not os.path.exists(image_path): print(f"错误:图片 {image_path} 不存在,请检查路径!") return # 3. 执行目标检测(conf=0.25 表示置信度阈值,只保留置信度>25%的结果) results = model(image_path, conf=0.25) # 4. 处理检测结果,绘制边界框和类别标签 # 读取原始图片 img = cv2.imread(image_path) # 遍历检测结果(单张图片只取第一个结果) for result in results: boxes = result.boxes # 获取检测框信息 for box in boxes: # 提取框的坐标(xyxy 格式:左上x、左上y、右下x、右下y) x1, y1, x2, y2 = map(int, box.xyxy[0]) # 提取类别名称和置信度 cls_name = result.names[int(box.cls[0])] confidence = box.conf[0].item() # 5. 在图片上绘制边界框和文字 # 绘制红色边界框(BGR格式,(0,0,255)为红色,线宽2) cv2.rectangle(img, (x1, y1), (x2, y2), (0, 0, 255), 2) # 绘制文字背景(避免文字与图片重叠看不清) text = f"{cls_name}: {confidence:.2f}" text_size = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, 0.6, 2)[0] cv2.rectangle(img, (x1, y1 - text_size[1] - 10), (x1 + text_size[0], y1), (0, 0, 255), -1) # 绘制类别和置信度文字 cv2.putText(img, text, (x1, y1 - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2) # 6. 保存识别结果图片 cv2.imwrite(save_path, img) print(f"识别完成!结果已保存至:{os.path.abspath(save_path)}") # 7. (可选)显示识别结果图片(窗口按任意键关闭) cv2.imshow("YOLOv5 Image Detection Result", img) cv2.waitKey(0) cv2.destroyAllWindows() # 主函数调用 if __name__ == "__main__": # 替换为你的图片路径(可放任意测试图片,如人物、车辆、动物等) INPUT_IMAGE_PATH = "test.jpg" yolov5_image_detection(INPUT_IMAGE_PATH)

视频 / 摄像头实时识别

# 导入必要的库 from ultralytics import YOLO import cv2 def yolov5_video_detection(video_source=0, save_video=False, save_path="output_video.mp4"): """ YOLOv5 视频/摄像头目标识别函数 :param video_source: 视频源(0=默认摄像头,也可传入视频文件路径如"test.mp4") :param save_video: 是否保存识别后的视频 :param save_path: 保存视频的路径 """ # 1. 加载 YOLOv5 预训练模型 model = YOLO("yolov5s.pt") # 2. 打开视频源 cap = cv2.VideoCapture(video_source) if not cap.isOpened(): print(f"错误:无法打开视频源 {video_source}!") return # 3. (可选)配置视频保存参数 fourcc = None out = None if save_video: # 获取视频宽度、高度、帧率 frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) fps = int(cap.get(cv2.CAP_PROP_FPS)) or 30 # 视频编码格式 fourcc = cv2.VideoWriter_fourcc(*"mp4v") out = cv2.VideoWriter(save_path, fourcc, fps, (frame_width, frame_height)) print("识别中... 按 'q' 键退出窗口") # 4. 循环读取帧并执行检测 while cap.isOpened(): ret, frame = cap.read() if not ret: break # 视频读取完毕或摄像头断开 # 5. 执行目标检测 results = model(frame, conf=0.25) # 6. 处理检测结果,绘制边界框 for result in results: boxes = result.boxes for box in boxes: x1, y1, x2, y2 = map(int, box.xyxy[0]) cls_name = result.names[int(box.cls[0])] confidence = box.conf[0].item() # 绘制边界框和文字 cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 0, 255), 2) text = f"{cls_name}: {confidence:.2f}" text_size = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, 0.6, 2)[0] cv2.rectangle(frame, (x1, y1 - text_size[1] - 10), (x1 + text_size[0], y1), (0, 0, 255), -1) cv2.putText(frame, text, (x1, y1 - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2) # 7. (可选)保存处理后的帧 if save_video and out is not None: out.write(frame) # 8. 显示识别结果 cv2.imshow("YOLOv5 Video/Camera Detection Result", frame) # 按 'q' 键退出循环 if cv2.waitKey(1) & 0xFF == ord('q'): break # 9. 释放资源 cap.release() if save_video and out is not None: out.release() print(f"视频保存完成!结果已保存至:{save_path}") cv2.destroyAllWindows() print("识别结束!") # 主函数调用 if __name__ == "__main__": # 可选:传入视频文件路径(如 "test.mp4"),或使用 0 调用摄像头 yolov5_video_detection(video_source=0, save_video=False)

相关新闻

  • vector模拟实现与核心机制
  • Python安装后无法导入模块?Miniconda-Python3.10修复sys.path
  • 免费开源!Stable Diffusion AI 生图天花板,下载安装一款能免费部署的 AI 绘图神器

最新新闻

  • 4.1 自由振动 固有频率与固有振型
  • ComfyUI TTP Toolset:3步掌握8K超分辨率图像分块处理技术,普通电脑也能轻松实现AI图像增强
  • LPC3130/3131 ARM9微控制器:多层AHB总线与引脚复用的嵌入式设计精要
  • 2026衡水2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水
  • 3种智能编排策略重构AI工作流创作效率
  • PPO算法在大语言模型RLHF训练中的工程实践与调参指南

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号