前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >苹果新推出的CoreML怎么用?有哪些bug?这里有一份教程

苹果新推出的CoreML怎么用?有哪些bug?这里有一份教程

作者头像
量子位
发布2018-03-29 17:08:11
1.4K0
发布2018-03-29 17:08:11
举报
文章被收录于专栏:量子位量子位量子位
安妮 编译自 Hackernoon 量子位出品 | 公众号 QbitAI

昨天,年仅18岁的iOS app开发者Alex Wulff在Hackrnoon上发布了一篇教程,手把手教你如何将苹果在WWDC上发布的众多API应用到你的电脑上。量子位全文编译如下:

Alex Wulff

iOS 11真的来了。

苹果在iOS 11里引入了本地机器学习和机器视觉框架,承诺这将促进app和游戏的一大飞跃性进步,也解锁了一大堆可能性。

目前机器学习解决方案已经可以在云端实现了。但这些系统不仅需要持续连网,经常在iOS上有明显的延迟,也为敏感数据带来了安全风险。有些App在用第三方Swift AI系统,但是这些框架很难占据主流开发社区。

你也想知道如何将苹果新发布的API集合到你的电脑上?其实比你想象的简单。

你首先需要在电脑上下载Xcode 9 beta程序,链接在这里:

https://developer.apple.com/download/

这个文件非常大,可能需要很长时间下载。而且这个早期测试版含有很多bug和一些其他问题。不过在Xcode漫长的下载过程中,你可以继续把这篇文章的剩余部分看完,之后就能进行下面的操作了。

下面这个是我编写的一个演示iOS中新引入的机器学习功能的小样例。

Github链接:

https://github.com/AlexFWulff/Machine-Learning-Demo-iOS

我的样例可以为输入的图片进行分类,所有计算都是在含Core ML和视觉框架的设备上完成的。

这个项目内容不多,其中,希望你能注意GoogLeNetPlaces.mlmodel。这是几年前谷歌研究人员训练的机器视觉模型,苹果的新机器学习API允许开发者在他们的iOS app中轻松地访问这些标准化的模型。当你把.mlmodel格式的文件拖进App中时,Xcode会为它自动创建Swift wrapper。一些这样的模型文件大小可超几百兆。

不幸的是,Core ML文件离“人类可读”还很远,它们只是大量字节的集合,告诉设备如何处理输入的“神经元”。模型越复杂,文件就越大。

苹果提供四种不同的训练模型。你可以在这个链接中找到这些模型:

https://developer.apple.com/machine-learning/

苹果的Core ML Tools Python软件包允许开发人员将现有的模型转化为iOS可读取的Core ML格式。希望格式对你来说没有限制,并且期待你能掌握各种用例的训练模型。

众多bug之一:即使你的项目正在被编写,但编辑器仍然认为Swift wrapper不存在

接下来,打开ViewController文件。第一个代码片段(见上图)只是简单尝试创建一个变量来存储你所选模型的视觉展示。即使在这一节中出现了错误,项目仍能被编辑。我在Xcode 9测试版中发现了不少bug,这是其中一个。

为了支持Core ML模型,苹果也推出了自己的机器视觉API,并命名为Vision。Vision包含了许多不同的机器视觉模型,它们可以检测人脸、条形码、文本等多种类型,还提供基于图像的Core ML模型wrapper。例如,项目中的模型可以以图片作为输入,并且返回一个描述性字符串作为输出。对于非基于图像的模型,苹果已经创建了小型示例项目演示它的使用方法,它独立于Vision,只依赖Core ML。

你也需要这个示例项目?给你链接:

https://developer.apple.com/documentation/coreml/integrating_a_core_ml_model_into_your_app

接下来该建立和处理请求了。你可以在项目导航器中看到尝试此模型的不同图像。用其他任何文件名替代“airport”字符串,建立并且运行项目,看看如何将结果输出到控制台更改。

最后一个片段代码只接受请求的结果并会将它打印出来。在这个Demo中,我没有设置出错时提醒之类的机制,所以一旦出现了错误,整个程序就会崩溃。

另一个影响项目的大bug是将文件拖放带项目导航器中发生的。bug修复前,不要在Xcode 9中尝试这个功能,会因为它将给依赖链带去巨大的影响。你只需在Xcode的早期版本中打开Xcode项目,如果有需要的话,选择copy项,并确认。

最后一个bug可能会在你运行项目的时候突然出现。如果模拟器无法启动,你需要先退出模拟器和Xcode。

以上就是我带来的iOS 11中轻松使用机器学习的示例项目。苹果链接中的其他三个模型应该都与VNCoreMLRequest兼容。

附上这个18岁小码农的个人网站:www.AlexWulff.com。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安妮 编译自 Hackernoon 量子位出品 | 公众号 QbitAI
    • △ Alex Wulff
      • △ 众多bug之一:即使你的项目正在被编写,但编辑器仍然认为Swift wrapper不存在
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档