1. 引言
随着物联网、图像处理、深度学习、人工智能等相关技术的飞速发展,智能化的传感器、摄像头等图像采集设备的功能更加丰富、集成度高、通信效率高、延迟低、成本低,应用场景十分广泛。随着深度学习的不断迭代更新,在目标检测与识别在计算机视觉领域的研究逐步深入[1]。卷积神经网络(Convolutional Neural Networks,CNN)适用于图像处理、目标检测,卷积神经网络是一种前馈神经网络,适用于训练多层神经网络的学习算法模型[2]。
随着深度学习的深入研究,尤其是卷积神经网络(CNN)的提出,带来了更为准确和高效的目标检测与识别算法。但在实际应用过程中,如何将这些深度学习算法有效地集成融合到机械臂视觉系统中,实现快速且准确的目标识别是目前面临的一个挑战[3]。
本文通过研究一种基于深度学习的摄像头与机械臂视觉感知与目标识别算法,通过使用YOLOv8结合ROS2系统设计系统化算法,使机械臂融合感知环境能力,提升在复杂工程场景中的自主识别与操作物体能力。本文研究有助于推动视觉感知与机械臂技术的深度融合,提高智能化生产效率具有一定的实践价值和社会意义。
2. 国内外研究现状
随着深度学习与ROS系统的迅速发展,深度学习技术在摄像头图像采集与机械臂的视觉感知和目标识别领域应用广泛。国外的一些研究机构在机械臂与计算机视觉中的实际场景应用中,是通过卷积神经网络(CNN)来实现物体识别与自动化控制。如何在保证检测精度的同时提高算法的运行效率,如何处理遮挡和相似目标带来的检测困难,以及如何适应不同光照条件和复杂背景下的目标检测等问题,都需要未来的研究去解决。此外,随着深度学习技术的不断发展,新的算法和模型不断涌现,伴随着生成式人工智能与大模型的迭代更新,当下目标分类、目标检测、图像检索等计算机视觉的研究也在快速发展。在国内,越来越多的高校和科研机构开始关注并投入到运动目标检测与识别的研究中,有学者使用深度学习与神经网络等相关知识来实现振动平台上的目标检测任务[4]。有学者使用引入了改进的卷积神经网络算法以提高电力线路小目标物料识别的准确率[5]。有学者研究并改进运动目标检测方法,进行移动阴影算法的研究与改进[6]。有学者利用卷积神经网络的池化层对目标特征的损失函数,处理目标特征模糊的情况,以此提高检测的精度[7]。
通过研究深度学习在智能制造中的应用,特别是结合ROS2系统,基于YOLO (You Only Look Once)系列的目标检测模型,通过改进摄像头标定技术和PID控制策略可实现更加精准和稳定的视觉识别场景中的机械臂操作[8]。
目前国内外通过的摄像头或深度相机与机械臂融合,通过将深度学习算法与ROS2操作系统的进行研究及工程实践,可以有效提升机械臂执行目标指令的准确性,推动智能机器人技术的发展[9]。
3. 深度学习算法和ROS2操作系统
3.1. 深度学习算法
深度学习算法核心是构建一个由多个隐藏层组成的神经网络模型。训练过程中,算法通过反向传播算法调整这些权重和偏置,以最小化预测输出与实际标签之间的误差。具体公式(1)如下所示。
(1)
其中,N是样本数量,
是第i个样本的真实标签,
是模型预测的标签。本文使用PyTorch框架实现全连接神经网络的Python代码。
3.2. 卷积神经网络
一个卷积层通过对输入向量,设计可学习的滤波器(卷积核),通过训练学习生成特征图。输入一般是二维向量,如高度、图像。在图形图像处理方面,卷积神经网络具有适配度,特征提取和模式分类同时进行,网络具有较强适应性。
假设输入数据是一个二维向量矩阵X,其大小为
,表示图像的高度和宽度。一个卷积核K的大小为
,其参数包括权重和偏置项。公式(2)所示卷积操作。
(2)
其中,
是输出特征图的第
个元素,
表示偏置项,
表示输入数据矩阵X中的第
个元素,
是卷积核的第
个元素。
目前,主要是在连续的卷积层之间使用激活函数,为了减少模型参数的数量并防止过早拟合,需要进行池化层的相关操作。
3.3. ROS2操作系统
ROS2 (Robot Operating System 2)是机器人、机械臂行业广泛使用的开源操作系统框架,通过对节点库函数API进行设计、编码和测试用于操作控制机械臂。机械臂包含电机、减速器、控制器等核心组件,可通过Python或C++编程语言进行ROS2编程。相比于ROS版本,ROS2版本在性能、可扩展性和安全性方面显著提升,适合于实时系统和分布式计算环境。使用ROS2和Gazebo搭建机械臂虚拟仿真实验环境,进行可视化工作空间和路径轨迹规划。通过ROS的节点编程控制和深度学习算法实现在指定区域内的机械臂对目标物体的抓取控制操作。在深度学习算法与机械臂视觉融合感知的研究过程中,实现摄像头的图像数据采集、处理以及与机械臂控制系统的数据交互与控制。在不同硬件配置下ROS2节点响应时长差异,硬件配置的优劣对ROS2节点的响应时间有显著影响。高性能的CPU及RAM可以显著提高ROS2运行效率。
4. 机械臂摄像头视觉感知与目标识别
4.1. 相机标定
相机标定是视觉感知系统中的一个关键步骤。通过拍摄多个不同角度和位置的棋盘格图像,收集到足够样本数据来设定相机的内参和外参。相机的内参矩阵
可以表示为:
(3)
其中,
和
分别是x轴和y轴方向的焦距,
和
是主点坐标。为了实现相机标定,使用OpenCV库中的函数。通过循环捕获视频流中的每一帧,并查找棋盘格的角点,使用“cv2.calibrateCamera”函数进行相机标定,输出相机的内参矩阵和畸变系数。
4.2. 机械臂PID控制
在机械臂的视觉感知与目标识别中,实现精确的位置控制是至关重要。PID (比例–积分–微分)控制器因其简单有效而被广泛应用于机械臂的运动控制中。PID控制器通过调整三个参数:比例系数
、积分系数
和微分系数
来优化控制性能。
PID控制器的基本公式为:
(4)
其中,
是设定点与实际位置之间的误差,
是控制器输出,用于驱动机械臂达到期望位置。PID参数的调整对控制效果有显著影响,可通过试错法来优化输入参数。以下是使用Python语言实现PID控制器实现代码。在机械臂的视觉感知与目标识别系统中,PID控制器不仅需要处理机械臂的运动控制,还要考虑到摄像头的实时反馈。因此,PID控制器的设计和参数调整需要根据具体的机械臂结构和实际工作场景进行优化调整。
4.3. 基于YOLOv8的目标检测
本文在机械臂视觉感知与目标识别的研究中使用YOLO算法。YOLOv8采用单次前向传播完成目标检测任务。YOLOv8的损失函数由三个部分组成:边界框坐标损失、置信度损失和类别损失。具体公式如下:
(5)
其中,
是边界框坐标的损失,
是置信度损失,
是类别损失,
分别是这三个部分的权重系数。
5. 实验结果与分析
5.1. 数据集
为保证实验的可重复性与结果的可信度,本研究使用了自建数据集与公开基准相结合的策略。自建数据集和采集流程如下:
(1) 采集环境与设备:采集在实验室内完成,室内光照以日光白光为主(色温约5500 K),并在若干实验组中加入强光与弱光条件以考察模型鲁棒性。图像采集设备为工业相机(1920 × 1080)与Intel RealSense D435深度相机。机械臂型号为XX-6DOF,控制通过ROS2节点与真实关节驱动器通讯。
(2) 样本数量与类别:训练集约4000张RGB图像,验证集800张,测试集1000张。端到端物理测试共1000次抓取实验。
(3) 标注方法:目标检测标注采用COCO风格边界框与类别标签,人工双重标注并经一致性检查。定位精度实验中使用棋盘格标定并记录真实目标质心位置以计算误差。
(4) 数据增强与预处理:随机缩放、翻转、颜色扰动与裁剪,统一尺寸640 × 640并标准化。
5.2. 实验结果与分析
YOLOv8采用单次前向传播完成目标检测任务。对于每个边界框,YOLOv8定义了5个参数:
和
。其中,
表示边界框中心相对于网格左上角的坐标,
表示边界框的宽度和高度,而
表示该边界框包含目标的概率以及背景的概率。
本研究基于YOLOv8的目标检测算法对机械臂摄像头图像采集进行目标检测与识别分析,通过调整参数和优化器,可以进一步提高模型的性能。硬件实验环境配置为32 GB RAM和NVIDIA RTX 3090 GPU的服务器工作站,通过对其他算法进行对比分析评估模型性能。
Table 1. Analysis of experimental results
表1. 实验结果分析
序号 |
算法 |
成功率 |
定位RMSE (mm) |
IoU |
总耗时(s) |
1 |
YOLOv8 |
92% |
6.2 ± 2.1 |
0.85 |
2.8 |
2 |
YOLOv5 |
88% |
7.5 ± 2.8 |
0.80 |
3.1 |
3 |
SSD |
85% |
9.0 ± 3.4 |
0.78 |
3.4 |
通过表1实验结果表明,基于YOLOv8设计的算法在目标检测任务上具有较高的效率和准确性,且端到端系统的抓取成功率超过90%,重复定位精度约6.2 mm平均任务耗时约小于3 s,证明系统在实时抓取任务中的可行性与鲁棒性。
6. 总结
本文研究一种基于深度学习的机械臂视觉感知与目标识别算法,该算法结合YOLOv8与ROS2进行算法设计,实现对指定区域内的不同大小、形状和颜色的目标物体进行高效识别、选择及自动化控制。本文通过对深度学习算法和ROS2操作系统的研究,将卷积神经网络应用于机械臂的摄像头视觉感知与目标识别领域,实现对复杂环境下的目标准确识别、定位及控制等自动化任务操作。通过相关实验,实验结果表明该算法具有较高的稳定性、准确性和抗干扰性,验证了研究方法的有效性。未来的研究可以探索更多优化策略,以根据实际应用场景构建相匹配的目标检测与识别算法。深度学习算法具有较高的计算复杂性,而机械臂控制系统计算资源是有限的,因此还需要进一步进行算法模型优化和硬件配置进行优化。