Core ML and Vision
Vision
Apply high-performance image analysis and computer vision techniques to identify faces, detect features, and classify scenes in images and video.
应用场景:
Face Detection and Recognition
Machine Learning Image Analysis
Barcode Detection
Image Alignment Analysis
Text Detection
Horizon Detection
支持的图片类型:
CVPixelBufferRef
CGImageRef
CIImage
NSURL
NSData
几乎涵盖了 iOS 中图片相关的 API,很强大。
使用到的类:
VNCoreMLModel
A container for a Core ML model used with Vision requests.
VNCoreMLRequest
An image analysis request that uses a Core ML model to process images.
VNClassificationObservation
Scene classification information produced by an image analysis request.
VNPixelBufferObservation
An output image produced by a Core ML image analysis request.
VNImageRequestHandler
An object that processes one or more image analysis requests pertaining to a single image.
总结
基于 Core ML 框架,Apple 提供了一个高性能的视觉处理技术 Vision,它更像是一个工具库,对一些高频场景进行了封装,比如人脸、条形码、矩形和文字等,这些基于底层 API 封装的高级功能可以帮助开发者高效地完成特定的功能。
参考博客:http://yulingtianxia.com/blog/2017/06/19/Core-ML-and-Vision-Framework-on-iOS-11/
Core ML
框架层级图:
(侵删)
使用原理:
(侵删)
转换Core ML模型
支持ML类型:
Core ML 支持 DNN,RNN,CNN,SVM,Tree ensembles,Generalized linear models,Pipeline models 等ML模型
转换方法:
苹果提供了一个 Python 工具coremltools,可以将业内一些常用的机器学习框架导出的 Model 转成 MLMODEL 文件。代码会编译成可执行二进制文件,而 MLMODEL 会编译成 Bundle 文件,在代码文件中可以直接调用 MLMODEL 生成的类。
比如,如果模型是用Caffe创建的,那么将 Caffe 模型(.caffemodel)传递给coremltools.converters.caffe.convert:
import coremltools
coreml_model = coremltools.converters.caffe.convert('my_caffe_model.caffemodel')
然后将所得到的模型保存为 Core ML 模型格式:
coreml_model.save('my_model.mlmodel')
当你需要转换一个不在上表中的格式的模型时,也可以创建你自己的转换工具。
编写你自己的转换工具涉及到将你的模型的输入、输出和架构的表示(representation)翻译成 Core ML 模型格式。你需要定义该模型架构的每一层以及它们与其它层的连接。使用 Core ML Tools 提供的转换工具为例;它们演示了通过第三方工具创建的多种类型的模型被转换成 Core ML 模型格式的方法。
注:Core ML 模型格式是由一些协议缓冲文件(protocol buffer files)定义的,具体描述请参阅:https://developer.apple.com/machine-learning
上一篇: SSD配置和训练以及遇到的坑
下一篇: DSSD理论+源码学习(1)
推荐阅读
-
Core ML and Vision
-
Fedora Core 6 上安裝 beast (3) 博客分类: nginx nginxlighttpdWindowsAccessJavaScript
-
.Net Core 2.0 连接Oracle数据库
-
ASP.NET Core3.0(二)----使用EF连接数据库
-
使用腾讯COS作为图床并在Typora通过PicGo-Core使用
-
DevExpress数据访问控件支持.NET 5 DevExpressData.NET 5.NET core
-
java初学者对字符串的常用操作 博客分类: core java StringUtilsjavawebstring
-
ASP.NET Core 之 Identity 入门(三)
-
在asp.net core项目中使用Nlog日志组件
-
IdentityServer4(六):集成ASP.NET Core Identity