• 使用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很强大的机器学习库!

  • 相关阅读:
    mysql
    新建mysql容器
    Storm中并行度原来是这样计算的(1.0.1版本)
    集中式系统和分布式系统
    hadoop错误:Does not contain a valid host:port authority
    Linux配置ntp时间服务器(全)
    vi/vim 消除搜索后的关键字高亮
    雄鹰与蜗牛
    如何查看HBase的HFile
    MemoryUsage:监测java虚拟机内存使用
  • 原文地址:https://www.cnblogs.com/guwei4037/p/16103342.html
Copyright © 2020-2023  润新知