检查来自物联网设备的水果质量 本课概览的草图笔记 草图笔记由 Nitya Narasimhan 绘制。点击图片查看大图。 预习测验 预习测验 引言 在上一课中,你学习了图像分类器以及如何训练它们以检测好与坏的水果。要在物联网应用中使用这种图像分类器,你需要能够使用某种相机捕获图像,并将该图像发送到云端进行分类。 在这一课中,你将学习相机传感器及其如何与物联网设备一起使用以捕获图像。你还将学习如何从你的物联网设备调用图像分类器。 在这节课中我们将涵盖: 相机传感器 使用物联网设备捕获图像 发布你的图像分类器 从你的物联网设备分类图像 改进模型 相机传感器 如名称所示,相机传感器是可以连接到物联网设备的摄像头。它们可以拍摄静态图像或捕捉流媒体视频。

草图笔记由 Nitya Narasimhan 绘制。点击图片查看大图。
在上一课中,你学习了图像分类器以及如何训练它们以检测好与坏的水果。要在物联网应用中使用这种图像分类器,你需要能够使用某种相机捕获图像,并将该图像发送到云端进行分类。
在这一课中,你将学习相机传感器及其如何与物联网设备一起使用以捕获图像。你还将学习如何从你的物联网设备调用图像分类器。
在这节课中我们将涵盖:
如名称所示,相机传感器是可以连接到物联网设备的摄像头。它们可以拍摄静态图像或捕捉流媒体视频。有些会返回原始图像数据,而另一些则会将图像数据压缩成JPEG或PNG等图像文件。通常,与物联网设备配合使用的摄像头比你习惯的要小得多、分辨率低得多,但你也可以获得高分辨率摄像头,其性能可与高端手机媲美。你可以获取各种可互换镜头、多摄像头设置、红外热像仪或紫外线相机。

大多数相机传感器使用图像传感器,每个像素都是一个光电二极管。镜头将图像聚焦在图像传感器上,成千上万甚至数百万个光电二极管检测落在每个像素上的光,并将其记录为像素数据。
镜头会反转图像,相机传感器随后将图像翻转回正确的方向。这在你的眼睛中也是相同的——你在视网膜上看到的图像是倒置的,然后你的大脑会纠正它。
图像传感器被称为有源像素传感器(APS),其中最流行的APS类型是互补金属氧化物半导体传感器,或称CMOS。你可能听说过用于相机传感器的CMOS传感器这个术语。
相机传感器是数字传感器,发送图像数据作为数字数据,通常借助提供通信的库。摄像头通过SPI等协议连接,以便它们能够发送大量数据——图像比来自传感器(如温度传感器)的单个数字要大得多。
✅ 物联网设备在图像大小方面有什么限制?考虑特别是在微控制器硬件方面的约束。
你可以使用你的物联网设备捕获并拍摄一张待分类的图像。
根据相关指南完成捕获图像的任务:
你在上一课中训练了你的图像分类器。在可以从你的物联网设备使用之前,你需要发布模型。
当你的模型在上一课中训练时,你可能会注意到“性能”标签旁边显示了迭代次数。当你第一次训练模型时,你会看到“迭代1”。当你使用预测图像改进模型时,你将看到“迭代2”。
每次训练模型时,都会得到一个新的迭代版本。这是跟踪不同数据集训练的不同模型版本的一种方式。当你执行“快速测试”时,有一个下拉菜单可以选择迭代版本,因此你可以跨多个迭代比较结果。
当你对某个迭代满意时,你可以发布它,使其可供外部应用程序使用。这样你就可以有一个发布的版本供你的设备使用,然后在多个迭代中开发新版本,一旦满意就发布新版本。
迭代版本是在自定义视觉门户中发布的。
在 CustomVision.ai 启动自定义视觉门户并登录(如果尚未打开)。然后打开你的fruit-quality-detector项目。
选择顶部选项中的“性能”标签。
从侧面的“迭代”列表中选择最新的迭代。
选择该迭代的“发布”按钮。

在“发布模型”对话框中,将“预测资源”设置为你在上一课创建的fruit-quality-detector-prediction资源。将名称保留为Iteration2,然后选择“发布”按钮。
一旦发布,选择“预测URL”按钮。这将显示预测API的详细信息,你需要这些详细信息来从你的物联网设备调用模型。较低部分标记为“如果你有一个图像文件”,这就是你需要的细节。复制显示的URL,它将是类似:
https://<location>.api.cognitive.microsoft.com/customvision/v3.0/Prediction/<id>/classify/iterations/Iteration2/image
其中<location> will be the location you used when creating your custom vision resource, and <id>将是由字母和数字组成的长ID。
另外,复制“预测密钥”值。这是一个安全密钥,你需要在调用模型时传递。只有传递此密钥的应用程序才被允许使用模型,其他应用程序会被拒绝。

✅ 当发布新的迭代版本时,它的名称会有所不同。你认为你会如何更改物联网设备正在使用的迭代?
你现在可以使用这些连接详细信息从你的物联网设备调用图像分类器。
根据相关指南完成使用你的物联网设备分类图像的任务:
你可能会发现,当你使用连接到你的物联网设备的相机时,得到的结果可能与预期不符。预测并不总是像从电脑上传图像那样准确。这是因为模型是在不同的数据集上训练的,与用于预测的数据不同。
为了获得最佳的图像分类器结果,你希望使用尽可能接近用于预测的图像进行训练的图像。例如,如果你使用手机摄像头拍摄用于训练的图像,那么图像的质量、清晰度和色彩将与连接到物联网设备的相机不同。

在上面的图片中,左边的香蕉图片是使用Raspberry Pi摄像头拍摄的,右边的是在同一位置用iPhone拍摄的同一香蕉。可以看出质量差异——iPhone图片更清晰,颜色更鲜艳,对比度更高。
✅ 除了环境因素外,还有哪些因素可能导致你的物联网设备捕获的图像产生错误预测?考虑物联网设备可能被使用的环境,哪些因素会影响捕获的图像?
要改进模型,你可以使用物联网设备捕获的图像重新训练它。
使用你的物联网设备对成熟的和未成熟的水果进行多次分类。
在自定义视觉门户中,使用“预测”标签上的图像重新训练模型。
⚠️ 如果需要,可以参考 第1课中的重新训练分类器的说明。
如果你的图像看起来与最初用于训练的图像有很大不同,你可以通过在“训练图像”标签中选择它们并选择“删除”按钮来删除所有原始图像。要选择一个图像,请将鼠标移到它上面,会出现一个勾选框,选择该勾选框以选择或取消选择图像。
训练模型的新迭代版本并按照上述步骤发布。
更新代码中的端点URL并重新运行应用程序。
重复这些步骤,直到你对预测结果满意为止。
图像分辨率或照明如何影响预测?
尝试改变设备代码中的图像分辨率,看看是否会影响图像质量。另外尝试改变照明条件。
如果你要创建一个生产设备出售给农场或工厂,你会如何确保它始终提供一致的结果?
你通过门户训练了自定义视觉模型。这依赖于可用的图像——而在现实世界中,你可能无法获得与设备摄像头捕获匹配的训练数据。你可以通过直接从设备使用训练API来解决这个问题,以使用物联网设备捕获的图像训练模型。
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。