基于YOLOv4的抓取检测

2022-03-05 09:02周海明雷志勇
自动化与仪表 2022年2期
关键词:聚类物品损失

周海明,雷志勇

(西安工业大学 电子信息工程学院,西安710021)

机械臂的抓取功能是人机交互的重要桥梁,抓取点的准确与否直接影响着用户体验。国内工厂车间已大量应用机械臂,其中大多数是通过人工设定好的参数让其运动至目标点进行作业[1]。对于在实际作业中的非结构下环境[2],会需要耗费更多的人力进行重新设定坐标点。机器视觉[3]的出现赋予了机械臂智能的处理能力。早期传统的检测算法虽然能通过监督学习[4]达到目标但是其需要人工去设计特征,如表面的纹理特征[5],个人的认知能力将限制检测的能力,当复杂的图像人工无法提供特征时,将无法进行监督学习。

随着信息技术的快速发展,CNN[6]卷积神经网络的出现,丰富了目标检测的方式,和传统的检测算法最大的不同,其能够自动提取出特征。之后发展出的目标检测网络可以分为两大类:一类是单阶段的如YOLO[7],SSD[8];一类是双阶段的基于候选区域的网络如Fast R-CNN[9],Faster R-CNN[10]。单阶段的检测网络直接将检测问题转换为回归问题进行处理,直接实现端到端的训练。双阶段的检测网络则是通过相关算法先生成大量的候选区域,然后再将其送入神经网络进行结果的预测。因此单阶段的检测时间总体将会优于双阶段的网络,预测结果精度总体会低于双阶段结构。YOLO 网络从当时的初代经过前人的不断改进发展到如今的YOLOv4[11],YOLOv4的预测精度可以和二阶网络相当甚至超过一些二阶网络的预测精度。针对抓取点的检测由于物体表面的纹理信息会影响到预测的问题[12],原始的锚宽不适合待检测目标的比例,以及对于多尺度目标的抓取预测不佳的问题[13]。本文采用图像处理算法将物品原图像转换成只具有轮廓信息的数据,以YOLOv4 为基础的卷积神经网络,使用K-Means[14]聚类算法使得锚宽适合待检测物品,新增特征尺度进行抓取点的检测。

1 YOLOv4 网络模型

YOLOv4 是Bochkovski 等人在2020年提出的最新YOLO 系列,其网络主要由三部分组成,以CspDarknet53 为主干网络的特征提取部分,FPN 和PAN 结构的特征融合部分,以及检测部分。网络共有161 层,主干网络的卷积层共有72 层。在输入图片608×608 的尺寸下,网络的计算量为128.46 BFLOPS。与YOLOv3 主干网络只使用Darknet53 相比其主干网络用了CSP 结构的Darknet53,CSP 结构能够把特征层映射到非相邻的层,这样计算量将会减小而且准确度可以保持不变。在特征融合层上采用的FPN 和PAN 结构,不仅通过FPN 使得顶层19×19、38×38、76×76 三个特征图上经过采样的特征融合,还以PAN 结构使得特征通过自底向上的特征金字塔融合,采用这两种结构的优势使得不仅具有较好的语义信息特征还具有较好的定位特征,最后将两个特征金字塔融合后的特征送入检测层进行预测。

2 抓取点检测

2.1 图像轮廓处理

物体的纹理对于物品的分类起到重要的作用,但是抓取网络与分类网络不同,效果好的抓取预测需要在形状结构上进行分析,所以任何已知的干扰的特征应该尽可能的消除。消除物品的纹理特征信息提取目标的轮廓信息可以在目标图像送入抓取检测网络之前采用图像处理的方法实现,论文采用区域生长的方法。区域生长的原理是把与所选的生长点的颜色、灰度或纹理等相关的信息一致的周围的像素点进行合并再生长直至不满足生长条件为止。

简单的区域合并算法如下:

(1)在图像中按顺序找出无归属的像素点,设此像素点坐标为(a1,b1);

(2)以(a1,b1)为初始点按照8 领域生长准则查询(a,b)像素,若(a,b)满足准则则合并生长并且把(a,b)送入堆栈;

(3)从堆栈之中抽取某个像素,并将其设为(a1,b1)再返回步骤(2);

(4)如果堆栈为空则返回步骤(1);

(5)重复上述的步骤直至图像中任何点均有归属后算法结束。

2.2 K-Means 聚类

由于YOLOv4 模型默认的锚框不能和论文所需检测目标完好的匹配,不能使检测的结果达到要求。所以为得到适应论文目标的锚框,把目标的全部锚框尺寸用K-Means 算法进行聚类,以此提升检测结果的精确性。其具体算法如下:

