SeparAItor 是一个自主回收机器人的概念证明,它利用深度学习的力量来增强人类在一项既至关重要又严重未被充分利用的任务中的能力(大约 9% 的塑料废物被回收,79% 进入垃圾填埋场或到环境)。
由于回收主要是一种分类工作,而深度学习的主要应用之一是对不同图像进行分类,因此这是一个非常自然的过程。Keras(在TensorFlow2中)用于机器学习部分,主要是因为它的简单性,以及一些用于图像预处理的OpenCV。
底座由一个简单的平移和倾斜系统组成,顶部有一个盒子。它通过蓝牙与计算机通信,并由板载电池供电,因此执行器部分是完全独立的。Lazy Susan 转盘轴承和 608zz 轴向轴承为系统提供了机械稳定性。
为了简化电子设备,使用两个伺服系统来控制底座,因此摇摄伺服系统的齿轮与底座中的齿轮之间的比例为 2:1,以便能够旋转 360 度。
最后,两个超级粘性的防滑硅胶垫(例如用于将手机固定在汽车仪表盘上的垫子)既用于支撑顶部的纸板箱,又用于将底座牢牢固定到位并防止其旋转和移动左右滑动。
组装好底座并设置好 cental 相机后,下一步就是数据集采集。虽然我最初从互联网上下载图像进行训练,但这些图像要么是渲染图,要么是旨在销售产品的具有专业外观的图片,通常只显示带有徽标的一面。因为我需要让它与现实生活中的物体一起工作,所以我认为最好的方法是在真实条件下拍照。
使用“take_picture, py”脚本,我可以通过按键保存图片。这些图像首先被预处理以将它们调整到足够的尺寸,然后去除它们的背景,只保留图像的相关部分用于训练。
最后,由于添加一个对象不仅会改变该部分,还会产生阴影并使底座倾斜,因此只有最大的单个斑点被视为对象的一部分。
由于这种以不同角度重复添加对象的方法非常耗时,我只为六个类别中的每个类别拍摄了 300 张图像,这使得数据集非常小。为了弥补这一点,我使用预训练的 VGG19 网络作为网络的卷积部分,并使用 K 折交叉验证来更好地了解训练过程。
最后,由于最后一种方法涉及创建模型的多个实例并将其加载到 GPU 中,如果以顺序方式运行,后者会很快耗尽内存,因此每个折叠都在不同的进程中运行,以便能够释放迭代之间的 VRAM。
一旦神经网络表现得相当好,只需编写一些代码来完成系统。通过蓝牙连接到串口后,脚本加载训练好的模型并初始化相机。
这里也使用了MOG2背景减法器来检测图像中的运动,这表明添加了新的物体,一旦出现下降沿(之前检测后没有发现运动,物体不再运动)图像是已处理并标识了类别以及相应的 bin。
然后将此信息发送到基地,基地会将物品放入正确的垃圾箱中,并在完成后发送一条消息。然后更新空托盘的背景图像,系统准备好进行新的检测。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !