专栏名称: 量子位
վ'ᴗ' ի 追踪AI行业和技术动态,这里更快一步!关注我们,回复“今天”,更多大新闻等你来发现
目录
相关文章推荐
爱可可-爱生活  ·  【Genesis:一个为通用机器人和具身AI ... ·  3 天前  
爱可可-爱生活  ·  【yomikomi:基于Rust的轻量级数据 ... ·  3 天前  
新智元  ·  OpenAI圣诞第9天:满血o1 ... ·  4 天前  
51好读  ›  专栏  ›  量子位

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

量子位  · 公众号  · AI  · 2017-06-08 12:48

正文

安妮 编译自 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。

【完】

学习推荐

6月15号量子位组织沙龙活动,邀请到了图森首席科学家王乃岩博士分享自动驾驶相关话题,欢迎大家长按下图扫码报名~

One More Thing…

今天AI界还有哪些事值得关注?在量子位(QbitAI)公众号对话界面回复“今天”,看我们全网搜罗的AI行业和研究动态。笔芯~

 扫码强行关注『量子位』

追踪人工智能领域最劲内容