广州凡科互联网科技有限公司

营业时间
MON-SAT 9:00-18:00

全国服务热线
18720358503

公司门店地址
广州市海珠区工业大道北67号凤凰创意园

根据Windows 设备学习培训(Machine Learning)的图象归类

日期:2021-02-28 浏览:
当今部位: > 技术性实例教程 根据Windows 设备学习培训(Machine Learning)的图象归类(Image classification)完成 - osc_b6tyukpz的本人室内空间 - OSCHINA 来源于: 创作者: 浏览频次:140
【强烈推荐阅读文章】微服务还能火多长时间?>>>

今日见到一一篇文章 Google’s Image Classification Model is now Free to Learn 

 

说成狗狗的设备学习培训速学课程内容(Machine Learning Crash Course)如今能够完全免费学习培训啦,由于一刚开始今年初的情况下是內部应用的,之后对外开放给大家了。大伙儿有谁对未作恶家的设备学习培训很感兴趣得话,能够点一下联接去看看看。

可是之上并不是我讲的关键。

 

说狗狗的缘故,是以便引出来我大微软公司的设备学习培训。

 

在2018三月七日,在Windows开发设计者每日活跃动中,微软公司公布发布Windows人力智能化服务平台Windows ML。

ML means machine learning, not make love. Understand???

 

在Windows ML服务平台下,开发设计工作人员可以将不一样的AI服务平台导进目前的学习培训实体模型,并在安裝了Windows10系统软件的PC机器设备上应用事先学习培训的ML实体模型,并运用CPU和GPU(AMD,Intel,m)硬件配置开展加快,并非云空间。进而加速对当地图象及视頻数据信息的即时剖析,乃至是后台管理每日任务的改善。

另外该技术性适用ONNX文件格式的ML实体模型制造行业规范,开发设计者可以加上ONNX文档至UWP运用中,在并新项目中转化成实体模型页面。

现阶段微软公司已经将自己的AI技术性融进进了Office 365、Windows 10 相片中,乃至还应用了Windows Hello脸部鉴别技术性,来更换传统式的启动登陆密码。

 

看一下你看看,那么牛B的技术性,大家如何不到抢鲜呢。但是都不鲜了,早已以往仨月了。可是哪一家的技术性并不是先画一个饼,过好长时间你才可以见到试品。嘿嘿。

如今学习培训ML还到来及。

 

 在实际操作以前,先来讲一下必须甚么配备吧。

1. Windows 10 1803 或是高些

2. Visual Studio 15.7.1或高些

3. Microsoft Visual Studio Tools for AI,在专用工具——拓展和升级 里边检索AI就可以寻找。

 

 

 OK,大致说一龌龊程。

1. 建立和训炼设备学习培训的实体模型

要完成对某一幅图像的鉴别,最先大家必须用一些数据信息来训炼设备,告知它这一是什么。也便是加标识tag.

例如,以前微软公司的小冰识狗,那么你得最先找许多狗的相片吧,你需要是拿猫的相片来训炼设备,告知它它是狗,都不不是能够。由于历史时间上也是有指鹿为马的小故事呢。自然在一个非常大数据信息下,例如你拿了十万张狗的照片,里边有那麼几张是猫的,鸡的照片,那样训炼出去也没事儿。由于设备会在训炼以后让你一数量据给你参照。在数据信息非常大的前提条件下,容许小错的。

 

2. 编码实战演练

用编码来完成一下,而且任意挑一张相片,叫设备鉴别它是个啥。由于设备刚刚学习培训了啊,假如他了解,那麼便会得出相对的将会性尺寸。

 

 

 

 1. 建立和训炼设备学习培训的实体模型

 

用你的Microsoft账户登录 projects, ,建立新项目,种类就挑选图象归类,Domains行业挑选了General(Compact),带Compact是能够四处到Android和ios上放实体模型

 

 

 接下去你能见到下面的图,你可以以先加标识tag,在给标识加上相对的图象。还可以先加图象,随后新加标识的。

 

 我先训炼一个川普出去试一下,

 

你可以以加多好多个标识。我一共干了2个。一个是川普,一个是一种花,一年蓬。

等把标识和相匹配的图象都提交结束后,点一下上边的【训炼】

 

 随后训炼結果立刻就出去了。

第一个Precision,表明实体模型包括的标识预测分析的精密度,越大就越好。

第一个Recall,实体模型标识外的预测分析精密度,也是越大就越好。

自然,你还可以如今实验一下。点一下右上角的Quick Test,就可以检测。。

 

 

 

 随后,点一下正上边的Export,导出来实体模型。适用4种文件格式,Android,Ios,ONNX,DockFile。大家挑选WIndows规范的ONNX。好啦。第一步基本完毕。非常简单,全是点两下就拿下。

假如您好奇ONNX里边是什么模样,那麼恭贺你,很好的学。去 lutzroeder/Netron 免费下载一个手机软件,看一下吧。

 

 

 2. 编码实战演练

实体模型搞好了,就该敲代码了。编码都不多,非常简单滴。

