博客 · 指南

从你自己的照片到 App Store,全部在 iPad 上完成

在 MagicaLCore 中训练模型,在 Swift Playgrounds 中开发 App,再发送到 App Store Connect。无需 Mac,一步步走完全程。

作者:MagicaLCore ·

过去,想做一款用自己的模型识别事物的 App,每一步都离不开 Mac:训练工具、Xcode,还有一台用来上传构建版本的电脑。如今,一台配备 M1 或更新芯片的 iPad 就能走完全程。下面以一款植物识别 App 为例,看看各个环节如何衔接。

想法

挑一样你在意、又能用摄像头、麦克风或一张数据表记录下来的东西:

  • 从一张照片看,这是哪种室内植物?
  • 从一段录音听,是哪种鸟在唱歌?
  • 这句话是提问、抱怨还是称赞?
  • 从一张手的照片看,是石头、剪刀还是布?

范围窄的问题比范围宽的问题效果更好。“我阳台上的这 8 种植物中的哪一种?”胜过“世界上的所有植物”。

第 1 步:收集示例

用 iPad 给每种植物拍照:换角度、换光线,近拍也远拍。每种植物放进一个单独的文件夹,以它的名字命名。这些名字就是你的 App 将显示的标签。每种植物留出几张照片,专门用于测试。

第 2 步:在 MagicaLCore 中训练

新建一个图像模型,填写名称和作者,然后添加你的文件夹。先用默认设置开始。训练时,留意训练和验证的准确率与损失。如果时间不够,可以暂停,之后在历史记录中继续。

第 3 步:测试困难的情况

把摄像头对准植物,看看每次预测的置信度。试试昏暗的角落、背景杂乱的叶子、不在你列表里的植物。模型出错时,就多加一些类似的示例,再训练一次。好模型正是在这样的循环中诞生的。

第 4 步:导出 .mlmodel

导出模型,附上名称、作者和描述,并存入“文件”App。它可直接用于 Swift Playgrounds 和 Xcode。

第 5 步:在 Swift Playgrounds 中开发 App

Swift Playgrounds 是 Apple 的免费 App,可在 iPad 和 Mac 上编写 Swift 代码、用 SwiftUI 开发 App。新建一个 App 项目,加入 .mlmodel,编写界面,输入时可实时预览。MagicaLCore 中的“使用你的模型”指南展示了每种模型类型的代码:如何加载模型,如何传入一张照片、一段声音、一行数据或一句话,以及如何读取答案。

一个简单的第一版只需要三样东西:

  1. 一个用来拍照或选择照片的按钮。
  2. 模型的答案及其置信度。
  3. 一张关于结果的简短卡片:在植物 App 中,就是植物名称和养护方法。

第 6 步:发布

App 在你的 iPad 上运行正常后,Swift Playgrounds 可以把它发送到 App Store Connect。要在 App Store 发布,你需要 Apple Developer Program 会员资格。如果以后需要更多功能,同一个项目可以在 Mac 上的 Xcode 中打开。

小贴士

  • 识别在设备上完成。 模型随 App 一起分发,因此无需服务器就能给出答案,也不会把照片发送到任何地方。
  • 从小做起,逐步扩展。 先用少量类别发布,收集到更多示例后再增加类别。
  • 对用户坦诚。 显示置信度,并说明 App 不知道什么。

写给学生:Swift Student Challenge

Apple 每年邀请学生把自己创作的 App Playground 提交给 Swift Student Challenge。学生用自己的照片、声音或数据训练的模型,可以成为作品的核心,而且可离线运行。MagicaLCore 不属于 Challenge,也与 Apple 无关,因此请阅读当年的官方规则,并注明你所用的工具。

全程一览

步骤 App 设备
收集示例 相机、语音备忘录、文件 iPad
训练和测试 MagicaLCore iPad
导出 .mlmodel MagicaLCore iPad
开发 App Swift Playgrounds iPad
发送到 App Store Connect Swift Playgrounds iPad

有关其他 App 和服务的信息均于文章发布日期核实,可能会有变化。所有产品名称归其各自所有者所有。

继续阅读

全部文章