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。
包括语言识别,分词,词性还原,词性判定,实体辨识。
结构
支持模型
模型转换
应用场景
优缺点
优点:将机器学习带到移动设备上,简单易开发
缺点:不支持模型再训练和联合学习
总结
- Model 极速集成
- 支持多种数据类型
- 硬件优化
- 适配主流机器学习框架
2.Vision
Vision 使用
将各种功能的 Request 提供给一个 RequestHandler,Handler 持有图片信息,并将处理结果分发给每个 Request 的 completion Block 中。可以从 results 属性中得到 Observation 数组,然后进行更新 UI 等操作。因为 completion Block 所执行的队列跟 perform request 的队列相同,所以更新 UI 时记得使用主队列。
Vision 操作流水线分为两类:分析图片和跟踪队列。可以使用图片检测出的物体或矩形结果(Observation)来作为跟踪队列请求(Request)的参数。
支持图片类型
CVPixelBufferRef
CGImageRef
CIImage
NSURL
NSData
总结
- 一个关于计算机视觉的顶层新框架。
- 多重跟踪检测。
- 集成 Core ML 轻松使用 model
3.core ML实践
模型使用
把 MLMODEL 文件拖拽到 Xcode 工程中,勾选对应的 target, Xcode 自动生成对应代码。生成的类名就是 MLMODEL 文件名,输入和输出的变量名和类型也可以在 Xcode 中查看。
4.相关框架
metal
Metal是与OpenGL ES是并列的,它们都是应用对GPU访问的底层接口。而Metal则提供了更底层,更面向硬件的接口,这也是为何Apple给这个框架起名为“Metal”的原因。
mps
mps即 Metal Performance Shaders 是MetalKit iOS9新增的类,可以使用GPU进行高效的图像计算,比如高斯模糊,图像直方图计算,索贝尔边缘检测算法等。