Я обучил модель обнаружения объектов с использованием AutoML Vision, которая затем была экспортирована как файл сохраненный_модель.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.
Я пытался изменить вхождения string на bytes в сохраненный_модель.pb после прочтения ответь где-нибудь. В этом случае код обрывается с необработанным исключением.
Кроме того, если я пытаюсь разбить файл на части с помощью tf.gfile.FastGile()
, это дает google.protobuf.message.DecodeError: Error parsing message
Вот сохраненная модель - Модель
Есть идеи, как импортировать эту модель в OpenCV?