武逸凡,李晓斌,郭子文,田壮壮,吴彦强
(山西农业大学工学院,山西太谷 030801)
机器视觉和图像处理作为一种高效、准确、可实时监测的技术手段,是研发智能农机装备所依赖的一项关键技术。该技术可在一定程度上代替驾驶员的眼睛,对拖拉机机组的作业质量、运动参数等进行实时监测,不但为机组的自动导航和路径规划等提供依据,而且极大地拓展了驾驶员对周围环境的感知能力,使驾驶员处理拖拉机起步、作业、转弯、停车、作物保护、规避障碍、检测农机具运行状态等情况时轻松自如。
目前,将视觉技术与拖拉机相结合的研究主要集中在拖拉机自动导航、自动驾驶、行驶路线规划等方面[1-6],研究成果极大地提高了拖拉机的自动化和智能化驾驶水平,但也存在图像畸变大[7]、失真严重、拼接效果不理想[8]等问题。因此,笔者以上海500型拖拉机为载体,通过采集其四周的实时影像,经Matlab图像处理后显示在GUI界面中,最终形成拖拉机360°全景俯视图像。驾驶员通过该图像可实时观察到拖拉机所处的位置和周边情况,便于及时采取措施以减少作物损伤、人员受伤、农机具损坏的发生。
该研究以MATLAB为平台,将布置在拖拉机驾驶室顶端的4个摄像头传回的实时影像拼接为一幅以拖拉机为中心的360°环影图像,驾驶员不但可以观察到机组周边情况,而且可以对图像进行视觉增强和局部缩放等操作,极大地提高了驾驶的安全性。界面设计路线如图1所示。
图1 技术路线Fig.1 The route of designing
2.1界面总体设计启动MATLAB(R2015b),在命令行输入“guide”后,弹出“Blank GUI”空白模板,点击“OK”按钮进行编辑[9]。调整界面大小,布置按钮和坐标轴等控件。界面由控制面板、显示界面1和显示界面2组成。控制面板中的按钮从上至下分别为环影系统总开关、显示环绕影像、视觉增强辅助、选择缩放视角、选择放大视角等;显示界面1和显示界面2均显示处理之后的实时影像,其中axes10显示视觉增强辅助功能的图像特征直方图,以此选择画质增强参数;调节缩放比例(滑块按钮),用于指定缩放值,使局部图像得以放大显示。界面设计结果如图2所示。
2.2系统功能设计
2.2.1视频图像处理逻辑关系。该系统由于要在多个功能按钮中调用同一个图片句柄,并且需要在不同的坐标轴中同时显示,为了满足系统的实时性,在视频图像采集函数、主函数以及子函数之间,需要实现如下逻辑关系,如图3所示。
图2 界面设计结果Fig.2 The designing results of interface
图3 视频图像处理逻辑关系模型Fig.3 Video image processing logic relation model
2.2.2视频图像采集。利用MATLAB中的videoinput函数[10]可对固定在拖拉机驾驶室顶端的4个摄像头传回的实时影像进行采集,图像分辨率为640×360。其回调函数如下:
i=0;
vid1=videoinput( " winvideo " ,1, " MJPG_640×360 " );
%设定摄像头参数
triggerconfig(vid1, " manual " );
start(vid1);%手动触发摄像头
tic
while i ......%指定循环 I=i+1; End%停止 2.2.3视频图像预处理。对于一个动态的视频处理,摄像头拍摄所获得的视频句柄经过图像预处理被分割为逐帧排列的图片句柄,并将图片句柄作为图像处理的目标对象。通过各按钮的触发获得不同的switch-case语句判断值来运行主程序中需要被激活的子程序,并将由子程序处理后的图片句柄组成视频句柄显示在确定的坐标轴内。同时为了减少计算机运行内存的占用,在显示一张处理过的图片后,将该图片句柄从内存中删除,其回调函数如下: ......%将视频图像句柄分割为逐帧排列的图片句柄 for i= i+1 %指定循环 switch y %触发判断值 case 1 %选择判断值1 ......%运行子程序1 case 2%选择判断值2 ......%运行子程序2 ......otherwise...... End %停止 I=... ......%图片句柄转换视频句柄 Delete......%删除上一帧图片句柄 2.2.4视频图像拼接。以matlab为基础,将固定在拖拉机驾驶室顶端的摄像头按照黑白相间的棋盘纸进行角度调整,保证获取的实时影像拼接准确。经过畸变校正后,影像拼接结果如图4所示。 由图4可知,GUI界面中的axes2、axes5、axes3、axes6分别显示拖拉机前、后、左、右的实时影像,axes7则为事先获取的拖拉机驾驶室顶部图像,属于固定图像。 图像整体拼接结果较理想,边界处过渡自然、平滑,且真实反映了拖拉机周围的客观环境情况。驾驶员根据图4所示的实时影像可及时观察到拖拉机的周围人或物,及时采取措施以确保机组安全、高效地工作。 另外,axes5显示的拖拉机后方图像的白平衡与其他3幅图像明显不同,这可能是由于摄像头及图像传感器对环境光线的不同处理方式造成的,后续应研究相应的算法,保证各摄像头不受环境光线的影响,具有统一的白平衡。 图4 图像拼接结果Fig.4 Image stitching results 2.2.5局部图像显示。驾驶员可以通过点按相应按钮对拖拉机前后左右的影像进行局部放大,以便在必要时仔细观察机组工作过程中的某些对象。放大的影像显示在axes8中,如图5所示(以前摄像头为例)。 该研究基于MATLAB进行了拖拉机360°环影系统的GUI设计,利用安装在拖拉机驾驶室顶端的4个摄像头,将拖拉机周围的实时影像显示在相应的坐标轴中,利用畸变校正技术对原始影像校正后,拼接为一幅完整的环影影像。存在的问题主要是各摄像头白平衡不一致,后续应研究相应算法,进一步改善图像拼接的质量,最大限度地还原拖拉机周围的实际环境。该研究所述方法一方面提高了拖拉机驾驶的安全性;另一方面也为智能拖拉机和自动驾驶拖拉机的研发提供一定的参考。 图5 前摄像头局部图像放大Fig.5 Front camera partial image magnification3 结论