tensorflow 使用Vertex AI的对象检测模型-如何正确地将输入作为图像浮点数传递32

mjqavswn  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(85)

我得到的是tensorflow 模型- .tflite文件和.pb文件+带/variables文件夹的labelmap.pbtxt文件。当我在我的应用程序上测试模型时,我使用.tflite文件,它工作得很好,但现在我决定将模型存储在服务器端。为了避免扩展,安全问题,我决定使用Vertex AI。
我能够使用.pb + labelmap.pbtxt文件导入我的模型,并创建端点到它=到目前为止一切顺利。现在,我确实想测试一下,这就是混乱的地方。
如果我前往DEPLOY AND TEST section,它需要发送JSON格式以接收响应。这与我的移动的应用程序有很大的不同,因为我只是将位图传递给模型,然后它检索结果。好吧,那很好,我想我可以编码base64格式的图像并将其传递给模型,但这是我不知道如何正确完成的地方。
Json示例:

{"instances": [{ "instance_key_1": "value", ... }, ...],"parameters": { "parameter_key_1": "value", ... }, ...}

parameter_key_1是什么?
我没有配置这样的东西。
我试过:

{ "instances": [ { "b64": "long_64_value_of_image" } ] }

{ "instances": [ { "image": "long_64_value_of_image" } ] }

我收到:“error”:“无法处理元素:0个“示例”列表。错误:INVALID_ARGUMENT:JSON值:...
是否有一些简单的方法来添加额外的配置(似乎我错过了一些东西在这里),并传递简单的预处理图像(在客户端已经完成)到这个端点轻松(例如传递base64字符串并获得结果?).
根据我的.tflite模型文件所述(我假设.pb文件与我用于将模型上传到Vertex AI的文件相同):

Input Tensor: [<tf.Tensor 'input:0' shape=(1, 320, 320, 3) dtype=float32>, <tf.Tensor 'unknown:0' shape=() dtype=resource>...and

Output Tensor: [<tf.Tensor 'Identity:0' shape=() dtype=float32>, <tf.Tensor 'Identity_1:0' shape=() dtype=float32>, <tf.Tensor 'Identity_2:0'

如何构造json,将其作为Image<float32>传递?如有任何帮助,我们将不胜感激。

xqkwcwgp

xqkwcwgp1#

试试下面这些,让我们看看会发生什么。
JSON:

{
  "instances": [
    {
      "b64": "base64_encoded_image_string_here"
    }
  ]
}

注意:在您的案例中,您提到模型的输入Tensor定义为:

Input Tensor: [<tf.Tensor 'input:0' shape=(1, 320, 320, 3) dtype=float32>]

您需要确保'base64_encoded_image_string_here'对应的图像具有正确的形状和数据类型。在这种情况下,图像的形状应该是(1,320,320,3),数据类型应该是float32。
Python来构造JSON请求:

import json
import base64

# Load your image as a NumPy array (assuming you have it in this format)
image = ...

# Convert the NumPy array to a base64-encoded string
image_str = base64.b64encode(image.tobytes()).decode('utf-8')

# Create the JSON request
request_data = {
    "instances": [{"b64": image_str}]
}

# Convert the request to a JSON string
json_request = json.dumps(request_data)

参考:https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/explainable_ai/sdk_custom_image_classification_batch_explain.ipynb
https://cloud.google.com/vertex-ai/docs/general/base64

相关问题