View in English

  • 打开菜单 关闭菜单
  • Apple Developer
搜索
关闭搜索
  • Apple Developer
  • 新闻
  • 探索
  • 设计
  • 开发
  • 分发
  • 支持
  • 账户
在“”范围内搜索。

快捷链接

5 快捷链接

视频

打开菜单 关闭菜单
  • 专题
  • 相关主题
  • 所有视频
  • 关于

更多视频

大多数浏览器和
Developer App 均支持流媒体播放。

  • 简介
  • 转写文稿
  • 在 Create ML 中构建活动分类模型

    您的 iPhone 和 Apple Watch 搭载了许多功能强大的传感器,包括加速感应器和陀螺仪。可以使用来自这些传感器的数据训练活动分类器,从而为您的 app 增添一些神奇的功能,例如知道用户何时在跑步或挥动球棒。了解 Create ML app 如何让训练和评估这些 Core ML 模型之一变得简单。更深入地了解如何收集训练所需的原始数据。查看这些模型的实际应用。

    资源

      • 高清视频
      • 标清视频
    • 演示幻灯片 (PDF)

    相关视频

    WWDC19

    • 机器学习的新功能
    • Create ML App 简介
  • 搜索此视频…

    我是来自 Core ML 组的 Yuxin 今天 我非常激动地 向大家介绍 今年 Create ML 中的全新模型 行为分类

    我们每天都通过设备 进行很多行为 比如玩游戏 做运动 我们的移动设备 也都配备了 大量传感器

    例如 对于运动来说

    加速度计和陀螺仪 都很常用 它们有助于 检测设备的 三维加速度 旋转速度 或设备方向

    我们可以利用这些传感器数据来表示行为

    例如 如果你在慢跑 数据就和站着不动时 有很大差异

    同样地 如果你做出不同手势 玩不同游戏 或者进行不同的体育运动 你的行为数据也可能 有足够大的差异 以供识别

    那么 什么是行为分类 它是一项任务 能够识别 对设备执行的 预定义物理操作集 如果你有不同的行为需要识别 或者你的 App 可能有不同的需求 这时该怎么办呢 我们十分希望 你能够根据自己的目的 定制自己的模型

    于是我们在今年 向你们介绍 Create ML 中的行为分类 不如我们先举个例子

    我很喜欢 和家人朋友玩极限飞盘

    在游戏过后 我也很想看看 我的表现有多好 比如投掷技术的 种类和数量 所以我训练了一个飞盘运动分类器 来识别我的动作 并用在我的 Apple Watch 上 我觉得这行得通 我们先来看一个现场演示

    这是我的 iPhone 屏幕 它已与我的 Apple Watch 配对

    模型会在我的 Apple Watch 上运行

    这儿有一个开始按钮

    一旦我按下开始按钮 我的 Apple Watch 就会开始 传输传感器数据

    然后我的模型 就会进行连续预测

    我们开始吧 现在它让我 做出一个飞盘动作 这意味着它预测了一个无行为类 显然目前是正确的 我先试试简单的动作

    正手 接下来 反手 这是我最喜欢的动作 “鸡翅膀” 我还有一个更漂亮的秘密武器 要给你们展示 “保龄球” 它叫做 “保龄球手” 因为我像是在打保龄球 我再试一次 “保龄球手”

    它只是机器学习模型啦

    现在 我按下停止按钮 然后看看我的结果

    在我看来还不错

    对于特定的类别 比如 “保龄球手” 我知道我可以回头收集更多的数据 所以我对这些数据很满意 今天我锻炼得不错 现在 我们说回上一话题 我知道作为开发者的你 会有很多其他更有创意的想法要探索

    现在我们看一看 如何在 Create ML 中真正设置模型

    只需要三步 首先 为自己的行为收集一些数据 使用 Create ML 训练模型 最后 将模型部署到你的 App 中

    我们先来获得一些数据

    访问传感器数据最简单的方法 是使用 Core Motion

    更多有关它的信息 请参考我们之前的会议 以及 Apple 开发者文档 但从高层次的角度来看 你的 App 可以轻松访问 一系列传感器 也就是 Core Motion Framework 你还可以操控 开始 停止 或设置 App 中记录的更新间隔 你也可以使用 完全相同的机制 来收集你的训练数据 以及之后的设备推断 这就是我的数据

    这是我的“正手”记录之一 它是 CSV 格式

    有一列时间戳 以及其他几列 传感器特性

    其实我在飞盘运动的例子中 还使用了加速度 和旋转速度 但是为了简单起见 这里只展示了三列

    如果想要 进一步研究数据 行为模式 看起来可能会是这样

    我的 “正手” 记录 在同一类上有三个来回动作

    之后 在训练中 深度学习模型 会使用一个滑动窗口 在时间序列数据间移动

    通过这种方式 它可以提取行为的 空间和时间模式

    现在我们已经准备好了文件 你只需在这样的数据源层次结构中 组织数据 其中每个文件夹的名称 都是一个标签名称 这个文件夹下的所有文件 都属于同一个行为

    支持的格式有 CSV JSON 和文本格式 你可以选择其中之一 也可以按照喜好混合搭配

    数据准备好了 现在我们开始训练 只需从 Create ML App 的模板中 选择 Activity Classifier 这是一个标准的信息界面 你可以将你的训练数据 拖放到这个窗口中 在 Activity 中 你可以预览记录里有多少文件 和多少样例

    Activity 上的 一个特殊步骤是 你需要告诉 Create ML 你想尝试的传感器特性是什么

    只需从这个列表中选择一个或多个

    所有这些传感器特性 都来自你的文件 即 CSV 文件的标题

    你还可以选择 根据行为的快慢 来调整参数 比如预测窗口尺寸 对于飞盘运动的例子 实际上我用了两秒窗口 也就是 100 个样本 我将在这里输入 100 因为我的数据 最初是以 50 hz 的频率采样的

    现在我们按下 “训练” 按钮 可以从这里开始训练 我相信你们在这一周内 已经多次看到了整个过程 所以我会略过这部分内容 因为从这里开始的 整个工作流程 与 Create ML 中的其他模型完全相同

    如果你对准确性还满意 那么就可以 继续尝试一些新的数据 来评估这个模型的性能

    这是一个标准测试标签 和刚才一样 提供测试数据

    在评估之后 你会看到 一张包含每个类别 查准率和查全率的表

    对于我的飞盘运动的例子 你可以在这里看到 “保龄球手”和“锤击”这些特定的类别 不是那么完美

    这可能意味着 我需要再为这两类 收集更多的数据 然后再次迭代 就可以提高性能

    最终我们就 得到了一个训练模型 你可以选择保存模型 并将它部署到我们的 App 中

    或者你可以在 Mac 上 直接在 Create ML App 中 进行批量预测

    只需在窗口中 添加一些新的未显示和未标记的数据 你就会看到 即时的预测结果 包括标签名称 置信度 以及行为数据的预览 以便更好地了解你的行为

    最后 这是我的 Core ML 模型

    我的飞盘运动例子 是一个神经网络分类器 它只有 1.1 MB 体量非常小 对于移动设备来说非常简单

    此外 你还可以看到 你在训练中使用的 所有传感器特性的 完整列表 以及预测窗口大小 之后 关于你的设备推断 你只需使用 相同的数据 相同的大小来保持一致

    这就是 Create ML App 我们在 macOS 中也有这个框架

    你可以使用 Xcode Playground Swift Script 或者命令行工具 来自动化整个过程 就像这样

    Activity 上的 一个特殊步骤是 需要指定 selectedSensors

    除此之外 工作流程的其余部分 与我们拥有的其他模型一样

    都是标准统一的 训练评估和模型保存 只是针对每个模型的一行代码

    这就是我们如何查看 Create ML 中的行为分类器

    除此之外 我还想分享一些 这个模型的更优实践

    理解你的行为

    使用相关的传感器 比如加速度计和陀螺仪 都是非常常见的基于运动的任务

    这有助于收集一些 无行为类 或其他类数据

    这对运行时的性能 特别有帮助

    提供类别均衡的数据 对于 Activity 而言 还涉及到每个类别记录文件的数量 和记录长度

    最后 Core Motion 既提供 原始传感器数据 也提供处理过的设备运动数据

    设备运动 是 Core Motion 框架下的一种传感器融合 它还提供了归一化 时间对齐 和偏差消除

    有时候 这对于处理数据 是很有帮助的

    这就是 Activity [掌声]

