APP下载

树莓派六足机器人实现垃圾分类搬运(一)

2023-01-09杨广峰

电脑报 2022年50期
关键词:树莓摄像头物体

杨广峰

垃圾分类搬运是垃圾分类中的一项重要的工作,其中不同垃圾桶的分类识别是一个重要内容,它属于物体检测,是计算机视觉中的经典问题之一。其任务是用方框去标出图像中物体的位置,并给出物体的类别。

本文中借助物体检测,打造出一个基于树莓派的智能垃圾识别搬运机器人,智能识别垃圾筒,自动计算机器人与垃圾筒的距离,从而实现智能搬运的功能。

树莓派六足机器人一套(六足机器人一个,树莓派4B一块,古德微扩展板一块,电机驱动板一个,USB摄像头一个),目标物体两个(红色、蓝色海绵正方体各一个,边长为10厘米)(如图1)。

登录网站,开始“物体检测”。首先,访问古德微机器人网站(http://www.gdwrobot.cn),登录进入自己的账号后点击“设备控制”进入“积木”界面;接着,点击“更多功能”按钮,再点击左下角的“机器学习”项,页面顯示有“图片分类”“物体检测”和“声音检测”三类功能应用,点击“物体分类”中的“远程使用树莓派摄像头进行物体分类”按钮(如图2)。

通过拍照采集并标注目标训练机器人。我们进入“机器学习—物体检测训练(远程采集树莓派图片)”页面,点击页面左侧的“拍照”按钮即可进行数据的采集。不断变换机器人的位置与角度,分别点击“拍照”按钮进行目标图片的添加(如图3)。

接下来,对采样的图片进行物体的标注。选择第一张图片,拖动光标对红色物体进行框选,输入物体的分类名称“红色”,再拖动光标对蓝色物体进行框选,输入物体的分类名称“蓝色”,点击“保存并切换下一张图片”,完成第一张图片的标注,并开启第二张图片的标注(如图4)。

全部标注完成后,点击“开始训练”按钮对采集的图片进行训练。

训练结束后即可再将机器放置在任意位置,对其预览图片中的物体进行分类验证,预览图像中显示目标物体检测框,同时还显示目标物体的分类与置信度百分比:“红色:87.79%、蓝色:79.09%”(如图5)。

拍照采集与训练验证均完成之后,点击右下角的“下载树莓派上使用的模型”按钮,很快就会有“模型转换下载完成”的提示,这时,相关文件已被下载到树莓派的/home/pi/model/object_detection目录下,模型文件为model.tflite,对应标签文件为labels.txt。通过Windows的远程桌面连接进入树莓派进行查看,labels.txt的文件内容包含两行内容,依次对应训练模型的分类名称:“红色、蓝色”(如图6)。

本例中,指定将地图前方的目标物体(不可回收垃圾,用红色物体代替)智能搬运到地图左方的目标物体(不可回收垃圾,用红色物体代替)存放区。编程可分为两步,第一步是机器人获取当前距离(机器人与物体之间的距离),第二步是根据当前距离计算步数,前进并夹取物体。其中第一步获取当前距离用到了摄像头拍照、物体检测、读取检测结果、计算距离与步数。

使用机器人摄像头对前方拍照,调用物体检测模型对照片进行检测,返回检测结果列表(如图7)。

这个函数是从检测结果列表中找到我们的目标(红色物体)的名称和置信度。

通过判断检测结果列表的长度是否大于0来区分有没有检测结果,没有检测结果则需要跳出判断重新检测;如果有检测结果,则对检测结果进行下一步的处理。首先,循环读取检测结果列表中的每一个检测结果字典,分别读出这个检测结果字典中的置信度和物体名称。然后判断物体名称为否是红色物体,如果符合条件,则找到了我们的目标名称和置信度,中断循环,准备下一个环节(如图8)。

本函数根据物体检测中所获取的矩形检测框的长度来推算机器人与目标物体的当前距离,其中使用的公式为:140×300÷检测框长度,这里的140是机器人的最佳夹取距离,300是机器人在最佳夹取距离时所拍摄的照片中检测框的横向长度。

首先,从检测結果字典中获取检测框的位置列表,这个位置列表中记录了检测框的左上和右下两个点的横、纵坐标值。然后,分别获取两个点的横坐标值,计算出检测框的物体横向像素大小(横向长度),根据计算公式得到机器人与目标物体的当前距离。接着计算出机器人到达物体所需要的前进步数,计算公式为[(当前距离-140)÷50 ]+1。这里的140仍然是机器人的最佳夹取距离,50为步幅,计算步数的基本公式为:步数=(当前距离-夹取距离)÷步幅,最后的1是为配合取整而使用的修正值(如图9)。

首先,控制机器人向前运动至最佳夹取位置,并夹取物体。然后,控制机器人先向后移动,再左转90度,再向前,到达指定的投放位置。最后,控制机器人放下物体完成垃圾的智能搬运工作(如图10)。

为了调整摄像头的最佳拍摄姿态,我们分别对控制摄像头的两个舵机做了下面的设置,完成对机器人的初始化。然后,将上面的分步函数组合,完成主程序(如图11)。

经过多次测试,机器人均成功夹取了目标物体,实现了垃圾的智能搬运。本次我们通过物体检测识别目标物体,并借助程序返回的物体检测方框数据进行距离的测算,实现了机器人的智能搬运。大家也可以结合其他场景,给物体检测赋予更多的实际意义。

猜你喜欢

树莓摄像头物体
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
深刻理解物体的平衡
基于树莓派的骑行智能头盔设计
我们是怎样看到物体的
基于树莓派的远程家居控制系统的设计
响应面法优化红树莓酒发酵工艺
为什么同一物体在世界各地重量不一样?
奔驰360°摄像头系统介绍
悬浮的鸡蛋