概述

移动端所说的AI,通常是指“机器学习”。

定义:机器学习其实就是研究计算机怎样模拟人类的学习行为,以获取新的知识或技能,并重新组织已有的知识结构使之不断改善自身。从实践的意义上来说,机器学习是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。

目前,机器学习已经有了十分广泛的应用,如:数据挖掘、计算机视觉、自然语言处理、语音和手写识别、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、战略游戏与机器人运用。

机器学习

机器学习包含了几个重要元素:数据集、AI算法、AI模型,如下图:

通过训练,得到最终的AI模型,可以做什么?如下图:

预测结果的准确性取决于模型的判断合理性(即算法的准确性与合理性、数据特征各参数的正确性)

移动端现状

Android端,谷歌提供的面向Android和iOS设备的跨平台人工智能SDK: ML Kit



iOS端,苹果提供的用于iOS设备的机器学习软件开发工具包:Core ML

ML Kit与 Core ML功能对比,如下:

ML Kit

1、跨平台,支持Android与iOS
2、支持模型云托管
3、支持模型离线本地化
4、使用*.tflite 模型文件
5、系统版本要求Android 4.1 + , iOS 9.0 +
Core ML

1、非跨平台,仅支持iOS
2、不支持模型云托管
3、支持模型离线本地化
4、使用*.mlmodel模型文件
5、系统版本要求iOS 11+

AI 模型

现阶段,机器学习模型推理框架较多,常用的如:TensorFlow、keras、Caffe等。

通过训练产生的模型文件种类也较多,包括:.pb、.ckpt、.caffemodel、.h5、.pkl等格式。

移动端受设备限制,不能支撑常规模型运算:

1、内存、存储空间较小,模型不能复杂;
2、运算能力差,不如专门的伺服器,只能使用相对简单的运算法;
3、电力有限,不适合长时间运算;

所以,移动设备使用AI时,需要将框架已训练模型文件转为Android与iOS能识别的.tflite、.mlmodel模型文件。

模型转换

下面列出几个主流的模型框架与对应的转换工具(本处只列出主流转换工具,第三方平台也有很多转换工具)

Toco示例:

toco --input_file=$(pwd)/mobilenet_v1_1.0_224/frozen_graph.pb \
--input_format=TENSORFLOW_GRAPHDEF \
--output_format=TFLITE \
--output_file=/tmp/mobilenet_v1_1.0_224.tflite \
--inference_type=FLOAT \
--input_type=FLOAT \
--input_arrays=input \
--output_arrays=MobilenetV1/Predictions/Reshape_1 \
--input_shapes=1,224,224,3

tflite_convert示例:

tflite_convert --output_file=/home/yourname/Documents/tensorflow/images/500pics2/model/my_model.tflite --keras_model_file=/home/yourname/Documents/tensorflow/images/500pics2/model/my_model.h5

Core ML Tools示例:

import coremltools
coreml_model = coremltools.converters.caffe.convert('XXX.caffemodel')
coreml_model.save('XXX.mlmodel')

官方已提供的模型与API

谷歌:



官网:https://firebase.google.com/docs/ml-kit/

苹果:

ML Kit的使用

谷歌的ML Kit是与Firebase移动开发平台完全集成的机器学习模块,可用于iOS和Android,移动端集成示意图,如下:

总结

本篇文章仅为说明AI的基础概念,让大家对移动端AI有一定的认识。

文章中概念性的内容较多,如有描述不当的地方,请指出,多谢。

后续,会继续更新Android与iOS AI相关的使用。