Developer Footer

  • 视频
  • WWDC19
  • 在 Create ML 中构建活动分类模型
  • 打开菜单 关闭菜单
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    打开菜单 关闭菜单
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    打开菜单 关闭菜单
    • 辅助功能
    • 配件
    • App 扩展
    • App Store
    • 音频与视频 (英文)
    • 增强现实
    • 设计
    • 分发
    • 教育
    • 字体 (英文)
    • 游戏
    • 健康与健身
    • App 内购买项目
    • 本地化
    • 地图与位置
    • 机器学习
    • 开源资源 (英文)
    • 安全性
    • Safari 浏览器与网页 (英文)
    打开菜单 关闭菜单
    • 完整文档 (英文)
    • 部分主题文档 (简体中文)
    • 教程
    • 下载 (英文)
    • 论坛 (英文)
    • 视频
    打开菜单 关闭菜单
    • 支持文档
    • 联系我们
    • 错误报告
    • 系统状态 (英文)
    打开菜单 关闭菜单
    • Apple 开发者
    • App Store Connect
    • 证书、标识符和描述文件 (英文)
    • 反馈助理
    打开菜单 关闭菜单
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program (英文)
    • News Partner Program (英文)
    • Video Partner Program (英文)
    • 安全赏金计划 (英文)
    • Security Research Device Program (英文)
    打开菜单 关闭菜单
    • 与 Apple 会面交流
    • Apple Developer Center
    • App Store 大奖 (英文)
    • Apple 设计大奖
    • Apple Developer Academies (英文)
    • WWDC
    获取 Apple Developer App。
    版权所有 © 2025 Apple Inc. 保留所有权利。
    使用条款 隐私政策 协议和准则