python - OpenCV 中的 Tensorflow 自定义模型

标签 python tensorflow opencv deep-learning computer-vision

我已经在 ssd_mobilenet_v1_coco 之上为自定义数据集训练了新模型。该模型在 tensorflow 中运行良好。但现在我想在 OpenCV 中使用它。

net = cv2.dnn.readNetFromTensorflow("model/frozen_inference_graph.pb", "model/protobuf.pbtxt")
detections = net.forward()

因此对于配置文件,我将 frozen_graph 转换为 pbtxt 并添加它。但是后来我得到了以下错误

[libprotobuf ERROR /home/chamath/Projects/opencv/opencv/3rdparty/protobuf/src/google/protobuf/text_format.cc:298] Error parsing text-format tensorflow.GraphDef: 731:5: Unknown enumeration value of "DT_RESOURCE" for field "type".

按照建议here我尝试使用 this线程中提到的配置文件,但是当我使用它时,对象检测无法正常工作。检测到的方 block 数量不正确,并且放错了位置。

有什么方法可以创建与 OpenCV 一起使用的 pbtxt 配置文件吗?或者关于如何使我的模型在 OpenCV 中工作的任何建议?

最佳答案

很可能您在训练后还没有生成合适的图。 您必须像这样转换图表:

python ../opencv/samples/dnn/tf_text_graph_ssd.py --input trained-inference-graphs/inference_graph_v5.pb/frozen_inference_graph.pb --output trained-inference-graphs/inference_graph_v5.pb/graph.pbtxt

然后将 .pbgraph.pbtxt 传递给应该适合您的 DNN.readNetFromTensorflow :)

关于python - OpenCV 中的 Tensorflow 自定义模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47737307/

相关文章:

python - 如何用代码更改Mayavi中的字体类型和大小?

Python 正则表达式前瞻

python - 在 NaN 处的 Cumsum 重置

python - 输入不是 RNN 和 TensorFlow 的序列

python-3.x - opencv 中的 bin/example_reg_map_test 错误

python - 使用 pyMongo 将 json 文件中保存的数据存储在 mongodb 中

python - 无法安装库以在Anaconda中打开音频文件

python - tf.keras.losses.categorical_crossentropy 是返回数组还是单个值?

c++ - 翻转图像以获得镜像效果

c++ - 比较两个人脸opencv