Brickit 的 AI 识别原理——机器学习怎么认出每块积木
核心技术:计算机视觉 + 机器学习
Brickit 能做到"扫一眼就认出一堆积木里每一块是什么",背后靠的是计算机视觉技术,加上一套非常务实的机器学习训练流程。官方在介绍页里公开了这个流程的基本思路,这里用更通俗的方式解释一下。
第一步:造无限多的训练数据
真实世界里的积木堆有无数种可能的摆放方式、光照条件、背景色。靠人工拍摄训练样本永远拍不完。
Brickit 的做法是:用 3D 图形引擎生成几乎无限多的积木堆模拟图。他们把各种积木的 3D 模型以随机方式堆在一起,随机打光、随机加背景,得到数十万张、每一张都不一样的"假照片"。这些假照片上,AI 知道每个像素对应的是哪块积木——因为是自己生成的。
第二步:先在模拟图上训练
把这些合成图喂给神经网络,让它学习"什么像素组合对应什么形状的积木"。这个阶段相当于在做题海中的模拟题。
第三步:用真实用户照片继续打磨
模拟图和真实照片之间总有差距(手机摄像头的噪点、真实光照下的阴影、实际积木的磨损褪色……)。所以 Brickit 还会把用户真实扫描的照片(匿名化后)也用来继续训练模型——算法每认错一次,就相当于做了一道新的真题。
这也是 Brickit 识别准确率一直在提升的原因:用的人越多,模型越聪明。
识别能力的边界
根据官方数据,当前模型可以识别大约 1600 种最常见的乐高零件。这覆盖了大多数玩家日常会遇到的型号,但不是乐高全部生产过的几万个零件型号。
识别不准的常见原因:
- 积木有磨损或褪色——新积木识别率更高
- 两块积木紧贴在一起——AI 可能当一块处理
- 小零件——颗粒越小越容易被漏掉
- 光线太暗或反光太强——见光线与拍摄角度
你也可以帮它进步
Brickit 设计了非常轻量的"纠错"交互:当 AI 认错或漏认时,你可以在扫描结果上直接修改,这些修改会匿名回到训练数据里——等于每次你手动修正一个识别错误,都在帮全球用户的识别准确率往前走一小步。
想要识别更准,先看把积木铺平准备扫描——扫前的准备工作对识别率影响极大。