在OpenCV中导入AutoML边缘训练模型

时间:2020-03-10 20:04:15

标签: opencv tensorflow google-cloud-automl automl

我使用AutoML Vision训练了对象检测模型,然后将其导出为“ saved_model.pb ”文件。我可以使用以下几行代码来加载和运行此模型:

import tensorflow as tf    
with tf.Session(graph=tf.Graph()) as sess:
        tf.saved_model.loader.load(sess, ['serve'], export_path)
        output = sess.run("detection_boxes:0", feed_dict= { INPUT_NODE : [<some_image_in_binary>]})

当我尝试使用OpenCV v4.1.2的函数cv::dnn::readNetFromTensorflow("saved_model.pb")加载相同的模型时,它会显示以下消息:

[libprotobuf ERROR C:\build\master_winpack-build-win64-vc14\opencv\3rdparty\protobuf\src\google\protobuf\wire_format_lite.cc:629] String field 'opencv_tensorflow.FunctionDef.Node.ret' contains invalid UTF-8 data when parsing a protocol buffer. Use the 'bytes' type if you intend to send raw bytes.

在尝试阅读某处的答案后,我尝试将 saved_model.pb 中出现的“ 字符串”更改为“ 字节”。在这种情况下,代码会以未处理的异常中断。

此外,如果我尝试使用tf.gfile.FastGile()对该文件进行解析,它会产生google.protobuf.message.DecodeError: Error parsing message

这是保存的模型-Model

关于如何在OpenCV中导入此模型的任何想法?

0 个答案:

没有答案