库存检查来自物联网设备 本课概述的草图笔记 草图笔记由 Nitya Narasimhan 制作。点击图片查看大图。 预习测验 预习测验 导论 在上一课中,你了解了对象检测在零售中的不同用途,并学习了如何训练对象检测器来识别库存。在这节课中,你将学习如何使用你的物联网设备上的对象检测器来清点库存。 这节课我们将涵盖以下内容: 库存清点 从物联网设备调用对象检测器 边界框 重新训练模型 清点库存 这是这个项目的最后一课,所以在完成本课程和作业后,别忘了清理云服务。你需要这些服务来完成作业,所以请先完成作业。 如需清理项目,请参阅 清理项目指南。 库存清点 对象检测器可用于库存清点,既可以清点库存数量,也可以确保库存放置正确。

草图笔记由 Nitya Narasimhan 制作。点击图片查看大图。
在上一课中,你了解了对象检测在零售中的不同用途,并学习了如何训练对象检测器来识别库存。在这节课中,你将学习如何使用你的物联网设备上的对象检测器来清点库存。
这节课我们将涵盖以下内容:
这是这个项目的最后一课,所以在完成本课程和作业后,别忘了清理云服务。你需要这些服务来完成作业,所以请先完成作业。
如需清理项目,请参阅 清理项目指南。
对象检测器可用于库存清点,既可以清点库存数量,也可以确保库存放置正确。可以在商店各处部署带有摄像头的物联网设备来监控库存,特别是那些需要经常补货的重要区域,例如存放少量高价值物品的地方。
例如,如果摄像头正对着一个能放8罐番茄酱的架子,而对象检测器只检测到7罐,那么就少了一罐,需要补货。

在上述图像中,对象检测器在能容纳8罐番茄酱的架子上检测到了7罐。物联网设备不仅可以发送需要补货的通知,还可以提供缺失物品的位置信息,这对于使用机器人补货非常重要。
根据商店和商品的受欢迎程度,如果只缺一罐,可能不会立即补货。你需要建立一个算法,根据你的产品、顾客和其他标准来决定何时补货。
✅ 在哪些其他场景中可以结合对象检测和机器人?
有时错误的库存会被放在货架上。这可能是补货时的人为错误,或者是顾客改变了购买想法,把商品随意放回某个位置。如果是非易腐品,如罐头食品,这可能只是个麻烦。但如果是一些易腐品,如冷冻或冷藏食品,这可能导致商品无法销售,因为很难判断商品在冰箱外待了多久。
对象检测可以用来检测异常物品,再次提醒人类或机器人尽快归位。

在上述图像中,一罐玉米粒被放在了番茄酱旁边的架子上。对象检测器检测到了这一情况,允许物联网设备通知人类或机器人将罐子放回正确的位置。
你在上一课训练的对象检测器可以从你的物联网设备调用。
迭代是在自定义视觉门户发布的。
打开 CustomVision.ai 并登录(如果尚未打开)。然后打开你的 stock-detector 项目。
从顶部选项中选择 性能 标签。
从侧边栏的 迭代 列表中选择最新迭代。
选择 发布 按钮。

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

✅ 当新迭代发布时,它将具有不同的名称。你认为如何更改物联网设备正在使用的迭代?
按照下面的相关指南,从你的物联网设备使用对象检测器:
当你使用对象检测器时,不仅会得到检测到的对象及其标签和概率,还会得到对象的边界框。这些边界框定义了对象检测器以给定概率检测到对象的位置。
边界框是一个定义包含检测到的对象区域的盒子,即定义对象边界的盒子。
在自定义视觉中的 预测 标签下的预测结果中,边界框会绘制在发送进行预测的图像上。

在上述图像中,检测到了4罐番茄酱。在结果中,每个检测到的对象上方都会叠加一个红色方框,表示该对象的边界框。
✅ 打开自定义视觉中的预测,检查边界框。
边界框由四个值定义——顶部、左侧、高度和宽度。这些值范围从0到1,表示图像大小的百分比。原点(0,0位置)位于图像左上角,因此顶部值是从顶部开始的距离,边界框底部则是顶部加上高度。

上述图像宽600像素,高800像素。边界框从320像素处开始,顶部坐标为0.4(800 x 0.4 = 320)。从左边开始,边界框从240像素处开始,左侧坐标为0.4(600 x 0.4 = 240)。边界框的高度为240像素,高度值为0.3(800 x 0.3 = 240)。边界框的宽度为120像素,宽度值为0.2(600 x 0.2 = 120)。
| 坐标 | 值 |
|---|---|
| 顶部 | 0.4 |
| 左侧 | 0.4 |
| 高度 | 0.3 |
| 宽度 | 0.2 |
使用从0到1的百分比值意味着无论图像缩放到多大,边界框都从图像的40%处开始,高度为30%,宽度为20%。
你可以结合概率和边界框来评估检测的准确性。例如,对象检测器可能会检测到重叠的对象,比如检测到一个罐子在另一个罐子内。你的代码可以检查边界框,发现这是不可能的,然后忽略与其他对象显著重叠的对象。

在上述示例中,一个边界框指示了一个预测概率为78.3%的番茄酱罐。第二个边界框稍小,完全包含在第一个边界框内,概率为64.3%。你的代码可以检查边界框,发现它们完全重叠,然后忽略较低概率的对象,因为不可能有一个罐子在另一个罐子里。
✅ 你能想到一种情况下,一个对象在另一个对象内部是合理的吗?
与图像分类器类似,你可以使用物联网设备捕获的数据重新训练你的模型。使用真实世界的数据将确保你的模型在从物联网设备使用时表现良好。
与图像分类器不同的是,你不能简单地为图像添加标签。相反,你需要逐个审查模型检测到的所有边界框。如果框错了,需要删除;如果位置不对,需要调整。
确保你已经使用物联网设备捕获了一系列图像。
在 预测 标签下,选择一张图像。你会看到红色方框表示检测到的对象的边界框。
遍历每个边界框。首先选择它,你会看到一个显示标签的弹出窗口。使用边界框角落的手柄调整大小(如果需要)。如果标签错误,使用 X 按钮删除并添加正确的标签。如果边界框不包含对象,使用垃圾桶按钮删除。
关闭编辑器,图像将从 预测 标签移动到 训练图像 标签。对所有预测重复此过程。
使用 训练 按钮重新训练你的模型。训练完成后,发布迭代并更新你的物联网设备以使用新迭代的URL。
重新部署代码并测试你的物联网设备。
通过组合检测到的对象数量和边界框,你可以清点货架上的库存。
按照下面的相关指南,使用来自物联网设备的对象检测器的结果来清点库存:
能否检测错误的库存?训练你的模型以识别多种物体,然后更新你的应用程序以在检测到错误库存时向你发出警报。
甚至可以进一步检测同一货架上的相邻库存,并通过定义边界框的限制来查看是否有些东西放错了地方。
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。