首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

乐高和工程学的结合,乐高AI分拣机

乐高,这是一款可以充分锻炼人的创造力与想象力的积木玩具,想必大家小时候也经常发挥自己的奇思妙想去创造属于自己的“乐高城”吧。但是,部件种类的丰富,也让我们常常陷入分类归纳的困扰中。就目前而言,乐高积木共有 119 个系列,111 种颜色,而每个系列就包含几百个甚至几千个部件。如何去分拣这些积木成了令人为难的问题。澳大利亚软件工程师 Daniel West,把这个令人“头秃”的问题交给了 AI。他花费了两年时间,用超过 10000 块乐高积木,建成了一个通用的乐高积木分拣机。这是一台由AI驱动的自动分拣机,能够识别出任何已生产的乐高零件并将它们归类。那他是如何做到的呢?

据Daniel West介绍:这台分拣机借助计算机视觉算法,可以分拣出任何乐高零件。设备还带有 6 个乐高电机和 9 个伺服电机,为传送乐高零件的传送带和搅拌器提供动力。这台机器能够将 2927 种乐高积木分类到 18 个不同的归纳箱,并且每 2 秒便可分拣一块积木。虽然这不是世界上第一个乐高分类机,但 West 称它为世界上第一台通用乐高分类机,“因为它使用了最先进的人工智能技术,能够识别和分类任何已经生产出来的乐高部件。”West 也计划在将来发布该代码。这台分拣机的工作流程也很简单,分为三步

第一步:放入积木。

将一大堆乐高积木倒进机器顶部的滑槽中,然后将积木置于振动带,经过晃动,积木被分散成单独的积木块。

第二步:拍照分类。

积木块由 Raspberry Pi 计算机传送。Raspberry Pi 计算机包含一个照相机,当积木经过时,它会拍下一系列照片,然后把这些照片传送到 CNN 模型 ResNet-50 上进行分类。

第三步:归类入箱。

分类结果反馈到该设备后,输送带上的不同小闸门会把积木引导到所属的箱子中。

成功之路一波三折

由于乐高的零部件有成千上百种类型,颜色多样,并且从不同角度看形状也不一样。因此,收集正确的训练数据集是整个工作中最难的一部分。

Daniel West 最初让设备运行了几天收集到了约 30 万张未标记的 LEGO 图像West 说,他起初试图对乐高积木进行模拟。他从 LDraw Part Library(一个让发烧友可以虚拟构建乐高的开源程序)中获取了乐高零件的 3D 模型,并将其用免费的动画软件 Blender 渲染。

然后他可以在不同的旋转角度和颜色下模拟 3D 模型积木。这些单独的图像被收集到一个包含了超过 2500 万张图片的合成数据集中。

但令 West 感到沮丧的是,他的 AI 乐高分拣机用假图像进行训练后,却无法识别出真正的部件。

他说:“我当时几乎完全放弃了这个项目。我花了几个月的时间来实现一种,将合成图像转换成真实图像的复杂方法,但收效甚微。”

之后,他转向了另一种常用的技术,以帮助减少仿真与现实之间的差距:域随机化。域随机化能够训练模型识别更多的数据变化。该系统不仅学习了乐高积木的不同旋转角度和颜色,还学会了考虑各种灯光效果,纹理和噪音。

为了进一步提高乐高分类器的性能,West 还整合了一个更小的数据集,其中包含真实乐高部件的快照。

他说:「真实的数据集只包含我个人收藏中的零件,最终只有 544 种不同类型的零件。」 这些零件是在乐高系列中更常见的类型,而合成数据集则是一些较少见的类型。通过对这两个数据集进行训练,从理论上讲,West 的乐高分拣机上的摄像机应该能够识别出它实际上从未见过的零件。不过,模型在不同数据集上的实际表现还是有差别的:在识别真实数据集中的零件时,准确度为 93%,而识别合成数据集中的零件,准确率则为 74%。收集训练数据集不易,West 还特地撰写了文章,详细介绍了他如何制作 10 万张的带标签乐高积木训练图片。文中提到,他主要利用了样本生成法、简化流程以及使用 AI 辅助注释来完成海量图片标记的任务。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191222A0LHSP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券