-
在 Create ML 中构建活动分类模型
您的 iPhone 和 Apple Watch 搭载了许多功能强大的传感器,包括加速感应器和陀螺仪。可以使用来自这些传感器的数据训练活动分类器,从而为您的 app 增添一些神奇的功能,例如知道用户何时在跑步或挥动球棒。了解 Create ML app 如何让训练和评估这些 Core ML 模型之一变得简单。更深入地了解如何收集训练所需的原始数据。查看这些模型的实际应用。
资源
相关视频
WWDC19
-
下载
我是来自 Core ML 组的 Yuxin 今天 我非常激动地 向大家介绍 今年 Create ML 中的全新模型 行为分类
我们每天都通过设备 进行很多行为 比如玩游戏 做运动 我们的移动设备 也都配备了 大量传感器
加速度计和陀螺仪 都很常用 它们有助于 检测设备的 三维加速度 旋转速度 或设备方向
同样地 如果你做出不同手势 玩不同游戏 或者进行不同的体育运动 你的行为数据也可能 有足够大的差异 以供识别
那么 什么是行为分类 它是一项任务 能够识别 对设备执行的 预定义物理操作集 如果你有不同的行为需要识别 或者你的 App 可能有不同的需求 这时该怎么办呢 我们十分希望 你能够根据自己的目的 定制自己的模型
于是我们在今年 向你们介绍 Create ML 中的行为分类 不如我们先举个例子
在游戏过后 我也很想看看 我的表现有多好 比如投掷技术的 种类和数量 所以我训练了一个飞盘运动分类器 来识别我的动作 并用在我的 Apple Watch 上 我觉得这行得通 我们先来看一个现场演示
这是我的 iPhone 屏幕 它已与我的 Apple Watch 配对
一旦我按下开始按钮 我的 Apple Watch 就会开始 传输传感器数据
我们开始吧 现在它让我 做出一个飞盘动作 这意味着它预测了一个无行为类 显然目前是正确的 我先试试简单的动作
正手 接下来 反手 这是我最喜欢的动作 “鸡翅膀” 我还有一个更漂亮的秘密武器 要给你们展示 “保龄球” 它叫做 “保龄球手” 因为我像是在打保龄球 我再试一次 “保龄球手”
对于特定的类别 比如 “保龄球手” 我知道我可以回头收集更多的数据 所以我对这些数据很满意 今天我锻炼得不错 现在 我们说回上一话题 我知道作为开发者的你 会有很多其他更有创意的想法要探索
只需要三步 首先 为自己的行为收集一些数据 使用 Create ML 训练模型 最后 将模型部署到你的 App 中
更多有关它的信息 请参考我们之前的会议 以及 Apple 开发者文档 但从高层次的角度来看 你的 App 可以轻松访问 一系列传感器 也就是 Core Motion Framework 你还可以操控 开始 停止 或设置 App 中记录的更新间隔 你也可以使用 完全相同的机制 来收集你的训练数据 以及之后的设备推断 这就是我的数据
其实我在飞盘运动的例子中 还使用了加速度 和旋转速度 但是为了简单起见 这里只展示了三列
之后 在训练中 深度学习模型 会使用一个滑动窗口 在时间序列数据间移动
现在我们已经准备好了文件 你只需在这样的数据源层次结构中 组织数据 其中每个文件夹的名称 都是一个标签名称 这个文件夹下的所有文件 都属于同一个行为
支持的格式有 CSV JSON 和文本格式 你可以选择其中之一 也可以按照喜好混合搭配
数据准备好了 现在我们开始训练 只需从 Create ML App 的模板中 选择 Activity Classifier 这是一个标准的信息界面 你可以将你的训练数据 拖放到这个窗口中 在 Activity 中 你可以预览记录里有多少文件 和多少样例
Activity 上的 一个特殊步骤是 你需要告诉 Create ML 你想尝试的传感器特性是什么
你还可以选择 根据行为的快慢 来调整参数 比如预测窗口尺寸 对于飞盘运动的例子 实际上我用了两秒窗口 也就是 100 个样本 我将在这里输入 100 因为我的数据 最初是以 50 hz 的频率采样的
现在我们按下 “训练” 按钮 可以从这里开始训练 我相信你们在这一周内 已经多次看到了整个过程 所以我会略过这部分内容 因为从这里开始的 整个工作流程 与 Create ML 中的其他模型完全相同
如果你对准确性还满意 那么就可以 继续尝试一些新的数据 来评估这个模型的性能
对于我的飞盘运动的例子 你可以在这里看到 “保龄球手”和“锤击”这些特定的类别 不是那么完美
这可能意味着 我需要再为这两类 收集更多的数据 然后再次迭代 就可以提高性能
最终我们就 得到了一个训练模型 你可以选择保存模型 并将它部署到我们的 App 中
或者你可以在 Mac 上 直接在 Create ML App 中 进行批量预测
只需在窗口中 添加一些新的未显示和未标记的数据 你就会看到 即时的预测结果 包括标签名称 置信度 以及行为数据的预览 以便更好地了解你的行为
我的飞盘运动例子 是一个神经网络分类器 它只有 1.1 MB 体量非常小 对于移动设备来说非常简单
此外 你还可以看到 你在训练中使用的 所有传感器特性的 完整列表 以及预测窗口大小 之后 关于你的设备推断 你只需使用 相同的数据 相同的大小来保持一致
这就是 Create ML App 我们在 macOS 中也有这个框架
你可以使用 Xcode Playground Swift Script 或者命令行工具 来自动化整个过程 就像这样
Activity 上的 一个特殊步骤是 需要指定 selectedSensors
都是标准统一的 训练评估和模型保存 只是针对每个模型的一行代码
使用相关的传感器 比如加速度计和陀螺仪 都是非常常见的基于运动的任务
提供类别均衡的数据 对于 Activity 而言 还涉及到每个类别记录文件的数量 和记录长度
最后 Core Motion 既提供 原始传感器数据 也提供处理过的设备运动数据
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。