机器学习 AI 谷歌ML Kit 与苹果Core ML的更多相关文章

  1. Core ML 机器学习

    在WWDC 2017开发者大会上,苹果宣布了一系列新的面向开发者的机器学习 API,包括面部识别的视觉 API.自然语言处理 API,这些 API 集成了苹果所谓的 Core ML 框架.Core M ...

  2. iOS 11: CORE ML—浅析

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/OWD5UEiVu5JpYArcd2H9ig 作者:l ...

  3. 使用ML.NET + ASP.NET Core + Docker + Azure Container Instances部署.NET机器学习模型

    本文将使用ML.NET创建机器学习分类模型,通过ASP.NET Core Web API公开它,将其打包到Docker容器中,并通过Azure Container Instances将其部署到云中. ...

  4. iOS Core ML与Vision初识

    代码地址如下:http://www.demodashi.com/demo/11715.html 教之道 贵以专 昔孟母 择邻处 子不学 断机杼 随着苹果新品iPhone x的发布,正式版iOS 11也 ...

  5. core ML学习

    Core ML工具是一个Python包(coremltools),托管在Python包索引(PyPI)上. 从表格中可看出,支持caffe工具. 使用与模型的第三方工具相对应的Core ML转换器转换 ...

  6. 人工智能和机器学习 AI&ML howto

    我关心的AI.ML的分支领域: 我的博客:Deep Learning 和 Knowledge Graph howto (有关DL&KG的资料都在这里) https://www.cnblogs. ...

  7. 互联网,IT,大数据,机器学习,AI知识tag云

    互联网基础: tcp/ip网络,linux运维,DNS,ipv6 web前端: javascript, es6, 组件化开发, vuejs, angularjs, react html5, css3, ...

  8. 世界杯足彩怎么买划算?机器学习AI告诉你答案(含预测)

    本文首发于InfoQ公众号头条. 四年一度的世界杯又来了,作为没什么时间看球的码农,跟大家一样,靠买买足彩给自己点看球动力和乐趣, 然而总是买错球队,面对各种赔率也不知道怎么买才划算,足彩是不是碰大运 ...

  9. Core ML 入门

    1.下载Xcode 9 2.下载模型,https://developer.apple.com/machine-learning/ 3.开动.. 4.待续 模拟器66的

随机推荐

  1. ABP(现代ASP.NET样板开发框架)系列之15、ABP应用层——应用服务(Application services)

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之15.ABP应用层——应用服务(Application services) ABP是“ASP.NET Boiler ...

  2. python之登录小程序

    # 登录操作 PassWord_list = [] Reset_pw = '*#*#' def account_login(): if PassWord_list == []: PassWord = ...

  3. HTTP的GET/POST细节

    HTTP的GET/POST方式有何区别?这是一个老生常谈的问题,但老生常谈的问题往往有一些让人误解的结论.本文将带您浅尝HTTP协议,在了 解HTTP协议的同时将会展示许多被人们忽视的内容.在掌握了H ...

  4. 【原创】纯OO:从设计到编码写一个FlappyBird (三)

    第二部分请点这里 下面首先来实现Bing接口! 实现Bing接口的类取名SimpleBing. 容易发现,SimpleBing类总的来说要向下,但点击一下又得向上,向上到了一定界限又得向下,但我们又只 ...

  5. bootstrp-select插件使用

    需要导入 <link rel="stylesheet" href="js/plugins/silviomoreto-bootstrap-select20151109 ...

  6. php中memcache的运用

    <?php /** * •Memcache::add — 增加一个条目到缓存服务器 * •Memcache::addServer — 向连接池中添加一个memcache服务器 * •Memcac ...

  7. P2719 搞笑世界杯

    P2719 搞笑世界杯我觉得这个难度是假的,如果不知道这个是dp我就做不出来,好吧,知道我也没做出来..f[i][j]表示剩i张A票,j张B票时,最后两张票相同的概率.当前的队首有一半的概率选A,一半 ...

  8. 《opencv学习》 之 几何变换

    图像平移: 1.不改变图像大小 2.改变图像大小 编程按照目标图像的角度去编写 不改变大小的平移 1 void imageTranslation1(Mat& src, Mat& dst ...

  9. TF54000: 由于服务器时钟设置可能不正确,无法更新数据解决方案(补充)

    此问题出现的原因: 服务器时间比本地时间大.由于TFS源代码的Source Control会根据签入时间做判断.如果后续签入的时间小于变更集的最新版本的时间,就会报错误“TF54000”,并拒绝签入. ...

  10. js中this应用

    this是js的一个关键字,随着函数使用场合不同,this的值会发生变化.但是总有一个原则,那就是this指的是调用函数的那个对象. 1.纯粹函数调用. function test() { this. ...