训练一个商品检测器


文档摘要

训练一个商品检测器 本课概览的草图笔记 草图笔记由 Nitya Narasimhan 创作。点击图片查看大图。 这个视频将概述使用 Azure 自定义视觉服务进行目标检测,这是本课将要介绍的服务。 自定义视觉 2 - 简易的目标检测 | Xamarin Show 点击上面的图像观看视频 预习测验 预习测验 引言 在上一个项目中,你使用人工智能训练了一个图像分类器——一种能够判断图像是否包含特定对象(如成熟水果或未成熟水果)的模型。另一种可以用于图像的人工智能模型是目标检测。这些模型不是通过标签来对图像进行分类,而是被训练以识别对象,并能在图像中找到它们,不仅能检测到对象的存在,还能检测到它们的位置。这使你能够计算图像中的对象数量。 在本课中,你将学习目标检测,包括它如何应用于零售业。

训练一个商品检测器

本课概览的草图笔记

草图笔记由 Nitya Narasimhan 创作。点击图片查看大图。

这个视频将概述使用 Azure 自定义视觉服务进行目标检测,这是本课将要介绍的服务。

点击上面的图像观看视频

预习测验

预习测验

引言

在上一个项目中,你使用人工智能训练了一个图像分类器——一种能够判断图像是否包含特定对象(如成熟水果或未成熟水果)的模型。另一种可以用于图像的人工智能模型是目标检测。这些模型不是通过标签来对图像进行分类,而是被训练以识别对象,并能在图像中找到它们,不仅能检测到对象的存在,还能检测到它们的位置。这使你能够计算图像中的对象数量。

在本课中,你将学习目标检测,包括它如何应用于零售业。你还将学习如何在云端训练一个目标检测器。

本课我们将涵盖:

目标检测

目标检测涉及使用人工智能检测图像中的对象。与你在上一个项目中训练的图像分类器不同,目标检测不是关于预测整个图像的最佳标签,而是关于在一个图像中找到一个或多个对象。

目标检测与图像分类的区别

图像分类是关于将整个图像进行分类——每种标签匹配整个图像的概率是多少。你会得到每个用于训练模型的标签的概率。

现金果和番茄酱的图像分类

在上面的例子中,两个图像使用一个训练过的模型分别分类为装有现金果的容器或罐头番茄酱。第一张图像是装有现金果的容器,图像分类器返回两个结果:

标签 概率
cashew nuts 98.4%
tomato paste 1.6%

第二张图像是罐头番茄酱,结果如下:

标签 概率
cashew nuts 0.7%
tomato paste 99.3%

你可以用一个阈值百分比来预测图像中的内容。但是,如果一张图像包含多个罐头番茄酱,或者同时包含现金果和番茄酱,结果可能不会给你想要的结果。这就是目标检测发挥作用的地方。

目标检测涉及训练一个模型来识别对象。与其告诉它每个图像是一个标签还是另一个标签,不如突出显示图像中包含特定对象的部分并标记该部分。你可以标记图像中的一个对象或多对象。这样,模型会学习对象本身的样子,而不仅仅是包含对象的图像的样子。

当你然后用它来预测图像时,而不是得到一个标签和概率列表,你会得到一个检测到的对象列表,以及它们的边界框和对象匹配分配标签的概率。

边界框 是围绕对象的方框。

现金果和番茄酱的目标检测

上面的图像同时包含一盒现金果和三罐番茄酱。目标检测器检测到了现金果,返回包含现金果的边界框,以及该边界框包含对象的概率,在这种情况下为 97.6%。目标检测器还检测到了三罐番茄酱,并提供了三个单独的边界框,每个检测到的罐头一个,每个都有一个百分比概率表示边界框包含一罐番茄酱。

✅ 想想你可能会用基于图像的人工智能模型的不同场景。哪些需要分类,哪些需要目标检测?

目标检测的工作原理

目标检测使用复杂的机器学习模型。这些模型通过将图像分成多个单元格,然后检查边界框中心是否与训练模型所使用的图像中心相匹配来工作。你可以将其想象为在图像的不同部分运行图像分类器以查找匹配项。

这是对复杂性的严重简化。有许多目标检测技术,你可以阅读更多关于它们的信息在 维基百科上的目标检测页面

有许多不同的模型可以进行目标检测。一个特别著名的是 YOLO (You Only Look Once),它可以非常快地检测出 20 种不同类别的对象,例如人、狗、瓶子和汽车。

✅ 阅读有关 pjreddie.com/darknet/yolo/ 上的 YOLO 模型的更多信息。

目标检测模型可以通过迁移学习重新训练以检测自定义对象。

在零售中使用目标检测

目标检测在零售中有多种用途。其中包括:

  • 库存检查和计数 - 识别货架上的库存是否不足。如果库存太低,可以向员工或机器人发送通知以补货。
  • 口罩检测 - 在公共健康事件期间,商店有口罩政策时,目标检测可以识别戴口罩和不戴口罩的人。
  • 自动结账 - 检测自动商店货架上拿走的商品并适当收费给顾客。
  • 危险检测 - 识别地板上的破损物品或溢出液体,提醒清洁人员。

