Termux手机摄像头采集图像/视频流 部署 YOLO 模型推理

描述

在 Termux 中使用手机摄像头运行 YOLO 目标检测,核心是调用手机摄像头采集图像/视频流 + 部署 YOLO 模型推理 ,以下是可直接实践的步骤:

1. 环境准备(Termux 内执行)

  1. 升级 Termux 包并安装依赖

    pkg update && pkg upgrade -y
    pkg install python python-pip git ffmpeg libjpeg-turbo libopencv -y
    
  2. 安装 Python 核心库

    pip install numpy opencv-python ultralytics pillow
    
    • ultralytics 是 YOLOv8 官方库,支持一键调用模型;opencv-python 用于摄像头调用和图像处理。

2. 授权手机摄像头访问

Termux 需获取摄像头权限,执行以下命令:

termux-camera-photo test.jpg
  • 首次执行会弹出权限请求,选择 允许 ;若命令生成 test.jpg 文件,说明摄像头授权成功。

3. 运行 YOLO 实时检测代码

创建 Python 脚本 yolo_camera.py

nano yolo_camera.py

粘贴以下代码(支持实时摄像头流检测):

from ultralytics import YOLO
import cv2

# 加载 YOLOv8n 轻量化模型(自动下载)
model = YOLO("yolov8n.pt")

# 调用手机摄像头(Termux 中摄像头索引通常为 0)
cap = cv2.VideoCapture(0)
# 设置分辨率(可选,根据手机性能调整)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    
    # 模型推理(stream=True 提升实时性)
    results = model(frame, stream=True)
    
    # 绘制检测框和标签
    for r in results:
        boxes = r.boxes
        for box in boxes:
            x1, y1, x2, y2 = map(int, box.xyxy[0])
            conf = box.conf[0].item()
            cls = int(box.cls[0])
            label = f"{model.names[cls]} {conf:.2f}"
            # 画框 + 标签
            cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2)
            cv2.putText(frame, label, (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0,255,0), 2)
    
    # 显示检测结果
    cv2.imshow("YOLO Camera Detection", frame)
    
    # 按 q 退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

保存退出(Ctrl+O → 回车 → Ctrl+X

4. 启动检测程序

python yolo_camera.py
  • 首次运行会自动下载 YOLOv8n 模型(约 6MB);
  • 若弹出实时画面并显示目标检测框,说明运行成功。

常见问题排查

  1. 摄像头无法调用
    • 执行 termux-setup-storage 重新授权,或在手机设置 → 应用 → Termux → 权限 中手动开启摄像头权限。
  2. 推理卡顿
    • 改用更小模型(如 yolov8n.pt),或降低分辨率(设为 480x320);
    • 关闭其他后台程序,Termux 中可执行 renice -n -10 -p $$ 提升进程优先级。
  3. 缺少依赖报错
    • 执行 pip install --upgrade ultralytics opencv-python 重装库。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分