「树莓派 + 1万块乐高」打造乐高分类器,网友:我想借来用两天

本文转载自 程序员的那些事

当然是苦苦寻找某个形状的积木却找不到。当你兴致勃勃地打开包装时,眼前的一切却是这样,内心会作何感想?

图片

现在好了,国外一位乐高爱好者Daniel West用AI解决了这个难题。他使用自己开发的“乐高分类器”,不到2秒时间就能给一块积木归类。

图片

(注:实际分类速度快一倍,为了方便展示,作者将动图速度减半。)

这个分类器由树莓派和1万块乐高积木组成,耗时2年打造,真的是“用乐高搞定乐高”,堪称最硬核的“套娃”。

我们先来感受一下它庞大的外形:

图片

最近,如此硬核的设备也得到了树莓派官方转发。

Daniel的技术是在前人的基础上完成,但更加先进:它可以识别出所有曾经使用过的乐高积木,甚至是从未见过的积木。

因此Daniel把它叫做世界上第一台“通用乐高分类器”(universal LEGO sorting machine)。

工作过程

首先把一桶乐高积木倒入分类器中,在履带的传送下,积木分批少量地落入V形槽。

图片

在V形槽的抖动下,积木又被一块块分别抖入传送带中。

图片

传送带上方的摄像头会拍下多帧画面,并在此过程中完成积木种类的识别。

图片

而后,不同形状的积木分装在不同的桶里。

图片

最后再根据拼装的设定,将积木按照需要装入各个物料盒中。

图片

看完这套设备后,有网友表示:能不能借我回去用几天?

图片

技术实现

其实Daniel所用的技术并不复杂,他甚至还为此写过两篇教程。

这台机器用到的硬件有:树莓派3B+,树莓派摄像头模块V2,9台伺服电机,6台乐高电机。不过,最复杂的硬件应该是Daniel设计的1万块积木的拼装。

图片

首先开始的是图像数据标注工作,Daniel先让机器运行了几天,收集了大约30万张未标记的乐高积木图像。

用手工给30万张图片一一打上标签显然是不切实际的,而相机会给一块积木拍摄10~20张照片,通过打包标注的方法,可以将效率提高10~20倍。

图片

但即便如此,也有上万组照片需要标记。一次次将标签内容填入csv文件显然是个笨办法。而且乐高种类繁多,比如2×2的方块种类就有很多,没必要分得太细。

图片

因此,Daniel决定利用自己的Web开发经验,花几个小时来编写了一个简单的Web应用程序。速度又提高了2~5倍。

即便如此,效率仍然太低。Daniel再次想到用AI“打辅助”,让AI给出TOP-5,自己在App里选中正确的选项,这样每秒5就能标记10张图片,整体效率提升了40~1000倍。

图片

在软件的设计上,Daniel遇到了更大的挑战,那就是树莓派的AI运算能力并不强,如何实现实时的目标检测。

最初,他想到使用YOLO或Faster R-CNN,然而很难在树莓派上达到90fps的处理速度,如果将图像流式传输到PC上处理,网络带宽又会成为性能瓶颈。

Daniel不得不使用“老式”计算机视觉技术——OpenCV库里的MOG2背景扣除器,即使在树莓派3B+上它也能快速处理数据。

图片

但是,直接将视频帧发送到MOG2并不能正常工作。浅灰色和白色积木的亮度与传送带背景过于相似,难以识别。需要做的是在图像传递给MOG2之前增加图像的饱和度。

另外,RGB图像的传输带宽也太高,Daniel只好使用YUV格式将图像带宽压缩一半,并把目标检测框外的像素裁剪掉。

图片

经过重重简化,这套系统达到了70~80fps的处理速度。

最后,在树莓派的官方博客下面的回复中,还有一位高人。他在4年前就设计过一款分类器,给两吨的乐高积木进行分类。

图片

这年头,不懂点AI技术都不敢玩乐高了。

  • 45
    点赞
  • 116
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值