(1)根据设置好的k个类锚框作为初始中心,从目标的锚框中随机抽选k个作为初始锚框;

(2)从k类中依次找出与其锚框满足阈值要求(论文采用欧式距离计算)的锚框尺寸并将其归为同一类,并且重新计算每一类的中心;

(3)重复步骤(2)直至没有新的聚类中心。

具体公式如下:

式中:ak,bk为设定好的k类锚框尺;an,bn为目标锚框尺寸数据;d为聚类中心与其他锚框尺寸的欧式距离。

式中:Ak,Bk为重新聚类的k类锚框尺寸;ai,bi为聚类在一类的锚框尺寸;m为该类别的锚框总个数。

2.3 加强小型物品检测

YOLOv4 在输入图片为608×608 分辨率的情况下默认有3 种特征尺度检测分别为19×19、38×38、76×76。特征尺寸的大小与检测物品的大小成反比,尺寸越大检测小物品的能力越好,尺寸越小检测大物品的能力越好。论文针对抓取的物品大都是小型的形状,对于原特征网络中存在检测大物品特征的尺度19×19 将不适合本文的检测目标,并且还会进行多次的卷积和池化计算,提升网络的参数量的同时还将增加网络复杂度。为降低计算量减少计算的成本以及得到精准的抓取点检测结果,不进行该尺度特征图的检测及其附近层的计算,以输出尺度为19×19 的残差块为初始到进行该尺寸的上采样层为终点全部进行剔除处理,并且在YOLOv4的主干网络中的第11 层和第109 层进行特征融合,得到能检测小型物体的特征尺寸152×152。

3 抓取参数

论文检测出的抓取参数为具有抓取中心坐标的矩形框并附带角度信息,其角度为物品与水平面的夹角。由于神经网络对于分类的效果比直接回归的好,将角度的回归问题转为分类问题进行预测。论文将角度以180°划分为6 类,设0°为初始角度类别,每类角度依次递增30°,具体的效果如图1所示。

4 实验与结果分析

4.1 实验环境的建立与数据集

论文采用的操作系统为64 位Windows7,配置的处理器为Intel Core i7-1165G7,内存为16 GB,使用独立显卡NVIDIA GeForce MX450。运用pytorch深度学习框架,版本为torch1.1.0,在pycharm 编程环境下进行开发。使用GPU 进行运算加速,cuda 版本为10.0,cudn 版本为v7.5.1。神经网络需要根据大量的数据学习得到目标的特征,数据集的好坏可以直接影响神经网络训练结果,对于训练网络中的数据集采用目前流行的康奈尔抓取数据集,该数据集包含280 类图像共1035 张图像,由于是采取人工标注的形式所以其标注信息更加准确,包含物品抓取矩形框以及旋转的角度信息。

图2 为经过改进后的抓取网络结构图,以608×608 的彩色图像作为原始的输入图像,经过图像处理得到物体的轮廓信息并将此轮廓信息作为网络的直接输入。

图2 改进的YOLOv4 网络Fig.2 Improved YOLOv4 network

4.2 性能的评价指标

论文采用的抓取检测性能评价标注有2 个,一个为预测抓取框与真实框的重合度大小,一个为预测框的角度与真实抓取角度的差值。

预测的抓取框角度θR与真实的角度θT的绝对值小于30°。

预测的抓取框XR与真实抓取框XT的相似度大于0.25。

如果满足以上要求则认为预测抓取准确,重合度越高以及角度差越小性能则越优越。

4.3 网络训练

将康奈尔数据集其中的10 类物品按6∶2∶2 的比例分为训练集、验证集以及测试集,这10 类物品生活中是常见的具有代表性的物品分别是香蕉、柠檬、汤勺、帽子、杯子、文具笔、纸方盒、锅铲、刷子、剪刀。调整超参数,令eopch 为150 即使得数据重复迭代150 次。Batchsize 为10,非极大的阈值为0.6。设定初始学习率为0.01,根据YOLOv4 内的余弦退火函数学习率会在初始时以较慢的速度减少,中途会增加下降速率,最后又会变成一个较慢下降的学习率

式中:ηt代表当前的学习率;i代表第几次的索引值;分别表示为最大的和最小的学习率;Ti代表第几次的总的epoch 数;Tcur则是当前执行了多少数目的epoch。

网络采用的损失由三大部分组成,分别为los1真实抓取框与预测框的长、宽以及中心点损失,los2置信度的损失,los3 角度分类的损失。对于连续的变量的损失,一般采用交叉熵的形式,简单的连续的变量的损失计算方法为均方差计算。论文为得到预测结果的精准度、置信度和分类的损失用由交叉损失函数进行计算,抓取框的损失则由YOLOv4 中的CIOU 损失函数相较于在IOU 和DIOU 基础上增加边界框的距离信息GIOU 损失函数,其在GIOU 损失的基础上还考虑了锚框的宽高尺度的信息。

