Skip to content

视觉识别功能

功能概述

py-xiaozhi提供了摄像头控制和视觉识别功能,支持通过语音命令打开/关闭摄像头,以及对摄像头捕获的画面进行智能识别分析。

配置说明

视觉识别功能需要在配置文件中进行相关设置:

json
"CAMERA": { 
  "camera_index": 0,         // 摄像头索引,0通常是电脑内置摄像头
  "frame_width": 640,        // 画面宽度
  "frame_height": 480,       // 画面高度
  "fps": 30,                 // 帧率
  "Loacl_VL_url": "https://open.bigmodel.cn/api/paas/v4/", // 智普API地址
  "VLapi_key": "你的key",     // 智普视觉大模型API密钥
  "models": "glm-4v-plus"    // 使用的视觉模型
}

智普视觉大模型配置

  1. 访问 智普AI开放平台
  2. 注册账号并创建API密钥
  3. 将获取的API密钥配置到config.jsonCAMERA.VLapi_key字段
  4. 可以选择使用的模型,默认为glm-4v-plus

使用方法

语音命令控制

系统支持以下语音命令控制摄像头和视觉识别功能:

  • 打开摄像头:激活系统摄像头,开始捕获视频流
  • 关闭摄像头:停止摄像头捕获
  • 识别画面:对当前摄像头画面进行智能视觉分析,识别画面中的内容
  • 分析图像:对当前画面进行详细视觉分析并提供描述
  • 看到了什么:询问当前摄像头看到的内容

GUI 界面控制

在图形界面模式下,可以通过界面上的相关按钮控制摄像头功能。

内部实现

视觉识别功能通过IoT模块中的CameraVL设备类实现,主要由Camera和VL两个组件组成:

  1. Camera 组件:负责摄像头的基本控制,如开启、关闭、获取视频帧等
  2. VL(Vision Language)组件:负责对图像进行智能分析,调用智普视觉大模型API

实现结构:

CameraVL                 # 摄像头与视觉识别集成设备
├── Camera.py            # 摄像头控制模块
└── VL.py                # 视觉语言分析模块

工作流程

  1. 用户通过语音命令打开摄像头
  2. 系统激活摄像头并在界面显示视频流
  3. 用户请求识别当前画面
  4. 系统截取当前帧,并将图像发送给智普视觉大模型
  5. 获取视觉分析结果并通过语音或文字反馈给用户

隐私说明

视觉识别功能会使用您的摄像头并处理画面内容,请注意:

  1. 摄像头捕获的画面仅用于本地分析或发送至智普API进行分析
  2. 非语音命令控制时,摄像头处于关闭状态
  3. 可以在配置中修改摄像头设置或完全禁用此功能

常见问题

  1. 摄像头无法打开

    • 确认您的设备有可用摄像头
    • 检查摄像头是否被其他应用占用
    • 确认已授予应用使用摄像头的权限
  2. 视觉识别功能无响应

    • 检查智普API密钥是否正确配置
    • 确认网络连接正常
    • 检查是否超出API调用次数限制
  3. 识别结果不准确

    • 尝试改善摄像头光线条件
    • 确保目标对象在画面中清晰可见
    • 可能需要升级智普视觉模型版本
  4. 摄像头画面卡顿

    • 尝试在配置中降低分辨率或帧率
    • 关闭其他占用系统资源的应用
    • 更新摄像头驱动