.NET ML.NET 机器学习 图像分类

一、 准备工作

IDE是 VS2019。
先下载好”resnet_v2_50_299.meta”这个文件,放入”C:\Users\jk\AppData\Local\Temp\MLNET\”这个文件夹,目录不存在自己新建下。”jk”是WINDOWS登录名,注意换成你自己的。

下载地址:https://download.csdn.net/download/runliuv/15724931

新建一个”z机器学习样本1″目录,再建立”猫”和”狗”2个子目录。在网上下载”猫”和”狗”的图片各几十张,分别放到这2个子目录中。这2个子目录名也称为标签(Label)。

二、 添加和使用
新建一个”WindowsFormsApp1″的.NET FRAMEWORK 4.7 的WINFORM程序。

在菜单-工具-选项-环境-预览功能中,选中”Enable ML.NET Model Builder”

.NET ML.NET 机器学习 图像分类

在”WindowsFormsApp1″上右键-添加机器学习。

.NET ML.NET 机器学习 图像分类

选择图像分类.

.NET ML.NET 机器学习 图像分类

选择本地.

.NET ML.NET 机器学习 图像分类

选择刚才收集好的图片文件夹(D:\z机器学习样本1)。

.NET ML.NET 机器学习 图像分类

开始训练。

.NET ML.NET 机器学习 图像分类

培训已完成(可能需要几分钟)。

[En]

The training is complete (it may take a few minutes).

.NET ML.NET 机器学习 图像分类

试用模型(随便选一张猫或狗的图片)。

.NET ML.NET 机器学习 图像分类

添加项目。

.NET ML.NET 机器学习 图像分类

如何调用ML.NET的提示

.NET ML.NET 机器学习 图像分类

可以把 WindowsFormsApp1ML.ConsoleApp 设置为启动项。F5运行试用下。
其中predictionResult.Prediction 是识别出来的类别,predictionResult.Score 是相似度。

.NET ML.NET 机器学习 图像分类

把”WindowsFormsApp1″右键设置为启动项。
Nuget 中安装:
Microsoft.ML 1.5.0
Microsoft.ML.ImageAnalytics 1.5.0
Microsoft.ML.Vision 1.5.0
SciSharp.TensorFlow.Redist 1.14.0

,这4个包尽量和”WindowsFormsApp1ML.ConsoleApp”中版本一致

在WINFORM界面上添加按钮和文件对话框(openFileDialog).

private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (openFileDialog1.ShowDialog() != DialogResult.OK)
                {
                    return;
                }
                string fileName = openFileDialog1.FileName;

                ModelInput sampleData = new ModelInput()
                {
                    ImageSource = fileName,
                };
                // Make a single prediction on the sample data and print results
                var predictionResult = ConsumeModel.Predict(sampleData);
                MessageBox.Show(predictionResult.Prediction);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

.NET ML.NET 机器学习 图像分类

启动并运行它。就这么做。

[En]

Get it up and running. Just do it.

三、简单解析
查看 WindowsFormsApp1ML.ConsoleApp中的 ModelBuilder 类。
此类别用于培训。

[En]

This category is used for training.

TRAIN_DATA_FILEPATH 是训练文件索引(C:\Users\jk\AppData\Local\Temp\4233eca3-43b3-479f-97f8-50ac3124e9c7.tsv)。用记事本打开TRAIN_DATA_FILEPATH路径的文件。里面包含2列,Label和ImageSource。

.NET ML.NET 机器学习 图像分类

MODEL_FILEPATH 是训练后保存的模型。使用时要放到使用程序的根目录,微软自动生成的代码,路径是写死的。
CreateModel() 是训练方法。相当于我们刚才的鼠标点击训练。
如果要用代码来训练,就用代码生成 TRAIN_DATA_FILEPATH 中的 .tsv 文件 。再调用 CreateModel()。

再看 WindowsFormsApp1ML.Model 中的 ConsumeModel类。
这个类是用来。

[En]

This class is used.

Predict() 就是调用主入口了,子方法中 CreatePredictionEngine(),modelPath 是写死的,有需要则替换。

这个提示是正在下载resnet_v2_50_299.meta文件,从微软下载这个可能需要花很长时间:

[Source=ImageClassificationTrainer; Ensuring meta files are present., Kind=Info] Downloading resnet_v2_50_299.meta from https://aka.ms/mlnet-resources/resnet_v2_50_299.meta to C:\Users\jk\AppData\Local\Temp\MLNET\resnet_v2_50_299.meta
[Source=ImageClassificationTrainer; Ensuring meta files are present., Kind=Info] resnet_v2_50_299.meta: Downloaded 3596 bytes out of 102616931

end

Original: https://www.cnblogs.com/runliuv/p/16291819.html
Author: runliuv
Title: .NET ML.NET 机器学习 图像分类

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/7582/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部