式中:D为目标框与预测框中心的距离;Dc为最小外接矩形的对角线长度;wgt、hgt、w、h分别代表真实框与预测框的宽和高。

由于原始的YOLOv4的分类层为80,论文由于设备的限制只训练了10 类物品,所以在预测层上的张量维度进行修改,原来的网络输出维度为3×(80+5),论文需修改预测层维度为3×(10+5+8),其中的8 表示8 类角度。

4.4 结果分析

为测试采取的轮廓图像、K-Means 自适应数据集锚框以及增加小尺度特征检测方法对抓取检测是否比原YOLOv4 有效,分别只输入轮廓信息进行训练,只使用K-Means 聚类锚框训练,以及只增加小尺度检测层。各个网络训练完毕后,再将测试集的待抓取预测物体送入这3 个网络中,根据成功抓取所需要的预测结果和真实值中角度以及抓取框的限制条件,最终得出抓取预测的平均成功率。

4.4.1 网络训练损失

图3 表明训练的损失值和迭代次数的关系,从中可以看出损失值在第一次迭代前的数值为756.8,并且随着epoch 的增加数值迅速下降,之后在epoch 为10 以后则以缓慢的速度变化。损失值虽然不是连续不断的下降,在某些迭代的时候有数值的波动,但是总体呈现下降的收敛趋势,最终损失值趋于1 以下,表明网络的训练达到预期的效果。

图3 网络训练损失图Fig.3 Network training loss

4.4.2 抓取检测平均准确率

根据表1 的结果显示改进的3 种方法与原始网络相比都具有抓取检测准确率提升的效果。输入为图像轮廓信息较原始网络提升的最多增加1.6%,其次是采用增加小尺度特征的网络较原始网络提升了1.3%,最后为使用K-Means 聚类的方法令锚框的大小与数据相适应的方法性能提升0.4%。

表1 不同方法抓取检测的平均成功率Tab.1 Average success rate of grab detection by different methods

经过测试了解到以上的3 种方法均能提高抓取预测成功率,为得到最佳的检测性能,将上述3个改进的部分全部融合在一个YOLOv4 网络,经过训练后得出的抓取检测结果和原始的YOLOv4 检测结果进行比较。

由表2 可知经过改进的YOLOv4 较原始网络对小目标物品的检测准确度提高了5.5%,因为改进的方法中将原始网络中的第11 层和第109 层进行特征融合,新增加了一个152×152 的特征检测层,使其增加了对小目标物体检测的能力。

表2 改进前后小目标物品抓取检测的平均成功率Tab.2 Average success rate of small target capture detection before and after improvement

从表3 得出融合3 种方法的改良YOLOv4 网络比原始YOLOv4 网络抓取检测的平均成功率要高出4.3%,可知改进后的YOLOv4 较原始有较大的提升。

表3 融合方法与原始网络的抓取平均成功率Tab.3 Average capture success rate of fusion method and original network

4.4.3 抓取检测的实际效果展示

为更形象地展示出基于YOLOv4 改良后的检测效果,罗列了10 种物品的在改进后和原始网络的实际抓取预测图像效果对比。图4、图5 中分别为原始网络抓取预测和改进后网络抓取预测的实际效果图。可以看出经过改进后的YOLOv4 网络的抓取预测效果在抓取框的预测上比原始的网络要好,对于抓取框的倾斜角度的预测上总体也优于原始的网络。

图4 原始网络的实际抓取检测效果Fig.4 Actual grab detection effect of original network

图5 改进后网络的实际抓取检测效果Fig.5 Actual grab detection effect of improved network

5 结语

对于物品的抓取预测,论文提出一种基于YOLOv4的改进方法,对其输入的图像进行轮廓处理降低原图像中纹理对抓取预测的影响和使用KMeans 方法对数据的实际尺寸进行锚框长宽的设计以此得到最佳的锚框比例,以及通过增加小尺度特征检测可以增强对小目标的检测能力。经过实验数据研究表明改进后的YOLOv4 在抓取框和角度的预测上要优于原始的YOLOv4。表明本文的改进方法对物体抓取的研究是有实际参考价值的。

猜你喜欢
聚类物品损失
称物品
“双十一”,你抢到了想要的物品吗?
两败俱伤
谁动了凡·高的物品
数种基于SPSS统计工具的聚类算法效率对比
面向WSN的聚类头选举与维护协议的研究综述
改进K均值聚类算法
基于Spark平台的K-means聚类算法改进及并行化实现
菜烧好了应该尽量马上吃
找物品