APP下载

目立体视觉技术在多点触控中的应用研究

2020-09-10万利

新教育论坛 2020年11期
关键词:特征提取

摘要:立体视觉是计算机视觉领域的一个重要课题,其目的在于重构场景的三维几何信息。立体视觉在机器人导航系统、航空及遥感测量、军事应用、工业自动化等中有着比较广泛的应用,所以对立体视觉的研究具有十分重要的意义。双目立体视觉是立体视觉的一个重要的分支。双目立体视觉理论是在模拟人类视觉系统研究的基础上建立起来的。对于双目立体视觉的研究,主要包括摄像机标定、特征检测、立体匹配和三维重建几个方面的内容。本论文中采用了双目立体视觉技术来实现多点触控,主要研究了摄像机标定、特征提取、触控点跟踪、多点触控系统设计等几方面内容。主要完成了如下工作:首先,分析了双目立体视觉及多点触控技术的国内外研究现状,为本文的研究工作奠定了基础。其次,主要介绍了张友正摄像机标定原理,然后进行了摄像机的标定实验,在理论与实验的基础上得出了双目摄像机的内外参数,更为重要的一点就是通过标定原理推导出了触控转换公式。再次,将双目立体视觉技术中的标定方法应用到多点触控中,通过图像处理方法对触控点进行特征提取,然后计算触控点坐标并进行跟踪,实验证明该方法能有效解决多触点遮挡问题,可支持最多四个触点的精确定位。

关键词:双目立体视觉;摄像机标定;特征提取;触控点跟踪

1概述

本多点触控系统包括:摄像机标定、触控点特征提取、触控点跟踪等几个部分。本系统涉及论文除了在理论上对摄像机标定、触控点特征提取、触控点跟踪技术进行了研究之外,还利用ViusalC++2008进行了编程,实现了系统的全部功能,包括摄像机标定、触控点特征提取、触控点跟踪技术。

为了缩短开发时间,本文选择Intel的OpenCV(OpenSourceComputerVision)library作为整个系统的基础函数库。OpenCV是一个基于BSD许可证授权(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV有效地提高了开发效率,并且其执行速度快,具有良好的跨平台移植性,因此广泛应用于工程实际当中。

2系统的硬件组成

图2-1为本文所设计系统控制装置示意图,系统的硬件部分主要由一台计算机,视觉系统及实验平台组成。视觉系统的主要任务是获取触点信息并通过坐标转化得到它的空间位置信息。

本系统中的光学传感器是型号为9014的CCD摄像头,其采集速度为每秒30帧,图像采集分辨率为320*240。精度较高,噪声较小。本系统包括两个摄像头和一个支架,将摄像头安装在支架上,再将安装摄像头的支架安装在显示屏的前方或后方,应视两个摄像头视角范围重叠区域最大,且整个实验平台都在重叠区域内,如图2-1所示,安装完成之后要要将摄像头固定好,以免人为的触碰到摄像头,使其产生晃动,对实验结果照成影响,摄像头通过有线或无线与计算机相连。

图2-1触摸控制装置结构图

此系统的优点在于通过光学传感方式,采用光学传感接收器作为主要信号采集装置,因此生产制作容易,成本较低,而且作用面积大,相对于现有技术的成本优势就越突出;由于采用光学传感接收器,并且光学传感接收器的个数可以根据实际应用进行调整,因此,识别精度高,能够准确地通过笔触或手触输入信息;信号接收是通过成像方式产生,因此,不需要直接接触界面显示设备的表面,不易对设备产生物理损伤,因此,使用寿命长。

3系统的软件设计

3.1技术路线与方案

如图2-1所示,放置两个摄像头,使得实验平台在每个摄像头内都能有完整的图像,左摄像头与右摄像头标定形成双目系统,并且以左摄像头的光心位置作为世界坐标原点。两个摄像头同步捕获手指的运动图像,通过图像处理,得到手指在两个摄像头中的像坐标,通过坐标变换得到手指的世界坐标(世界坐标原点为左摄像头的光心坐标)。最后通过oscpack将得到的點信息传送出去。

本系统软件最关键的地方是要提取出手指的像坐标,由摄像头实时获取手指图像,提取出我们感兴趣的图像部分,提取背景差,经过平滑、canny、二值化、去杂点、膨化,边缘连接得到手指部分在图像中以白色区域显示,所有白色区域在图像中的位置被实时地(即每33ms)刷新,程序利用这些信息,可以在一定程度上由图像中被跟踪目标的二维投影得出三维信息。

本系统软件主要分为4个模块:手指检测模块、坐标转换模块、触控点跟踪模块、oscpack传送模块。

3.2数据流程图

3.3详细程序流程图

3.4模块划分及函数说明

(1)初始化模块:初始化2个摄像头,即读入2个摄像头。

函数:voidinitDevices(),调用listDevices(),setDeviceID(),initGrabber函数。

函数作用:启动摄像头,初始化摄像头拍摄图像参数并为输入摄像头编号;

(2)摄像头参数模块:载入标定得出的参数,对摄像头参数矩阵进行计算。

函数:cvH0ughLines2(),在二值图像中找到直线;

cvFindComersubPix,得到精确的亚像素级的坐标;

cvDrawChesscoardcorners,以红色圆圈来绘制检测到得棋盘角点;

cv2Calibratecamera2(),得到摄像机的内参矩阵、畸变向量、每幅图像的旋转向量、每幅图像的平移向量;

cvFind2ExtrinsicCameraParams2(),计算各幅图的外参即旋转向量和平移向量;

(3)更新图像模块:对图像进行处理,得到手指在摄像头中的像坐标。

函数:voidUpdateMutiPoints2(IplImage*img),更新图像并找手指点;

(4)坐标变换模块:将手指像坐标带入双目系统中计算手指的世界坐标,由于我们假设的平台与摄像头光心平行,即z轴坐标为0,即只有x和y坐标。

函数:voidCalculateMutiPoint(),由图像坐标得到世界坐标;

(5)Oscpack输出模块:将得到的x,y方向上的坐标仿射变换到屏幕上面的矩形中,然后再将这些点的坐标传出去。

4本章小结

本文主要介绍了基于双目立体视觉技术的多点触控系统的设计与实现,从硬件和软件两个方面详细地介绍了系统设计的过程与应注意的问题。硬件方面,给出了摄像头采用的型号,实验平台的摆放等相关信息,软件方面,给出了技术路线与方案、数据流程图、详细程序流程图、模块划分及函数说明。

参考文献:

[1]于泓.摄像机标定算法研究[D].山东:山东大学,2006:7-13.

[2]马颂德,张正友.计算机视觉--计算理论与算法基础[M].北京:科学出版社,2003.

[3]张健新,段发阶,叶声华.双目传感器结构优化设计[J].光电工程,1996,23(3):12-17.

[4] Chen,Y.Mean Shift Mode Seeking and Clustering. IEEE Trans. Pattern Analysis and Machine Intelligence. 1995,17(8):790-799.

作者简介:万利(1983.12.03-),性别:女,籍贯:湖北天门,学历:硕士,研究方向:电路集成。

猜你喜欢

特征提取
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
基于曲率局部二值模式的深度图像手势特征提取
基于数字形态学特征的植物叶片识别技术综述
基于KNN?SVM的垃圾邮件过滤模型
基于极限学习机的玻璃瓶口缺陷检测方法研究
一种针对特定无线电信号的识别方法
基于模糊K近邻的语音情感识别
音频比对技术在安全播出中的发展与应用
DNA序列特征提取与功能预测技术的探讨