什么是ML Kit
源引谷歌ML Kit
官网的介绍,ML Kit
是面向移动开发者的机器学习框架。ML Kit
将谷歌机器学习专业技术以一种功能强大且易于使用的开发包的形式提供给移动开发人员,借助运行在设备上优化的解决方案,让您的iOS
,Android
应用程序更具吸引力、个性化和实用性。
ML Kit
的APIs
在移动设备上运行,例如它可以处理实时摄像头视频流。它可以离线使用。
ML Kit
目前提供两大类能力,视觉和自然语言处理,每个大类下又有各个小类,分类如下:
- 视觉API
- 条形码扫描
- 面部识别
- 图片标签分类
- 物体识别和追踪
- 文字识别
- 手写识别
- 姿态识别
- 自拍分离
- 自然语言处理API
- 语言识别
- 文字翻译
- 智能回复
- 实体抽取
本小册关注的是视觉相关的知识和应用。
机器学习的组成
机器学习包含了几个重要元素:数据集、AI
算法、AI
模型,如下图:
我们举个经典的动物识别的例子,首先我们需要收集相当多数量的动物图片数据,将其按照种类名和种类图片进行分类,例如cat
文件夹下是各式各样的关于猫的图片,dog
文件夹下是各式各样的关于狗的图片,等。随后使用AI算法从这些样本数据中找到规律,形成一个类似于y=f(x)
的函数,当我们输入一张动物图片时,输入参数x=某动物图片
,就能输出结果y
,y
就是这张输入动物图片的预测动物名以及预测准确率。
上述使用AI算法对于数据集的训练过程并不是本小册阐述的重点。训练数据集的过程通常在服务端进行,因为训练过程需要大量的计算资源和存储。最终生成的训练模型预测结果的准确率与数据集中图片的多少、训练算法的优劣等相关。所以这是一项复杂且专业性很高的任务,对于普通开发者可能难以快速的理解和应用。本小册关注的是机器学习框架在移动App
上的应用。
移动端的机器学习
机器学习无疑是一项非常实用的数据科学技术,其应用的程度正在以指数速度在增长,我们几乎每天都会看到一些发展,但是假如普通大众无法获得机器学习带来的优点,无法改善人类的生活方式,那么发展再好的技术也是不会持续下去的。面对这一情况,结合移动设备的空前普及,在移动设备端使用机器学习是最快速让机器学习应用普惠大众的方式。而如上述,AI
算法训练数据集的过程对于普通开发者的门槛较高。本小册聚焦的是使用训练好的AI模型,
对输入的参数进行预测。如下图:
为了使在移动设备上进行机器学习的复杂任务变的简单,并且允许没有机器学习经验的应用开发人员实现机器学习的功能,简便而且符合开发人员编程语言习惯的机器学习开发框架呼之欲出。移动开发者关注的是下图中移动App
部分,AI
算法训练框架训练准备好的数据集,形成数据模型供移动端App
使用,移动App
便能对用户输入的数据进行AI
结果预测:
而本文一开始叙述的ML Kit
就是图中的AI SDK
,并内置了部分数据模型,例如面部表情识别的模型,物品标签分类模型等。
ML Kit
和Core ML
1. Core ML
作为移动端的两个阵营,谷歌和苹果分别推出了自家的移动端机器学习框架ML Kit
和Core ML
。
ML Kit
和Core ML
很智能的帮助开发者将训练好的模型集成到应用程序中,并提供了简便的API
,开发人员只需要几行代码就可以集成完整的机器学习模型。
Apple
在2017年WWDC
上发布了Core ML
,并于今年更新为Core ML 2.0
。Core ML
使开发人员能够将机器学习模型集成到iOS
或MacOS
应用程序中,这是该领域的第一次重大尝试。
Core ML
本身是基于Accelerate
和BNNS
等底层语言以及Metal Performance Shaders
而构建的。在Core ML
的基础上,形成了Vision
(计算机视觉框架)用于图像分析,Natual Language
(自然语言框架)用于文本处理,Speech
(语音框架)将音频转换为文本,SoundAnalysis
(语义分析框架)用于音频识别。使用上述4大框架,您便能构建您的应用程序。
2. ML Kit
Firebase在Google I/O
2018大会上发布了ML Kit
框架。ML Kit
使开发人员能够以两种方式在移动应用中使用机器学习:开发人员既可以通过API
在云中运行模型推理,也可以在设备上严格运行,就像使用Core ML
一样。
ML Kit
目前提供Vision
(计算机视觉框架)用于图像分析,Natual Language
(自然语言框架)用于文本处理,如果需要像Core ML
那样进行音频方面的处理,那么您还可以上传TensorFlow Lite
模型,ML Kit
负责托管并为您的应用提供模型。
3. 比较
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+
笔者认为ML Kit
相比于Core ML
最大的优势便是跨平台,本小册从iOS
端去阐释主题。ML Kit
的另一个优点是它提供了设备上和基于云的API
。 ML Kit
中的设备上API
可以快速工作,即使在没有互联网连接的情况下也能提供预测结果。当然如果您仅仅对于iOS
感兴趣,那么Core ML
更为适合您,我将在以后推出专门的Core ML
教程。
本小册介绍
本小册聚焦于ML Kit
提供的视觉相关的功能。介绍如何在iOS
系统的设备上,如何集成ML Kit框架进行姿态识别、人脸识别、物体识别及追踪、人像自拍背景分离、码识别、图片文字识别、图片分类等。在此基础上,实现了多个“酷炫”应用,如“深蹲计数”、“酷炫眼镜”、“篮球轨迹追踪”、“大头照”。本小册采用的开发语言是Swift
。
本小册读者对象
- 移动端开发人员,渴望学习移动端机器学习的人员
- 机器学习、人工智能相关人员,有在移动端部署机器学习能力需求的人员
本小册目录
- 开篇前言 - 移动端机器学习和ML Kit概述
- 姿态识别概述
- 静态图片的姿态识别
- 摄像头实时姿态识别
- 结合KNN算法实现姿态识别应用 - “深蹲计数”
- 人脸识别及应用 - “酷炫眼镜”
- 物体识别及追踪及应用 - “篮球轨迹追踪”
- 人像自拍背景分离及应用 - “大头照”
- 其它ML Kit视觉机器学习能力,码识别、图片文字识别、图片分类等
本小册应用精彩集锦
静态图片人体特征点识别:
深蹲计数: