发明名称 交互表面上层级式多摄像头的触点轨迹融合方法
摘要 一种交互表面上层级式多摄像头的触点轨迹融合方法,解决了交互过程中触点轨迹因摄像头采集区域重叠导致的重复识别以及跨单元交互表面导致的间断问题,将协同工作的多个触点识别模块提取的片段轨迹融合为全局统一的轨迹,即若干下层单元融合程序接收单元交互表面的片段识别结果,判断重叠关系,维护更新单元轨迹;一个上层拼接融合程序负责维护全局轨迹信息,以下层单元融合获得的单元轨迹为输入,判断连接关系,进一步形成全局轨迹,从而为大幅面交互桌面提供完整精确的触点运动信息。本专利提供的方法优点在于高效准确,分布式程序运行部署灵活,为使用多摄像头实现的大幅面拼接交互桌面提供可靠的方法。
申请公布号 CN102270067B 申请公布日期 2013.06.12
申请号 CN201110164514.7 申请日期 2011.06.17
申请人 清华大学 发明人 史元春;时岳;范明明;秦永强;苏洲跃
分类号 G06F3/042(2006.01)I 主分类号 G06F3/042(2006.01)I
代理机构 西安智大知识产权代理事务所 61215 代理人 贾玉健
主权项 一种交互表面上层级式多摄像头的触点轨迹融合方法,其特征在于,步骤如下:步骤1:首先设置由两个以上单元交互表面组成的交互桌面,每个单元交互表面下方安置一个以上的同片段轨迹处理系统相通信连接的摄像头,随后每个摄像头将摄取的片段轨迹传送到片段轨迹处理系统中,片段轨迹处理系统调用触点识别模块将该片段轨迹变化的信息送入到下层单元融合模块;步骤2:下层单元融合模块中的片段轨迹接收子模块接收到片段轨迹变化的信息后,将片段轨迹变化的信息解析为片段轨迹添加消息、片段轨迹更新消息或片段轨迹删除消息这样的三种消息,每种消息包括触点的横纵坐标、大小或者形状的基本参数,片段轨迹接收子模块的接收过程采用多线程技术,每个线程绑定一个端口,对应接收一个触点识别模块发送的信息;步骤3:接着片段轨迹接收子模块将片段轨迹添加消息、片段轨迹更新消息或片段轨迹删除消息这样的三种消息发送到下层单元融合模块中的单元合并子模块,随后单元合并子模块维护一个存储单元轨迹的集合,每个存储单元轨迹包含一个片段轨迹绑定队列,根据片段轨迹添加消息、片段轨迹更新消息或片段轨迹删除消息这样的三种消息的种类来分别更新维护存储单元轨迹,具体方式如下:对于片段轨迹添加消息,判断是否与当前维护的存储单元轨迹重复,根据网络发送消息时序的不确定性,当前添加的片段轨迹记录的可能是存储单元轨迹过去时间点、当前时间点或是未来时间点位置中的一种情况,进行与这过去时间点、当前时间点以及未来时间点位置的坐标进行距离判断,对于过去时间点和当前时间点,位置使用已有观测值经过卡尔曼滤波之后的修正结果,对于 未来时间点,位置使用卡尔曼滤波预测下一个状态的结果,并且使用这三个距离的最小值作为新添加片段轨迹与存储单元轨迹的距离,如果与一个存储单元轨迹的距离最小且低于预设的阈值则认为片段轨迹所对应的存储单元轨迹已经被其他摄像头观测到,生成一个绑定加入到绑定队列中,如果没有匹配成功,则说明这是一条新的轨迹,新生成一个存储单元轨迹与片段轨迹绑定,并将这个绑定作为新生成存储单元轨迹的主要绑定;对于片段轨迹更新消息,首先通过轨迹绑定找到其所属的存储单元轨迹,如果这个绑定为主绑定,则根据消息更新存储单元轨迹的位置状态,如果不是主绑定,则仅存储更新信息到绑定中而不更新存储单元轨迹;对于片段轨迹删除消息,首先通过轨迹绑定找到其所属的存储单元轨迹并将当前轨迹绑定删除,如果这个绑定为主绑定,则从绑定队列中取下一个片段轨迹的绑定作为主绑定,如果绑定队列为空,则说明当前存储单元轨迹已经没有片段轨迹与之对应,已经不能被观测到,删除存储单元轨迹;步骤4:单元合并子模块维护一个存储单元轨迹的集合后,如果存储单元轨迹的集合发生了改变,先通过预先存储在同片段轨迹处理系统中的配置文件里的单元交互区域与全局交互区域的坐标映射矩阵将轨迹坐标从区域坐标转化为全局坐标,接着通过下层单元融合模块中的下层层间通讯子模块发送存储单元轨迹信息到上层拼接融合模块中;步骤5:上层拼接融合模块将存储单元轨迹信息传送到其内的上层层间通讯子模块,上层层间通讯子模块采用多线程,每个线程绑定一个端口,对应接收下层层间通讯子模块发送来的存储单元轨迹信息,接着上层层间通讯子模块将存储单元轨迹信息解析为存储单元轨迹添加信息、存储单元轨迹更新消息或者存储单元轨迹删除消息这样的三种消息,每个消息包括存储单元轨迹当前的横 纵坐标、大小或者形状参数;步骤6:上层层间通讯子模块将存储单元轨迹添加信息、存储单元轨迹更新消息或者存储单元轨迹删除消息这样的三种消息发送到上层拼接融合模块中的拼接合并子模块,接着拼接合并子模块维护一个存储全局轨迹的集合,具体方式如下:对于存储单元轨迹添加信息,首先通过距离预置判断是否属于边界区域:如果不是则直接添加一条全局轨迹;如果属于边界区域,则有可能是一条全局轨迹跨交互单元的接缝造成,需要根据在边界删除的轨迹索引寻找与当前新加入存储单元轨迹匹配的在另一个与之交互的存储单元删除不久的全局轨迹,匹配采用先计算与全局轨迹删除位置和根据卡尔曼预测的下一个时间点的位置的最小距离,如果最小距离小于预设的阈值,则认为新添加的存储单元轨迹是这条删除的全局轨迹在新存储单元表面的延续,恢复放入删除索引的轨迹,如果不存在满足条件的最近删除的全局轨迹,将新增加的存储单元轨迹暂时加入到在边界添加的单存储元轨迹索引;对于存储单元轨迹更新消息,找到其所属的全局轨迹进行更新;对于存储单元轨迹删除消息,首先通过距离预置判断是否属于边界区域,如果不属于边界区域,则直接删除与之对应的全局轨迹;如果属于边界区域,则根据在边界添加的单元轨迹索引寻找与之匹配的新加入的存储单元轨迹,如果存在满足匹配条件的存储单元轨迹,则说明这条全局轨迹发生了跨单元交互表面,将全局轨迹依据新存储单元轨迹更新;如果不存在满足条件的存储单元轨迹,则放入边界删除的全局轨迹索引,此外如果还存在一个独立工作的线程清理在边界删除的全局轨迹索引和在边界添加的存储单元轨迹索引,如果删除时间大于预设的阈值,说明轨迹真正删除,删除这条全局轨迹,如果存储单元轨 迹等待之间超过预设的阈值,说明是从边界非跨屏直接添加的轨迹,加入到全局轨迹集合;步骤7:如果全局轨迹的集合发生了改变,则通过上层拼接融合模块中的轨迹子模块发送该全局轨迹集合到对应的上层应用模块。
地址 100084 北京市海淀区100084信箱82分箱清华大学专利办公室