论文部分内容阅读
远程视频的出现极大地方便了现代人们之间的相互沟通,而立体视觉技术的发展使得视频交流的效果有了很大的上升空间。在Kinect的革命性发明之后,深度获取就不那么昂贵了,由 Kinect的数据构建立体模型,进而实现立体视频会议系统是一种切实可行的方法。但是对于计算机视觉应用来说,由 Kinect捕获的深度数据需要额外的处理来填补丢失的部分,进一步讲,使用 Kinect数据重建三维模型过程中,由于视角的变换,彩色数据的缺失也需要在最终显示前进行修补。本文首先研究了 Kinect构建立体数据的方法;然后针对立体数据中各种原因的缺失进行修复,分别用结构导向的框架修复了深度数据以及用快速行进的方法修复了彩色数据;最后设计了一套立体视频会议系统,并将修复算法应用其中,同时研究了多种加速策略来提高立体视频的播放帧率。 在进行深度数据的修复时,因为没有足够的信息来对场景结构做出准确的推断,针对彩色图像的传统修复方法并不能直接应用于深度图像。本文提出了一种新的结构导向的修复方法来提高深度图像的修复质量。这种修复策略结合了传统方法和最近发展起来的非局部滤波方案。在待参考点的选取上,提出了一种在8个方向上有间距的选取方法,可以很好的体现待修补点周围的彩色信息和深度特征。距离、深度、颜色三种参考信息之间良好的平衡保证了修复效果。实验结果上,无论是主观视觉的评价,还是客观定量的误差评估,都证实了该修复框架的有效性。 立体视觉的一个典型应用就是立体视频会议系统,本文在对立体数据进行修复之后,设计并实现了一个利用左右分屏3D电视以及 Kinect设备进行三维远程视频会议的系统。系统中首先需要解决的是设计稳定高效的设备驱动模块,它要在不同的平台上以相同的格式向上层模块提供稳定的数据流,OpenNI具备这样的特性。为了让后台的修复算法与前端的界面显示都能流畅的运行,多线程是不可缺少的,本文采用了固定大小的循环缓冲区来实现各个模块的各个线程之间的数据共享,实际的运行效果证明这个高速缓冲区模块可以很好的平衡多线程并发编程中常见的线程安全性问题和运行效率问题。为了提高视频会议系统的流畅度,需要采取多种方法对计算过程进行加速,本文用到了CPU多线程对修复算法进行加速以及使用GPU中CUDA自定义核函数对模型重建与视图转换进行加速的方法。实验证明,这两种加速方法能够显著提高深度数据修补的速度与立体视频显示的帧率。