使用TensorFlow识别乐高积木?

4
阅读这篇文章后,我想知道是否可以将这种方法应用于大量的分类中。我的想法是用它来识别乐高积木。

目前,像Bricklink这样的网站描述了超过40,000个不同的部件,因此与黄瓜示例有所不同,但我想知道这是否适合。没有简单的方法来获取每个零件的数百张图片,但以下过程是否可行:

  • 拍摄零件的照片;
  • 使用tensorflow尝试识别零件;
  • 如果它无法识别正确的零件,则拍摄更多的照片并向神经网络提供这些照片;
  • 继续下一个零件。

这样,每次遇到新零件时,我们都会“教”网络其参考信息,以便下一次更好地识别它。经过数百次由人监控的迭代后,我们能否想象TensorFlow能够识别这些零件?至少是最常见的零件吗?

我的问题可能听起来很愚蠢,但我对神经网络不熟悉,因此欢迎任何建议。目前,我没有找到任何基于图片识别乐高部件的方法,而这个“黄瓜示例”听起来很有前途,因此我正在寻求一些反馈。

谢谢。


请记住您拥有所有零件的三维CAD模型,这至少可以用来生成培训图像。 - Eric
2个回答

3
你可以阅读Jacques Mattheij的工作,他实际上使用了一个定制版的Xception1运行在https://keras.io/上。
介绍是Sorting 2 Metric Tons of Lego
Sorting 2 Tons of Lego, The software Side中,你可以阅读到:
下一个艰巨的挑战是获取足够大的训练集,以便处理1000多个类别。起初,这似乎是一个无法克服的问题。我想不出如何在可接受的时间内制作足够多的图像并手动标记它们,即使最乐观的计算也需要我全职工作6个月或更长时间才能制作出数据集,使得机器可以处理许多零件类别而不仅仅是几个。
最后,解决方案至少在一周之前就已经显而易见了:这并不重要。所有重要的是机器大部分时间都能自动标记其自己的图像,然后我只需要纠正它的错误。随着它变得更好,错误就会变得更少。这迅速扩大了训练图像的数量。第一天,我设法手动标记了约500个零件。第二天,机器添加了2000个,其中约一半标错了。结果产生了2500个零件,成为3天后下一轮培训的基础,这导致了4000个零件,其中90%标记正确!因此,我只需要纠正大约400个零件,反复这个过程......因此,在两周结束时,有一个包含20K张图像的数据集,所有图像都被正确标记。
这远远不够,某些类别的数据严重不足,因此我需要增加这些图像的数量,也许我只需运行一批只包含这些零件的数据通过机器。无需更正,它们将全部被标记相同。

最近更新是《分类2吨乐高,许多问题,结果》


1CHOLLET,François。Xception:使用深度可分离卷积进行深度学习。 arXiv预印本arXiv:1610.02357,2016年。


谢谢Alessandro,我错过了这篇博客文章,他似乎说解决方案比Tensorflow更有效,所以我会接受这个答案,因为它似乎是最好的选择!谢谢。 - Sylvain

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接