ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用ML.NET实现健康码识别

2022-04-05 19:03:51  阅读:324  来源: 互联网

标签:机器 训练 ML 模型 NET 识别 可以


ML.NET是微软提供的机器学习库,从VS2019开始直接集成在VS里,帮助.NET开发者快速开发自己的机器学习应用。目前ML.NET的资料已经非常丰富,开发者可以到其官网查阅相关资料。https://dotnet.microsoft.com/en-us/learn/ml-dotnet

本篇博客以健康码识别(绿码/黄码/红码)为例,看在.NET中如何使用ML.NET。

一、准备工作

启用ML.NET Model Builder。VS中工具-选项-预览功能,勾选Enable ML.NET Model Builder。

然后就可以右键项目,添加"机器学习":

二、具体步骤

点击上图中的“机器学习”,弹出如下页面:

可以看到有文本分类、图像分类的等等功能。因为我们是分类绿码黄码红码图片,所以选择图像分类。

看到训练环境可以选择本地或者Azure(微软云)。点击"数据"。

选择本地准备好的分门别类整理好的健康码的图片(将采集到的图片数据分为两类:训练集和测试集,这里使用训练集图片训练,测试集可以用来测试模型的预测效果)。当然这里的数据集的质量及数量都有一定的讲究,尽量有代表性且数量相等。像我下面的红码只有一张图片就不太符合要求,可能对识别结果准确率有影响(这里仅做演示)。

点击"训练"

开始训练即可。这里训练的时长跟机器的配置、网络状态及图片的数目都有关系,像上面的数据量在我的电脑上训练可能需要半个小时左右。

关于这个本地训练时长的大小,微软也给出了相应的参考。https://docs.microsoft.com/zh-cn/dotnet/machine-learning/automate-training-with-model-builder#how-long-should-i-train-for

模型训练中...,如果网络不稳定,会重新下载...

当然更好的方法是直接用迅雷等工具下载这个meta文件(https://aka.ms/mlnet-resources/resnet_v2_50_299.meta)并放到你本机的MLNET目录中(比如我的是C:\Users\arizon\AppData\Local\Temp\MLNET)。

点击训练,可以看到训练过程,默认会经过好几轮训练。

训练完成后,可以对该训练好的模型进行评估。

选择本地的测试集中的图片进行评估

可以看到该模型智能识别为绿码。点击下一步,获取代码。

添加到项目

可以看到自动添加了两个项目,同时直接给出了后续步骤。

设置MLConsoleAppML.ConsoleApp项目为启动项目,然后运行就可以看到识别结果。

这是一个控制台的示例,可以将其引用到你的任意.NET项目中。另外可以看到项目中有个MLModel.zip模型文件,如果模型的训练效果不佳,可以重新训练,然后将新训练得到的模型文件替换更新项目中的这个模型文件即可。

该演示非常简单的就实现了机器学习的功能,ML.NET很强大的机器学习库!

标签:机器,训练,ML,模型,NET,识别,可以
来源: https://www.cnblogs.com/guwei4037/p/16103342.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有