资料介绍
描述
您是否知道社区和企业的平均污染率高达 25%?这意味着您丢弃的每四件可回收物品中就有一件不会被回收。这是由于回收中心的人为错误造成的。传统上,工人会根据材料将垃圾分类到不同的垃圾箱中。人类必然会犯错误,最终无法正确分类垃圾,从而导致污染。随着污染和气候变化在当今社会变得更加重要,回收在保护我们的星球方面发挥着重要作用。通过使用机器人分拣垃圾,污染率将大幅下降,更不用说更便宜和更可持续了。为了解决这个问题,我创建了一个回收分拣机器人,它使用机器学习在不同的回收材料之间进行分类。
代码:
第 1 步,获取数据:
为了训练可以检测和识别不同回收材料的对象检测模型,我使用了包含 2527 张图像的垃圾网数据集:
- 501玻璃
- 594 纸
- 403纸板
- 482塑料
- 410金属
- 137 垃圾
这是一个示例图像:
该数据集非常小,无法训练对象检测模型。只有大约 100 张垃圾图像太少而无法训练准确的模型,所以我决定将其排除在外。
您可以使用此 google drive文件夹下载数据集。确保下载 dataset-resized.zip 文件。它包含已经调整为较小尺寸的图像集,以允许更快的训练。如果您想根据自己的喜好调整原始图像的大小,请随时下载 dataset-original.zip 文件。
第 2 步,标记图像:
接下来,我们需要标记不同回收材料的几张图像,以便我们可以训练对象检测模型。为此,我使用了免费软件labelImg,它允许您在图像中标记对象边界框。
用适当的标签标记每个图像。本教程向您展示如何。确保使每个边界框尽可能靠近每个对象的边界,以确保检测模型尽可能准确。将所有 .xml 文件保存到一个文件夹中。
以下是如何标记图像:
这是一个非常乏味和令人麻木的体验。感谢您,我已经为您标记了所有图像!你可以在这里找到它。
第三步,训练:
在训练方面,我决定使用 Tensorflow进行迁移学习。这使我们能够在没有大量数据的情况下训练出相当准确的模型。
我们有几种方法可以做到这一点。我们可以在云上的本地桌面计算机上完成。在我们的本地机器上进行训练将需要很长时间,具体取决于您的计算机有多强大以及您是否拥有强大的 GPU。在我看来,这可能是最简单的方法,但同样存在速度的缺点。
关于迁移学习,有一些关键的事情需要注意。您需要确保用于训练的预训练模型与 Coral Edge TPU 兼容。您可以在此处找到兼容的型号。我使用了 MobileNet SSD v2 (COCO) 模型。也可以随意尝试其他人。
要在本地机器上进行训练,如果在 Windows 10 上运行,我建议遵循Google 的教程或EdjeElectronics教程。就我个人而言,我已经测试了 EdjeElectronics 教程并在我的桌面上取得了成功。我无法确认 Google 的教程是否有效,但如果没有,我会感到惊讶。
要在云中训练,您可以使用 AWS 或 GCP。我找到了这个教程,你可以试试。它使用谷歌的云 TPU,可以超快速地训练你的对象检测模型。也可以随意使用 AWS。
无论您是在本地机器上还是在云端进行训练,最终都应该得到一个经过训练的 tensorflow 模型。
第 4 步,编译训练模型:
为了使您的训练模型能够与 Coral Edge TPU 一起使用,您需要对其进行编译。
这是工作流程的图表:
训练后,您需要将其保存为冻结图(.pb 文件)。然后,您需要将其转换为 Tensorflow Lite 模型。请注意它是如何说“训练后量化”的。如果您在使用迁移学习时使用了兼容的预训练模型,则无需这样做。在此处查看有关兼容性的完整文档。
使用 Tensorflow Lite 模型,您需要将其编译为 Edge TPU 模型。在此处查看有关如何执行此操作的详细信息。
回收检测模型:
如果您不想重复训练、转换和编译对象检测模型的麻烦,请在此处查看我的回收检测模型。
第 5 步,部署模型:
下一步是设置 Raspberry Pi (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_01_03/labels.txt
应该会弹出一个小窗口,如果你放一个塑料水瓶或其他回收材料,它应该像这样检测它:
按键盘上的字母“q”结束程序。
第 6 步,构建机械臂:
机械臂是我在这里找到的 3D 打印手臂。只需按照教程进行设置即可。
我的手臂是这样的:
确保将伺服引脚连接到我的代码中根据 Arduino I/O 引脚。从下往上依次连接舵机:3、11、10、9、6、5。不按这个顺序连接会导致舵机移动错误的舵机!
通过导航到 Arduino 目录并运行basicMovement.ino文件来测试它是否正常工作。这将简单地抓住一个放在手臂前面的物体并将其放在后面。
第 7 步,连接 RPI 和机械臂:
我们首先需要将摄像头模块安装到爪子的底部:
尽量将相机对齐,以尽量减少抓取已识别回收材料时的错误。您将需要使用材料列表中显示的长相机模块带状电缆。
接下来,您需要将robotsArm.ino文件上传到 Arduino 板。
最后,我们只需在 RPI 的 USB 端口和 Arduino 的 USB 端口之间连接一根 USB 电缆。这将允许他们通过串行通信。请按照本教程进行设置。
第 8 步,最后润色:
这一步是完全可选的,但我喜欢将我所有的组件放入一个漂亮的小项目框中。
这是它的外观:
您可以在材料清单上找到项目框。我刚刚钻了一些孔并使用黄铜支架来安装电子设备。我还安装了 4 个冷却风扇,以在热时保持通过 RPI 和 TPU 的恒定气流。
第 9 步,运行:
您现在可以启动机械臂和 RPI!在 RPI 上,您可以简单地运行recycle_detection.py文件。这将打开一个窗口,机械臂将开始运行,就像在演示视频中一样!按键盘上的字母“q”结束程序。
随意玩弄代码并玩得开心!
未来的工作:
我希望用 ROS 来控制机械臂,动作更精确。这将能够更准确地拾取物体。
问题?
如果您有任何问题,请随时在下面发表评论!
- 使用Google Coral搜索和救援无人机
- 瞳步迎宾讲解机器人
- 了解机器人电子教材下载 19次下载
- 机器人无线充电电路设计 47次下载
- 基于Matlab的机构与机器人分析资料下载 11次下载
- 基于DSP和PC的农业机器人控制系统 17次下载
- 基于DSP芯片的足球机器人实现与设计 26次下载
- 使用并联机器人和机器视觉威廉希尔官方网站 实现自动分拣机器视觉软件系统的设计 26次下载
- 使用机器视觉进行工业机器人分拣威廉希尔官方网站 的研究资料分析 31次下载
- 智能分拣机器人系统设计的流程原理图免费下载 27次下载
- Tripod机器人视觉系统 0次下载
- 高速机器人分拣系统机器视觉威廉希尔官方网站 的研究(1) 11次下载
- 基于机器人大赛的分拣机器人优化设计_许凤慧 4次下载
- 基于机器视觉的工业机器人分拣系统的研究 8次下载
- 基于遗传算法的分拣机器人最优路径规划_文生平 6次下载
- 铸造机器人是什么?选择工业机器人应该考虑的方向 1137次阅读
- 面对疫情 医疗机器人能帮上什么忙? 2126次阅读
- 工业机器人威廉希尔官方网站 应用 5176次阅读
- 工业机器人编程入门_工业机器人的编程要求 9571次阅读
- 医用机器人的定义_医用机器人发展 3122次阅读
- 医用机器人的功能_医用机器人分类 2227次阅读
- 机器人控制器有哪些类型_机器人控制器发展 1.1w次阅读
- 协作机器人的起源_为什么需要协作机器人 8127次阅读
- 并联机器人应用日益从广泛 已成为工业机器人需求增长的新生力量 3742次阅读
- 并联机器人的应用 7242次阅读
- 机器视觉的机器人取代四台传统的火焰处理机器人 3270次阅读
- 服务机器人的主要应用领域,科学和威廉希尔官方网站 挑战 7846次阅读
- 如何区分机器人、协作机器人和移动机器人? 6828次阅读
- 软体机器人 前所未见的机器人 3692次阅读
- 机器人的最佳编程语言是什么?机器人十大流行编程语言汇总 3.4w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多