【发布时间】:2020-09-09 01:52:49
【问题描述】:
我正在使用 OpenVino 最近的工具包:l_openvino_toolkit_runtime_raspbian_p_2020.2.120.tgz 覆盆子 - Pi4。 打开 CV 4.3.0-openvino。
尝试将 OpenCV DNN 与 tensorflow net 和 caffe 一起使用。但是在 net.forward() 调用中出现分段错误。
以下是 Python 中 tensorflow 的代码。我不知道如何进行和解决它。我尝试搜索,但找不到可行的解决方案。
我正在做的步骤(路径配置正确)
初始化张量流网络
tensorflowNet = cv2.dnn.readNetFromTensorflow(PATH_TO_CKPT, PATH_TO_LABELS)
tensorflowNet.setPreferableTarget(cv2.dnn.DNN_TARGET_MYRIAD) ##设置使用NCS2
将 Blob 传递到 TensorFlow 网络
blob = cv2.dnn.blobFromImage(frame, size=(300, 300), swapRB=True, crop=False)
通过网络传递 blob 并获得检测结果
tensorflowNet.setInput(blob)
打印(“转发前”)
检测 =tensorflowNet.forward()
print("前进后")
.forward 方法失败。控制台输出如下。
pi@raspberrypi:~/guardeyelite $ python3 OpenCVTensorFlow.py 找到框架
处理完成
前进之前
分段错误
【问题讨论】:
-
有机会分享您正在使用的模型和源代码吗?这将有助于重现您的错误。您是否尝试过在 PC 上运行您的应用程序?使用其他后端?
-
代码,大致如上。没什么复杂的。我有 ssd inception v2 文件。冻结的推理图和 pbtxt 文件(由 TF 使用 text to graph 实用程序生成)。我没有在任何机器上尝试。是否可以通过其他渠道与您分享代码?
-
使用 GDB Python3 时 - 我得到以下信息:[新线程 0xa0a29460 (LWP 3574)] 线程 1 "python3" 收到信号 SIGSEGV,分段错误。 0xaefeeeda 在 ?? () 来自 /opt/intel/openvino/deployment_tools/ngraph/lib/libngraph.so (gdb)
-
我猜测这个模型太复杂了,OpenCV阅读器无法正确解析。我建议使用以下命令通过模型优化器转换模型:
python3 ./mo.py --input_model ~/Downloads/ssd_inception_v2_coco_2018_01_28/frozen_inference_graph.pb --tensorflow_object_detection_api_pipeline_config ~/Downloads/ssd_inception_v2_coco_2018_01_28/pipeline.config --transformations_config ./extensions/front/tf/ssd_support.json,然后尝试通过readNetFromModelOptimizer读取模型。 -
更多关于将检测模型从 TensorFlow 转换为 OpenVINO 格式的信息:docs.openvinotoolkit.org/latest/… 如果您的模型与普通的 ssd inception v2 有所不同,我可以在本地设置中尝试一下。您可以在我的 Github 个人资料中找到我的联系人。
标签: opencv raspberry-pi intel openvino