# PictureClassification
**Repository Path**: loading510/picture-classification
## Basic Information
- **Project Name**: PictureClassification
- **Description**: 一个简单的.NET图片分类应用,可以自己训练分类模型并使用。
- **Primary Language**: C#
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2023-03-26
- **Last Updated**: 2023-03-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 简介
一个简单的.NET图片分类应用,可以自己训练分类模型并使用。
使用[WPF](https://github.com/dotnet/wpf)创建用户界面,[ML.NET](https://github.com/dotnet/machinelearning)进行机器学习。
# 功能
- 图片分类
选择包含图片的文件夹,使用训练好的模型对其中的图片进行分类,分类结果弹窗展示或输出到文件夹。
- 分类模型训练
选择一些图片,通过单独或批量的方式进行标记,作为训练集训练得到分类模型。
# 运行需求
Windows 7及以上操作系统
# 具体操作
## 分类界面
1. 选择输入图片的文件夹路径和模型
2. 选择分类结果输出方式:
- 选择 输出到文件夹 时:需要选择输出路径,点击开始分类按钮后,图片会复制到输出路径下对应类型的文件夹中。
- 选择 弹窗显示 时:图片会依次显示在左侧灰色区域,并弹窗显示分类结果。
## 训练界面
1. 选择用于训练的图片的导入路径,和训练得到模型的导出路径。
2. 选择图片导入路径后,会加载文件夹下的图片,并显示在中央灰色区域,点击右侧的标签栏中的标签,就可以给图表进行对应标注作为模型的训练集。
3. 进行一定量的标注后(不需要标注文件夹下的所有图片),点击右下角训练模型就可以训练并保存模型,用于分类窗口的图片分类。
# 开发环境
Visual Studio 2022
## 工作负荷
.NET 桌面开发
## NuGet 包需求
Microsoft.ML 2.0.0
Microsoft.ML.CpuMath 2.0.0
Microsoft.ML.DataView 2.0.0
Microsoft.ML.ImageAnalytics 2.0.0
Microsoft.ML.TensorFlow 2.0.0
Microsoft.ML.TensorFlow.Redist 0.14.0
# 参考
[ML.NET 文档 - 教程和 API 参考 | Microsoft Learn](https://learn.microsoft.com/zh-cn/dotnet/machine-learning/)
[seabluescn/Study_ML.NET: 微软机器学习框架ML.NET学习笔记。 (github.com)](https://github.com/seabluescn/Study_ML.NET)
[适用于 .NET 5 的 Windows Presentation Foundation 文档 | Microsoft Learn](https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/?view=netdesktop-6.0)