news 2026/5/30 23:54:55

YOLO26 接入实时视频 - GPU 加速

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO26 接入实时视频 - GPU 加速

1. GPU 加速优化

第一版代码直接使用CPU 进行模型识别,速度根据模型大小而明显变慢

yolo26n.pt 最小(5.5M),识别最快, 在 50ms左右

yolo26s.pt 20.4M, 在75ms左右

yolo26m.pt 44.3M, 在120ms左右

yolo26l.pt 53.2M,在150ms左右

yolo26x.pt 118.7M,在170ms左右

使用GPU 进行处理优化之后,最大的模型也保持在了 60ms左右(不卡顿)

import cv2 from ultralytics import solutions def open_iphone_camera_with_cv(): """ 主函数:找到并打开iPhone摄像头 """ print("正在检测iPhone摄像头...\n") # for i in range(5): cap = cv2.VideoCapture(0) if cap.isOpened(): print("打开默认摄像头 (索引0)") # 强制开启硬件加速解码(M1 Metal) cap.set(cv2.CAP_PROP_HW_ACCELERATION, cv2.VIDEO_ACCELERATION_ANY) # 开启帧缓冲区优化,降低延迟 cap.set(cv2.CAP_PROP_BUFFERSIZE, 1) cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720) region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)] # w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) # video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) counter = solutions.ObjectCounter( show=True, # display the output region=region_points, # pass region points model="yolo26x.pt", # model="yolo26n-obb.pt" for object counting with OBB model. device="mps", conf=0.3, # 置信度调高一点,减少无效检测,加速推理 iou=0.45, # NMS IOU阈值 max_det=1000, # 每张图像的最大检测数量 verbose=True, # 是否打印详细信息 # save_results=True, # 是否保存结果到文件 # classes=[0, 2], # count specific classes, e.g., person and car with the COCO pretrained model. # tracker="botsort.yaml", # choose trackers, e.g., "bytetrack.yaml" ) while True: ret, frame = cap.read() if ret: frame_corrected = cv2.flip(frame, 1) results = counter(frame_corrected) cv2.imshow(f'Camera {0} - 按q退出', results.plot_im) if cv2.waitKey(1) & 0xFF == ord('q'): break cv2.destroyAllWindows() cap.release() print("摄像头已关闭") else: print("无法打开摄像头,请检查连接。") # 运行 if __name__ == "__main__": # 方法1:自动检测并打开iPhone摄像头 open_iphone_camera_with_cv()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 14:56:48

LangGraph详解:构建智能代理工作流的新范式

目录 前言 什么是LangGraph? 核心概念 主要特性 与传统链式调用的对比 开始使用: LangGraph核心架构 状态管理 节点与边 条件边与循环 实战案例:构建智能客服工单处理系统 案例需求分析 系统实现 步骤1:定义状态结构…

作者头像 李华
网站建设 2026/5/28 9:42:43

Python+django的图书资料借阅信息管理系统的设计与实现

目录摘要开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着信息化时代的快速发展,图书资料的管理效率成为图书馆和各类机构关注的重点。传统的纸质记录方式效率低下且容易…

作者头像 李华
网站建设 2026/5/29 0:33:31

STM32-270-多功能水质监测系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

STM32-270-多功能水质监测系统(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 产品功能描述: 本系统由STM32F103C8T6单片机核心板、TFT1.44寸彩屏液晶显示电路、(无线蓝牙/无线WIFI/无线视频监控模块-可…

作者头像 李华
网站建设 2026/5/28 15:08:47

C语言:指针

吃透 C 语言指针:从本质到实战,告别 “指针恐惧症” 指针是 C 语言的灵魂,也是很多初学者入门路上的 “拦路虎”—— 有人觉得它晦涩难懂、容易出错,写代码时避之不及;也有人掌握后感叹其灵活高效,能轻松实…

作者头像 李华
网站建设 2026/5/28 14:34:43

Python+django的教学日常管理系统(活动 选课 考勤,听课)

目录系统概述核心功能模块技术实现亮点应用价值开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统概述 PythonDjango教学日常管理系统是一个基于Web的综合平台,旨在简化教学活…

作者头像 李华