发明内容
本发明综合考虑了现有技术中存在的多方面问题,并以较低成本、较低计算复杂度和较低的系统的复杂度为代价,实现了对平面上的多个物体的形状进行高精度识别的方案。
本发明的技术方案为使用立体视觉技术,在一字线形激光照明的辅助下,识别桌面上多物体的形状并跟踪各位置。其具有以下特点:
(1)识别对象不限于手指,可以为具有形体的任何物体;同时也不限接触介质的类型(如是否有穿戴手套等);
(2)可以识别物体的形状:通过激光照明的辅助,系统可以对物体与桌面接触的形状进行建模;
(3)可同时识别多个物体:由于系统使用立体匹配技术,所以对于每个待识别的物体,都可以独立计算其深度信息(即与设备的距离),这样就可以同步对多个物体进行识别,且不会混淆各识别目标。
(4)易于携带,使用方便:由于系统为光学触摸系统,其可以方便的集成于一个硬件实体之上。在使用时,将设备置于桌子之上,便能以桌面为假象触摸平面进行交互。
根据本发明的实施例提供了基于光学系统识别多个物体的与第一平面的接触面的形状的方法,所述光学系统包括一字线型激光器、第一摄像头与第二摄像头,所述一字线型激光器的激光照射平面与第一平面平行,所述第一摄像头与所述第二摄像头的视野覆盖所述第一平面,所述多个物体放置在所述第一平面上;所述方法包括:使所述一字线型激光器的照射所述多个物体;使所述第一摄像头捕捉所述一字线型激光器的照射所述多个物体所形成的第一图像;使所述第二摄像头捕捉所述一字线型激光器的照射所述多个物体所形成的第二图像;以及基于所述第一图像与所述第二图像识别所述多个物体的形状。
根据本发明的实施例,其中所述第一摄像头与所述第二摄像头相对于所述第一平面的距离大于所述一字线型激光器相对于所述第一平面的距离;所述方法还包括:校正所述第一图像与所述第二图像,得到与所述第一图像相对应的第三图像,以及与所述第二图像相对应的第四图像,使得所述第三图像与所述第四图像的对应行是对齐的;对所述第三图像与所述第四图像执行立体匹配,使得所述第三图像中的多个第一像素与所述第四图像中的多个第二像素建立一一对应关系,所述第一像素对应于所述多个物体的第一点,而同所述第一像素相对应的所述第二像素也对应于所述第一点;基于多个所述第一像素与多个所述第二像素,计算多个所述第一点的位置、颜色和/或亮度;基于多个所述第一点的位置、颜色和/或亮度,提取所述一字线型激光器的照射所述多个物体而在所述多个物体上形成的多个光斑区域;基于所述多个光斑区域内的所有点的坐标进行曲线拟合,拟合得到第一曲线;以及基于所述第一曲线得到所述多个物体的形状。
根据本发明的实施例,其中基于所述第一像素在所述第三图像中的坐标与第二像素在所述第四图像中的坐标,通过三角定位得到所述第一点的位置的空间坐标。
根据本发明的实施例,进一步包括:根据所述第一曲线,确定以所述第一曲线的左、右端点的连线的中点作为对称中心的第二曲线,基于所述第一曲线与所述第二曲线得到所述多个物体的形状。
根据本发明的实施例,其中计算所述第一像素与所述第二像素的颜色的平均值,得到所述第一点的颜色;以及计算所述第一像素与所述第二像素的亮度的平均值,得到所述第一点的亮度。
根据本发明的实施例,其中基于多个所述第一点的亮度阈值,提取出所述一字线型激光器的照射所述多个物体而在所述多个物体上形成的多个光斑区域;或者基于多个所述第一点的颜色阈值,提取出所述一字线型激光器的照射所述多个物体而在所述多个物体上形成的多个光斑区域。
根据本发明的实施例,其中所述第一摄像头与所述第二摄像头相对于所述第一平面的距离相同,且所述第一摄像头与所述第二摄像头的光轴彼此平行。
根据本发明的实施例,其中空间中任一点出现于第三图像中的位置与该点出现于第四图像中的位置具有相同的纵坐标。
根据本发明的另一实施例,提供了一种基于光学系统识别多个物体的与第一平面的接触面的形状的装置,所述光学系统包括一字线型激光器、第一摄像头与第二摄像头,所述一字线型激光器的激光照射平面与第一平面平行,所述第一摄像头与所述第二摄像头的视野覆盖所述第一平面,所述多个物体放置在所述第一平面上;所述装置包括:用于使所述一字线型激光器的照射所述多个物体的模块;用于使所述第一摄像头捕捉所述一字线型激光器的照射所述多个物体所形成的第一图像的模块;用于使所述第二摄像头捕捉所述一字线型激光器的照射所述多个物体所形成的第二图像的模块;以及用于基于所述第一图像与所述第二图像识别所述多个物体的形状的模块。
根据本发明的该另一实施例,其中所述第一摄像头与所述第二摄像头相对于所述第一平面的距离大于所述一字线型激光器相对于所述第一平面的距离;所述装置还包括:用于校正所述第一图像与所述第二图像的模块,得到与所述第一图像相对应的第三图像,以及与所述第二图像相对应的第四图像,使得所述第三图像与所述第四图像的对应行是对齐的;用于对所述第三图像与所述第四图像执行立体匹配的模块,使得所述第三图像中的多个第一像素与所述第四图像中的多个第二像素建立一一对应关系,所述第一像素对应于所述多个物体的第一点,而同所述第一像素相对应的所述第二像素也对应于所述第一点;用于基于多个所述第一像素与多个所述第二像素,计算多个所述第一点的位置、颜色和/或亮度的模块;用于基于多个所述第一点的位置、颜色和/或亮度,提取所述一字线型激光器的照射所述多个物体而在所述多个物体上形成的多个光斑区域的模块;用于基于所述多个光斑区域内的所有点的坐标进行曲线拟合,拟合得到第一曲线的模块;以及用于基于所述第一曲线得到所述多个物体的形状的模块。
具体实施方式
图1是根据本发明的用于识别多个物体的形状的系统的整体结构图。如图1所示,根据本发明的用于识别多个物体的形状的系统包括:计算机主机100、两个摄像头110、激光发射器112和识别区域114。计算机主机100包括显示器101,在显示器101上展示出作为举例的虚拟交互软件102以及作为对用户输入的提示的光标103。在识别区域114上有识别物体116和手部118。识别物体116可以有一个或多个,手部118可作为识别物体的一种。通过识别一个或多个识别物体116,特别是识别一个或多个识别物体116的位置和形状,实现用户与计算设备的交互。
激光发射器112是一字线型激光器。激光发射器112用于照明识别区域114。照明区域114可以为桌面,将激光发射器112及摄像头110放置于桌面上。激光发射器112的照射平面与桌面平行。放置于桌面上的识别物体116和/或手部118,会由于被照射,而在面向激光发射器112的一侧具有线形光斑,其光斑的形状与长度随识别物体116和/或手部118与桌面接触的形状改变。激光照射平面的高度与桌面越接近,识别物体116和/或手部118上的光斑与识别物体116和/或手部118同桌面之间的接触面的形状则越相近,识别精度也更高。
两个摄像头110的光轴彼此平行。两个摄像头110与激光发射器112可放置于一平板上,使得两个摄像头110与激光发射器112位于同一平面。优选地,两个摄像头110分别位于激光发射器112的两侧,且两个摄像头110的连线与激光发射器112所发射的一字线形激光所处的平面平行。两个摄像头110同时采集其视野内的图像。控制电路对采集到的两幅图像进行匹配,使用视差与图像的亮度(或色彩)信息生成待识别物体被激光照射部分的光斑区域图,拟合并得到识别物体116和/或手部118与桌面接触区域的形状。识别结果可以通过数据线传送到计算机主机100中,并以不同形状的光标103显示于显示器101上。
图2展示了根据本发明的用于识别多个物体的形状的系统的控制电路的框图。在一个实施例中,控制电路包括存储器管理器201、随机访问存储器(RAM,Random Access Memory)202、只读存储器(ROM,Read-Only Memory)203、电源管理模块204、协处理器205、微处理器206、输入输出控制器207、摄像头控制器208与209、USB控制器210。微处理器206是整个控制电路的核心,可采用RISC类嵌入式处理器。协处理器205专职处理图像处理相关的任务,具有大规模并行处理能力,可采用DSP(数字信号处理器)或者其他嵌入式向量处理器,也可以采用定制开发的ASIC(应用专用集成电路)或FPGA(现场可编程逻辑阵列)。微处理器206与协处理器205之间用中断方式、GPIO(通用输入输出管脚)方式、双端口存储器方式、或者其他总线传输方式进行通讯。微处理器和协处理器通过存储器管理器201访问存储设备,通过输入输出控制器207访问外接设备。
存储器管理器201连接了RAM 202和ROM 203。RAM 202承载了控制电路在运行中的运算数据。ROM 203是非易失性存储器,可以用来储存控制电路的启动程序和系统程序。
输入输出控制器207是微处理器206和外部设备的桥梁。微处理器206通过输入输出控制器207与外部设备进行通讯。在这个范例实现中,输入输出控制器207主要连接了两类设备,摄像头控制器208/209和USB(通用串行总线)控制器210。其中,USB控制器210将控制电路与计算机主机101(可以是个人计算机,也可以是其他嵌入式系统、电子设备、移动终端、手机或者游戏平台)连接,传达计算机主机100给控制电路的命令,并且将物体识别的数据发回给计算机主机100。在多种实施例中,控制电路和计算机主机100之间的链接也可以通过其他方式连接,例如有线、无线网络连接等。摄像头控制器208/209的数量优选是2个。摄像头控制器208/209连接外部摄像头,将捕捉到的视频图像通过输入输出控制207器传达给微处理器206和协处理器205。
在控制电路的工作过程中,摄像头控制器208/209为控制电路提供了代表多个识别物体116的原始数据,微处理器206和协处理器205对原始数据进行处理,最终处理结果通过USB控制器210传递给计算机主机100。值得注意的是,协处理器205是可选的部件,它的存在目的是加速图像处理相关的算法,提高物体识别的速度和精度。如果微处理器206的计算能力已经能够达成应用环境的识别效率的需求,那么可以省略协处理器205,以节省成本。而对于某些应用环境,我们还可以将物体识别的算法计算过程转移到主机100上,使得整个控制电路可以进行更进一步的裁剪。剪裁后的控制电路用于接收摄像头控制器208/209传进来的原始数据,将其整合并传输到主机100。
图3展示了根据本发明的用于识别多个物体的形状的系统的示意图。其中激光发射器112、两个摄像头110以及识别物体116均放置在桌面304上。这里桌面304仅作为举例,根据本发明的用于识别多个物体的形状的系统可以置放或固定于任何平面上,该平面也不限于水平面,可与水平面成任意的角度。如:桌面、计算机屏幕上方(或下方)、键盘上等,所置于的平面即为系统的假象触摸平面。激光发射器112发射光束303。激光束303照射一个或多个识别物体116,并在识别物体116靠近其与桌面304的接触面的位置形成光斑,该光斑反映了识别物体116与桌面305的接触面的形状。摄像头110具有摄像头视野范围301。识别物体116位于摄像头视野范围301内。
优选地,将两个摄像头110放置在相对于桌面304略高于激光发射器112的位置,并使摄像头视野范围301略向下倾斜。使得激光束303照射的光斑图像在两个摄像头110所捕获图像中占有更大的纵向范围,从而可降低图像匹配难度并提高正确率。在这样的布置下,所捕获的图像中,更靠近激光发射器112与两个摄像头110的识别物体116反射所得的光斑,将位于捕获图像的更下部。
图4示出了根据本发明的实施例的多物体形状识别过程的示意图。图4中,左视图400与右视图420是两个摄像头110分别捕获的图像。在左视图400与右视图420中,包括激光束303照射在多个识别物体116上形成的激光照射光斑422。
由于安装系统中的误差,两个摄像头110的相对于桌面304的高度可能存在细微差异及视线可能并不完全平行,因而优选地对左视图400与右视图420执行立体校正402,得到左校正图410与右校正图412,使得左校正图410与右校正图412的对应行是对齐的。换句话说,左校正图410的任一像素与该像素在右校正图412中的对应像素位于同一行内,而右校正图412的任一像素与该像素在左校正图410中的对应像素位于同一行内。因而识别物体116的任一点出现于左校正图410中的位置与其出现于右校正图412中的位置具有相同纵坐标。立体校正过程对所属领域技术人员是已知的,例如可采用Charles Loop和Zhengyou Zhang发表的“Computing RectifyingHomographies for Stereo Vision”(Computer Vision and PatternRecognition,1999.IEEE Computer Society Conference on 1999)中提供的图像校正方法。
接下来,对左校正图410与右校正图412执行立体匹配405,使得左校正图410中的像素与右校正图412中的像素建立一一对应关系。所属领域技术人员会意识到,由于两个摄像头的视野范围不完全相同,因而左校正图410右校正图412种的像素并非完全一一对应的。对于左校正图410边缘位置的某些像素,可能在右校正图412中不存在与之对应的像素。但这不影响对识别物体116的识别。若左校正图410中的一个像素对应于识别物体116上的一点,那么同该像素相对应的右校正图412中的像素也对应于识别物体116上的那一点。立体匹配过程对所属领域技术人员也是已知的。立体匹配过程可以采用例如块匹配算法、动态规划算法、图割算法等。DanielScharstein等发表的“A taxonomy and evaluation ofdense two-framestereo correspondence algorithms”(Internatinal Journal of ComputerVision,2001)对多种立体匹配算法进行综述。
经过立体匹配后,左校正图410与右校正图412中对应于多个识别物体116的像素实现了一一对应。以及由于左校正图410与右校正图412存在视差,因而可利用例如三角定位方法得到多个识别物体116的各个空间点的坐标。还可以基于左校正图410与右校正图412中的对应像素,得到多个识别物体116的空间点的颜色和亮度。例如,可利用左校正图410与右校正图412中的对应像素的颜色的平均值,作为多个识别物体116的对应点的颜色,而利用左校正图410与右校正图412中的对应像素的亮度的平均值,作为多个识别物体116的对应点的亮度。
在一个例子中,可以简化三角定位过程。由于经过了立体校正,对于左校正图410与右校正图412中相对应的两个像素,在其各自所属的图像中具有不同的横坐标以及相同的纵坐标。设左校正图410中的像素的坐标为(x1,y),而图右校正图412对应像素的坐标为(x2,y)。那么d=x1-x2则表示为该两像素的视差。根据透镜成像原理,可以近似得到这两个像素所代表的空间点坐标为:
X=(x1+x2-m)L/(2d),Y=(2y-n)L/(2d),Z=fL/d (其中m与n分别为图像水平与竖直方向上的像素个数,L为两个摄像头中心的实际距离,f为镜头焦距)。
由于识别物体116的被激光照射区域在图像中亮度会明显高于未被照射的区域(或色彩有明显区别),所以可通过对多个识别物体116的对应点的亮度(或色彩)进行聚类选取,确定识别物体116上被激光照射所形成的光斑区域。还可以基于亮度和/或颜色的阈值,确定光斑区域。对于桌面304上有多个识别物体116的情况,可得到多个光斑区域。光斑区域反映了识别物体116的形状。光斑区域图424展示了计算得到的多个光斑区域。对每一个光斑区域内所有点的三维空间坐标进行多项式或其他数学方法拟合,得到的多个直线或曲线方程分别表示了各光斑区域的空间点的分布。因而所得到的多个直线或曲线方程近似描述了多个识别物体116与桌面304的接触部分在面向摄像头110一侧的形状。
图5示出了根据本发明的实施例的多物体形状构造过程的示意图。图5中,一字线型激光照射识别物体116,并在识别物体116上形成激光照射光斑522。通过两个摄像头110所采集的图像,参看图4,可得到由光斑区域图拟合的三维空间曲线或直线502。三维空间曲线或直线502近似描述了识别物体116与桌面304的接触部分在面向摄像头110一侧的形状。在优选的实施例中,将三维空间曲线或直线502投影到桌面304或触摸平面上,得到在触摸平面上投影的二维平面曲线或直线504。
然后,可以对识别物体116背向摄像头110一侧的形状进行推测。在一个例子中,进行对称推测,这适用于生活中常见的大部分物品,从而获得物体的整体形状。在对称推测中,确定二维平面曲线或直线504的左端点508(图5中的点A)和右端点509(图5中的点B),将点A与点B的中点作为对称中心507,并得到背面二维曲线或直线506,背面二维曲线或直线506与二维平面曲线或直线504相对于对称中心507呈中心对称。基于二维平面曲线或直线504与背面二维曲线或直线506,可构造出识别物体完整形状524,其代表了识别出的识别物体116的形状,并且也具备识别物体116在触摸平面(例如桌面304)的位置信息。
当有多个识别物体116时,可得到多个二维平面曲线或直线504,并基于中心对称,得到多个背面二维曲线或直线506,进而得到多个识别物体完整形状524。可将识别物体完整形状524及其位置信息作为光标103显示在显示器101中,并作为用户的输入,应用于虚拟交互软件102。
在进一步的实施例中,还通过对二维平面曲线或直线504和/或背面二维曲线或直线506上的点的跟踪来实现对运动的识别物体116的跟踪。
图6展示了根据本发明的实施例的用于识别多个物体的形状的方法的流程图。在步骤602,从摄像头1采集图像,在步骤604,从摄像头2采集图像。优选地,从摄像头1与摄像头2的图像采集可同时进行。在步骤606,对从摄像头1采集的图像进行立体校正,得到校正图像1。在步骤608,对从摄像头2采集的图像进行立体校正,得到校正图像2。在步骤610,对校正图像1和校正图像2进行立体匹配,使得校正图像1中的像素与校正图像2中的像素建立一一对应关系,若校正图像1中的像素对应于识别物体的一点,则同校正图像1中的像素相对应的校正图像2中的像素也对应于识别物体中的同一点。在步骤614,基于校正图像1与校正图像2中对应的各像素的视差信息与其所对应空间点的亮度(或色彩),提取激光照射在识别物体上形成的光斑区域。当识别物体有多个时,所形成的光斑区域也有多个。在步骤616,对所提取的光斑区域进行曲线拟合,拟合得到的空间曲线代表识别物体与触摸平面的接触部分在面向摄像头一侧的形状。在步骤618,基于拟合得到的空间曲线,推测识别物体背向摄像头一侧的背面曲线。
在一个实施例中,重复执行步骤602-608,以实现对运动的识别物体的跟踪。
利用对一个或多个识别物体的识别结果,可获得具有更多的表达内容、更灵活的操作方式的人机交互。
已经为了示出和描述的目的而展现了对本发明的描述,并且不旨在以所公开的形式穷尽或限制本发明。对所属领域技术人员,许多调整和变化是显而易见的。