使用基于IoT Edge的图像分类器对图像进行分类 - 虚拟IoT硬件和Raspberry Pi 在本课程的一部分中,你将使用运行在IoT Edge设备上的图像分类器。 使用IoT Edge分类器 IoT设备可以被重定向以使用基于IoT Edge的图像分类器。图像分类器的URL是 ,请将 替换为运行IoT Edge的计算机的IP地址或主机名。 自定义视觉的Python库仅适用于托管在云端的模型,而不是托管在IoT Edge上的模型。这意味着你需要使用REST API来调用分类器。 任务 - 使用IoT Edge分类器 如果尚未打开,则在VS Code中打开 项目。如果你正在使用虚拟IoT设备,请确保激活虚拟环境。 打开 文件,并删除来自 和 的导入语句。
在本课程的一部分中,你将使用运行在IoT Edge设备上的图像分类器。
IoT设备可以被重定向以使用基于IoT Edge的图像分类器。图像分类器的URL是http://<IP address or name>/image,请将<IP address or name>替换为运行IoT Edge的计算机的IP地址或主机名。
自定义视觉的Python库仅适用于托管在云端的模型,而不是托管在IoT Edge上的模型。这意味着你需要使用REST API来调用分类器。
如果尚未打开,则在VS Code中打开fruit-quality-detector项目。如果你正在使用虚拟IoT设备,请确保激活虚拟环境。
打开app.py文件,并删除来自azure.cognitiveservices.vision.customvision.prediction和msrest.authentication的导入语句。
在文件顶部添加以下导入语句:
import requests
删除从图像保存到文件之后的所有代码,即从image_file.write(image.read())到文件末尾的所有内容。
在文件末尾添加以下代码:
prediction_url = '<URL>' headers = { 'Content-Type' : 'application/octet-stream' } image.seek(0) response = requests.post(prediction_url, headers=headers, data=image) results = response.json() for prediction in results['predictions']: print(f'{prediction["tagName"]}:\t{prediction["probability"] * 100:.2f}%')
将<URL>替换为你分类器的URL。
这段代码会向分类器发出一个REST POST请求,将图像作为请求体发送。结果将以JSON格式返回,并解码后打印出概率。
运行你的代码,将摄像头对准一些水果,或者适当的图像集,或者如果使用虚拟IoT硬件则可见的水果。你将在控制台中看到输出:
(.venv) ➜ fruit-quality-detector python app.py ripe: 56.84% unripe: 43.16%
你可以在code-classify/pi或code-classify/virtual-iot-device文件夹中找到这段代码。
你的水果质量分类程序成功了!
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。