如何为iOS创建机器学习应用

美国专利商标局最新公布苹果获得的一项专利显示苹果或在考虑为iOS摄像头添加功能强大的模式识别技术,利用这项技术就可以识别iOS摄像系统拍摄的图片。
据悉这个模式识别系统可以识别脸部、电话号码、电影、书籍、价格标签、时间、音乐、电子邮件、地图或者条形码相关的元素。
文章介绍表示这个摄像系统可以识别IBSN标准书号等。例如,用户可以使用它来扫描电影海报(见上图),这样用户就可以扫描脸部然后获得与该脸部相关的菜单选项;或者扫描电话号码,然后系统会提供选项让用户将号码存储到联系人信息上;或者是用户点击扫描的电影图片,从而查看电影预告片、上映时间以及其他相关信息等。用户还可以扫描杂志上提供的URL,然后点击iOS设备扫描出来的图片链接该URL。
本文转载自:
欢迎加入我爱机器学习QQ11群:
微信扫一扫,关注我爱机器学习公众号
欢迎加入我爱机器学习QQ11群:
最新文章列表
NIPS 2016 — Day 1 Highlights NIPS 2016 — Day 2 Highlights:...
2017年六月 &(38)
2017年五月 &(66)
2017年四月 &(65)
2017年三月 &(54)
2017年二月 &(48)
2017年一月 &(54)
2016年十二月 &(62)
2016年十一月 &(97)
2016年十月 &(97)
2016年九月 &(124)
2016年八月 &(83)
2016年七月 &(13)
2016年六月 &(10)
2016年五月 &(7)
2016年四月 &(9)
2016年三月 &(7)
2016年二月 &(2)
2016年一月 &(3)
2015年十二月 &(5)
2015年十一月 &(4)
2015年十月 &(2)
2015年九月 &(2)
2015年八月 &(3)
2015年七月 &(6)
2015年六月 &(8)
2015年五月 &(4)
2015年四月 &(1)
2015年三月 &(3)
2015年二月 &(1)
2015年一月 &(2)
2014年十二月 &(4)
2014年十一月 &(2)
2014年十月 &(3)
2014年九月 &(4)
2014年八月 &(22)
2014年七月 &(40)
2014年六月 &(61)
2014年五月 &(63)
2014年四月 &(187)
2014年三月 &(4799)
2014年二月 &(764)
2014年一月 &(330)
2013年十二月 &(145)
2013年十一月 &(126)
2013年十月 &(216)
2013年九月 &(284)
2013年八月 &(327)
2013年七月 &(275)
2013年六月 &(315)
2013年五月 &(228)
2013年四月 &(175)
2013年三月 &(186)
2013年二月 &(118)
2013年一月 &(210)
2012年十二月 &(221)
2012年十一月 &(155)
2012年十月 &(144)
2012年九月 &(98)
2012年八月 &(99)
2012年七月 &(109)
2012年六月 &(75)
2012年五月 &(88)
2012年四月 &(78)
2012年三月 &(78)
2012年二月 &(50)
2012年一月 &(17)
2011年十二月 &(27)
2011年十一月 &(6)
2011年十月 &(11)
2011年九月 &(13)
2011年八月 &(13)
2011年七月 &(19)
2011年六月 &(18)
2011年五月 &(6)
2011年四月 &(12)
2011年三月 &(15)
2011年二月 &(6)
2011年一月 &(9)
2010年十二月 &(6)
2010年十一月 &(11)
2010年十月 &(5)
2010年九月 &(8)
2010年八月 &(5)
2010年七月 &(12)
2010年六月 &(4)
2010年五月 &(7)
2010年四月 &(6)
2010年三月 &(12)
2010年二月 &(7)
2010年一月 &(2)
2009年十二月 &(5)
2009年十一月 &(16)
2009年十月 &(6)
2009年九月 &(7)
2009年八月 &(7)
2009年七月 &(5)
2009年六月 &(6)
2009年五月 &(6)
2009年四月 &(4)
2009年三月 &(7)
2009年二月 &(6)
2009年一月 &(1)
2008年十二月 &(4)
2008年十一月 &(5)
2008年十月 &(1)
2008年八月 &(1)
2008年七月 &(3)
2008年六月 &(3)
2008年五月 &(3)
2008年三月 &(1)
2007年十二月 &(1)
2007年十月 &(1)
2007年八月 &(4)
2007年七月 &(1)详解苹果Core ML:如何为iOS创建机器学习应用?
4. 使用模型来做预测
MarsHabitatPricer 类有一个生成的 prediction(solarPanels:greenhouses:size:) 方法(method),可用于根据模型的输入值预测一个价格。在这个案例中,输入是太阳能电池板和温室的数量,以及栖息地的大小(单位:英亩)。这个方法的结果是一个 MarsHabitatPricerOutput 实例 marsHabitatPricerOutput
guard let marsHabitatPricerOutput = try? model.prediction(solarPanels: solarPanels,
greenhouses: greenhouses, size: size) else {
fatalError("Unexpected runtime error.")
获取 marsHabitatPricerOutput 的 price 属性来获取预测的价格,并将结果展示在该应用的用户界面上:
let price = marsHabitatPricerOutput.price
priceLabel.text = priceFormatter.string(for: price)
注:生成的 prediction(solarPanels:greenhouses:size:) 方法可能会报错。你会遇到的最常见的错误类型是你输入该方法的数据的类型与该模型所需的输入数据类型不符&&比如,格式不对的图片。在这个示例应用中,输入是 Double 类型的。任何类型不匹配都会在编译时显现,对于这个示例应用而言,如果有什么地方不对,它就会报出一个致命错误。
5. 构建和运行一个 Core ML 应用
Xcode 可以将该 Core ML 模型编译成一个资源(resource),其已经为设备上的运行进行了优化。这种优化了的模型的表示被包含在你的应用捆绑(app bundle)中,而且该应用在设备上运行时会使用这个模型来进行预测。
将训练好的模型转换成Core ML
如果你的模型是使用支持的第三方机器学习工具创建和训练的,那么你可以使用 Core ML Tools(/machine-learning)将其转换成 Core ML 模型格式。下表给出了支持的模型和第三方工具。
Core ML Tools 是一个 Python 包(coremltools),托管在 Python Package Index (PyPI) 上。要了解更多有关 Python 包的信息,请参阅:https://packaging.python.org
1. 转换你的模型
使用对应你的模型的第三方工具的 Core ML 转换器转换你的模型。调用该转换器的 convert 方法,并将结果保存为 Core ML 模型格式(.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')
根据你模型的需要,你可能需要更新输入、输出和标签,或者你可能需要声明图像名、类型、格式。这些转换工具捆绑了更多文档,因工具不同,其提供的选项也有所不同。
2. 你也可以编写自定义的转换工具
当你需要转换一个不在上表中的格式的模型时,你也可以创建你自己的转换工具。
编写你自己的转换工具涉及到将你的模型的输入、输出和架构的表示(representation)翻译成 Core ML 模型格式。你需要定义该模型架构的每一层以及它们与其它层的连接。使用 Core ML Tools 提供的转换工具为例;它们演示了通过第三方工具创建的多种类型的模型被转换成 Core ML 模型格式的方法。
注:Core ML 模型格式是由一些协议缓冲文件(protocol buffer files)定义的,具体描述请参阅:/machine-learning
Core ML API
这个文档包含了正在开发中的 API 和相关技术的初步信息。这些信息可能会发生变化,遵循这个文档实现的软件应该在最后的操作系统软件上进行测试。了解更多使用苹果 Beta 软件的信息,访问:/support/beta-software/
在大多数案例中,你仅需要与你的模型的动态生成的接口进行交互,这些接口是 Xcode 自动生成的。你可以使用 Core ML API 直接支持自定义的工作流和高级的用例。比如,如果你需要做预测,同时异步地将输入数据收集到一个自定义的结构中,你可以通过采用 MLFeatureProvider 协议来使用该结构来为你的模型提供输入特征。
官方微博/微信
每日头条、业界资讯、热点资讯、八卦爆料,全天跟踪微博播报。各种爆料、内幕、花边、资讯一网打尽。百万互联网粉丝互动参与,TechWeb官方微博期待您的关注。
↑扫描二维码
想在手机上看科技资讯和科技八卦吗?想第一时间看独家爆料和深度报道吗?请关注TechWeb官方微信公众帐号:1.用手机扫左侧二维码;2.在添加朋友里,搜索关注TechWeb。
相关的资讯有:
相关的博文有:
三星Note 8最近消息不少,先是传闻会取消后部指纹识别而采用正面屏幕下方指纹识别设计...
今天是荣耀9首发的日子,短短四天时间,荣耀9在预约量方面可以说是非常吓人的数字。目...
上周末OPPO在深圳发布了R11,这款手机与以往有了很大变化,配备了双后置摄像头,而且...
据路透社北京时间6月16日报道,“阅后即焚”移动应用Snapchat母公司Snap股价周四大跌4...
北京时间6月15日晚间消息,彭博社今日援引知情人士的消息称,亚马逊有意收购企业通信...
6月15日下午消息,二手车平台瓜子二手车直卖网宣布,已经获得了B轮超4亿美元融资,投...
在今年5月份爆发的勒索病毒WannaCry事件中,Mac用户得以幸免。不过,MacOS的安全性神...
微软研究人员创建了一个人工智能的系统,这个系统能够在20世纪80年代风靡全球的电子游...
Windows打补丁报错已经是家常便饭,几乎每个月都会有人遭遇各种问题,比如这个月的KB4...
火影忍者手游角都地怨虞是即将推出的新A忍,小编预计在下周推出,下面为大家介绍他的......
王者荣耀新版周瑜即将上线体验服,欢迎召唤师们来体验哟!下面就为大家介绍新版周瑜的......
奇迹暖暖第十九章——破晓黎明之战将于6月7日开启的新版本中开放。至此,第一卷<风中......
夜雾迷城活动2月22日5:00—2月28日23:59,本次活动新增套装黎明之冠新月之吻,下面为......
Copyright (C)
All rights reserved.
请选择一张图片分享
要转发到新浪微博,请
要转发到QQ空间,请深度 | 详解苹果Core ML:如何为iOS创建机器学习应用?
原标题:深度 | 详解苹果Core ML:如何为iOS创建机器学习应用?选自developer.apple机器之心编译参与:吴攀在昨天开幕的 WWDC 2017 开发者大会上,苹果宣布了一系列新的面向开发者的机器学习 API,包括面部识别的视觉 API、自然语言处理 API,这些 API 集成了苹果所谓的 Core ML 框架;参阅机器之心报道《苹果开发者大会 WWDC 2017:首次全面展示苹果的人工智能实力》。软件主管兼高级副总裁 Craig Federighi 介绍说,Core ML 的核心是加速在 iPhone、iPad、Apple Watch 上的人工智能任务,支持深度神经网络、循环神经网络、卷积神经网络、支持向量机、树集成、线性模型等。大会之后,苹果开发者网站更新了相关文档,对 Core ML 进行了更加详细的介绍。机器之心在本文中对该文档的内容进行了翻译和整理。更多详情可访问原文档。Core ML 文档地址:/documentation/coremlCore ML 介绍使用 Core ML,你可以将训练好的机器学习模型整合到你的应用中。它支持以下操作系统:iOS 11.0+BetamacOS 10.13+BetatvOS 11.0+BetawatchOS 4.0+Beta训练好的模型(trained model)是将一个机器学习算法应用到一个训练数据集之后所得到的结果。然后该模型可以基于新的输入数据而进行预测。比如,如果一个模型在一个地区的历史房价数据上进行了训练,那么它就可能能够根据房子的卧室和浴室数量来预测房价。  Core ML 是域特定的框架和功能的基础。Core ML 支持用于图像分析的 Vision;用于自然语言处理的 Foundation(比如 NSLinguisticTagger 类)和用于评估已经学习到的决策树的 GameplayKit。Core ML 本身构建于低层面的原语(primitives)之上,比如 Accelerate、BNNS 和 Metal Performance Shaders。  Core ML 为设备性能进行了优化,从而减少了内存占用和功耗。严格在设备上运行能够确保用户数据的隐私,并且能保证你的应用在没有网络连接时也能够工作和响应。如何使用 Core ML?获取 Core ML 模型如何将 Core ML 模型用在你的应用中?Core ML 支持大量机器学习模型,包括神经网络、数集成、支持向量机和广义的线性模型。Core ML 需要 Core ML 格式(.mlmodel)。苹果已经以该格式提供了一些流行的开源模型,请访问:/machine-learning。你可以下载这些模型,并用在你的应用中。另外,一些研究组和大学也会发布自己的模型和训练数据,这些可能并不是 Core ML 模型格式的。要使用这些模型,请将其转换成 Core ML 格式。将 Core ML 模型用在你的应用中下面给出了一个示例,将一个训练好的模型 MarsHabitatPricer.mlmodel 用在了一个简单应用中,以用来预测火星上的地价。1. 将模型添加到你的 Xcode 项目通过将模型拖拽到项目导航即可将该模型添加到你的 Xcode 项目。  你可以在 Xcode 中打开模型来查看关于该模型的信息——包括模型的类型及其需要的输入和输出。该模型的输入是太阳能电池板和温室的数量,以及栖息地的大小(单位:英亩)。该模型的输出是该栖息地的预测价格。2. 在代码中创建模型Xcode 也会使用关于该模型输入和输出的信息来自动生成一个该模型的自定义的编程接口,你可以在代码中使用这些接口来和该模型进行交互。对于 MarsHabitatPricer.mlmodel,Xcode 会生成几个接口,其中 MarsHabitatPricer 表示该模型,MarsHabitatPricerInput 表示该模型的输入,MarsHabitatPricerOutput 则是该模型的输出。使用生成的 MarsHabitatPricer 类的初始化器来创建该模型:let model = MarsHabitatPricer()3. 将输入值输入该模型这个示例应用使用了 UIPickerView 来获取来自用户的输入值:func selectedRow(for feature: Feature) -& Int {return pickerView.selectedRow(inComponent: feature.rawValue)}let solarPanels = pickerDataSource.value(for: selectedRow(for: .solarPanels),feature: .solarPanels)let greenhouses = pickerDataSource.value(for: selectedRow(for: .greenhouses),feature: .greenhouses)let size = pickerDataSource.value(for: selectedRow(for: .size), feature: .size)4. 使用模型来做预测MarsHabitatPricer 类有一个生成的 prediction(solarPanels:greenhouses:size:) 方法(method),可用于根据模型的输入值预测一个价格。在这个案例中,输入是太阳能电池板和温室的数量,以及栖息地的大小(单位:英亩)。这个方法的结果是一个 MarsHabitatPricerOutput 实例 marsHabitatPricerOutputguard let marsHabitatPricerOutput = try? model.prediction(solarPanels: solarPanels,greenhouses: greenhouses, size: size) else {fatalError("Unexpected runtime error.")}获取 marsHabitatPricerOutput 的 price 属性来获取预测的价格,并将结果展示在该应用的用户界面上:let price = marsHabitatPricerOutput.pricepriceLabel.text = priceFormatter.string(for: price)注:生成的 prediction(solarPanels:greenhouses:size:) 方法可能会报错。你会遇到的最常见的错误类型是你输入该方法的数据的类型与该模型所需的输入数据类型不符——比如,格式不对的图片。在这个示例应用中,输入是 Double 类型的。任何类型不匹配都会在编译时显现,对于这个示例应用而言,如果有什么地方不对,它就会报出一个致命错误。5. 构建和运行一个 Core ML 应用Xcode 可以将该 Core ML 模型编译成一个资源(resource),其已经为设备上的运行进行了优化。这种优化了的模型的表示被包含在你的应用捆绑(app bundle)中,而且该应用在设备上运行时会使用这个模型来进行预测。将训练好的模型转换成 Core ML如果你的模型是使用支持的第三方机器学习工具创建和训练的,那么你可以使用 Core ML Tools(/machine-learning)将其转换成 Core ML 模型格式。下表给出了支持的模型和第三方工具。Core ML Tools 是一个 Python 包(coremltools),托管在 Python Package Index (PyPI) 上。要了解更多有关 Python 包的信息,请参阅:https://packaging.python.org  1. 转换你的模型使用对应你的模型的第三方工具的 Core ML 转换器转换你的模型。调用该转换器的 convert 方法,并将结果保存为 Core ML 模型格式(.mlmodel)。比如,如果你的模型是用 Caffe 创建的,那么将该 Caffe 模型(.caffemodel)转递给 coremltools.converters.caffe.convert:import coremltoolscoreml_model = coremltools.converters.caffe.convert('my_caffe_model.caffemodel')然后将所得到的模型保存为 Core ML 模型格式:coreml_model.save('my_model.mlmodel')根据你模型的需要,你可能需要更新输入、输出和标签,或者你可能需要声明图像名、类型、格式。这些转换工具捆绑了更多文档,因工具不同,其提供的选项也有所不同。2. 你也可以编写自定义的转换工具当你需要转换一个不在上表中的格式的模型时,你也可以创建你自己的转换工具。编写你自己的转换工具涉及到将你的模型的输入、输出和架构的表示(representation)翻译成 Core ML 模型格式。你需要定义该模型架构的每一层以及它们与其它层的连接。使用 Core ML Tools 提供的转换工具为例;它们演示了通过第三方工具创建的多种类型的模型被转换成 Core ML 模型格式的方法。注:Core ML 模型格式是由一些协议缓冲文件(protocol buffer files)定义的,具体描述请参阅:/machine-learningCore ML API这个文档包含了正在开发中的 API 和相关技术的初步信息。这些信息可能会发生变化,遵循这个文档实现的软件应该在最后的操作系统软件上进行测试。了解更多使用苹果 Beta 软件的信息,访问:/support/beta-software/在大多数案例中,你仅需要与你的模型的动态生成的接口进行交互,这些接口是 Xcode 自动生成的。你可以使用 Core ML API 直接支持自定义的工作流和高级的用例。比如,如果你需要做预测,同时异步地将输入数据收集到一个自定义的结构中,你可以通过采用 MLFeatureProvider 协议来使用该结构来为你的模型提供输入特征。  更多有关GMIS 2017大会的内容,请点击「阅读原文」查看机器之心官网↓↓↓责任编辑:
(来源:,如对本网转载内容、版权有异议,请联系我们: )
安卓网官方微信
微信号 Hiapk2013
这里有最无节操的小编和最鲜辣的资讯!
手机扫描二维码访问}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信