在建一个UWP 程序,在Assets财产文档夹里边,加上刚刚免费下载的ONNX文档(该文档能够随便重新命名,也最好Rename一下,要不然文档姓名过长了),设定它的转化成实际操作为【Content 內容】。

它是你能发觉,多了一个.cs类。

 

 开启Vincent.cs看一下啊,没有错,也是有点儿乱。改一下咯

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Windows.Media;
using Windows.Storage;
using Windows.AI.MachineLearning.Preview;
// e6c82f6e-c60f-422a-97b6-e0406cba82da_6ed0259c-001e-4895-be7a-4a930321a307
namespace VincentML
 public sealed class ModelInput
 public VideoFrame data { get; set; }
 public sealed class ModelOutput
 public IList string classLabel { get; set; }
 public IDictionary string, float loss { get; set; }
 public ModelOutput()
 this.classLabel = new List string ();
 this.loss = new Dictionary string, float ()
 { "Donald Trump", float.NaN },
 { "Yinianpeng", float.NaN },
 public sealed class Model
 private LearningModelPreview learningModel;
 public static async Task Model CreateModel(StorageFile file)
 LearningModelPreview learningModel = await LearningModelPreview.LoadModelFromStorageFileAsync(file);
 Model model = new Model();
 model.learningModel = learningModel;
 return model;
 public async Task ModelOutput EvaluateAsync(ModelInput input) {
 ModelOutput output = new ModelOutput();
 LearningModelBindingPreview binding = new LearningModelBindingPreview(learningModel);
 binding.Bind("data", input.data);
 binding.Bind("classLabel", output.classLabel);
 binding.Bind("loss", output.loss);
 LearningModelEvaluationResultPreview evalResult = await learningModel.EvaluateAsync(binding, string.Empty);
 return output;
}

 

 

 好,接下去写一个简易的页面,一个图象Image和一个按键Button,一个文字TextBlock

 Grid 
 Grid 
 Grid.RowDefinitions 
 RowDefinition/ 
 RowDefinition Height="Auto"/ 
 RowDefinition Height="Auto"/ 
 /Grid.RowDefinitions 
 Image x:Name="image"/ 
 TextBlock Grid.Row="1" x:Name="tbResult" HorizontalAlignment="Center"/ 
 Button Grid.Row="2" Content="Choose a picture" HorizontalAlignment="Center" Click="ChooseImage"/ 
 /Grid 
 /Grid 

 

 关键看后台管理编码ChooseImage。

龙宫分四步:

1. 载入实体模型
2. 挑选一个照片
3. 设定实体模型的键入数据信息
4. 輸出結果
//1. 载入实体模型
StorageFile modelDile = await StorageFile.GetFileFromApplicationUriAsync(new Uri($"ms-appx:///Assets/Vincent.onnx")); Model model = await Model.CreateModel(modelDile);
//2. 挑选一个照片 FileOpenPicker picker
= new FileOpenPicker(); picker.FileTypeFilter.Add(".jpg"); picker.FileTypeFilter.Add(".jpeg"); picker.FileTypeFilter.Add(".png"); picker.FileTypeFilter.Add(".bmp"); picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; var file = await picker.PickSingleFileAsync(); if (file != null) {

                  BitmapImage src = new BitmapImage();
                  using (essStream stream = await file.essMode.Read))
                  {
                      await src.SetSourceAsync(stream);
                      stream.Dispose();
                  };
                  image.Source = src;





 //3. 设定实体模型的键入数据信息
 ModelInput modelInput = new ModelInput();
 modelInput.data = await GetVideoFrame(file);

//4. 輸出結果 ModelOutput modelOutput
= await model.EvaluateAsync(modelInput); var topCategory = modelOutput.loss.OrderByDescending(kvp = kvp.Value).FirstOrDefault().Key; }

 

 留意一下,ModelInput的输尽数据种类是VideoFrame,因此必须将照片变换一下。

 private async Task VideoFrame GetVideoFrame(StorageFile file)
 SoftwareBitmap softwareBitmap;
 using (essStream stream = await file.essMode.Read))
 // Create the decoder from the stream 
 BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
 // Get the SoftwareBitmap representation of the file in BGRA8 format
 softwareBitmap = await decoder.GetSoftwareBitmapAsync();
 softwareBitmap = SoftwareBitmap.Convert(softwareBitmap, BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied);
 return VideoFrame.CreateWithSoftwareBitmap(softwareBitmap);
 }

 

 

 好啦,看一下咋样,运作一下。

 我都特意找了一张川总很帅的头型图

 

 

 假如你挑选了一某些的相片,例如狗,会获得那样的。

可是你非得说这条狗就叫Donald Trump,那么我无F*ck可讲过。

 

 

 

最终,热烈欢迎大伙儿去全世界较大的同性恋交朋友服务平台Fork/Star我的新项目:hupo376787/MachineLearningOnUWP



网站知识

联系方式丨CONTACT

  • 全国热线:18720358503
  • 传真热线:18720358503
  • Q Q咨询:2639601583
  • 企业邮箱:2639601583@qq.com

首页
电话
短信
联系