✅ 做一些研究:目标检测在零售中的更多应用场景有哪些?

训练一个目标检测器

你可以使用自定义视觉训练一个目标检测器,类似于训练图像分类器的方式。

任务 - 创建一个目标检测器

  1. 为此项目创建一个名为 stock-detector 的资源组

  2. stock-detector 资源组中创建一个免费的自定义视觉训练资源和一个免费的自定义视觉预测资源。分别命名为 stock-detector-trainingstock-detector-prediction

    你只能有一个免费的训练和预测资源,所以请确保你已经清理了之前课程中的项目。

    ⚠️ 如果需要,可以参考 第 4 课第 1 课的任务 - 创建认知服务资源 中的创建训练和预测资源的说明。

  3. 启动自定义视觉门户 CustomVision.ai,并使用你的 Azure 账户登录的微软账户登录。

  4. 按照 Microsoft 文档中的创建新项目的部分 中的步骤创建一个新的自定义视觉项目。UI 可能会发生变化,这些文档始终是最新的参考。

    将你的项目命名为 stock-detector

    创建项目时,请确保使用你早先创建的 stock-detector-training 资源。选择 目标检测 项目类型和 货架上的产品 域。

    自定义视觉项目的设置,名称设为 fruit-quality-detector,无描述,资源设为 fruit-quality-detector-training,项目类型设为分类,分类类型设为多类别,域设为食品

    货架上的产品 域专门针对商店货架上的库存检测。阅读更多关于不同域的信息在 Microsoft 文档中的选择域部分

✅ 花些时间探索自定义视觉 UI 为你创建的目标检测器。

任务 - 训练你的目标检测器

为了训练你的模型,你需要一组包含你想要检测的对象的图像。

  1. 收集包含你要检测的对象的图像。你需要至少 15 张包含每个对象的图像,从不同的角度和不同的光照条件下拍摄,但越多越好。此目标检测器使用 货架上的产品 域,因此尝试将对象设置为像在商店货架上的样子。你还需要一些图像来测试模型。如果你正在检测多个对象,你将需要一些包含所有对象的测试图像。

    包含多个不同对象的图像计入所有对象的 15 张图像的最低要求。

    你的图像应该是 png 或 jpg,小于 6MB。如果你用 iPhone 创建它们,它们可能是高分辨率的 HEIC 图像,因此需要转换并可能缩小。图像越多越好,并且你应该拥有类似数量的成熟和未成熟的图像。

    该模型专为货架上的产品设计,因此尽量在货架上拍摄对象的照片。

    你可以在 images 文件夹中的现金果和番茄酱示例图像中找到一些你可以使用的图像。

  2. 按照 Microsoft 文档中的上传和标记图像部分 中的步骤上传你的训练图像。根据你想要检测的对象类型创建相关的标签。

    显示上传成熟和未成熟香蕉图片的上传对话框

    当你绘制对象的边界框时,保持边界框紧贴对象周围。虽然描绘所有图像需要一些时间,但工具会检测出它认为的边界框,从而加快速度。

    标记一些番茄酱

    如果你有超过 15 张每个对象的图像,你可以训练 15 张之后使用 建议标签 功能。这将使用训练好的模型来检测未标记图像中的对象。你可以确认检测到的对象,或拒绝并重新绘制边界框。这可以节省大量时间。

  3. 按照 Microsoft 文档中的训练检测器部分 中的步骤训练目标检测器以标记图像。

    你将被提供选择训练类型。选择 快速训练

目标检测器将开始训练。训练需要几分钟才能完成。

测试你的目标检测器

一旦你的目标检测器训练完成,你可以通过给它新的图像来检测对象来测试它。

任务 - 测试你的目标检测器

  1. 使用 快速测试 按钮上传测试图像并验证对象是否被检测到。使用你早前创建的测试图像,而不是用于训练的任何图像。

    检测到的 3 罐番茄酱,概率分别为 38%,35.5% 和 34.6%

  2. 尝试你拥有的所有测试图像,并观察概率。

重新训练你的目标检测器

当你测试你的目标检测器时,它可能不会给出你期望的结果,就像在上一个项目中的图像分类器一样。你可以通过使用错误图像重新训练模型来改进你的目标检测器。

每次使用快速测试选项进行预测时,图像及其结果都会被存储。你可以使用这些图像来重新训练你的模型。

  1. 使用 预测 标签定位你用于测试的图像

  2. 确认任何准确的检测,删除错误的检测并添加任何缺失的对象。

  3. 重新训练并重新测试模型。

挑战

如果你使用相似的物品(例如相同品牌的番茄酱罐头和切碎的西红柿)使用目标检测器会怎么样?

如果你有任何相似的物品,请通过添加它们的图像到你的目标检测器中来测试它。

课后测验

课后测验

复习与自学

作业

比较领域

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


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