亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

使用 Google Coral 的回收分拣机器人

您是否知道社区和企业的平均污染率高达 25%?这意味着你扔掉的每四份回收材料中就有一份没有得到回收。这是由于回收中心的人为错误造成的。传统上,工人会根据材料将垃圾分类到不同的垃圾箱中。人类必然会犯错误,最终无法正确分类垃圾,从而导致污染。随着污染和气候变化在当今社会变得更加重要,回收利用在保护我们的星球方面发挥着重要作用。通过使用机器人对垃圾进行分类,污染率将大大降低,更不用说更便宜、更可持续。为了解决这个问题,我创建了一个回收分拣机器人,它使用机器学习在不同的回收材料之间进行分拣。

演示:

代码:

请克隆我的 GitHub 存储库以学习本教程。

第 1 步,获取数据:

为了训练可以检测和识别不同回收材料的对象检测模型,我使用了包含 2527 张图像的垃圾网数据集:

这是一个示例图像:

该数据集非常小,无法训练目标检测模型。只有大约 100 张垃圾图像太少,无法训练准确的模型,因此我决定将其排除。

您可以使用此 google drive 文件夹下载数据集。确保下载 dataset-resized.zip 文件。它包含已调整为较小尺寸的图像集,以实现更快的训练。如果您想根据自己的喜好调整原始图像的大小,请随时下载 dataset-original.zip 文件。

第 2 步,标记图像:

接下来,我们需要标记不同回收材料的多张图像,以便我们可以训练目标检测模型。为此,我使用了 labelImg,这是一款免费软件,可让您标记图像中的对象边界框。

用适当的标签标记每个图像。本教程向您展示了如何操作。确保每个边界框尽可能靠近每个对象的边界,以确保检测模型尽可能准确。将所有 .xml 文件保存到一个文件夹中。

以下是标记图像的方法:

这是一种非常乏味和令人麻木的体验。谢天谢地,我已经为你标记了所有的图像!你可以在这里找到它。

第 3 步,训练:

在训练方面,我决定使用 Tensorflow 进行迁移学习。这使我们能够在没有大量数据的情况下训练一个相当准确的模型。

我们有几种方法可以做到这一点。我们可以在云端的本地桌面机器上完成。在我们的本地机器上训练将需要超长的时间,具体取决于您的计算机有多强大以及您是否拥有强大的 GPU。在我看来,这可能是最简单的方法,但同样存在速度问题。

关于迁移学习,有一些需要注意的关键事项。您需要确保用于训练的预训练模型与 Coral Edge TPU 兼容。您可以在此处找到兼容的型号。我使用了 MobileNet SSD v2 (COCO) 模型。也可以和其他人一起尝试。

要在本地机器上训练,如果在 Windows 10 上运行,我建议遵循 Google 的教程或 EdjeElectronics 教程。就个人而言,我已经测试了 EdjeElectroncs 教程并在我的桌面上取得了成功。我无法确认 Google 的教程是否有效,但如果无效,我会感到惊讶。

要在云中训练,您可以使用 AWS 或 GCP。我找到了这个教程,你可以试试。它使用 Google 的云 TPU,可以超快速地训练您的对象检测模型。也可以随意使用 AWS。

无论您是在本地机器上还是在云端进行训练,您最终都应该得到一个经过训练的 tensorflow 模型。

第 4 步,编译经过训练的模型:

为了让您的训练模型与 Coral Edge TPU 配合使用,您需要对其进行编译。

这是工作流程的图表:

训练结束后,您需要将其保存为冻结图(.pb 文件)。然后,您需要将其转换为 Tensorflow Lite 模型。请注意它是怎么说“训练后量化”的。如果您在使用迁移学习时使用了兼容的预训练模型,则无需执行此操作。在此处查看有关兼容性的完整文档。

使用 Tensorflow Lite 模型,您需要将其编译为 Edge TPU 模型。在此处查看有关如何执行此操作的详细信息。

回收检测模型:

如果您不想重复训练、转换和编译对象检测模型的麻烦,请在此处查看我的回收检测模型。

第 5 步,部署模型:

下一步是设置树莓派 (RPI) 和 Edge TPU 来运行经过训练的对象检测模型。

首先,使用本教程设置 RPI。

接下来,按照本教程设置 Edge TPU。

最后,将 RPI 摄像头模块连接到树莓派。

您现在可以测试您的对象检测模型了!

如果您已经克隆了我的存储库,您将需要导航到 RPI 目录并运行 test_detection.py 文件:

python test_detection.py --model recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/detect_edgetpu.tflite --labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_03/labels

应该会弹出一个小窗口,如果你放一个塑料水瓶或其他回收材料,它应该像这样检测:

按键盘上的字母“q”结束程序。

第 6 步,构建机械臂:

机械臂是我在这里找到的 3D 打印臂。只需按照教程进行设置即可。

我的手臂是这样的:

确保根据我的代码中的 Arduino I/O 引脚将伺服引脚连接到 。舵机从下到上按这个顺序连接:3、11、10、9、6、5。不按这个顺序连接会导致手臂移动错误的舵机!

通过导航到 Arduino 目录并运行basicMovement.ino 文件来测试它是否正常工作。这将简单地抓住你放在手臂前面的一个物体,然后把它放在后面。

第 7 步,连接 RPI 和机械臂:

我们首先需要将摄像头模组安装到爪的底部:

尝试将相机尽可能笔直对齐,以最大程度地减少抓取已识别回收材料时的错误。您将需要使用材料清单中所示的长相机模块带状电缆。

接下来,您需要将 roboticArm.ino 文件上传到 Arduino 板。

最后,我们只需要在 RPI 的 USB 端口和 Arduino 的 USB 端口之间连接一根 USB 电缆。这将允许他们通过串行通信。按照本教程进行设置。

第 8 步,最后润色:

这一步是完全可选的,但我喜欢把我所有的组件放在一个漂亮的小项目框中。

这是它的外观:

资料来源:使用 Google Coral 的回收分拣机器人


制造工艺

  1. 火车模型
  2. Python/MicroPython Sensor Logger with Google Sheets
  3. 具有基于视觉的避障功能的移动机器人
  4. 带视频的树莓派网络控制机器人
  5. 用紫外线灯给机器人消毒
  6. 带伺服电机的机器人避障
  7. 使用 Arduino 和 Android 设备控制 Roomba 机器人
  8. 带有 OK Google 的蓝牙语音控制设备
  9. 带有自动遮阳装置 V2 的公交车站的建筑模型
  10. 使用 Android 应用程序控制 Arduino 机械臂
  11. Matlab / Simulink中机器人夹持器的PID控制
  12. 配备机械臂的车削中心