0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

丙丁先生的自学旅程 来源:丙丁先生的自学旅程 作者:丙丁先生的自学旅 2025-12-14 07:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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 重装库。

审核编辑 黄宇

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

    关注

    1

    文章

    3882

    浏览量

    52380
  • 目标检测
    +关注

    关注

    0

    文章

    235

    浏览量

    16574
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    摄像头系统的"第二层":当视频 AI 不再只读单帧

    ▌ 引言 对嵌入式和 IoT 工程师来说,摄像头接入 AI 的路径已经相当成熟:IPC 输出 RTSP ,边缘盒子跑推理,检测结果上传云端或触发本地动作。YOLOv8 轻量化版本在 RK3588
    的头像 发表于 05-19 16:08 70次阅读

    Air8101 + LuatOS 摄像头 RTMP 推实战教程

    Air8101是支持2.4G WIFI6和蓝牙(BLE 5.4)的 WiFi SoC,最大支持 200W 像素的静态图像拍照,支持1024*720分辨率的10寸屏显示,同时兼容DVP/USB摄像头即插即用,支持多路视频
    的头像 发表于 04-22 16:21 299次阅读
    Air8101 + LuatOS <b class='flag-5'>摄像头</b> RTMP 推<b class='flag-5'>流</b>实战教程

    【幸狐Omni3576边缘计算套件试用体验】YOLO26 板端部署

    识别、姿态估计、图像分割、图像分类、旋转框检测的项目设计,包括环境部署模型获取、关键代码、效果演示等。 项目介绍 准备工作:OpenCV 安装、Ultralytics 软件包安装、
    发表于 04-19 22:02

    摄像头可靠性EMC设计优化

    一前言摄像头作为现代电子设备的重要组成部分,已广泛应用于智能手机、安防监控、自动驾驶等领域。详细了解摄像头,不仅有助于我们更好地使用相关设备,也为后续探讨其应用场景和技术优化奠定了基础,并且能快速
    的头像 发表于 04-07 11:34 258次阅读
    <b class='flag-5'>摄像头</b>可靠性EMC设计优化

    米尔RK3576+Hailo-8突破6 TOPS极限,让高帧率摄像头真正“实时”

    in streaming mode (average) = 3.07729 W (max) = 3.13305 W 7毫秒的推理延迟意味着:即使是 120fps的高速摄像头 ,系统也能轻松应对,做到逐帧实时处理
    发表于 04-02 18:03

    YOLO5目标检测方案-基于米尔RK3576开发板

    实时性:完成从摄像头采集→NPU推理→屏幕显示的完整流程,耗时不超过摄像头一帧的时间。 输入/输出:尽可能提高摄像头
    发表于 01-22 19:21

    基于米尔MYC-LR3576开发板的实时视频识别系统设计与实现

    实时性视频识别系统。重点解决了多路视频处理、NPU加速模型部署、低延迟推理等关键问题,在工业安
    发表于 12-01 21:23

    如何在大核rtt上把kd_mpi_vicap_start_stream三个摄像头各自出的拼成一个呢?

    我要3个摄像头在同一个画面,目前vi采集部分跑的配置摄像头各自出的就已经是960*540,最后启动kd_mpi_vicap_start_stream。 四宫格排列刚好是1080p,就
    发表于 09-09 07:20

    【EASY EAI Orin Nano开发板试用体验】使用stream推代码和WEB服务器代码实现在客户端网页上查看摄像头图像

    重点。在嵌入式系统中,对摄像头图像的推可以用两种方式,第一种是直接使用液晶显示屏显示摄像头图像,第二种就是在WEB服务器网页上推
    发表于 08-11 23:15

    红外摄像头模组是什么?科技时代的眼睛

    深入探讨红外摄像头模组的工作原理、应用领域以及选择红外摄像头时需要考虑的因素。什么是红外摄像头模组?红外摄像头模组是一种能够捕捉红外线图像
    的头像 发表于 07-31 10:07 1493次阅读
    红外<b class='flag-5'>摄像头</b>模组是什么?科技时代的眼睛

    360环视技术推荐的硬件平台:支持多摄像头与三屏异显的理想选择

    硬件平台选型360环视的落地并不简单。它不仅需要多个高清摄像头的数据输入,还需要稳定的图像处理能力、强大的AI推理能力,以及足够多的视频输出接口支持显示需求。很多开发者在选型时会遇到一
    发表于 07-30 17:32

    迅为RK3576开发板摄像头实时推理测试-ppseg 图像分割

    迅为RK3576开发板摄像头实时推理测试-ppseg 图像分割
    的头像 发表于 07-11 14:31 1141次阅读
    迅为RK3576开发板<b class='flag-5'>摄像头</b>实时<b class='flag-5'>推理</b>测试-ppseg <b class='flag-5'>图像</b>分割

    【正点原子STM32MP257开发板试用】基于 DeepLab 模型图像分割

    == \'__main__\': main() 效果 USB 摄像头采集实时画面的图像分割推理效果 终端打印信息 动态识别效果见顶部视频
    发表于 06-21 21:11

    K230micropython下能实现同时用USB摄像头和板载摄像头YOLO识别并显示在IDE上吗?

    K230micropython下能实现同时用USB摄像头和板载摄像头YOLO识别并显示在IDE上吗?以及如何提高USB进行YOLO识别的帧数?
    发表于 06-20 06:35

    usb摄像头输入的图像,哪种格式才能让yolo正常检测?

    = yolo.run(img)这一步会导致系统卡死,应该是图片格式不符合 yolo用的自训练yolov11模型,使用默认的板载摄像头没有问题。 软硬件版本信息 立创庐山派CANMV
    发表于 06-13 07:55