图像分类-虚拟IoT硬件和RaspberryPi


文档摘要

图像分类 - 虚拟IoT硬件和Raspberry Pi 在这节课的这一部分,你将把相机拍摄到的图像发送到自定义视觉服务以对其进行分类。 向自定义视觉发送图像 自定义视觉服务提供了一个Python SDK来对图像进行分类。 任务 - 向自定义视觉发送图像 在VS Code中打开 文件夹。如果你使用的是虚拟IoT设备,请确保虚拟环境在终端中运行。 发送图像到自定义视觉的Python SDK作为一个Pip包可用。使用以下命令安装它: 在 文件顶部添加以下导入语句: 这些语句从自定义视觉库中引入了一些模块,一个是用于通过预测密钥进行身份验证的模块,另一个是提供一个可以调用自定义视觉的预测客户端类。

图像分类 - 虚拟IoT硬件和Raspberry Pi

在这节课的这一部分,你将把相机拍摄到的图像发送到自定义视觉服务以对其进行分类。

向自定义视觉发送图像

自定义视觉服务提供了一个Python SDK来对图像进行分类。

任务 - 向自定义视觉发送图像

  1. 在VS Code中打开fruit-quality-detector文件夹。如果你使用的是虚拟IoT设备,请确保虚拟环境在终端中运行。

  2. 发送图像到自定义视觉的Python SDK作为一个Pip包可用。使用以下命令安装它:

    pip3 install azure-cognitiveservices-vision-customvision
  3. app.py文件顶部添加以下导入语句:

    from msrest.authentication import ApiKeyCredentials from azure.cognitiveservices.vision.customvision.prediction import CustomVisionPredictionClient

    这些语句从自定义视觉库中引入了一些模块,一个是用于通过预测密钥进行身份验证的模块,另一个是提供一个可以调用自定义视觉的预测客户端类。

  4. 在文件末尾添加以下代码:

    prediction_url = '<prediction_url>' prediction_key = '<prediction key>'

    <prediction_url> with the URL you copied from the Prediction URL dialog earlier in this lesson. Replace <prediction key>替换为你从同一对话框复制的预测密钥。

  5. 预测URL是由“预测URL”对话框提供的,设计用于直接调用REST端点。Python SDK在不同地方使用了URL的不同部分。添加以下代码以将此URL拆分为所需的部分:

    parts = prediction_url.split('/') endpoint = 'https://' + parts[2] project_id = parts[6] iteration_name = parts[9]

    这会将URL拆分,提取出https://<location>.api.cognitive.microsoft.com的端点、项目的ID以及已发布的迭代名称。

  6. 使用以下代码创建一个预测器对象来进行预测:

    prediction_credentials = ApiKeyCredentials(in_headers={"Prediction-key": prediction_key}) predictor = CustomVisionPredictionClient(endpoint, prediction_credentials)

    prediction_credentials包装了预测密钥。然后这些密钥被用来创建一个指向端点的预测客户端对象。

  7. 使用以下代码将图像发送到自定义视觉:

    image.seek(0) results = predictor.classify_image(project_id, iteration_name, image)

    这会将图像回绕到开头,然后将其发送给预测客户端。

  8. 最后,使用以下代码显示结果:

    for prediction in results.predictions: print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')

    这将在终端中循环遍历所有返回的预测并显示它们。返回的概率是从0到1的浮点数,其中0表示匹配标签的几率为0%,1表示匹配标签的几率为100%。

    图像分类器将为所有使用的标签返回百分比。每个标签都会有一个概率,表明该图像与该标签匹配的可能性。

  9. 运行你的代码,将摄像头对准一些水果,或适当的图像集,或如果使用虚拟IoT硬件,则对准摄像头中的水果。你将在控制台中看到输出:

    (.venv) ➜ fruit-quality-detector python app.py ripe: 56.84% unripe: 43.16%

    你将能够看到拍摄到的图像,并在自定义视觉的“预测”选项卡中查看这些值。

    香蕉在自定义视觉中预测为成熟56.8%和未成熟43.1%

你可以在code-classify/picode-classify/virtual-iot-device文件夹中找到此代码。

你的水果质量分类程序成功了!

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


作者与出处
原作者: microsoft
来源:microsoft
许可证:MIT
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: microsoft 转发
评论区 (0)
U