当前位置: 首页 > news >正文

YOLO26 接入实时视频 - GPU 加速2

经过优化后,稳定在60ms,不卡顿

import cv2 from ultralytics import solutions import torch # ✅ 必须在文件顶部 新增导入torch!!! import gc # ✅ 必须在文件顶部 新增导入gc!!! 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, 640) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480) 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=False, # display the output region=region_points, # pass region points model="yolo26x.pt", # model="yolo26n-obb.pt" for object counting with OBB model. device="mps", half=False, conf=0.3, # 置信度调高一点,减少无效检测,加速推理 iou=0.45, # NMS IOU阈值 max_det=50, # 每张图像的最大检测数量 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) # 显存+内存清理,根治耗时上涨 try: torch.mps.empty_cache() except Exception: pass gc.collect() cv2.imshow(f'Camera M2 Pro | 推理≈13ms 跟踪≈9ms | 按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()
http://www.jsqmd.com/news/263871/

相关文章:

  • 【Linux】带上时区
  • 视觉语言导航(VLN)入门基础! - MKT
  • 数论1:整除、同余、质数筛
  • MySQL Buffer Pool深度解析:当缓存页不足时如何基于LRU算法进行淘汰 - 详解
  • 内存管理-MMU
  • 1.18假期记录
  • 区间dp
  • STM32-S57-烟雾浓度+温度+人体防盗报警+水泵+风扇+TFT彩屏+阈值+声光报警+(无线方式选择)(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 综述《导航定位与授时》封面丨飞行器视觉导航新时代——从地形匹配到空间智能 - MKT
  • STM32-S184-车位感应+停车引导+闸道控制+车道防夹+计时计费+结算+OLED屏+声光报警+按键+(无线方式选择)(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫
  • AI Agent在智能新闻事件检测中的应用
  • 【六杆】基于matlab六杆快速回归机制运动学和动力学分析【含Matlab源码 14990期】
  • 应用——基于 51 单片机的多功能嵌入式系统
  • 2026国产时序数据库:格局演变下金仓融合多模架构的差异化突围
  • 面试 Java 基础八股文十问十答第十四期
  • 深度测评8个一键生成论文工具,MBA论文写作必备!
  • 【机翼】基于matlab三维机翼几何进行耦合静态气弹性分析【含Matlab源码 14991期】
  • 医疗数据用KNN插补稳缺失值
  • 深度测评8个AI论文平台,继续教育学生轻松搞定毕业论文!
  • 【案例】某零售品牌AI驱动的库存与品牌营销联动系统:架构师的设计思路
  • 【飞机】基于matlab倾转旋翼飞机齿轮箱建模与仿真(含非线性阻尼和立方摩擦效应)【含Matlab源码 14988期】
  • web手势剑阵(开源)
  • LangGraph详解:构建智能代理工作流的新范式
  • 【机翼】三维机翼几何进行耦合静态气弹性分析【含Matlab源码 14991期】
  • 【流体】基于matlab上风及一阶、二阶中心差分方案二维稳态对流扩散方程分析【含Matlab源码 14989期】含报告
  • vue学习笔记四
  • 【流体】上风及一阶、二阶中心差分方案二维稳态对流扩散方程分析【含Matlab源码 14989期】含报告
  • 【LeetCode热题100】Java详解:从前序与中序遍历序列构造二叉树(含递归/迭代双解法与工程实践)
  • YOLO26 改进 - 注意力机制 | 空间增强注意力SEAM(Spatially Enhanced Attention Module)提升遮挡场景检测鲁棒性
  • 【信号识别】TFMix:时频域融合赋能特定辐射源识别,领域泛化性能再突破【附python代码】