水果姿态图像自动采集训练检测仪设计
2021-09-10徐月华
林 静, 徐月华
(1. 茂名职业技术学院机电信息系,广东 茂名 525000; 2. 广东机电职业技术学院,广东 广州 510641)
0 引 言
获取水果姿态信息在农业生产中具有重要的研究意义,在水果自动化加工中如龙眼去核[1]、莲子取芯[2]、杏果去核[3]、沙果去核[4]、柚子套袋[5]中都需要对水果定向摆放以提高加工效果和加工效率,在水果自动化套袋、采摘时需要完成目标检测定位外,还需要获取水果的姿态信息进一步调整机械手的动作,以更好地抓取或剪切[5-6],因此获取水果姿态信息在农业自动化生产加工中具有重要的研究意义。随着劳动力成本的增加和农业智能化、自动化技术的发展,部分物理特征明显的水果,如杏果、苹果等轴向特征明显,沙田柚的大小头特征明显[3,5]等,可利用其物理特性设计专门的自动化定向装置,以满足自动化加工的需求。但很多水果如龙眼品种多、形状各异、大小头特征不明显[1],莲子通常呈圆球状、莲心处物理特征不明显,则难以利用物理特征设计装置实现定向[7]。
利用图像特征进行目标识别、检测、定位的机器视觉技术在水果自动化采摘、加工领域已经获得了应用[6-8],特别是随着深度卷积神经网络的发展,图像识别的准确率得到较大提高,但算法性能提升除了依靠算法模型,庞大的数据也是支撑算法模型性能提升的关键,如ImageNet已有千万张的图像数据[9]。但针对特定的应用场景(如水果姿态图像的识别检测等)数据集非常有限,图片数量非常少,即使采用迁移学习等相关技术可以降低特定场景图像数量的要求,但仍需要几百张图片才能训练出可接受的结果,而人手工拍摄采集图像的效率低、成本高、质量差异大,并且采集的图像还需要人工标注、工作量大。文献[10]针对工件6D位姿估计采用对物体3D建模,构建多角度多姿态图片集,文献[11]采用GAN技术对采集的图片集训练生成模型,然后用模型生成新的图片以扩容图片集,上述方法对工件等差异小的目标是有效的,但对个体差异大的水果等生成图片集的多样性、真实性不足。目前的图像采集系统主要满足双目深度图像采集[12],难以适用于多角度多姿态图像的拍摄。因此,本文设计了一套自动化装置以实现水果多姿态图像的自动采集、训练、检测。
1 系统设计思路
基于对多姿态水果图像自动化采集的需求,进行了水果多姿态图像智能采集装置设计。该装置将摄像头安装在三自由度机械臂末端,目标物放于可移动垂直十字滑台和360°旋转云台构成的水果放置台上,通过它们的配合运动自动完成一组多姿态的水果图像拍摄,并按姿态分类自动存入对应文件夹完成标注,通过模块化的深度神经网络辅助训练程序,实现水果姿态训练和检测,构成一个水果多姿态图像的采集、训练、检测一体化装置。
系统由上位机和下位机两部分构成。上位机采用PC机开发,通过人机接口界面完成拍照参数的设置,控制摄像头完成图像的拍照、分类存储,完成基于深度学习姿态分类训练参数的设置、姿态图像分类模型训练及分类检测。下位机由采用STM32F103单片机为控制器、三自由度机械臂构成的摄像头运动及控制模块、可水平垂直运动的十字滑台及360°旋转的水果放置云台构成,由三者配合完成水果姿态图像拍摄距离和拍摄姿态的控制。系统结构示意图如图1所示。
图1 系统设计结构示意图
装置通过控制丝杠组的运动使目标物移动到合适的位置,以满足不同种类大小水果及应用的拍摄距离需求。在上位机设置好拍摄距离等参数后,下位机控制垂直和水平丝杠组运动使目标物运动到对应的距离位置,然后步进电机控制机械臂旋转,带动末端的摄像头以目标物为圆心,以设定拍摄距离为半径运动,控制机械臂末端的舵机带动摄像头旋转,使摄像头一直对准物体拍摄。
2 系统机械运动单元设计
2.1 机械运动结构设计
系统机械机构主要由三自由度机械臂构成的摄像头运动模块、可水平垂直运动的十字滑台及360°旋转的水果放置云台构成。其中三自由度机械手采用SCARA结构,采用交叉滚子轴承替代普通轴承,简化了机械臂的连接结构,采用带行星减速箱的步进电机,在保证旋转角度精度的同时,增加了机械臂的转动力矩,通过角度编码器的反馈形成闭环角度控制。丝杠十字滑台是将两个300 mm行程的梯形丝杠滑台用倒丁字结构连接而成,如图2所示,在垂直丝杠滑台上安装有可水平360°旋转的云台,为保证图像的拍摄效果,改造了云台上的放置底板,并在云台上设置了半圆状背景罩以保证拍摄背景统一。
图2 水果放置云台的设计图
2.2 机械运动关键参数计算
要完成图像的拍摄,需在设置好拍摄距离等参数后,控制垂直和水平运动丝杠组运动到对应的距离位置,然后控制SCARA机械臂运动到拍摄点,进一步调整末端的舵机角度使摄像头保持对准目标,因此需要进行丝杠组和机械臂的运动参数计算。
图3 拍摄目标位置运动范围示意图
图4 机械臂旋转角度计算示意图
在拍摄过程中,拍摄角度是水果姿态分类的重要参数之一,系统控制摄像头在上按照设定的姿态角度拍摄,即在图中,当摄像头运动到点拍摄时,是已知的,在圆心点坐标和半径已知的条件下,点的坐标为
3 系统的软件程序设计
3.1 图像拍摄程序流程
在上位机设置好拍摄距离等参数后,将信息传输给下位机并启动运动控制系统。下位机先控制垂直和水平运动丝杠组运动到对应的距离位置,然后控制SCARA机械臂运动到对应的拍摄点,进一步调整末端的舵机使摄像头角度保持对准目标,发消息给上位机完成一次姿态图像拍摄存储,再通过云台的旋转和计算的运动轨迹控制机械臂的运动和摄像头角度的旋转,以实现一组多姿态水果图像的自动采集,并将图像传入上位机存储,预处理,作为标注的水果姿态数据集。在上位机编写程序完成水果姿态的训练和检测,系统工作流程如图5所示。
图5 水果姿态图像采集流程图
3.2 基于ResNet的水果姿态训练检测
本文采用ResNet-50深度学习框架作为水果姿态分类检测的算法模型,ResNet是一种泛化能力很强的网络模型[13],但网络层数较多,需要数据量比较大,因此采用迁移学习的方法在ImageNet预训练的基础上再进行训练生成模型参数[14],预测时根据输入的图片采用迁移训练生成的模型参数,在采集图像数量有限的情况下仍有比较好的识别分类效果,通过迁移学习可以用较少的数据和训练时间训练出高精度的特定水果的姿态信息检测模型。数据训练目标检测的流程如图6所示。
图6 水果姿态分类模型训练检测流程图
4 装置的实验与测试
4.1 图像采集实验
系统针对龙眼进行实验,拍摄距离d为20 cm,如图7所示,龙眼放置在云台上,设机械臂沿对应的90°圆弧每隔15°设定一个拍摄点,共7个,龙眼蒂部朝上朝下各放置一次,共14个角度姿态,同时云台旋转4个角度,角度间隔90°,一组共采集56张图片,摄像头型号为HD720。上位机PyTorch1.4.0算法框架,采用PyQt5设计程序界面,如图8所示,在数据输入模块输入采集设置信息后,启动拍摄,正反面放置各拍一组,放置在56个文件夹中,训练和检测过程中根据需要可对多个文件夹内的图片重新组合为一类,在分组模块将采集图片再次分类后进行训练,在检测模块输入图片即可输出分类结果。拍摄一组56张图片用时20 s。
图7 姿态角度分类示意图
图8 上位机人机界面
4.2 水果姿态训练识别实验
根据龙眼的特点和拍摄的情况,将采集的56组图片,每组50张,分为5大类,圆弧拍摄角度相同,云台旋转角度不同的划分为同一类,共有14个角度,对应14小类。再将其中编号6、7划为蒂部朝上类(400张),3、4、5划分为蒂部倾斜向上类(600张),1、2、8、9划为侧放类(800张),10、11、12划为底部倾斜向上类(600张),13、14划为底部朝上类(400张),共5大类,其中训练集占90%,测试集占10%,采用ImageNet预训练的ResNet网络训练,即冻结网络前5个stage,仅训练最后一个stage的 FC层和 softmax层参数,BatchSize为32,Epoch为 100,采用 AlexNet、VGG-16、Inception等算法[15]网络设置相同的BatchSize、Epoch,4种算法验证集的准确率迭代曲线如图9所示,其检测准确率和所消耗时间如表1所示,本文算法经过100次迭代,测试集的准确率总体上优于其他3种算法,用时上仅多于AlexNet网络,表明设计系统采用算法模型测试效果较好。
表1 4种算法龙眼姿态图像分类训练结果
图9 4种算法龙眼姿态图像分类训练迭代曲线
5 结束语
1)利用机器视觉及人工智能技术获取水果姿态信息,辅助对水果进行定向加工或采摘,是水果自动化加工采摘技术的发展趋势。
2)本文将摄像头安装在SCARA机械臂上,并与放置在可移动云台上的水果组合运动实现多姿态水果图像的自动拍摄采集和存放标注,并以残差网络为基础模型构建了模块化的水果姿态训练检测模型程序。
3)以龙眼水果为对象进行水果姿态图像采集和水果姿态图像训练检测实验表明,装置可实现1个水果正反放置2次,在20 s内完成一组56张姿态图像的拍摄存储和标注,且水果姿态图像检测的准确率可达98.40%,满足水果姿态图像的自动采集、训练、检测需求。
4)所设计的装置如配合目标检测和相应的机械手,即可以进一步用于水果自动化定向加工和采摘等工业化应用领域。