我正在使用 Azure Microsoft 自定义视觉。我已经创建了我的算法,我现在需要的是我的预测图像的 URL。我知道我可以使用Training API (get_tagged_images) 中编写的方法获取训练图像,但现在我正在尝试获取预测图像的 URL。在Prediction API中,没有 getter。
如果我在 Azure 自定义视觉门户中检查预测图像,我可以找到 blob URL,但我无法通过方法获取该 URL。
如何获取预测的图像 URL?
我正在使用 Azure Microsoft 自定义视觉。我已经创建了我的算法,我现在需要的是我的预测图像的 URL。我知道我可以使用Training API (get_tagged_images) 中编写的方法获取训练图像,但现在我正在尝试获取预测图像的 URL。在Prediction API中,没有 getter。
如果我在 Azure 自定义视觉门户中检查预测图像,我可以找到 blob URL,但我无法通过方法获取该 URL。
如何获取预测的图像 URL?
这些图像可通过QueryPredictions
培训 API 中的 API 获得。
REST 文档在这里。
Python 文档在这里。
您的代码可能如下所示:
from azure.cognitiveservices.vision.customvision.training import CustomVisionTrainingClient
from azure.cognitiveservices.vision.customvision.training.models import PredictionQueryToken
# Set your region
endpoint = 'https://<your region>.api.cognitive.microsoft.com'
# Set your Training API key
training_key = '<your training key>'
# Set your Project ID
project_id = '<your project id>'
# Query the stored prediction images
trainer = CustomVisionTrainingClient(training_key, endpoint=endpoint)
token = PredictionQueryToken()
response = trainer.query_predictions(project_id, token)
# Get the image URLs, for example
urls = [result.original_image_uri for result in response.results]
您描述中的API参考链接似乎不正确。Azure Microsoft Custom Vision APIs有几个版本,如下图,可以参考https://<your region, such as southcentralus>.dev.cognitive.microsoft.com/docs/services/?page=2
查看,获取训练图像的API属于训练阶段。
因此,如果您想获取训练图像的 url,首先您需要找出您现在使用的 Custom Vision Training 的版本。据我所知,您可以在 Azure 门户上订阅的Overview
&选项卡中查看版本信息。Quick start
例如,我的自定义视觉1.0
如下图所示。
图 1.Overview
选项卡
图 2.Quick start
选项卡,点击API reference
查看与版本相关的文档
所以我可以看到有三个 API 可以满足您的需求,如下图所示。
GetAllTaggedImages
这是我通过(v1.0)列出所有标记图像的示例代码。
import requests
projectId = "<your project id from project settings of Cognitive portal>"
endpoint = f"https://southcentralus.api.cognitive.microsoft.com/customvision/v1.0/Training/projects/{projectId}/images/tagged/all"
print(endpoint)
headers = {
'Training-key': '<key from keys tab of Azure portal or project settings of Cognitive portal>',
}
resp = requests.get(endpoint, headers=headers)
print(resp.text)
import json
images = json.loads(resp.text)
image_urls = (image['ImageUri'] for image in images)
for image_url in image_urls:
print(image_url)
希望能帮助到你。