具有全景图合成功能的机器人视觉设计 摘要:全景图合成是目标跟踪的基础。通过合成全景图,可以扩大摄像机捕获视野的范围, 在大视野下更容易发现需要跟踪的可疑目标,进而选定该目标,并对其进行跟踪。在已有的 目标跟踪的基础上,增加全景合成功能和可疑目标选取功能,使目标跟踪做到只对选择的目 标进行,使跟踪更具针对性。本系统实现的全景图合成模块,以两种方式获取视频流,即摄 10 像机实时捕获的图像流和本地存在的AVI 视频文件。通过算法判断相邻两帧图像的位置关 系,对图像进行拼接,并将当前状态下合成的全景图实时显示在用户界面上。通过用户对特 定目标的选择,完成运动摄像机环境下的运动物体检测与跟踪。经测试,系统效率可以满足 一般应用的需要。 关键词:全景图;合成算法;目标跟踪;人机交互 Robot visual design with panorama synthesis function Abstract: Panorama synthesis is basis of the target tracking. Through the synthesis of panorama, can enlarge the visual range to capture for the cameras, in the big background, the suspicious target which needs to be tracked are more easily detected, then selects the target, and Tracks it. In the existing target tracking, adds panorama synthesis function and the suspicious target selection 25 function, the target tracking runs only on selected target, make the tracking more targeted. In the Panorama synthesis module of the present system, there are two ways to obtain video stream, that is real-time image stream from Cameras and the local AVI video file. Through the algorithm to judge the position relationship between two adjacent frames, finishes the image stitching, and displays panorama of the in the user interface in real time. By a particular target selection from 30 users, complete moving object detection and tracking in motion camera environment. After the test, the system can meet the general needs of the application. Keywords: panorama; synthetic algorithm; object tracking; interaction 0 引言 35 宽视野、高分辨率的图像或视频在一些领域显得越来越重要,比如摄影测量学中全景视 图的构造、视频编码领域的背景重建技术、全景视频监控系统的实现,虚拟显示技术中虚拟 环境的构建等。为了获取宽视野的场景图像,人们必须通过调节相机焦距或者使用特殊的全 景设备(广角或鱼眼镜头)才可以摄取完整的场景,但这样所获取的全景照片的分辨率相对 较低,因此,人们采用了图像拼接技术来将多幅相片拼接成一幅大的全景图。随着场景的扩 40 大,用于拼接的图像序列数量增加,生成全景图所需要的处理时间越来越长。因此,在保证 生成图像质量的前提下,提高全景图的生成速度,达到准实时甚至实时要求,是目前研究的 热点与难点[1]。 根据投影面的不同,全景图可分为柱面、球面、立方体全景图等。柱面全景图技术现在 已经比较成熟,但它只适合相机沿水平方向做一维旋转所得到的图像序列的拼接;立方体全 景图的研究正在不断深入,但表现效果不如球面真实;球面全景图适合描述大范围场景,符 合人们的观察习惯,但是模型复杂,图像序列获取困难,相关研究尚欠成熟[2]。 图像配准是全景图生成过程中的关键,目前常用的方法有基于运动法[3]、基于特征点法 [4]、基于流形投影法[5]等,这些方法计算量大,生成全景图的速度较慢,在实际应用中受到 一定限制。 50 另一方面,在视觉监控系统中,为了检测可疑情况,.需要先分割所处场景中的运动物 体,得到物体的描述,随后才能去关注它是否可疑。在一些特出场景中,.还需要判断可疑 物体离某个特殊位置的距离,比如不能离禁区过近,否则就需要做出警告等。 在众多的应用中,有一些共同的特点,就是需要检测视频流中的一些物体,另外需要对 视频信息进行分析和跟踪,并进行有选择的存储。人们往往只关心意外发生时候的视频内容, 55 而在以往的各种视觉系统中往往是把所有的视频信息都进行保存,这导致了巨大的数据冗 余,不仅占用了巨大的空间,而且还是得人工查找异常事件时的效率大幅降低。而如果能理 解视频信息,只保存需要关注的部分,那情况就会大大改善。除此之外,在这些场景中往往 有必要让摄像机运动,因为往往需要对一个较大的区域进行监控,在只有一台摄像机的情况 下,只有让摄像机不断的扫视整个场景,并进行全景图合成。而且在机器人系统中摄像机通 60 常是架设在机器人上的,因此它必然是跟着机器人一同运动的。可见,在运动摄像机环境下 分割前景物体、对其识别、跟踪是非常有意义的。只有在这些中层信息被获取后才有可能进 行高层的事件推理。 而本论文的工作正式基于以上两个方面的——全景图合成,以扩展摄像机的扫视范围; 目标跟踪,保持目标在镜头中并被一直捕获。 65 1 系统结构与方案约束 1.1 系统结构 系统中提及的机器人视觉是指面向应用的机器人一体机(Robot Integrated Machine, RIM)远程控制方案中给机器人安装的摄像机(摄像头),方案的结构图如图1 所示[6]。 70 图1 机器人一体机远程控制方案系统结构图 Fig. 1 RIM remote control scheme system structure diagram 在图1 中,摄像头作为一体机的视觉硬件,负责整个现场的监控。操作员可以根据摄像 头信息以及遥操作平台的反馈信息,准确掌握一体机的实际情况,控制一体机以及摄像头的 75 运动。其中,实现了面向应用动态目标跟踪。本文是在此基础上,给一体机加装全景图合成 功能、可疑目标选择跟踪功能,使一体机的机器人视觉功能更强、更实用。全景图合成过程 和目标跟踪过程可以切换。 1.2 方案约束 全景图合成作为视觉系统设计的第一步,是目标跟踪的基础。通过合成全景图,可以扩 80 大摄像机捕获视野的范围,在大视野下更容易发现需要跟踪的目标。 本系统实现的全景图合成模块,以两种方式获取视频流,即摄像机实时捕获的图像流和 本地存在的AVI 视频文件。通过算法判断相邻两帧图像的位置关系,对图像进行拼接,并 将当前状态下合成的全景图实时显示在用户界面上。 本系统约定摄像头在机器人一体机运动后,均固定为水平方向的扫描(本系统没有考虑 85 俯仰角),因而也大大简化了全景图拼接的计算量。相邻两帧图像上下边界是对齐的,仅需 要在水平方向查找匹配点进行拼接即可。当然在拼接的过程中需要实时判断摄像机的扫视方 向是否发生变化。 因此,该全景图合成模块的设计目标是使用高效、精确的匹配算法,对图像进行实时合 成,并实时判断摄像机的扫视方向,以确定是否需要更新已拼接完成的部分全景图图像。最 90 终将合成的全景图实时显示在交互界面上。 2 全景图合成设计 2.1 模块算法设计 全景图合成模块是本系统两个基础功能模块之一,完成将视频文件合成全景图的功能, 以拓宽摄像机的视野。系统为本模块设计了两种输入方式,即直接从运动中的摄像机捕获视 95 频和读取本地视频文件。如果选择使用摄像机捕获视频的输入方式,还可以将视频文件写入 本地硬盘中。同样,合成的全景图图像文件也可以写入本地硬盘。 在合成全景图的过程中,需要将当前合成的部分图像实时显示给用户。并且需要实时判 断摄像机或从视频文件中判断视频的拍摄方向,从而决定是否需要重新开始合成另一张全景 图文件[7]。全景图合成模块的系统设计流程图如图2 所示。 图2 全景图合成模块流程图 Fig. 2 Panorama synthesis module flow chart 在本模块运行中,有几个状态需要实时进行判断,即在每次读取视频帧时都需要进行判 105 断:首先是系统的状态是否发生变化,用户可以在全景图合成的过程中切换系统状态,例如 转入目标跟踪功能,而不需要等待视频读取结束;其次是视频是否读取结束,这主要是为以 本地视频文件为输入方式而设计的,对于从摄像机实时捕获视频的输入方式则可以忽略本次 判断;最后就是方向的判断,在每次读取新的一帧后均需要与上一帧进行对比,判断视频流 的拍摄方向,如果视频方向发生改变则需对已经存在的全景图合成结果根据用户要求进行相 110 应处理,并开辟新的结果存储区,否则需要将新的一帧中在合成图中不存在的部分根据方向 关系写入结果存储区中。 模块实现 本模块使用C++语言作为编程基础,结合使用OpenCV。OpenCV 是Intel®开源计算机 视觉库,由一系列C 函数和少量C++类构成[8],实现了图像处理和计算机视觉方面的很多通 115 用算法。 本文进行全景图合成所使用的模板匹配算法是对球面投影模型进行的简化,主要使用其 灰度匹配算法。基于灰度投影的匹配算法[9]是将二维图像的灰度值分别投影变换成两组独立 的一维数据,在一维数据的基础上进行图像匹配运算。由于维数的减少,大大降低了匹配运 算中的计算量,从而极大地提高了匹配速度。在每一步的运算中,首先需要将两张图片通过 120 空间转化,把图像从RGB 空间转化为灰度空间,降低图像的维数,提高匹配的运算速度。 然后通过模板匹配算法,判断当前帧与上一帧之间的位置关系,从而判断视频的方向,进而 将图像进行合成。OpenCV 提供了强大的算法库,下面是在本模块中使用的几个主要的函数 [10]。 CvtColor 色彩空间转换函数 RGB(red,green,bl 125 ue)颜色空间最常用的用途就是显示器系统,可以显示HSB、RGB、LAB 和CMYK 色彩空间的每一种颜色的色彩值。 HSV(hue,saturation,value)颜色空间的模型对应于圆柱坐标系中的一个圆锥形子集,圆锥 的顶面对应于V=1。可以说,HSV 模型中的V 轴对应于RGB 颜色空间中的主对角线。在圆 锥顶面的圆周上的颜色,V=1,S=1,这种颜色是纯色。HSV 模型对应于画家配色的方法。 130 画家用改变色浓和色深的方法从某种纯色获得不同色调的颜色,在一种纯色中加入白色以改 变色浓,加入黑色以改变色深,同时加入不同比例的白色、黑色即可获得各种不同的色调。 HSI 色彩空间是从人的视觉系统出发,用色调(Hue)、色饱和度(Saturation 或Chroma) 和亮度(Intensity 或Brightness)来描述色彩。因此,在HSI 色彩空间可以大大简化图像分 析和处理的工作量。HSI 色彩空间和RGB 色彩空间只是同一物理量的不同表示法,因而它 学术论文网Tag: |