高通 SNPE sdk 和 SSD 模型

Posted

技术标签:

【中文标题】高通 SNPE sdk 和 SSD 模型【英文标题】:Qualcomm SNPE sdk and SSD model 【发布时间】:2018-03-11 16:40:37 【问题描述】:

我尝试使用 Qualcomm SNPE 在我的骁龙 820 上集成优化 SSD 模型计算。我成功地将 SSD TensorFlow 模型转换为 DLC 文件。

没有整合 SSD 模型的例子我尝试了不同的解决方案但没有成功。

有人找到示例或有解决方案可以在 snpe run net 可执行文件上使用吗?

编辑:

首先,当我生成 dlc 模型(来自 tensorflow 模型 github)时,我得到了输出(这似乎不正确):

./snpe-tensorflow-to-dlc --graph /home/xavier/Downloads/frozen_inference_graph.pb  -i Preprocessor/sub 300,300,3 --out_node detection_classes --out_node detection_boxes --out_node detection_scores --dlc mobilenet_ssd.dlc --allow_unconsumed_nodes
2018-03-11 22:34:33.243539: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2018-03-11 22:34:34.505804: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[1890] has already been set.
2018-03-11 22:34:34.505849: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[1847] has already been set.
2018-03-11 22:34:34.505869: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[2137] has already been set.
2018-03-11 22:34:34.505884: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[2140] has already been set.
2018-03-11 22:34:34.505924: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[2143] has already been set.
2018-03-11 22:34:34.505935: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[2141] has already been set.
2018-03-11 22:34:34.505950: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[2144] has already been set.
2018-03-11 22:34:34.505964: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[2146] has already been set.
2018-03-11 22:34:34.505977: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[2148] has already been set.
2018-03-11 22:34:34.505991: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[2150] has already been set.
2018-03-11 22:34:34.506004: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[2138] has already been set.
2018-03-11 22:34:34.506020: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[1851] has already been set.
2018-03-11 22:34:34.506027: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[1848] has already been set.
2018-03-11 22:34:34.506036: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[1850] has already been set.
2018-03-11 22:34:34.506055: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[1849] has already been set.
2018-03-11 22:34:34.506483: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[1857] has already been set.
2018-03-11 22:34:34.506535: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[1855] has already been set.
2018-03-11 22:34:34.506539: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[1853] has already been set.
2018-03-11 22:34:34.506561: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[1854] has already been set.
2018-03-11 22:34:34.506547: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[1856] has already been set.
2018-03-11 22:34:34.506574: W tensorflow/core/framework/op_kernel.cc:1202] OP_REQUIRES failed at function_ops.cc:80 : Internal: Retval[1852] has already been set.
2018-03-11 22:34:34,512 - 391 - WARNING - ERROR_TF_FALLBACK_TO_ONDEMAND_EVALUATION: Unable to resolve operation output shapes in single pass. Using on-demand evaluation!

然后我为 snpe-net-run 生成输出:

./snpe-net-run --container ./mobilenet_ssd.dlc --input_list ../../models/inception_v3/data/cropped/raw_list.txt

对每张图片,生成detection_classes:0.raw文件。

该文件不为空,但似乎所有图像都相同。

这是我得到的示例文件:

http://www.filedropper.com/detectionclasses0

【问题讨论】:

【参考方案1】:

您可以在SDK/docs/html/tutorial_alexnet.html中找到snpe-net-run的用法

【讨论】:

谢谢,我修改主帖上传

以上是关于高通 SNPE sdk 和 SSD 模型的主要内容,如果未能解决你的问题,请参考以下文章

高通平台开发系列讲解(AI篇)SNPE工作流程介绍

高通平台开发系列讲解(AI篇)如何让yolov5运行在SNPE

高通平台开发系列讲解(AI篇)如何让MTCNN运行在SNPE

Windows 10下配置高通hexagon sdk环境

Windows 10下配置高通hexagon sdk环境

高通平台开发系列讲解(AI篇)高通神经网络处理引擎工作流程详解