首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
使用 Azure Custom Vision 训练水果质量图像分类器:IoT-For-Beginners 制造项目实战
📅 2026/9/15 12:58:00
✍️ 爱科研究院
👁 阅读 3,247
使用 Azure Custom Vision 训练水果质量图像分类器IoT-For-Beginners 制造项目实战【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners本教程取自 IoT-For-Beginners 开源课程的制造与加工项目4-manufacturing第一课系统讲解如何利用机器学习中的图像分类技术区分好果与坏果如未熟、过熟、碰伤、腐烂并完整演示基于 Azure Custom Vision 云服务从零训练、测试与重训一个水果质量检测器的全过程。学完本课你将掌握图像分类与迁移学习的核心概念能够用 Azure CLI 创建认知服务资源并在 Custom Vision 门户中完成数据集标注、模型训练、快速测试与迭代重训为后续将分类器接入 IoT 设备摄像头拍摄 → 云端分类打下基础。为什么要在食品分拣中使用 AI 与机器学习养活全球人口是一项艰巨挑战尤其是要让食品价格对所有人都可负担。其中最大的成本之一便是人力因此农场主们越来越依赖自动化和 IoT 工具来降低劳动成本。人工采摘是劳动密集型工作在发达国家正逐步被机械取代。然而机械采收有一个天然缺陷在收割的同时完成食品分拣。并非所有作物都会均匀成熟。例如番茄藤上大部分果实已经可以采摘时仍会残留一些青色果实。提前采收属于浪费但对农民来说用机器一次性收割所有果实、之后再丢弃未熟的果实成本更低、操作更简单。自动化采收的兴起把分拣工作从田间转移到了工厂。食品在长长的传送带上移动由成组的工人逐件挑拣、移除不符合质量标准的果实。机械让采收变便宜了但人工分拣仍然是一笔开销。下一步演进是让机器来分拣——无论是内置于收割机还是部署在加工厂。第一代分拣机使用光学传感器检测颜色通过杠杆或压缩空气将绿番茄拨入废料箱让红番茄继续沿传送带网络前进。✅ 思考一下在工厂或田间要让这类光学传感器正常工作需要具备哪些条件分拣机的最新演进则利用了 AI 和机器学习用训练好的模型区分好果与坏果——不仅依靠绿番茄对红番茄这种明显的颜色差异还能识别可能预示病害或碰伤的细微外观差异。机器学习视角下的图像分类传统编程与机器学习的本质区别传统编程是取数据 → 对数据应用算法 → 得到输出。以本课程此前的地理围栏geofence项目为例输入 GPS 坐标和围栏区域应用 Azure Maps 提供的算法输出该点是否在围栏内。输入越多数据得到越多输出。机器学习把这一过程反转了——从数据和已知输出出发让机器学习算法从数据中学习。之后便可以把这个训练好的算法称为机器学习模型简称模型用于输入新数据、获得新输出。 机器学习算法从数据中学习的过程称为训练training输入的样本与对应的已知输出统称为训练数据training data。例如把数百万张未熟香蕉图片作为输入训练数据输出标记为unripe再把数百万张熟香蕉图片作为训练数据输出标记为ripeML 算法就会基于这些数据构建一个模型。之后给这个模型一张全新的香蕉图片它就能预测这张图是熟香蕉还是生香蕉。 ML 模型的输出结果称为预测prediction。模型输出的是概率而非二值答案ML 模型并不给出是/否式的二值答案而是输出概率。例如模型分析一张香蕉图片后可能预测ripe的概率为 99.7%、unripe的概率为 0.3%你的代码随后选取最优预测并判定这根香蕉是熟的。用于识别图像的 ML 模型称为图像分类器image classifier——它接收带标签的图片然后依据这些标签对新的图片进行分类。 这是一种简化表述训练模型还有其他许多方式并非总需要带标签的输出例如无监督学习。课程中同时提供了 ML for Beginners24 课时机器学习课程供深入学习。训练图像分类器的核心思路迁移学习要成功训练一个图像分类器理论上需要数百万张图片。但事实是一旦你拥有一个基于数百万甚至数十亿张杂项图片训练好的图像分类器就可以通过迁移学习transfer learning仅用一小批图片对它进行复用和重训并获得出色的效果。 迁移学习是指把已有 ML 模型学到的知识迁移到一个基于新数据构建的新模型上。一旦图像分类器在大量图片上训练完成其内部结构便非常擅长识别形状、颜色与纹理。迁移学习让模型把已经学会的识别图像局部的能力应用到识别全新图片上。可以把它类比为儿童形状认知书一旦你能识别半圆、矩形和三角形就能根据这些形状的组合方式认出帆船或猫。图像分类器负责识别形状迁移学习则教会它什么组合构成一艘船或一只猫——或者是一根熟香蕉。完成这件事的工具很多其中包括云服务——帮你训练模型然后通过 Web API 调用模型。 训练这些模型需要大量算力通常依赖图形处理器GPU——也就是让 Xbox 游戏画面惊艳的那种专用硬件。借助云你可以按需租用配备 GPU 的强算力计算机只为需要的时间付费。认识 Custom VisionCustom Vision 是一款云端图像分类器训练工具只需少量图片即可训练分类器。你可以通过 Web 门户、Web API 或 SDK 上传图片并为每张图片打上一个表示分类的标签tag然后训练模型、测试其表现。对模型满意后你可以发布模型的多个版本通过 Web API 或 SDK 访问。 每个分类类别最少可以用 5 张图片训练出一个 Custom Vision 模型但图片越多效果越好——每类至少 30 张可以获得更理想的精度。Custom Vision 是微软 Cognitive Services认知服务家族的一员。这些是开箱即用或只需少量训练的 AI 工具涵盖语音识别与翻译、语言理解、图像分析等在 Azure 中以包含免费层free tier的服务形式提供。 免费层足以完成创建模型 → 训练 → 用于开发调试的完整流程。关于免费层额度的详细信息参见微软文档中 Custom Vision 的 Limits and quotas 页面。动手第一步用 Azure CLI 创建认知服务资源要使用 Custom Vision首先需要用 Azure CLI 在 Azure 中创建两个认知服务资源一个用于 Custom Vision训练一个用于 Custom Vision预测。为本项目创建一个名为fruit-quality-detector的资源组Resource Group。用以下命令创建免费的 Custom Vision 训练资源az cognitiveservices account create --name fruit-quality-detector-training \ --resource-group fruit-quality-detector \ --kind CustomVision.Training \ --sku F0 \ --yes \ --location location将location替换为创建资源组时使用的位置。此命令会在资源组中创建名为fruit-quality-detector-training的 Custom Vision 训练资源使用F0SKU即免费层。--yes表示你同意认知服务的条款与条件。 如果你的任何认知服务已占用免费账户请改用S0SKU。用以下命令创建免费的 Custom Vision 预测资源az cognitiveservices account create --name fruit-quality-detector-prediction \ --resource-group fruit-quality-detector \ --kind CustomVision.Prediction \ --sku F0 \ --yes \ --location location将location替换为创建资源组时使用的位置。此命令会创建名为fruit-quality-detector-prediction的预测资源同样使用F0免费层--yes表示同意条款。动手第二步创建图像分类器项目打开 Custom Vision 门户customvision.ai使用与 Azure 账户相同的微软账号登录。参照微软文档 build a classifier 快速入门中的创建新项目部分创建新项目门户 UI 可能随版本变化文档始终是最新参考。项目命名为fruit-quality-detector。务必选用刚才创建的fruit-quality-detector-training资源。项目类型Project Type选择Classification分类。分类类型Classification Types选择Multiclass多类。领域Domains选择Food食品。✅ 创建完成后花点时间探索一下 Custom Vision 的门户界面。动手第三步收集并上传训练数据训练图像分类器需要多张不同质量的水果图片以便打上好/坏标签例如一根熟香蕉和一根过熟香蕉。 这些分类器可以对任意内容分类所以如果手头没有不同品质的水果也可以换成两种不同的水果甚至猫和狗数据集规范要点背景控制理想情况下每张图片应只包含水果本身背景要么一致、要么多样化。务必确保背景中没有任何与熟/生相关的特定物件。警惕背景泄漏不要让每个标签对应特有的背景或无关物件否则分类器可能只会基于背景分类。文档中举了一个著名的反面案例某个皮肤癌分类器用普通痣与癌变痣训练而癌变痣的照片中总有一把用于测量尺寸的尺子——结果该分类器以近 100% 的准确率识别的是图片中的尺子而不是癌变痣。分辨率真相图像分类器在极低分辨率下运行。Custom Vision 最多可接收 10240x10240 的训练与预测图片但模型实际是在227x227分辨率下训练与推理的。大图会被压缩到这个尺寸因此务必让被分类物体占据图片的绝大部分否则它在小图里可能小到无法辨认。数量与配比每个标签至少需要 5 张图片用于训练越多越好此外还需要几张额外的图片用于测试。训练集与测试集应针对同一对象的不同照片。文档给出的基准方案是用 2 根熟香蕉从不同角度各拍几张至少 7 张5 张训练、2 张测试再用 2 根生香蕉重复同样过程。最终至少应有 10 张训练图熟、生各 ≥5 张和 4 张测试图熟、生各 2 张。熟与生的数量应大致对等多多益善。文件格式图片应为 PNG 或 JPEG单张小于 6MB。例如 iPhone 拍摄的高分辨率 HEIC 图片需要转换、必要时压缩后才能使用。本仓库的课程目录恰好内置了一套可直接使用的示例数据集训练集位于 4-manufacturing/lessons/1-train-fruit-detector/images/training包含ripe熟25 张与unripe生29 张两个子目录测试集位于 4-manufacturing/lessons/1-train-fruit-detector/images/testing同样按ripe/unripe各 2 张划分且命名与训练集不重复符合测试图片不得用于训练的要求。仓库内 banana-training-images 示例图 展示了多角度拍摄两根不同香蕉的照片形态。上传、标注与训练参照微软文档 build a classifier 快速入门中的上传并标注图片部分上传训练图片将熟果标注为ripe生果标注为unripe。参照文档中的训练分类器部分对已上传图片执行训练在选择训练类型时选择Quick Training快速训练。随后分类器开始训练通常需要几分钟完成。 如果训练期间你决定吃掉这些水果务必先确保留有足够的测试图片测试你的图像分类器训练完成后可以用一张新图来检验分类器的表现。参照微软文档中的 test your model 文档测试分类器。请使用之前专门留出的测试图片不要使用任何训练图片。把手里所有测试图片都试一遍观察各标签的概率输出。测试时你还会看到 Custom Vision 为本次训练生成的评估指标——Precision精确率、Recall召回率与APAverage Precision平均精度它们从不同角度量化模型质量可参照文档的 evaluate the classifier 部分理解其含义。用预测结果迭代重训模型测试时分类器可能给出与预期不符的结果。要理解原因图像分类器基于图片特定特征与某个标签匹配的概率来预测图中内容它并不理解图片里是什么——它不知道香蕉是什么也不知道什么特征使香蕉成为香蕉而非一艘船。改进方法是用分类错误的图片重新训练。每次使用 Quick Test 快速测试进行预测时图片与结果都会被保存下来你可以用这些图片重训模型参照微软文档中use the predicted image for training将预测图片用于训练部分为每张图片打上正确的标签后重新训练。重训完成后再用新图片测试观察效果是否改善。 重训一次就会产生一个新的迭代iteration。迭代机制会在本项目的下一课中发挥关键作用——发布迭代后即可获得形如https://location.api.cognitive.microsoft.com/customvision/v3.0/Prediction/id/classify/iterations/Iteration2/image的预测 API 端点与Prediction-Key密钥供 IoT 设备调用。相关细节可参见 2-check-fruit-from-device 课程。挑战测试模型的泛化边界想一想如果给一个只在香蕉上训练过的模型输入一张草莓图片、一张充气香蕉图片、一个穿着香蕉服装的人甚至一个黄色卡通角色会发生什么试着用这些越界图片跑一次预测并观察结果你会直观感受到图像分类器依赖特征概率而非真实语义理解的本质。课后延伸与作业评估指标自学回顾训练完成后生成的 Precision、Recall、AP 数值理解它们如何刻画模型质量。模型改进阅读 Custom Vision 关于 how to improve your Custom Vision model 的文档掌握通过补充多样数据、平衡类别、提升图片质量等方式改进模型的方法。作业完成 assignment.md——为多种水果和蔬菜训练分类器。注意对于成熟时会变色的水果图像分类器可能不如色彩传感器有效分类器通常在灰度/低分辨率特征上工作尤其建议尝试外观相似的水果如苹果与番茄检验分类器的区分能力。本课在课程体系中的位置本课是制造与加工项目4-manufacturing/README.md四课系列的第一课。完整的知识链为本课在云端训练水果质量检测器 → 2-check-fruit-from-device 用 IoT 设备摄像头拍摄并调用已发布的模型 → 3-run-fruit-detector-edge 将模型部署到边缘设备本地推理 → 4-trigger-fruit-detector 用接近传感器触发检测并完成原型架构设计。完成本课的模型训练与发布是后续所有课程的前提。【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/15 12:53:00
Apache APISIX workflow 插件详解:基于 lua-resty-expr 的复杂流量控制实战
2026/9/15 12:53:00
图相似度模型实战:SimGNN工业落地全链路解析
2026/9/15 12:53:00
从零构建自己的AI工作插件:knowledge-work-plugins五阶段引导式工作流完整教程
2026/9/15 13:38:11
WebUSB+CDP浏览器直连Android抓包:无证书实时监控HTTP/HTTPS流量
2026/9/15 13:38:11
宝塔面板部署Typecho全流程:从环境搭建到性能调优
2026/9/15 13:38:11
ITK-SNAP医学图像标注:Label标签管理与高效标注实操指南
2026/9/15 13:38:11
ResNet18适配Cifar10的工业级训练实践
2026/9/15 13:38:11
点积、叉积与外积讲透:Maths, CS AI Compendium向量乘积详解
2026/9/15 13:33:09
Plate 如何用 Copilot 添加打字时的幽灵文本 AI 补全?
2026/9/15 0:01:49
2026年NVMe SSD装机避坑指南:PCIe 4.0/5.0、NVMe启动与M.2 Key兼容性实测
2026/9/15 0:01:49
Flutter与OpenHarmony物理动画实现指南
2026/9/15 0:01:49
vscode插件开发之语言服务器,这次让用 TaoToken 接入的 Codex 排查 LSP 服务端连接
2026/9/15 13:08:25
拯救者Y7000黑屏故障排查与维修实战指南
2026/9/14 2:50:57
AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
2026/9/14 11:25:37
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化