Core ML 介绍与实践

1. core ML简介

CoreML让你将很多机器学习模型集成到你的app中。除了支持层数超过30层的深度学习之外,还支持决策树的融合,SVM(支持向量机),线性模型。由于其底层建立在Metal 和Accelerate等技术上,所以可以最大限度的发挥CPU和GPU的优势。你可以在移动设备上运行机器学习模型,数据可以不离开设备直接被分析。

  • Vision:这部分是关于图像分析和图像识别的。
    其中包括人脸追踪,人脸识别,航标(landmarks),文本识别,区域识别,二维码识别,物体追踪,图像识别等。
    其中使用的模型包括:Places205-GoogLeNet,ResNet50,Inception v3,VGG16,SqueezeNet。
    这些模型最小的5M,最大的550M,集成压力较大。

  • Natural Language Processing:这部分是自然语言处理的API。
    包括语言识别,分词,词性还原,词性判定,实体辨识。

结构
Core ML 介绍与实践_第1张图片
结构.png
支持模型
Core ML 介绍与实践_第2张图片
模型.png

支持模型.png
模型转换
Core ML 介绍与实践_第3张图片
3rd model convert.png
应用场景
Core ML 介绍与实践_第4张图片
应用场景.png
优缺点

优点:将机器学习带到移动设备上,简单易开发
缺点:不支持模型再训练和联合学习

总结
  • Model 极速集成
  • 支持多种数据类型
  • 硬件优化
  • 适配主流机器学习框架

2.Vision

Vision 使用

将各种功能的 Request 提供给一个 RequestHandler,Handler 持有图片信息,并将处理结果分发给每个 Request 的 completion Block 中。可以从 results 属性中得到 Observation 数组,然后进行更新 UI 等操作。因为 completion Block 所执行的队列跟 perform request 的队列相同,所以更新 UI 时记得使用主队列。

Vision 操作流水线分为两类:分析图片和跟踪队列。可以使用图片检测出的物体或矩形结果(Observation)来作为跟踪队列请求(Request)的参数。


Core ML 介绍与实践_第5张图片
analyzing.png
Core ML 介绍与实践_第6张图片
tracking.png
支持图片类型

CVPixelBufferRef
CGImageRef
CIImage
NSURL
NSData

总结
  • 一个关于计算机视觉的顶层新框架。
  • 多重跟踪检测。
  • 集成 Core ML 轻松使用 model

3.core ML实践

模型使用

把 MLMODEL 文件拖拽到 Xcode 工程中,勾选对应的 target, Xcode 自动生成对应代码。生成的类名就是 MLMODEL 文件名,输入和输出的变量名和类型也可以在 Xcode 中查看。

Core ML 介绍与实践_第7张图片
模型使用.png

demo地址

4.相关框架

metal

Metal是与OpenGL ES是并列的,它们都是应用对GPU访问的底层接口。而Metal则提供了更底层,更面向硬件的接口,这也是为何Apple给这个框架起名为“Metal”的原因。

mps

mps即 Metal Performance Shaders 是MetalKit iOS9新增的类,可以使用GPU进行高效的图像计算,比如高斯模糊,图像直方图计算,索贝尔边缘检测算法等。

你可能感兴趣的:(Core ML 介绍与实践)