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
它可以对视频里的动作进行分类,但结果几乎总是相同的。
6490平台上部署动作识别模型遇到如下问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
檀越@新空间 2026-03-05 17:36关注下午好🌅🌅🌅
本答案参考通义千问您在 6490平台 上部署动作识别模型时遇到了多个问题,包括:
- 初始化Linux工具失败:错误提示为“未找到任何网络摄像头”。
- 加载模型时找不到
libQnnTFLiteDelegate.so和libQnnHtpV68Skel.so。 - 模型分类结果几乎相同。
以下是针对这些问题的详细解决方案和优化建议:
✅ 一、解决“初始化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.so和libQnnHtpV68Skel.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的输出),以便进一步排查。解决 无用评论 打赏 举报