weixin_38498942 2026-03-05 17:35 采纳率: 0%
浏览 4

6490平台上部署动作识别模型遇到如下问题

6490平台上部署动作识别模型遇到如下问题
在RB3 Gen2 Ubuntu 20.04上直接登录Edge Impulse平台时,会出现错误:
初始化Linux工具失败 错误:未找到任何网络摄像头
在 initCamera (/usr/lib/node_modules/edge-impulse-linux/build/library/sensors/sensors-helper.js:73:15)
在异步 /usr/lib/node_modules/edge-impulse-linux/build/cli/linux/linux.js:152:22
加载模型时找不到libQnnTFLiteDelegate.so :
edge-impulse-linux-runner --model-file resnet-3d-demo-linux-aarch64-qnn-v9.eim
分类失败,错误代码为 -3
很可能是由于缺少libQnnHtpV68Skel.so
它可以对视频里的动作进行分类,但结果几乎总是相同的。

  • 写回答

2条回答 默认 最新

  • 檀越@新空间 2026-03-05 17:36
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    您在 6490平台 上部署动作识别模型时遇到了多个问题,包括:

    1. 初始化Linux工具失败:错误提示为“未找到任何网络摄像头”。
    2. 加载模型时找不到 libQnnTFLiteDelegate.solibQnnHtpV68Skel.so
    3. 模型分类结果几乎相同

    以下是针对这些问题的详细解决方案和优化建议:


    ✅ 一、解决“初始化Linux工具失败”问题

    1.1 确认摄像头是否被系统识别

    • 检查 /dev/video0 是否存在:

      ls /dev/video*
      
      • 如果没有输出,说明摄像头未被正确识别或驱动未安装。
    • 安装摄像头驱动(如使用 USB 摄像头):

      sudo apt install v4l-utils
      
    • 测试摄像头是否正常工作:

      ffmpeg -i /dev/video0 -vf "fps=1" -q:v 2 output.jpg
      
      • 如果出现错误,可能是驱动或硬件问题。

    1.2 检查 Edge Impulse Linux 工具依赖

    • 确保所有依赖项已安装:

      sudo apt update
      sudo apt install libgomp1 libgl1 libsm6 libxrender1 libxext6
      
    • 安装 Node.js 和 npm(如果尚未安装):

      sudo apt install nodejs npm
      
    • 安装 Edge Impulse CLI:

      npm install edge-impulse-linux -g
      

    ✅ 二、解决 “找不到 libQnnTFLiteDelegate.so 和 libQnnHtpV68Skel.so” 问题

    2.1 确认 QNN SDK 是否已正确安装

    • QNN SDK 是 Qualcomm Neural Network (QNN) 的运行时库,用于加速模型推理。
    • 如果您使用的是 Snapdragon 6490 平台,需要确保 QNN SDK 正确安装并配置。

    2.1.1 下载 QNN SDK

    • 访问 Qualcomm Developer Network 获取对应版本的 SDK。
    • 安装 SDK 并设置环境变量:
      export LD_LIBRARY_PATH=/opt/qnn/lib:$LD_LIBRARY_PATH
      

    2.1.2 验证 libQnnTFLiteDelegate.solibQnnHtpV68Skel.so 是否存在

    • 查找文件位置:
      find /opt/qnn -name "libQnnTFLiteDelegate.so"
      find /opt/qnn -name "libQnnHtpV68Skel.so"
      
    • 如果不存在,请重新安装 QNN SDK 或确认是否支持您的平台。

    2.2 修改 Edge Impulse Runner 脚本以指定 QNN 库路径

    • 在启动模型前,手动设置 LD_LIBRARY_PATH
      export LD_LIBRARY_PATH=/opt/qnn/lib:$LD_LIBRARY_PATH
      edge-impulse-linux-runner --model-file resnet-3d-demo-linux-aarch64-qnn-v9.eim
      

    ✅ 三、解决“分类结果几乎相同”的问题

    3.1 检查模型训练数据质量

    • 类别不平衡:如果训练数据中某些类别的样本过少,模型可能倾向于预测高频类别。

      • 解决方法:对数据集进行重采样或增加少数类样本。
    • 标签错误:检查训练数据中的标签是否准确。

      • 可以使用 edge-impulse-cli 工具验证数据集。

    3.2 检查模型输入预处理是否正确

    • 确保视频帧的预处理(如归一化、缩放)与训练阶段一致。
    • 示例代码(Python):
      def preprocess_frame(frame):
          frame = cv2.resize(frame, (224, 224))
          frame = frame / 255.0
          return frame[np.newaxis, ...]
      

    3.3 检查模型量化或剪枝是否影响精度

    • 如果使用了量化或剪枝,可能导致精度下降。
    • 尝试使用原始 FP32 模型进行测试。

    3.4 检查模型导出格式是否正确

    • 确保模型是通过 Edge Impulse 平台正确导出的。
    • 检查 .eim 文件是否完整:
      file resnet-3d-demo-linux-aarch64-qnn-v9.eim
      

    ✅ 四、修改后的代码示例(可选)

    如果您需要手动调用模型,可以参考以下代码结构:

    # 设置 QNN 库路径
    export LD_LIBRARY_PATH=/opt/qnn/lib:$LD_LIBRARY_PATH
    
    # 启动 Edge Impulse 模型
    edge-impulse-linux-runner \
        --model-file resnet-3d-demo-linux-aarch64-qnn-v9.eim \
        --input-type video \
        --video-source /dev/video0 \
        --output-type console
    

    ✅ 五、总结

    | 问题 | 解决方案 | |------|----------| | 初始化失败 | 检查摄像头驱动和依赖库,安装必要组件 | | 缺少 QNN 库 | 安装 QNN SDK,设置 LD_LIBRARY_PATH | | 分类结果单一 | 检查训练数据、预处理逻辑、模型导出格式 |


    如果您仍然无法解决问题,建议提供完整的日志信息(edge-impulse-linux-runner 的输出),以便进一步排查。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月5日