Highlight
Create ML 在 WWDC22 带来了三项核心更新:交互式模型评估工具帮助开发者定位数据问题、Continuity Camera 实时预览让模型测试更直观、Create ML Components 框架新增动作重复计数能力。
核心内容
训练完一个模型后,你通常会看一个准确率数字。89% 听起来不错,但这个数字掩盖了很多问题。Create ML 应用的新评估工具让你能深入到这个数字背后,看清模型到底在哪些样本上出错、为什么出错。(02:26)
以一个食材图像分类器为例。训练 25 轮后,测试准确率 89%。在 Metrics 标签页中,可以看到每个类别的详细统计。番茄类别的精度是 91%,意味着模型说”这是番茄”时有 9% 的概率是错的。(04:36)
点击精度数字,可以看到被错误分类为番茄的三张图片。第一张标注为土豆,但看起来确实是番茄——这是标注错误。三张全是标注错误,修正后模型表现会提升。(05:16)
继续探索失败案例,发现一张标注为胡萝卜的图片被预测为土豆。放大看,这明显是一只脚,不是胡萝卜。训练数据中胡萝卜的形状变化不够丰富,模型学偏了。(06:46)
还有一个有趣的情况:一张图片里有多种蔬菜,标注为茄子。模型只看到一个类别,但图片内容复杂。这时候需要考虑是否该用目标检测器(Object Detector)替代图像分类器。(07:57)
Summary 区域的 Top Confusion 显示了最常见的混淆对:Pepper 被错分为 Bean。查看后发现,模型能正确识别的是甜椒(bell peppers),但辣椒(spicy peppers)和豆角都是绿色的,容易混淆。训练数据中辣椒的样本可能不够多样化。(08:37)
详细内容
评估工作流
Create ML 应用的评估流程分为几个层次:(03:43)
- 顶层摘要:正确数、错误数、主要混淆对,快速定位问题方向
- Metrics 表格:每个类别的精度、召回率、假阳性、假阴性,可自定义显示列
- Explore 视图:点击任意数字进入样本级别,查看原始图片、预测标签、真实标签
- 详细预测:展开单张图片,显示模型对所有类别的置信度分布
目前 Explore 视图支持图像分类器、手势分类器和目标检测模板。(11:18)
实时预览
评估标签数据之外,还可以用未标注的样本做快速测试。Preview 标签页支持两种方式:(10:15)
- 拖拽图片:把同事发来的测试图片拖进去,看模型预测结果
- 实时摄像头:用 iPhone 或 iPad 作为 Continuity Camera,直接对着实物测试
实时预览目前支持图像分类器、手势动作分类器和身体动作分类器模板。(11:26)macOS Ventura 上可以选择任意连接的摄像头,包括 Continuity Camera。
Create ML Components 与重复计数
Create ML 框架今年扩展到了 tvOS 16。(11:59)更大的变化是引入了 Create ML Components,暴露底层构建块,让开发者可以组合自定义流水线。
一个具体的新能力是动作重复计数(Repetition Counting)。它基于预训练模型,无需训练数据,适用于各类全身重复动作。(15:26)
import CreateMLComponents
// 创建重复计数器
let counter = HumanBodyActionCounter()
// 从视频帧中计数
for frame in videoFrames {
let count = try await counter.count(frame)
print("Current count: \(count)")
}
关键点:
HumanBodyActionCounter是类无关的(class-agnostic),适用于健身动作(开合跳、深蹲)、舞蹈动作(旋转、移动组合)等各种全身重复动作- 不需要训练,直接作为运行时 API 使用
- 可以与动作分类(Action Classification)结合,同时识别动作类型和计数
- 只需要几行代码就能集成到应用中
框架平台支持
Create ML 框架支持 macOS、iOS、iPadOS 和 tvOS,但不同任务的平台支持有差异:(12:24)
- 表格分类器和回归器:所有平台
- 涉及视频的任务:需要 macOS(数据量和计算需求更大)
核心启发
1. 用评估工具做数据质量审计
不要只看准确率数字。把测试集的错误样本逐个过一遍,你会发现大量标注错误和数据偏差。Create ML 应用的 Explore 视图让这个过程变得可视化,点击数字就能看到对应的图片。把发现的问题记录在 Finder 标签中,作为下一轮数据收集的指引。
2. 用 Continuity Camera 做真实场景验证
模型在测试集上表现好,不代表在真实环境中也好。用 iPhone 作为 Continuity Camera,直接对着实物测试模型。注意光线角度、背景复杂度、遮挡情况,这些在静态测试集中可能覆盖不到。
3. 在健身或运动应用中加入重复计数
如果你在做健身应用,可以用 HumanBodyActionCounter 实现自动计数功能。用户做深蹲、俯卧撑、开合跳时,应用自动计数并给出反馈。结合动作分类,还可以识别用户做的是哪个动作,然后针对性地计数。不需要收集训练数据,几行代码就能实现。
4. 考虑从分类器升级到检测器
如果你的应用场景中经常出现多个目标(比如一张图里有多种蔬菜、多个人物),图像分类器会力不从心。评估过程中如果发现这种情况,考虑切换到 Object Detection 模板。Create ML 应用同时支持这两种模板,切换成本不高。
关联 Session
- Get to know Create ML Components — Create ML Components 框架入门,了解底层构建块如何组合
- Compose advanced models with Create ML Components — 用 Create ML Components 构建高级模型,包含异步时序组件
- Explore the machine learning development experience — 机器学习开发体验概览
- Classify hand poses and actions with Create ML — 用 Create ML 进行手势和动作分类
评论
GitHub Issues · utterances