摘要
随着人工智能技术的不断发展,机器人逐渐走向人类生活的各个领域。在生产流水线中,机器人的执行动作通过离线编程预先设定,而当工作环境发生变化时,机器人缺乏应变能力。因此将视觉技术搭建于机器人中,实时获取目标的矢量信息,使机器人的执行动作更具灵活性。本文以视觉传感器实时获取目标位置矢量信息为应用背景,利用单目视觉技术分别对静态目标、运动目标进行定位跟踪研究。具体研究内容为: 静态目标的定位分析。首先对工业相机进行标定,传统相机标定法则是直接在MATLAB中CameraCalibration工具箱中进行,本文则基于C++开发语言,编写相机标定程序,得到相机的内外参数值。实验标定平均误差为0.2像素,低于一般标定误差0.5个像素,达到标定效果。接着对相机捕捉的目标图像进行预处理,在进行图像的边缘检测时,针对传统的Canny边缘检测采取的是高斯滤波的形式,可能会引起图像边缘过于平滑,从而导致图像边缘细节丢失、边缘的提取能力有所降低等问题进行优化,提出通过双边滤波的形式代替Canny边缘检测中的高斯滤波完成图像的边缘检测处理。然后对预处理完成的图像提出一种高效获取目标矢量信息的方法,采用寻找主轴法寻找包含目标区域的最小外接矩形,确定目标的质心坐标值及偏转角,同时提出在实际操作过程中设定微调量,减少误差。最后基于C++开发语言在QTcreator中进行人机交互界面的设计,完成系列实验,实验验证静态目标定位平均误差为0.95mm,低于一般视觉定位系统2mm误差,已应用于实际生产流水线中。 动态目标的定位跟踪分析。使用GMM高斯混合模型对实时视频流进行背景消除建模,讨论直接基于颜色特征对于目标跟踪定位的局限性,并在Meanshift算法的基础上使用camshift算法跟踪。针对目标在移动过程中受到遮挡等而导致camshift方法跟踪定位失败问题进行优化,引入饱和度分量与kalman滤波器。计算目标区域与标定区域的巴氏距离判断目标是否受到遮挡,对遮挡的目标提出设定最小区域面积,通过识别区域面积与最小区域面积比较,更新滤波参数,预测目标的下一帧位置信息。实验在VS2017中进行,实验结果表明优化后的算法在目标受到遮挡后也可以很好预测目标下一帧位置,获取目标质心位置,达到实时跟踪的定位效果。