View in English

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

快捷链接

5 快捷链接

视频

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

更多视频

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

  • 简介
  • 转写文稿
  • 在 Create ML 中训练对象检测模型

    自定的 Core ML 对象检测模型让您有机会为自己的 app 增添一些神奇的功能。了解 Xcode 中的 Create ML app 如何让训练和评估这些模型变得简单。看看您可以如何利用连续互通相机直接在 app 中测试模型性能。为 Core ML 构建和部署出色的对象检测模型变得从未如此简单。

    资源

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

    相关视频

    Tech Talks

    • 在 Create ML 中改进对象检测模型

    WWDC20

    • 使用 Xcode Playground 探索软件包和项目

    WWDC19

    • Create ML App 简介
  • 搜索此视频…

    上午好

    我是 Alex Brown 是 Core ML 团队的一名工程师

    今天 我们要 展示用于物体检测的 Create ML 在机器学习的新功能 这一会议中 我们向你们 介绍了全新的 Create ML App

    这是一种非常 亲善好用的工具 可以帮助你 在 App 中添加自定义 机器学习模型

    本会议中 我们会 更深入地介绍两个 专门的模板 分别是针对图像的 物体检测 和声音分类 我们先来看物体检测

    物体检测可以让你的 App 识别 设备相机拍摄的 真实物体 并根据 它们是否出现 在何位置 有何关系作出反应 你可以在网上 下载能够分辨 物体所属大类的 物体检测器

    但如果使用你自己的数据 训练自定机器学习模型 你就可以让你的 App 分辨不同物体间的细微差别 例如动物 手势 路标 游戏符号等等 如果你曾经使用过 Apple 的机器学习 你对图像分类就应该比较熟悉了

    你可以使用图像分类 建立模型 为一幅图像 提供简短描述

    我们可以将这幅图像描述为 户外或公园 或者 对特定 App 而言 描述为“一条狗”

    但要是我们想要获取 场景中两个或以上的物体呢? 这种情况下 物体检测 就能派上用场 它可以检测出照片里 两个或以上的物体 并提供位置 大小等信息 还能给每个物体添加标签 这样一来 你的 App 就可以 运用设备用摄像头 做更复杂的事 但为此 我们要详细了解 如何用图像 训练你的模型

    要训练物体检测器 你需要在图像上 标记出希望 模型检测的区域 标记物体用的 选框 起始点位于 希望标记物体的中心 并且有其大小 高度和宽度 单位均为像素 定位取图像左上角为原点 定位点是希望标记的物体中心 你将所有的 标注 标签 位置和大小 打包在一个 JSON 文件中 格式如下 你可以从网页 下载工具帮助实现 但要 确保这些工具的坐标系统 与 Create ML

    App 的相一致 完成标注 图像后 将文件 拖拽到被标注图像 所在的文件夹 就好了

    你的训练数据就准备就绪了 现在我们知道如何 展示用于物体检测的训练数据 我们来看一个实例

    我的同事 Scott 有一个 不错的想法 制作 一款面向儿童的 数学游戏 并使用真正的骰子 生成问题

    你们可以在 228 号 会议中了解更多 会议名为 使用 Core ML 和 ARKit 创建超棒的 App Scott 找我帮忙 给他的游戏构建一个模型 我提议用 Apple 的 Create ML App 来训练一个 物体检测器 Scott 早就把训练数据发给我了

    他找了一堆图像 是角度不同 顶部点数不同的 骰子的图像 他标注了这些图像 在顶面画了选框 并且添加了标签 标注了每个骰子上面的点数大小 现在 数据就准备就绪了 我们来看看 如何 使用 Create ML App 来构建模型

    首先 我们来检查数据

    可以看到 我们把所有 图像放在一个文件夹里 每张图像 包含多个骰子

    我们把所有 标注都放在一个 JSON 文件里

    现在 我来打开 Create ML App 我可以从 Xcode 的 菜单打开 也可以使用聚焦

    Create ML App 打开后 就可以选择 打开之前创建的文档 我们来创建一个新项目 首先 可以看到模板 选择器 可以 从一系列机器学习 模型中选择 这个案例中 我们选图像 物体检测器

    我来给它命名 这样 之后就能把它区分出来 再添加一些细节

    现在 可以看到主窗口 训练视图位于右侧 它已经选择了一个 训练标签页 准备接收我们的训练数据 我也可以将它直接 拖入训练数据区 在训练数据之前 App 便会检查 数据 确保其 格式正确 包含图像 而非声音等其他类型的文件 且饱含一个 JSON 文件 能正确描述图像文件 它同时还提供了一些初始数据 可以看到 我们大概有 1,000 幅图像 并且有 六个类 对应 骰子的六个面 非常好

    我们还可以在这个界面上做些其他的 例如 我们可以提供 测试数据 从而 比较不同模型的表现 同时 我们也可以设置高级 参数 调整模型 训练的方式 但现在 这些 还不需要担心 我们已经 可以开始训练了

    我们按下开始按钮 看看会发生什么

    训练开始了 我们直接就会来到 训练标签页 这里可以看到 模型训练的进度 这是展示损失的图表 随着模型不断优化 损失也越来越少 所以这条线最后 应当到达图表底部 物体检测训练所需时间 比图像分类要长得多 我估计这可能要花上 至少一个小时 我们不想这么干等 所以我已经用这组数据训练好了一个模型

    好了 现在我可以 跳转到之前看到的 训练标签页

    可以看到 损失已经 显著减少了 表明 模型的性能随着 训练时间增加 而不断改善

    这个界面上还有其他东西 我认为值得大家 仔细一看 首先是总体性能 92% 这个数字 对于物体检测器来说 相当不错

    我们还想确认一下 是否对所有类 性能水平都较为一致

    从 1 到 6 的每个类 性能都超过 90% 并且 值都大致相等 这很重要 因为 这表明 模型处理 骰子六个面时 性能一样好 对骰子游戏来说 公平性很重要 这一点也至关重要 所以 数学上来讲 这个模型性能不错 但我们又该如何相信 它适用于 我们的实例呢 我们可以使用输出标签页

    Scott 发给我一张测试图像 让我在把模型发回给他之前 先测试一下 我们把这张图拖进来

    看起来还不错 可以看到 场景中的 五枚骰子都被识别了 模型正确地在骰子的 顶面画出了方框 依次点击 6 1 5 我们 可以看到每个标签 置信度较高

    性能很不错 所以 如果我要编写自己的 App 的话 我就可以直接 将生成的模型拖入 在 Xcode 中使用 我觉得 Scott 可能 也在等着把这个模型用到他的 App 里

    但在此之前 我还想再试一件事

    在我准备此次 演示 鼓弄骰子 照相机 和电脑的时候 我九岁的儿子过来问 我在干什么

    我解释之后 他非常兴奋 并且想出了一个游戏 里面有熊 蝙蝠 和其他动物 它们共同合作 收集螺栓 造一艘太空船 要用不同颜色的骰子 升级不同 种类的怪物

    我们拿到了他的骰子 并决定试一下 Scott 的模型 他用的骰子有一点不同 这些是角色扮演类游戏用的骰子 我们来看看模型的性能 到底如何使用 Mac 的连续互通相机 功能 我可以直接从 iPhone 导入照片 这一点很棒 因为这意味着我使用的 屏幕和相机与你的 App 使用的一样

    我来拍摄一张照片 选择 使用照片 照片马上就被分析了 我们来看一下 到底发生了什么 模型正确识别了两枚 带点数的六面骰子 并且 附上了正确的标签 模型忽视了照片中 大多数的骰子 除了 那边的几枚

    模型识别出的它们的点数 也是错误的 为什么会这样 问题在于预期的不同 Scott 知道 要使用的 都是白色六面骰子 用点数标明数字 我儿子对骰子的理解有点不同 这些骰子都是彩色的 它们不只有六个面 该如何在我们的 App 中 解决这个问题呢

    我们可以继续 使用课堂上玩这个游戏 可能会用到的骰子 或者 我们可以用这些骰子 训练这个模型 有两种方法可以实现这一点 我们可以决定 只有六面带点骰子 有效 而排除 其他骰子 这样的话 我们只需要拍摄 包括两种骰子的照片 只标记六面骰子就好 或者 如果我们要编写 先前说到的游戏 我们就要 把其他类型的骰子加入模型 将它们一并标记 可以只标记数字 或者添加额外标记 记录颜色 红 6 黑 4 等等

    我们把这个模型发给 Scott 他就可以编写演示 App 了 我可以使用分享按钮 直接用邮件发送模型

    这样就行了

    我们看到 你可以 使用 Create ML App 基于你收集的训练数据 训练物体检测器 有一些事情 希望 大家在收集训练数据时予以考虑 首先 每个类 带有标注的图片数量 应该均衡

    这样 算法就知道每一个类 都同等重要 我们构建的模型 才能对所有类 有均衡的表现

    其次 你需要很多图片 我建议 每个类中 你希望模型识别的 带标注的图片至少为 30 张 如果 性能不够好 或者 识别对象特别复杂 就进一步增加数量 比如 对象不同面的 外观不一样

    我们之前遇到的 骰子颜色不同的问题怎么解决 图像中的区别不止这一种

    我们建议你考虑 你的 App 在现实中是如何运用的 你的用户可能不会有 工作室光照 标准骰子 也没有一张精美的木质书桌

    你或许可以找朋友 在不同情境下收集 额外数据 例如 室内灯光 室外自然光 不同的背景 还可以 添加一些你的模型 用不到的物体 这可以帮助模型适应普遍情况

    如果你之前用过物体分类器 有一件事情你可能 意想不到 那就是 一个标签足矣

    这是因为 既然你将 图片的一部分 解释为狗 也就意味着 其余部分不是 模型也会 照此训练

    所以 比方说 你要 编写一款 App 用它识别 你冰箱里泡菜罐的 数量 你就不需要 把其他调味品都标记出来 模型自动就能归纳出 那些不是咸菜罐

    模型构建完成后 你如果想把这一 功能加入你的 App 我们建议你 使用 Vision 框架 Vision 框架能够 将实时相机和视频 无缝整合进你的模型工作流

    这就是训练物体检测器 需要知道的事项

    [掌声]

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. 保留所有权利。
    使用条款 隐私政策 协议和准则