CN103871073B - 一种基于增强现实的目标跟踪方法、设备及系统 - Google Patents
一种基于增强现实的目标跟踪方法、设备及系统 Download PDFInfo
- Publication number
- CN103871073B CN103871073B CN201210551951.9A CN201210551951A CN103871073B CN 103871073 B CN103871073 B CN 103871073B CN 201210551951 A CN201210551951 A CN 201210551951A CN 103871073 B CN103871073 B CN 103871073B
- Authority
- CN
- China
- Prior art keywords
- index
- characteristic point
- state
- target
- picture frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种基于增强现实的目标跟踪方法、设备及系统,涉及通信技术领域,减少了特征点的索引数据库在终端上所占用的存储空间,便于将AR目标跟踪应用到移动终端上。本发明的方法主要包括:终端将被跟踪目标的第一图像帧的特征点的索引发送给服务器;接收所述服务器下发的第一目标状态以及与第一目标状态对应的特征点的索引;根据所述第一目标状态和所述与第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,获得特征点的索引数据库;将所述第二图像帧的特征点的索引与所述特征点的索引数据库进行匹配,确定被跟踪目标在第二图像帧中呈现的目标状态。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于增强现实的目标跟踪方法、设备及系统。
背景技术
增强现实(AR,Augmented Reality)是指借助三维现实技术和多传感技术等计算机技术,将二维图像转化成具有不同深度和层次的立体视觉效果的一种技术。随着移动终端的处理能力提高,用户体验需求增长以及移动数据服务网络的推广,AR不仅在广告、教育和医疗等领域发挥重要作用,也可以应用到移动终端上。
现有的AR实现方式是基于终端设备的单机实现方式,具体流程如下:终端上存储有可能会出现的目标的模板图像,并计算模板图像经扭曲和旋转后的各种状态下的特征点的索引数据库,该特征点的索引数据库包含由目标在各种可能的角度和位置上通过特征点提取得到的特征索引数据。接下来开始目标跟踪,终端通过摄像头获取到当前帧图像时,可以提取当前帧图像的特征索引,并将当前帧图像的特征索引与特征点的索引数据库匹配,从而确定当前帧图像中的目标以及目标所处的状态,这样便完成了当前帧的目标跟踪。跟踪得到的所述目标状态包括目标的旋转角度和在图像中的位置等信息,以当前帧图像为背景按照所述目标状态将目标渲染绘制到屏幕上,便实现了AR技术。以此类推,对每一帧图像都进行一次目标跟踪,从而达到AR的流畅性。
在实现上述基于AR的目标跟踪的过程中,发明人发现现有技术中至少存在如下问题:由于预先存储目标的特征点的索引数据库会占用较大存储空间,而为了保证对不同目标的匹配成功率,在终端上需要预先存储全部可能会出现的目标的完整特征点的索引数据库,因此需要占用相当大的终端存储空间,在移动终端上的实现困难较大。
发明内容
本发明的实施例提供一种基于增强现实的目标跟踪方法、设备及系统,减少了特征点的索引数据库在终端上所占用的存储空间,便于将AR目标跟踪应用到移动终端上。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明的一方面提供一种基于增强现实的目标跟踪方法,包括:
终端将被跟踪目标的第一图像帧的特征点的索引发送给服务器;
终端将被跟踪目标的第一图像帧的特征点的索引发送给服务器;
接收所述服务器下发的第一目标状态以及与第一目标状态对应的特征点的索引,所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;
根据所述第一目标状态和所述与第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,获得特征点的索引数据库;所述第二目标状态与第一目标状态相邻;所述特征点的索引数据库包括所述与第一目标状态对应的特征点的索引以及所述与第二目标状态对应的特征点的索引;
获取所述被跟踪目标的第二图像帧并提取所述第二图像帧的特征点的索引;
将所述第二图像帧的特征点的索引与所述特征点的索引数据库进行匹配,获得与所述特征点的索引数据库中特征点的索引匹配的第二图像帧的特征点以及所述特征点的索引数据库中特征点的索引对应的特征点组成的特征点对,根据获得的特征点对确定被跟踪目标在第二图像帧中呈现的目标状态。
结合本发明的第一方面,在第一种可能的实现方式中,所述终端将被跟踪目标的第一图像帧的特征点的索引发送给服务器之前,该方法进一步包括:
获取所述被跟踪目标的第一图像帧,并提取所述第一帧图像的特征索引。
结合本发明的第一方面和第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述第一目标状态和所述与第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,包括:
根据所述第一目标状态对应的特征点的索引,计算预定方向上或随机方向上所述与第二目标状态对应的特征点的索引。
结合本发明的第一方面和第二种可能的实现方式,在第三种可能的实现方式中,第三图像帧之前有至少k帧第二图像帧,并且已通过所述k帧第二图像帧中每一帧的特征点的索引与所述特征点的索引数据库分别确定了被跟踪目标在所述k帧第二图像帧中每一帧中呈现的目标状态,所述根据所述第一目标状态和所述与第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,还包括:
获取所述第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态;其中k为预先设定的大于或等于2的整数;
根据所述第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态,统计得到所述被跟踪目标的运动方向;
根据所述第一目标状态对应的特征点的索引,计算所述运动方向上所述与第二目标状态对应的特征点的索引。
结合本发明的第一方面和第三种可能的实现方式,在第四种可能的实现方式中,所述根据所述与所述第一目标状态对应的特征点的索引,计算所述运动方向上所述与所述第一目标状态对应的特征点的索引的与第二目标状态对应的特征点的索引,包括循环地对分别每一维度轮流做如下操作,其中所述维度包括尺度因子S、旋转因子Z以及仿射因子X和仿射因子Y:
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,按照所述特征索引数据计算方向继续计算与第二目标状态对应的特征点的索引;
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向不同,进行下一维度的与第二目标状态对应的特征点的索引计算。
结合本发明的第一方面和第四种可能的实现方式,在第五种可能的实现方式中,所述确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同之后,还包括:
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,且确定当前维度上目标所在位置与所述特征点的索引数据库在所述当前维度的目标运动方向上边界值的绝对差值小于预设阈值,则按照所述特征索引数据计算方向继续计算所述与第二目标状态对应的特征点的索引;
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,但当前维度上目标所在位置与所述特征点的索引数据库在所述当前维度的目标运动方向上边界值的绝对差值不小于预设阈值,则进行下一维度的与第二目标状态对应的特征点的索引计算。
结合本发明的第一方面,在第六种可能的实现方式中,还包括:
确定第四图像帧的特征点的索引与所述特征点的索引数据库的匹配失败,将所述第四图像帧的特征点的索引发送给所述服务器以获取所述第四图像帧中被跟踪目标呈现的的第三目标状态和与所述第三目标状态对应的特征点的索引。
结合本发明的第一方面和第六种可能的实现方式,在第七种可能的实现方式中,将特征索引数据保存在内存或磁盘区;在将所述当前帧图像的特征索引发送给所述服务器之前,所述方法还包括:
从所述内存或磁盘区中获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引;
确定所述内存或磁盘区中未存储所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引,执行所述将第四图像帧的特征点的索引发送给所述服务器以获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引。
本发明的第二方面,提供一种基于增强现实的目标跟踪方法,包括:
服务器接收终端发送的被跟踪目标的第一图像帧的特征点的索引;
将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定第一目标状态和与所述第一目标状态对应的特征点的索引;所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;
向所述终端发送所述第一目标状态和所述与所述第一目标状态对应的特征点的索引,以便于所述终端根据所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,从而确定所述被跟踪目标在第二图像帧中呈现的目标状态。
结合本发明的第二方面,在第一种可能的实现方式中,所述将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定第一目标状态和与所述第一目标状态对应的特征点的索引,包括:
将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定在所述第一图像帧中被跟踪目标呈现的初始目标状态;
根据所述初始目标状态和网络配置确定所述第一目标状态以及与所述第一目标状态对应的特征点的索引。
结合本发明的第二方面和第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述初始目标状态和网络配置确定所述第一目标状态以及与所述第一目标状态对应的特征点的索引,包括:
根据网络带宽和用户设备容许的最长等待时间,计算与所述第一目标状态对应的特征点的索引的数据容量;
根据所述数据容量确定n值,从而将初始目标状态各维度分别增大和减小n个最小间隔时对应的目标状态确定为第一目标状态,从而确定与所述第一目标状态对应的特征点的索引,其中n为大于等于1的整数。
本发明的第三方面提供一种终端,包括:
发送单元,用于将被跟踪目标的第一图像帧的特征点的索引发送给服务器;
接收单元,用于接收所述服务器根据所述第一图像帧的特征点的索引下发的所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引;将所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引发送给计算单元;其中所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;
计算单元,用于接收所述接收单元发送的所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引;根据所述第一目标状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,得到特征点的索引数据库;将所述特征点的索引数据库发送给匹配单元;其中所述特征点的索引数据库由所述与所述第一目标状态对应的特征点的索引和所述与第二目标状态对应的特征点的索引组成;
提取单元,用于获取所述被跟踪目标的第二图像帧并提取所述第二图像帧的特征点的索引;将所述第二图像帧的特征点的索引发送给匹配单元;
匹配单元,用于接收所述提取单元发送的所述第二图像帧的特征点的索引;接收所述计算单元发送的所述特征点的索引数据库;将所述当前帧图像的特征索引与所述特征点的索引数据库进行匹配,获得与所述特征点的索引数据库中特征点的索引匹配的第二图像帧的特征点以及所述特征点的索引数据库中特征点的索引对应的特征点组成的特征点对,根据获得的特征点对确定被跟踪目标在第二图像帧中呈现的目标状态。
结合本发明的第三方面,在第一种可能的实现方式中,还包括:
获取单元,用于获取所述被跟踪目标的第一图像帧,并提取所述第一图像帧的特征点的索引;将所述第一图像帧的特征点的索引发送给所述发送单元。
结合本发明的第三方面和第一可能的实现方式,在第二种可能的实现方式中,所述计算单元包括:
计算子单元,用于根据所述接收单元接收的所述第一目标状态对应的特征点的索引,计算预定方向上或随机方向上所述与第二目标状态对应的特征点的索引。
结合本发明的第三方面和第二种可能的实现方式,第三图像帧之前有至少k帧第二图像帧,并且已通过所述k帧第二图像帧中每一帧的特征点的索引与所述特征点的索引数据库分别确定了被跟踪目标在所述k帧第二图像帧中每一帧中呈现的目标状态,在第三种可能的实现方式中,所述计算单元还包括:
获取子单元,用于获取所述第三图像帧之前的k帧图像中所述被跟踪目标的状态;将所述第三图像帧之前的k帧图像中所述被跟踪目标的状态发送给方向子单元;其中k为预先设定的大于或等于2的整数;
方向子单元,用于接收所述获取子单元发送的所述第三图像帧之前的k帧图像中所述被跟踪目标的状态;根据所述当前帧图像之前的k帧图像中所述被跟踪目标的状态,统计得到目标运动方向;
所述计算子单元,还用于根据所述接收单元接收的与所述第一目标状态对应的特征点的索引,计算所述方向子单元确定的运动方向上所述与所述第一目标状态对应的特征点的索引的与第二目标状态对应的特征点的索引。
结合本发明的第三方面和第二可能的实现方式,在第三种可能的实现方式中,所述计算子单元具体用于循环地对每一维度轮流做如下操作,其中所述维度包括尺度因子S、旋转因子Z以及两个仿射因子X和Y:
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,按照所述特征索引数据计算方向继续计算与第二目标状态对应的特征点的索引;
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向不同,进行下一维度的与第二目标状态对应的特征点的索引计算。
结合本发明的第三方面和第三可能的实现方式,在第四种可能的实现方式中,所述计算子单元还用于:
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,且确定当前维度上目标所在位置与所述特征点的索引数据库在所述当前维度的目标运动方向上边界值的绝对差值小于预设阈值,则按照所述特征索引数据计算方向继续计算与第二目标状态对应的特征点的索引;
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,但当前维度上目标所在位置与所述特征点的索引数据库在所述当前维度的目标运动方向上边界值的绝对差值不小于预设阈值,则进行下一维度的与第二目标状态对应的特征点的索引计算。
结合本发明的第三方面,在第五种可能的实现方式中,该终端还包括:
更新单元,用于当所述匹配单元确定第四图像帧的特征索引与所述特征点的索引数据库的匹配失败时,将所述第四图像帧的特征点的索引发送给所述服务器以获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引。
结合本发明的第三方面和第五种可能的实现方式,在第六种可能的实现方式中,所述更新单元还用于:将所述特征点的索引数据保存在内存或磁盘区;从所述内存或磁盘区中获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引;确定所述内存或磁盘区中未存储所述第四图像帧中被跟踪目标对应的第三目标状态和与所述第三目标状态对应的特征点的索引,执行所述将第四图像帧的特征点的索引发送给所述服务器以获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引。
本申请的第四方面,提供一种服务器,包括:
接收单元,用于接收终端发送的被跟踪目标的第一图像帧的特征点的索引;
匹配单元,用于将所述接收单元接收的第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定第一目标状态和与所述第一目标状态对应的特征点的索引;将所述第一目标状态和与所述第一目标状态对应的特征点的索引发送给发送单元;所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;
发送单元,用于接收所述匹配单元发送的第一目标状态和所述与所述第一目标状态对应的特征点的索引;向所述终端发送所述第一目标状态和所述与所述第一目标状态对应的特征点的索引,以便于所述终端根据所述被跟踪目标的初始状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,从而确定所述被跟踪目标在第二图像帧中呈现的目标状态。
结合本发明的第四方面,在第一种可能的实现方式中,所述匹配单元包括:
状态子单元,用于将所述接收单元接收到的第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定在所述第一图像帧中被跟踪目标呈现的初始目标状态;将所述初始目标状态发送给索引子单元;
索引子单元,用于接收所述状态子单元发送的初始目标状态;根据所述初始目标状态和网络配置确定第一目标状态以及与所述第一目标状态对应的特征点的索引。
结合本发明的第四方面以及第一种可能的实现方式,在第二种可能的实现方式中,所述索引子单元具体用于:
根据网络带宽和用户设备容许的最长等待时间,计算与所述第一目标状态对应的特征点的索引的数据容量;
根据所述数据容量确定n值,从而将初始目标状态各维度分别增大和减小n个最小间隔时对应的目标状态确定为第一目标状态,从而确定与所述第一目标状态对应的特征点的索引,其中n为大于等于1的整数。
本发明的第五方面,提供一种基于增强现实的目标跟踪系统,包括:终端和服务器;
所述终端,用于将被跟踪目标的第一图像帧的特征点的索引发送给服务器;接收所述服务器下发的第一目标状态以及与第一目标状态对应的特征点的索引,所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;根据所述第一目标状态和所述与第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,获得特征点的索引数据库;所述第二目标状态与第一目标状态相邻;所述特征点的索引数据库包括所述与第一目标状态对应的特征点的索引以及所述与第二目标状态对应的特征点的索引;获取所述被跟踪目标的第二图像帧并提取所述第二图像帧的特征点的索引;将所述第二图像帧的特征点的索引与所述特征点的索引数据库进行匹配,获得与所述特征点的索引数据库中特征点的索引匹配的第二图像帧的特征点以及所述特征点的索引数据库中特征点的索引对应的特征点组成的特征点对,根据获得的特征点对确定被跟踪目标在第二图像帧中呈现的目标状态;
所述服务器,用于接收终端发送的被跟踪目标的第一图像帧的特征点的索引;将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定第一目标状态和与所述第一目标状态对应的特征点的索引;所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;向所述终端发送所述第一目标状态和所述与所述第一目标状态对应的特征点的索引,以便于所述终端根据所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,从而确定所述被跟踪目标在第二图像帧中呈现的目标状态。
本发明实施例提供的基于AR的目标跟踪方法、设备及系统,由服务器完成第一图像帧的目标识别并向终端下发第一目标状态和与所述第一目标状态对应的特征点的索引后,由终端计算与第二目标状态对应的特征点的索引得到后续每一帧识别目标状态所需的特征点的索引数据库,从而实现后续每一帧图像的目标跟踪,与现有技术中在终端上存储全部目标的完整特征点的索引数据库的方法相比,终端可以有针对性获取当前目标的与所述第一目标状态对应的特征点的索引,并在目标跟踪的过程中计算与第二目标状态对应的特征点的索引以满足后续匹配需求,可以有效减少特征点的索引数据库在终端上占用的存储空间,便于AR目标跟踪在移动终端上应用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例中的一种基于AR的目标跟踪方法流程图;
图2为本发明另一实施例中的一种基于AR的目标跟踪方法流程图;
图3为本发明另一实施例中的一种基于AR的目标跟踪方法流程图;
图4为本发明一种基于四因子构建的四维计算空间示意图;
图5为本发明另一实施例中步骤307的一种具体实现方法流程图;
图6为本发明另一实施例中的一种终端组成示意图;
图7为本发明另一实施例中的一种服务器组成示意图;
图8为本发明另一实施例中的一种终端组成示意图;
图9为本发明另一实施例中的一种服务器组成示意图;
图10为本发明另一实施例中的一种基于AR的目标跟踪系统组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一实施例提供一种基于AR的目标跟踪方法,如图1所示,该方法可以包括:
101、终端将被跟踪目标的第一图像帧的特征点的索引发送给服务器。
102、接收所述服务器下发的第一目标状态以及与所述第一目标状态对应的特征点的索引。
其中,被跟踪目标的状态可以用四因子表示,四因子包括四个维度的因子值,分别是:尺度因子S,旋转因子Z,仿射因子X、Y。被跟踪目标的初始状态是指在第一图像帧中被跟踪目标所处的状态,可以用第一图像帧中被跟踪目标的四因子表示。第一目标状态是指根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态。
103、根据所述第一目标状态和所述与第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,获得特征点的索引数据库。
其中,终端获取被跟踪目标的初始状态和与所述第一目标状态对应的特征点的索引的方法为:终端在获取到被跟踪目标的第一图像帧后提取所述第一图像帧的特征点的索引;终端将所述第一图像帧的特征点的索引发送给所述服务器,服务器将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定被跟踪目标的初始目标状态;将初始目标状态相邻的目标状态确定为第一目标状态,从而确定与所述第一目标状态对应的特征点的索引;将被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引发送给终端;终端接收所述服务器发送的所述第一目标状态和与所述第一目标状态对应的特征点的索引。
在本实施例中,终端可以在接收到被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引后随机选取一个方向开始计算与与所述第一目标状态对应的特征点的索引相邻的相邻特征索引数据,也可以预先设定与第二目标状态对应的特征点的索引的计算方向。值得说明的是,目标的状态可以用四个维度的因子值组成的四因子表示,每个维度中因子值的增大和减小都表示被跟踪目标的不同状态,因此在每一维度计算与所述第一目标状态对应的特征点的索引的与第二目标状态对应的特征点的索引时所选取的计算方向,可以为该维度因子值增大的方向或减小的方向。
104、获取所述被跟踪目标的第二图像帧并提取所述所述第二图像帧的特征点的索引。
其中,在终端获取到第一目标状态和与所述第一目标状态对应的特征点的索引后,可以一边计算与第二目标状态对应的特征点的索引,从而得到由与所述第一目标状态对应的特征点的索引和与第二目标状态对应的特征点的索引一起组成的特征点的索引数据库;一边对当前帧图像进行目标跟踪,即将第二图像帧的特征点的索引与特征点的索引数据库进行匹配得到第二图像帧中的目标状态。由于终端不断对接下来的每一帧进行目标跟踪,因此步骤104计算与第二目标状态对应的特征点的索引和步骤105匹配第二图像帧的特征点的索引两个步骤是并行进行的。本发明的实施例中所描述的第二图像帧可以是获取到第一目标状态和与所述第一目标状态对应的特征点的索引之后的摄像机显示的图像帧。而第一图像帧可以是启动目标跟踪时获取到,且未识别出目标的图像帧,或者目标更换后获取到的但服务器还没有识别出目标的图像帧。
进一步的,步骤103中计算与第二目标状态对应的特征点的索引时的计算方向的选取方法也可以为:获取第三图像帧之前的k帧第二图像帧中被跟踪目标的状态,根据所述第三图像帧之前的k(k为预先设定的大于或等于2的整数)帧图像中被跟踪目标的状态统计得到目标运动方向;从而计算所述运动方向上与第二目标状态对应的特征点的索引。例如,假设第三图像帧为第15帧,预设的k值为5,那么选取计算方向时可以根据第15帧之前的5帧第二图像帧(即第10帧至第14帧),共计5帧图像中被跟踪目标的四因子值的变化情况,估计得到各个维度中因子值的变化趋势,从而确定目标运动方向。
105、将所述第二图像帧的特征点的索引与所述特征点的索引数据库进行匹配,获得与所述特征点的索引数据库中特征点的索引匹配的第二图像帧的特征点以及所述特征点的索引数据库中特征点的索引对应的特征点组成的特征点对,根据获得的特征点对确定被跟踪目标在第二图像帧中呈现的目标状态。
其中,在步骤103中通过计算与第二目标状态对应的特征点的索引,由与所述第一目标状态对应的特征点的索引和与第二目标状态对应的特征点的索引组成的特征点的索引数据库可以不断更新和扩展,以满足匹配到第二图像帧中目标状态的要求。进一步的,根据第三图像帧之前的k帧第二图像帧的目标状态统计结果,可以估计目标状态在各个维度下的变化趋势,即估计目标的运动方向,从而计算目标运动方向上的与第二目标状态对应的特征点的索引,以满足目标状态变化后的下一帧的目标跟踪需求。
需要说明的是,终端从服务器获取到与第一图像帧对应的初始目标状态,并确定与初始目标状态相邻的第一目标状态和与所述第一目标状态对应的特征点的索引后,需要计算与第一目标状态相邻的第二目标状态对应的特征点的索引。其中与所述第一目标状态对应的特征点的索引是初始目标状态的各个维度分别增大或减小1个、2个直至n个最小间隔时的第一目标状态对应的特征索引数据,n为大于或等于1的整数,n可以是预先设定的固定值,也可以是服务器根据网络配置确定的。因此与所述第一目标状态对应的特征点的索引对应被跟踪目标的多个连续状态。因为数字图像处理是采样处理过程,因此可以人为约定四因子的取值范围和取值的最小间隔,这里说的连续,是指各维度的因子值在间隔了预定的最小间隔的基础上连续取值。网络带宽一定的情况下,所述n越大与所述第一目标状态对应的特征点的索引的数据量约大,服务器下发与所述第一目标状态对应的特征点的索引所占用的带宽越多,传输时间越长。与第二目标状态对应的特征点的索引是与所述第一目标状态对应的特征点的索引对应的被跟踪目标的状态中最边缘的目标状态中每个维度的因子值增大或减小1个、2个直至m个最小间隔时,计算得到的特征索引数据。其中m为大于或等于1的整数,只要各维度的因子值不超出预设的取值范围,m值可以随着计算得到的与第二目标状态对应的特征点的索引的数据量增加而增大。
举例说明,第一图像帧中目标的服务器成功的识别了第一图像帧中的目标,得到目标在第一图像帧中的第一目标状态,第一目标状态中的一个维度信息是旋转因子Z是100,假设以10为Z维度的最小间隔,服务器下发给终端的与所述第一目标状态对应的特征点的索引是第一目标状态中Z增大或减小一个最小间隔时对应的特征索引数据,包括旋转因子Z是90、100和110的特征索引数据;此时终端需要计算的与所述第一目标状态对应的特征点的索引的与第二目标状态对应的特征点的索引可以是Z为80或Z为120时的特征索引数据。以此类推,随着不断对连续多帧图像进行目标跟踪的同时,特征点的索引数据库也随之不断更新,若当前特征索引包括Z从80到120的特征索引数据,那么接下来要计算的与第二目标状态对应的特征点的索引则为Z取70或130的特征索引数据了。
需要说明的是,根据获得的特征点对确定被跟踪目标在第二图像帧中呈现的目标状态的具体方法为现有技术,本发明实施例不详细赘述。
本发明实施例提供的基于AR的目标跟踪方法,终端从服务器获取到第一目标状态和与第一目标状态对应的特征点的索引后,计算与第二目标状态对应的特征点的索引得到后续每一帧识别目标状态所需的特征点的索引数据库,从而实现后续每一帧图像的目标跟踪。与现有技术中在终端上存储全部目标的完整特征点的索引数据库的方法相比,终端可以有针对性获取被跟踪目标的与第一目标状态对应的特征点的索引,并在目标跟踪的过程中计算与第二目标状态对应的特征点的索引以满足后续匹配需求,可以有效减少特征点的索引数据库在终端上占用的存储空间,便于AR目标跟踪在移动终端上应用。
本发明另一实施例还提供一种基于AR的目标跟踪方法,如图2所示,该方法可以包括:
201、服务器接收终端发送的被跟踪目标的第一图像帧的特征点的索引。
202、将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定第一目标状态和与所述第一目标状态对应的特征点的索引。
其中,所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态。将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定第一目标状态以及与所述第一目标状态对应的特征点的索引的实现方法还可以为:服务器将所述第一图像帧的特征点的索引与特征点的索引数据库匹配成功后,得到匹配的初始目标状态,并确定所述初始目标状态各维度增大或减小1至n个维度时的几个因子值对应的第一目标状态;确定与所述第一目标状态对应的特征点的索引。
进一步的,将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定第一目标状态和与所述第一目标状态对应的特征点的索引的实现方法还可以为:将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定所述初始目标状态;根据所述初始目标状态和网络配置确定第一目标状态;根据第一目标状态确定与所述第一目标状态对应的特征点的索引。与所述第一目标状态对应的特征点的索引是初始目标状态的各个维度分别增大或减小1个、2个直至n个最小间隔时的目标状态对应的特征索引数据,n为大于或等于1的整数。具体的服务器确定与所述第一目标状态对应的特征点的索引的方法为:根据网络带宽和用户设备容许的最长等待时间,计算与所述第一目标状态对应的特征点的索引的数据容量;根据所述数据容量确定n值,从而将初始目标状态各维度分别增大和减小n个最小间隔时的目标状态对应的特征索引数据确定为与所述第一目标状态对应的特征点的索引,其中n为大于等于1的整数。网络带宽一定的情况下,所述n越大与所述第一目标状态对应的特征点的索引的数据容量约大,服务器下发与所述第一目标状态对应的特征点的索引所占用的带宽越多,传输时间越长。
203、向所述终端发送所述第一目标状态和所述与所述第一目标状态对应的特征点的索引,以便于所述终端根据所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,从而确定所述被跟踪目标在第二图像帧中呈现的目标状态。
本发明实施例提供的基于AR的目标跟踪方法,由服务器完成第一图像帧的目标识别并向终端下发第一目标状态和与所述第一目标状态对应的特征点的索引后,由终端计算与第二目标状态对应的特征点的索引得到后续每一帧识别目标状态所需的特征点的索引数据库,从而实现后续每一帧图像的目标跟踪,与现有技术中在终端上存储全部目标的完整特征点的索引数据库的方法相比,终端可以有针对性获取当前目标的与所述第一目标状态对应的特征点的索引,并在目标跟踪的过程中计算与第二目标状态对应的特征点的索引以满足后续匹配需求,可以有效减少特征点的索引数据库在终端上占用的存储空间,便于AR目标跟踪在移动终端上应用。
本发明另一实施例还提供一种基于AR的目标跟踪方法,如图3所示,该方法可以包括:
301、服务器预先存储不同目标的特征点的索引数据库。
其中,服务器上可以预先存储AR所需的多个或全部目标的特征点的索引数据库,并且该特征点的索引数据库是每个目标的完整特征索引数据,即每个目标在可能出现的任何一种状态及每种状态下的特征索引数据。其中,服务器获得特征点的索引数据库的方法为在目标的二维图像的基础上,利用Ferns算法分类思想,对二维图像中的每个特征点建立类别描述,形成一个对应该二维图像的由0和1组成的特征索引。
具体的,获得不同目标的特征点的索引数据库的方法是现有技术,本实施例对此仅做基本介绍:
首先,对一幅目标模板图像进行扭曲(warping)处理,即可生成上万幅(例如,12960幅)基于该目标模板图像扭转成不同状态得到的子模板图像,扭曲的过程包括各个维度值在间隔预定的最小间隔的基础上间隔取值。进行这样的扭曲处理主要是为了在目标跟踪过程中可以适应目标的尺度变化、旋转变化以及一定角度的仿射变化。其中,目标模板图像的扭转变化包括四个维度的变化,分别是:尺度因子S,旋转因子Z,仿射因子X、Y,四个因子的取值范围以及取值的最小间隔可以根据实际应用中的精度需求进行人为设定。
然后,利用快速特征点监测(Features from Accelerated Segment Test,FAST)算法对生成的每一幅扭曲得到的子模板图像分别提取特征点。再然后,对于每一幅扭曲得到的子模板图像,计算子模板图像的每一个特征点的索引。特征点的索引计算方法为:在特征点周围取一块包含64像素的8x8的邻域,对每个像素在其周围采样一定数量(例如13个)个像素构成像素区域,统计像素区域的直方图,归一化该直方图且将其划分成5块区域,每块区域的直方图值与一个设定的阈值(0.05)进行比较,若小于该阈值则该区域用1表示,若大于该阈值则用0表示;一个区域占用一位(1bit),一个像素则占用5位,从而一个像素可以由5个0或1的组合表示,那么一个特征点包含64个像素,则可以由64x5(320)位0或1的组合表示,也即形成了该特征点的索引;其占用40个字节的空间,另外还需要4个字节存储该特征点在图像中的坐标位置,所以每个特征点的索引描述占用44个字节的空间。
接下来,重复计算一幅子模板图像中所有特征点的索引,即可生成该子模板幅图像的特征索引,其大小由提取的特征点的数目决定。当特征点个数为100时,一幅子模板图像的特征索引大小一般在4M左右。当一个目标的所有子模板图像的特征索引计算完成后,即生成了该目标的完整特征索引数据。完整特征索引数据中包含目标各种状态以及各种状态下的特征索引。
最后,重复上述计算目标模版图像的完整特征索引数据的步骤,依次对每个目标的目标模板图像都进行类似计算,即可创建所有目标的特征点的索引数据库。
302、终端获取第一图像帧,提取第一图像帧的特征点的索引。
其中,终端可以通过摄像头或其他多媒体手段获取第一图像帧和后续的每一帧图像。第一图像帧可以是被跟踪目标第一次出现的图像,或者是刚开始启动目标跟踪时获取的第一帧图像。这里提取第一图像帧的特征点的索引的方法与后续步骤307中提取第二图像帧的特征点的索引的方法相同,以下以任一帧图像为例进行说明。
终端在实现AR技术的过程中,提取某一帧图像的特征索引的具体计算方法为:终端利用FAST算法对一帧图像提取特征点(值得说明的是,FAST算法为现有技术,本发明实施例在此不做详细介绍);在特征点周围取一块包含64像素的8x8的邻域,对每个像素在其周围采样一定数量(例如13个)个像素构成像素区域,将像素区域划分为5个区域,计算各个区域的灰度平均值;将各个区域的灰度平均值与预定阈值比较,大于该阈值则标识为1,小于该阈值则标识为0,从而一个像素可以由5个0或1的组合表示,一个特征点可以由64x5(320)位0或1的组合表示,也即形成了该特征点的索引;重复上述过程以计算一帧图像中每个特征点的索引,得到该帧图像的特征索引。
303、终端将第一图像帧的特征点的索引发送给服务器。
其中,在目标跟踪的开始阶段终端并没有目标的相关特征索引数据,或者当目标变换时终端上没有新目标的相关特征索引数据。因此,当终端提取了第一图像帧的特征点的索引后在终端的存储空间中未查找到特征点的索引数据,或者查找到特征点的索引数据后没有与所述第一图像帧的特征点的索引数据匹配的内容,则将第一图像帧的特征点的索引发送给服务器,以便服务器进行匹配和目标识别。
304、服务器将所述第一图像帧的特征点的索引与预先存储的特征点的索引数据库进行匹配;若匹配成功,执行步骤305;若匹配失败,向终端返回目标识别失败的消息。
其中,服务器将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,由于特征索引是由0和1组成的,因此在服务器是按位做与或运算。匹配的过程是现有技术,这里仅做简要说明:将第一图像帧的特征点的索引中的每一位与特征点的索引数据库中各项特征索引的对应位进行匹配,匹配的位数达到一定阈值则表明匹配成功;否则,若第一图像帧的特征点的索引与特征点的索引数据库中的特征索引匹配的位数低于一定阈值,则表明匹配失败。
具体的,由于服务器上存储的每一个特征索引对应一个目标的一种状态,若第一图像帧的特征点的索引与特征点的索引数据库中的某一特征索引匹配成功,则可以确定第一图像帧中出现的目标,以及该目标的状态即第一目标状态。服务器将第一目标状态发送给终端,则完成了第一图像帧的目标跟踪,当然在本实施例中为了方便终端后续可以不借助服务完整同一目标的跟踪,服务还需要在执行步骤305之后,向终端下发与所述第一目标状态对应的特征点的索引。若匹配失败,则表明终端上传的第一图像帧中没有可被识别的目标,服务器向终端回复目标识别失败的消息,或者在回复终端的消息中不携带特征索引数据。对于终端侧,接收到服务器回复的消息后解析消息内容,若消息中包含有与所述第一目标状态对应的特征点的索引则并行执行与第二目标状态对应的特征点的索引计算和第二图像帧的目标跟踪,若消息中没有与所述第一目标状态对应的特征点的索引,则可以重新抓取下一帧作为第一图像帧重新上传给服务器,直到图像中的目标被识别。
305、服务器根据第一目标状态和网络配置确定与所述第一目标状态对应的特征点的索引。
其中,终端发送给服务器的是一帧图像中全部特征点的特征索引,而其中只会有一部分特征点是被跟踪目标的特征点,因此服务器会从终端发送的第一图像帧的特征点的索引中匹配出被跟踪目标的特征点,这些匹配成功的被跟踪目标的特征点即可以确定对应的第一目标状态。为了让终端在第一图像帧之后可以独立进行同一目标的跟踪,服务器可以将与所述第一目标状态对应的特征点的索引发送给终端,与所述第一目标状态对应的特征点的索引包括初始目标状态对应的特征点的索引以及初始目标状态的各维度分别增大或减小1至n个最小间隔时的第一目标状态对应的特征索引数据。其中,n为大于或等于1的整数,n可以是预先设定的固定值,也可以是服务器根据网络配置确定的由于目标在运动变化过程中一般都是连续变化目标状态的,因此可以满足接下来若干帧内的目标跟踪。
当然,考虑到终端可以容忍的等待时间和带宽限制等因素,服务器不能将该目标的全部特征索引数据都发送给终端。因此可以预先设定服务器下发给终端的与所述第一目标状态对应的特征点的索引的大小,例如初始目标状态的旋转维度为100°,确定第一目标状态为旋转维度从80°到120°的目标状态,下发旋转维度从80°到120°的特征索引数据。或者,也可以由服务器根据网络配置确定与所述第一目标状态对应的特征点的索引的大小。例如,服务器可以根据每秒接收终端发送的与所述第一目标状态对应的特征点的索引的大小计算当前网络带宽,当前网络带宽较低而终端容忍的等待时间较短时,可以下发更少的与所述第一目标状态对应的特征点的索引,例如只下发旋转维度从90°到110°的特征索引数据。可以理解的是,这里仅以旋转维度为例进行说明,在实际应用中每个维度都应该被考虑到。
举例说明,假设当前带宽为b,用户可接受的等待时间为t(t为事先设定的阈值,一般用户可容忍的等待时间最长不大于2.5秒),每个目标状态的子模板图像的特征索引大小为size=N×(64×5+32)位,其中N为单幅子模板图像的特征点个数,也是事先设定的数值,例如可取100。需要下发的与所述第一目标状态对应的特征点的索引大小为b×t÷size位,约4KB左右,在目标的运动幅度较小时,大概需要20幅左右子模板图像的特征索引,大小是80KB。增强型数据速率GSM演进技术(Enhanced Data Rate for GSM Evolution,EDGE)的网络带宽是40比特率(KBps),基本上能够满足要求。假定匹配成功的特征索引对应的四因子S、Z、X和Y的初始值分别为2、30、10和15,需要下发24幅图像的特征索引,则可取S=1.4、2或2.6,Z=20或30,X=5或10,Y=10或15的组合,组合的个数有3×2×2×2=24个,即对应24个目标状态下的特征索引。
306、服务器向终端发送第一目标状态和与所述第一目标状态对应的特征点的索引。
其中,目标的状态可以用四因子表示,包括四个维度,分别是:尺度因子S,旋转因子Z,仿射因子X、Y,四个因子的取值范围以及取值的最小间隔可以由人为约定,分别配置在服务器和终端上,也可以在服务器下发第一目标状态时将四因子的取值范围和最小间隔一并下发给终端。例如,如表1所示:
维度 | 取值范围 | 最小间隔 |
S | [1,7] | 0.6 |
Z | [0,360] | 10 |
X | [0,30] | 5 |
Y | [0,30] | 5 |
表1
实际应用中,在存储可能出现的目标的特征点的索引数据库时,便可以在服务器和终端上配置表1中的参数。服务器上保存有每个目标的各种状态对应的特征索引数据,四因子的取值间隔越小对目标状态的描述越细致,特征点的索引数据库所需要占用的存储空间也相应增大。因此,可以根据应用场景和实际需要的目标状态的精确度以及服务器和终端的存储空间大小,设定各个因子取值的间隔。
综上,从步骤302到306,终端提取第一图像帧的特征点的索引发送给服务器;服务器根据第一图像帧的特征点的索引与预先存储的特征点的索引数据库匹配,获得与所述特征点的索引数据库中特征点的索引匹配的第一图像帧的特征点以及所述特征点的索引数据库中特征点的索引对应的特征点组成的特征点对,根据获得的特征点对确定被跟踪目标在第一图像帧中呈现的初始目标状态,将该匹配的特征点对对应的一组四因子作为初始目标状态;并将该组四因子及四因子的各个维度分别增大或减小1至n个最小间隔时得到的四因子作为第一目标状态,获取与所述第一目标状态对应的特征点的索引。其中,n为大于或等于1的整数,n可以是预先设定的固定值,也可以是服务器根据网络配置确定的。另外,服务器通过第一图像帧的特征点的索引识别了出现在图像中的目标后,还可以将该目标的目标模板图像与目标初始状态和与所述第一目标状态对应的特征点的索引一起,下发给终端,以便终端对目标模板图像进行扭曲处理等,采用步骤301中类似的特征点的索引数据库的计算方法计算与第二目标状态对应的特征点的索引。
在本实施例中,接下来是终端设备上的两个并行的处理过程。一方面终端执行步骤307,以四因子为基础建立四维计算空间,并在四维计算空间里以循环方式逐一计算每个因子相邻取值情况下的相邻特征索引。另一方面终端执行步骤308,实现当前帧的目标匹配跟踪任务。
307、终端根据所述第一目标状态和所述与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,得到特征点的索引数据库。
其中,所述第二目标状态与第一目标状态相邻;所述特征点的索引数据库包括所述与第一目标状态对应的特征点的索引以及所述与第二目标状态对应的特征点的索引。基于四因子建立的四维空间如图4所示,每个维度的原点是第一目标状态下该维度的因子值,且在原点的两边分为向左和向右两个方向,分别代表该维度取值减小一个最小间隔和该维度取值增大一个最小间隔。这里最小间隔的大小在305中四因子描述内容中已进行说明,可以根据实际需要设定。计算与第二目标状态对应的特征点的索引的过程中,从上至下(S、Z、X、Y的顺序)依次计算每个维度的与第二目标状态对应的特征点的索引,并且计算完Y维度后循环从上之下的顺序继续计算。可以理解的是,四因子从上至下的排列顺序无特殊要求,可任意排列。
举例说明,以第一目标状态的各维度的初始值为原点,向两边均衡的计算与第二目标状态对应的特征点的索引。每个维度有增大和减小两个方向,四个维度总共有八个方向。假设以图4中的S、Z、X、Y从上至下的顺序,循环计算时以方向1、方向2直至方向8的顺序依次计算,且以每个维度的最小间隔计算一次特征索引(如表1描述,四因子的每一组取值代表一个目标状态,即目标的一幅子模板图像的特征索引)。假定S、Z、X、Y的初始值分别为2、30、10、15,服务器下发的与所述第一目标状态对应的特征点的索引是S=1.4、2或2.6,Z=20或30,X=5或10,Y=10或15组合情况下的特征索引数据,那么方向1和方向2分别代表S=0.8和S=3.2的目标状态,方向3和方向4分别代表Z=10和Z=40的目标状态,方向5和方向6分别代表X=0和X=15的目标状态,方向7和方向8分别代表Y=5和Y=20的目标状态。
进一步的,可以根据目标运动的方向确定相邻特征索引的计算方向,根据所述当前帧图像之前的k帧图像中所述被跟踪目标的状态,统计得到目标运动方向;其中k为大于或等于2的整数。然后,根据所述与所述第一目标状态对应的特征点的索引,计算所述运动方向上与第二目标状态对应的特征点的索引。其中,终端上的特征点的索引数据库由与所述第一目标状态对应的特征点的索引和与第二目标状态对应的特征点的索引组成,随着计算特征点的索引数据库不断扩大,并可以不断计算当前特征点的索引数据库相邻的第二目标状态对应的特征点的索引,以满足目标运动后目标跟踪的需要。
具体的,描述目标状态的四因子包括四个维度,分别是尺度因子S,旋转因子Z,两个仿射因子X、Y。循环地对每一维度轮流做如下操作:若当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,则按照所述特征索引数据计算方向继续计算与第二目标状态对应的特征点的索引;若当前维度的目标运动方向与所述当前维度的特征索引数据计算方向不同,则跳过当前维度的与第二目标状态对应的特征点的索引计算。
例如,如图4中所示的8个方向,以S维度为例,若目标运动方向为方向1,S维度的当前计算方向也是方向1,则为了满足S维度接下来的运动趋势的变化,可以继续计算方向1上的与第二目标状态对应的特征点的索引。而若当前计算方向为方向1,而目标运动方向时方向2,由于在当前帧之前沿着方向1计算了特征索引数据,即使S维度上因子值往方向2上回退也可以暂时满足运动变化的需要,因此可以跳过S维度的特征索引计算进而计算下一维度(即Z维度)的与第二目标状态对应的特征点的索引。
再进一步的,在依据目标运动方向的基础上,为了减少终端的计算负荷还可以在特征点的索引数据库能够满足目标跟踪需求的情况下跳过计算当前维度的与第二目标状态对应的特征点的索引,进行下一维度的与第二目标状态对应的特征点的索引计算。具体的,如图5所示,以任一维度为例进行说明,计算与第二目标状态对应的特征点的索引的具体实现方法可以为:
3071、根据第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态,统计得到目标运动方向;其中k为启动目标跟踪之前人为设定的大于或等于2的整数。
其中,目标运动方向的估计为现有技术,以下仅简单介绍两种实现方式:
均值法运动方向估计:以维度S为例,取第三图像帧之前的K帧第二图像帧,统计这K帧第二图像帧中每一帧对应的S值,并将每一帧中的S值求和,再取平均值得到维度S前K帧的平均值avgS1;将第三图像帧的S值与avgS1比较,若S值大于avgS1值,则记第三图像帧在当前维度的运动方向为向右(增大),若S值小于avgS1值,则记第三图像帧当前维度的运动方向为向左(减小);从而估计出第三图像帧在S维度上的运动方向。进一步的还可以估计运动速度,先统计前K帧的总时间t,然后将前K帧中每一帧的S值与服务器下发的第一目标状态的S值进行比较,若S大于初始值,则记为+0.6(以S维度的最小间隔为步进);若S小于初始值,则记为-0.6,这样比较得到由+0.6和/或-0.6组成的K个数字的组成的数列,将该数列中的K个数字求和后得到d,所以运动速度可表达为v=d/t,表示目标在该维度计算方向上平均每秒运动了距离v。
衰减法运动方向估计:以维度S为例,取第三图像帧之前的K帧第二图像帧,计算这K帧第二图像帧中的每一帧对应的S值,并赋予不同的权重。赋予权重的原则可以是,离第三图像帧越远赋予权重越低,离第三图像帧越近赋予权重越大,采用斜线衰减模式,即与第三图像帧最近的权重为2的0次幂,第二近的权重为2的-1次幂,最远的一帧权重为2的-k次幂;然后将每个赋予权重后的S值求和再取平均值得到衰减后的平均值avgS2。将第三图像帧的S值与avgS2比较,若S值大于avgS2值,则记第三图像帧在当前维度的运动方向为向右(增大),若S值小于avgS2值,则记第三图像帧当前维度的运动方向为向左(减小);从而估计出第三图像帧在S维度上的运动方向。
3072、判断目标运动方向与当前维度的计算方向是否一致;若目标运动方向与当前维度的计算方向一致,则执行步骤3073;若目标运动方向与当前维度的计算方向不一致,则执行步骤3074。
其中,若当前维度的目标运动方向与计算方向一致,表明随着目标的运动在下一帧中将可能用到目标运动方向上的特征索引数据,因此继续按着这个计算方向计算与第二目标状态对应的特征点的索引。若当前维度的目标运动方向与计算方向不一致,表明下一帧中将可能用到之前已计算过的特征索引数据,因此可以跳过当前维度的计算,提高处理效率。
3073、在当前维度上计算已计算的最边缘的因子值与当前目标状态的因子值的绝对差δ,判断所述绝对差δ是否大于预先设定的计算阈值D;若δ≥D,则执行步骤3075;若δ<D,则执行步骤3074。
其中,特征点的索引数据库是随着相邻特征索引的计算而不断更新的,以任一维度为例,所述已计算的最边缘的因子值为特征点的索引数据库对应的该维度最大的因子值或最小的因子值。以任一维度为例,当前目标状态的因子值为当前目标状态的四因子中该维度的因子值。例如,在Z维度,特征点的索引数据库已经计算到目标旋转因子在70°至130°的特征索引,此时最边缘的因子值为70或120。而当前目标状态的四因子中旋转因子为100,预先设定当已计算的最边缘的因子值与当前目标状态的因子值的绝对差δ小于20时需要计算该维度的相邻特征索引,因此此时不用计算Z维度的相邻特征索引。
基于与步骤3072类似的原理,若δ<D表明当前维度的目标运动方向上还有足够余量的已计算的特征索引数据,可以满足下一帧目标匹配的需求。若δ≥D表明下一帧可能要用到的特征索引数据有可能超出了特征点的索引数据库的范围,为了避免下一帧目标匹配失败需要提前计算根据当前帧图像之前的k帧图像统计得到的被跟踪目标的运动方向上的与第二目标状态对应的特征点的索引。其中,每个维度的计算阈值D不同,这里每个维度的D值可根据步骤3061中统计得到的目标运动速度v与一个时间阈值T计算得到,D=vT,其中T可取1到3秒之间。
3074、跳过当前维度的第二目标状态的特征点的索引计算,进入下一维度的计算。
其中,一方面,只计算目标运动方向上的特征索引,也就是说下一帧目标跟踪可能用到哪些特征索引就计算哪些特征索引,而相反方向上特征索引暂时可以不用计算,节省的时间以计算其他维度的特征索引。另一方面,计算方向与运动方向保持一致时,也只计算下一帧目标跟踪可能用到的特征索引,如果在当前维度已经计算的特征索引足够满足下一帧目标跟踪的需要,则跳过当前维度特征索引的计算,进一步节省计算时间并减少内存的使用。
3075、计算当前维度在目标运动方向上的与第二目标状态对应的特征点的索引。
其中,与第二目标状态对应的特征点的索引的计算方法与服务器上获得完整特征点的索引数据库的方法相同,本发明实施例这里不再重复赘述。
308、终端获取第二图像帧,提取第二图像帧的特征点的索引。
其中,第二图像帧的特征点的索引提取方法与步骤302中第一图像帧的特征点的索引提取方法类似,本实施例这里不再重复赘述。
309、终端将所述第二图像帧的特征点的索引与特征点的索引数据库进行匹配;若第二图像帧的特征点的索引与特征点的索引数据库匹配成功,执行步骤310;若第二图像帧的特征点的索引与特征点的索引数据库匹配失败,执行步骤311。
其中,第二图像帧的特征点的索引与特征点的索引数据库中的某一特征索引数据匹配成功,表明识别了目标并且确定了目标的状态;若匹配失败,则表明不能识别图像中的目标,之前的目标丢失了,或者更换成新的目标了。其中,匹配的过程是现有技术,这里仅做简要说明:将第二图像帧的特征点的索引中的每一位与特征点的索引数据库中各项特征索引的对应位进行比对,若第二图像帧的特征点的索引与特征点的索引数据库中的特征索引相同的位数达到一定阈值则表明匹配成功;否则,若第二图像帧的特征点的索引与特征点的索引数据库中的特征索引相同的位数低于一定阈值,则表明匹配失败。
例如,设定第二图像帧的特征点的索引与特征点的索引数据库中的特征索引有50%的位数相同,则表明第二图像帧的特征点的索引与特征点的索引数据库中的特征索引匹配成功。假设第二图像帧的特征点的索引为1010101010,而特征点的索引数据库中有一条特征点的索引为1010101001,相同的位数达到80%,因此第二图像帧的特征点的索引与特征点的索引数据库中的该条特征点的索引匹配成功。反之,如果特征点的索引数据库中任何一条特征点的索引均不能与第二图像帧的特征点的索引达到60%的相同位数,则表明匹配失败。
310、终端获得与所述特征点的索引数据库中特征点的索引匹配的第二图像帧的特征点以及所述特征点的索引数据库中特征点的索引对应的特征点组成的特征点对,根据获得的特征点对确定被跟踪目标在第二图像帧中呈现的目标状态。
其中,被跟踪目标在第二图像帧中呈现的目标状态可以用四因子表示,包括四个维度,分别是:尺度因子S,旋转因子Z和两个仿射因子X、Y。第二图像帧的特征点的索引与特征点的索引数据库匹配成功后,将匹配的特征点组成的特征点对对应的四因子(例如,S=2、Z=30、X=10、Y=15)确定为被跟踪目标在第二图像帧中呈现的目标状态。终端根据被跟踪目标在第二图像帧中呈现的目标状态便可以以第二图像帧为背景在将目标模板图像旋转30°,拉伸到尺度为2的大小,在坐标X=10、Y=15的位置显示旋转拉伸后的目标图像,并且通过深度渲染将背景图像和目标图像显示在不同的平面,从而便实现了AR应用。为了保证AR图像的流畅性,完成第二图像帧的目标跟踪后将继续执行307-309的目标跟踪流程。
311、终端将匹配失败的图像帧作为第四图像帧,将所述第四图像帧的特征点的索引发送给所述服务器,以获取第四图像帧中的目标对应的第三目标状态和与所述第三目标状态对应的特征点的索引。
其中,所述第二图像帧的特征点的索引与所述特征点的索引数据库匹配失败,或者连续多帧匹配失败,则表明目标丢失。此时,终端获取的第二图像帧,中可能出现了新的目标,因此将该第二图像帧第四图像帧,终端上可能没有该目标的特征索引数据。因此,可以执行和步骤303-309类似的流程,将匹配失败的第二图像帧作为新目标的第四图像帧获取新目标对应的第三目标状态和与所述第三目标状态对应的特征点的索引。
为了充分利用内存空间,提高内存使用效率,终端可以在目标丢失后立即删除已使用过的目标的特征索引数据。
进一步的,由于丢失的目标有可能在后续的某一帧图像中重新出现,为了减少终端重复向服务器请求与所述第一目标状态对应的特征点的索引,并且进一步减少终端重新计算与第二目标状态对应的特征点的索引,可以采取对使用过的特征索引数据暂时保留在本地的处理方式。
例如,终端可以将使用过的特征索引数据保存在内存作为备用的特征点的索引数据库。直到内存中存储的备用的特征点的索引数据库超过额定空间的大小时,可以按照特征索引数据被使用的先后顺序,优先删除最长时间未被使用的备用的特征索引数据,以节省内存空间。
类似的,终端也可以在每次目标丢失时将使用过的特征索引数据保存在磁盘区作为备用的特征点的索引数据库,磁盘区可以是硬盘等非易失存储器。直到磁盘区中存储的备用的特征点的索引数据库超过额定空间的大小时,可以按照特征索引数据被写入磁盘区的先后顺序,优先删除最早写入到磁盘区的特征索引数据,以节省磁盘区空间。
这样,在步骤309的匹配结果表明目标丢失时,终端可以先从内存或磁盘区中备用的特征点的索引数据库中匹配识别到当前目标,若未能成功匹配到当前目标,则继续执行步骤311。
本发明实施例提供的基于AR的目标跟踪方法,终端从服务器获取到第一目标状态和与所述第一目标状态对应的特征点的索引后,计算与第二目标状态对应的特征点的索引得到后续每一帧识别目标状态所需的特征点的索引数据库,从而实现后续每一帧图像的目标跟踪,与现有技术中在终端上存储全部目标的完整特征点的索引数据库的方法相比,终端可以有针对性获取当前目标的与所述第一目标状态对应的特征点的索引,并在目标跟踪的过程中计算与第二目标状态对应的特征点的索引以满足后续匹配需求,可以有效减少特征点的索引数据库在终端上占用的存储空间,便于AR目标跟踪在移动终端上应用。
并且,服务器根据网络配置确定下发给终端的与所述第一目标状态对应的特征点的索引的大小,可以在网络拥挤时减轻网络传输负担,在网络空闲时减少终端的特征索引数据计算量。
本发明另一实施例还提供一种终端,如图6所示,包括:
发送单元41,用于将被跟踪目标的第一图像帧的特征点的索引发送给服务器;
接收单元42,用于接收所述服务器根据所述第一图像帧的特征点的索引下发的所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引;将所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引发送给计算单元43;其中所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;
计算单元43,用于接收所述接收单元42发送的所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引;根据所述接收单元42接收的第一目标状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,得到特征点的索引数据库;其中第二目标状态是与所述第一目标状态相邻的目标状态;所述特征点的索引数据库由所述与所述第一目标状态对应的特征点的索引和所述与第二目标状态对应的特征点的索引组成;
提取单元44,用于获取所述被跟踪目标的第二图像帧并提取所述第二图像帧的特征索引;
匹配单元45,用于接收所述提取单元44发送的所述第二图像帧的特征点的索引;接收所述计算单元43发送的所述特征点的索引数据库;将所述提取单元44提取得到的所述第二图像帧的特征索引与所述计算单元43计算得到的所述特征点的索引数据库进行匹配,获得与所述特征点的索引数据库中特征点的索引匹配的第二图像帧的特征点以及所述特征点的索引数据库中特征点的索引对应的特征点组成的特征点对,根据获得的特征点对确定被跟踪目标在第二图像帧中呈现的目标状态。
进一步的,该装置还包括:获取单元47,用于获取所述被跟踪目标的第一图像帧,并提取所述第一图像帧的特征点的索引;将所述第一图像帧的特征点的索引发送给所述发送单元。
进一步的,所述计算单元43包括:
计算子单元433,用于根据所述接收单元42接收的所述第一目标状态对应的特征点的索引,计算预定方向上或随机方向上所述与第二目标状态对应的特征点的索引。
进一步的,第三图像帧之前有至少k帧第二图像帧,并且已通过所述k帧第二图像帧中每一帧的特征点的索引与所述特征点的索引数据库分别确定了被跟踪目标在所述k帧第二图像帧中每一帧中呈现的目标状态,所述计算单元43还包括:
获取子单元431,用于获取所述第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态;将所述第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态发送给方向子单元432;其中k为预先设定的大于或等于2的整数;
方向子单元432,用于接收所述获取子单元431发送的所述第三图像帧之前的k帧图像中所述被跟踪目标的状态;根据所述第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态,统计得到目标运动方向;
计算子单元433,用于根据所述接收单元42接收的与所述第一目标状态对应的特征点的索引,计算所述方向子单元432确定的运动方向上的所述与第二目标状态对应的特征点的索引。
进一步的,所述计算子单元433具体用于循环地对每一维度轮流做如下操作,其中所述维度包括尺度因子S、旋转因子Z以及两个仿射因子X和Y:
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,按照所述特征索引数据计算方向继续计算与第二目标状态对应的特征点的索引;
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向不同,进行下一维度的与第二目标状态对应的特征点的索引计算。
进一步的,所述计算子单元433还用于:
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,且当前维度上目标所在位置与所述特征点的索引数据库在所述当前维度的目标运动方向上边界值的绝对差值小于预设阈值,则按照所述特征索引数据计算方向继续计算与第二目标状态对应的特征点的索引;
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,但当前维度上目标所在位置与所述特征点的索引数据库在所述当前维度的目标运动方向上边界值的绝对差值不小于预设阈值,则进行下一维度的与第二目标状态对应的特征点的索引计算。
进一步的,该终端还包括:更新单元46。
更新单元46,用于当所述匹配单元45确定第四图像帧的特征索引与所述特征点的索引数据库的匹配失败时,将所述第四图像帧的特征点的索引发送给所述服务器以获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引。
进一步的,所述更新单元46还用于:将所述特征点的索引数据保存在内存或磁盘区;从所述内存或磁盘区中获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引;确定所述内存或磁盘区中未存储所述第四图像帧中被跟踪目标对应的第三目标状态和与所述第三目标状态对应的特征点的索引,执行所述将第四图像帧的特征点的索引发送给所述服务器以获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引。
本发明实施例提供的终端,从服务器获取到第一目标状态和与所述第一目标状态对应的特征点的索引后,计算与第二目标状态对应的特征点的索引得到后续每一帧识别目标状态所需的特征点的索引数据库,从而实现后续每一帧图像的目标跟踪,与现有技术中在终端上存储全部目标的完整特征点的索引数据库的方法相比,终端可以有针对性获取当前目标的与所述第一目标状态对应的特征点的索引,并在目标跟踪的过程中计算与第二目标状态对应的特征点的索引以满足后续匹配需求,可以有效减少特征点的索引数据库在终端上占用的存储空间,便于AR目标跟踪在移动终端上应用。
本发明另一实施例还提供一种服务器,如图7所示,包括:
接收单元51,用于接收终端发送的被跟踪目标的第一图像帧的特征点的索引;
匹配单元52,用于将所述接收单元51接收的第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定第一目标状态和与所述第一目标状态对应的特征点的索引;将所述第一目标状态和与所述第一目标状态对应的特征点的索引发送给发送单元;所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;
发送单元53,用于接收所述匹配单元52发送的第一目标状态和所述与所述第一目标状态对应的特征点的索引;向所述终端发送所述匹配单元52确定的第一目标状态和所述与所述第一目标状态对应的特征点的索引,以便于所述终端根据所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,从而确定所述被跟踪目标在第二图像帧中呈现的目标状态。
进一步的,所述匹配单元52包括:状态子单元521、索引子单元522。
状态子单元521,用于将所述接收单元51接收到的第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定在所述第一图像帧中被跟踪目标呈现的初始目标状态;将所述初始目标状态发送给索引子单元522;
索引子单元522,用于接收所述状态子单元521发送的初始目标状态;根据所述状态子单元521确定的所述第一目标状态和网络配置确定第一目标状态以及与所述第一目标状态对应的特征点的索引。
进一步的,所述索引子单元522具体用于:
根据网络带宽和用户设备容许的最长等待时间,计算与所述第一目标状态对应的特征点的索引的数据容量;
根据所述数据容量确定n值,从而将初始目标状态各维度分别增大和减小n个最小间隔时目标状态确定为第一目标状态,从而确定与所述第一目标状态对应的特征点的索引,其中n为大于等于1的整数。
本发明实施例提供的服务器,向终端发送第一目标状态和与所述第一目标状态对应的特征点的索引后,使得终端计算与第二目标状态对应的特征点的索引得到后续每一帧识别目标状态所需的特征点的索引数据库,从而实现后续每一帧图像的目标跟踪,与现有技术中在终端上存储全部目标的完整特征点的索引数据库的方法相比,终端可以有针对性获取当前目标的与所述第一目标状态对应的特征点的索引,并在目标跟踪的过程中计算与第二目标状态对应的特征点的索引以满足后续匹配需求,可以有效减少特征点的索引数据库在终端上占用的存储空间,便于AR目标跟踪在移动终端上应用。
本发明另一实施例还提供另一种终端,如图8所示,包括:
发送器61,用于将被跟踪目标的第一图像帧的特征点的索引发送给服务器;
接收器62,用于接收所述服务器根据所述第一图像帧的特征点的索引下发的所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引;将所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引发送给处理器62;其中所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;
处理器63,用于接收所述接收器62发送的所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引;根据所述接收器62接收的第一目标状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,得到特征点的索引数据库;其中第二目标状态是与所述第一目标状态相邻的目标状态;所述特征点的索引数据库由所述与所述第一目标状态对应的特征点的索引和所述与第二目标状态对应的特征点的索引组成;
存储器64,用于存储所述特征点的索引数据库;
所述处理器63,还用于获取所述被跟踪目标的当前帧图像并提取所述当前帧图像的特征索引;将所述第二图像帧的特征点的索引与所述特征点的索引数据库进行匹配,获得与所述特征点的索引数据库中特征点的索引匹配的第二图像帧的特征点以及所述特征点的索引数据库中特征点的索引对应的特征点组成的特征点对,根据获得的特征点对确定被跟踪目标在第二图像帧中呈现的目标状态。
进一步的,所述处理器63还用于获取所述被跟踪目标的第一图像帧,并提取所述第一图像帧的特征点的索引;将所述第一图像帧的特征点的索引发送给所述发送器61。
进一步的,所述处理器63,还用于根据所述接收器62接收的所述第一目标状态对应的特征点的索引,计算预定方向上或随机方向上所述与第二目标状态对应的特征点的索引。
进一步的,第三图像帧之前有至少k帧第二图像帧,并且已通过所述k帧第二图像帧中每一帧的特征点的索引与所述特征点的索引数据库分别确定了被跟踪目标在所述k帧第二图像帧中每一帧中呈现的目标状态,所述处理器63,还用于获取所述第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态;其中k为预先设定的大于或等于2的整数;根据所述第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态,统计得到目标运动方向;根据所述接收器62接收的与所述第一目标状态对应的特征点的索引,计算所述运动方向上所述的与第二目标状态对应的特征点的索引。
进一步的,所述处理器63具体用于循环地对每一维度轮流做如下操作,其中所述维度包括尺度因子S、旋转因子Z以及两个仿射因子X和Y:
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,按照所述特征索引数据计算方向继续计算与第二目标状态对应的特征点的索引;
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向不同,进行下一维度的与第二目标状态对应的特征点的索引计算。
进一步的,所述处理器63还用于:
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,且当前维度上目标所在位置与所述特征点的索引数据库在所述当前维度的目标运动方向上边界值的绝对差值小于预设阈值,则按照所述特征索引数据计算方向继续计算与第二目标状态对应的特征点的索引;
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,但当前维度上目标所在位置与所述特征点的索引数据库在所述当前维度的目标运动方向上边界值的绝对差值不小于预设阈值,进行下一维度的与第二目标状态对应的特征点的索引计算。
进一步的,所述发送器61,还用于当所述处理器63确定所述第四图像帧的特征点的索引与所述特征点的索引数据库的匹配失败时,将所述第四图像帧的特征点的索引发送给所述服务器以获取所述第四图像帧中的目标对应的第三目标状态和与所述第三目标状态对应的特征点的索引。
本发明实施例提供的终端,从服务器获取到第一目标状态和与所述第一目标状态对应的特征点的索引后,计算与第二目标状态对应的特征点的索引得到后续每一帧识别目标状态所需的特征点的索引数据库,从而实现后续每一帧图像的目标跟踪,与现有技术中在终端上存储全部目标的完整特征点的索引数据库的方法相比,终端可以有针对性获取当前目标的与所述第一目标状态对应的特征点的索引,并在目标跟踪的过程中计算与第二目标状态对应的特征点的索引以满足后续匹配需求,可以有效减少特征点的索引数据库在终端上占用的存储空间,便于AR目标跟踪在移动终端上应用。
本发明另一实施例还提供另一种服务器,如图9所示,包括:
接收器71,用于接收终端发送的被跟踪目标的第一图像帧的特征点的索引;
处理器72,用于将所述接收器71接收的第一图像帧的特征点的索引与存储器74中存储的特征点的索引数据库进行匹配,确定第一目标状态和与所述第一目标状态对应的特征点的索引;所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;
存储器74,用于存储所述特征点的索引数据库;
发送器73,用于向所述终端发送所述处理器72确定的第一目标状态和所述与所述第一目标状态对应的特征点的索引,以便于所述终端根据所述被跟踪目标的初始状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,从而确定所述被跟踪目标在第二图像帧中呈现的目标状态。
进一步的,所述处理器72还用于:将所述接收器71接收到的第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定在所述第一图像帧中被跟踪目标呈现的初始目标状态;根据所述初始目标状态和网络配置确定第一目标状态以及与所述第一目标状态对应的特征点的索引。
进一步的,所述处理器具体还用于:根据网络带宽和用户设备容许的最长等待时间,计算与所述第一目标状态对应的特征点的索引的数据容量;根据所述数据容量确定n值,从而将初始目标状态各维度分别增大和减小n个最小间隔时对应的目标状态确定为第一目标状态,从而确定与所述第一目标状态对应的特征点的索引,其中n为大于等于1的整数。
本发明实施例提供的服务器,将第一目标状态和与所述第一目标状态对应的特征点的索引发送给终端后,使得终端计算与第二目标状态对应的特征点的索引得到后续每一帧识别目标状态所需的特征点的索引数据库,从而实现后续每一帧图像的目标跟踪,与现有技术中在终端上存储全部目标的完整特征点的索引数据库的方法相比,终端可以有针对性获取当前目标的与所述第一目标状态对应的特征点的索引,并在目标跟踪的过程中计算与第二目标状态对应的特征点的索引以满足后续匹配需求,可以有效减少特征点的索引数据库在终端上占用的存储空间,便于AR目标跟踪在移动终端上应用。
本发明另一实施例还提供一种基于AR的目标跟踪系统,如图10所示,包括:终端81和服务器82。
所述终端81,用于将被跟踪目标的第一图像帧的特征点的索引发送给服务器82;接收所述服务器下发的第一目标状态以及与第一目标状态对应的特征点的索引,所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;根据所述第一目标状态和所述与第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,获得特征点的索引数据库;所述第二目标状态与第一目标状态相邻;所述特征点的索引数据库包括所述与第一目标状态对应的特征点的索引以及所述与第二目标状态对应的特征点的索引;获取所述被跟踪目标的第二图像帧并提取所述第二图像帧的特征点的索引;将所述第二图像帧的特征点的索引与所述特征点的索引数据库进行匹配,获得与所述特征点的索引数据库中特征点的索引匹配的第二图像帧的特征点以及所述特征点的索引数据库中特征点的索引对应的特征点组成的特征点对,根据获得的特征点对确定被跟踪目标在第二图像帧中呈现的目标状态;
所述服务器82,用于接收终端81发送的被跟踪目标的第一图像帧的特征点的索引;将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定第一目标状态和与所述第一目标状态对应的特征点的索引;所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;向所述终端发送所述第一目标状态和所述与所述第一目标状态对应的特征点的索引,以便于所述终端81根据所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,从而确定所述被跟踪目标在第二图像帧中呈现的目标状态。
本发明实施例提供的基于AR的目标跟踪系统,终端从服务器获取到第一目标状态和与所述第一目标状态对应的特征点的索引后,计算与第二目标状态对应的特征点的索引得到后续每一帧识别目标状态所需的特征点的索引数据库,从而实现后续每一帧图像的目标跟踪,与现有技术中在终端上存储全部目标的完整特征点的索引数据库的方法相比,终端可以有针对性获取当前目标的与所述第一目标状态对应的特征点的索引,并在目标跟踪的过程中计算与第二目标状态对应的特征点的索引以满足后续匹配需求,可以有效减少特征点的索引数据库在终端上占用的存储空间,便于AR目标跟踪在移动终端上应用。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (23)
1.一种基于增强现实的目标跟踪方法,其特征在于,包括:
终端将被跟踪目标的第一图像帧的特征点的索引发送给服务器;
接收所述服务器下发的第一目标状态以及与第一目标状态对应的特征点的索引,所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;
根据所述第一目标状态和所述与第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,获得特征点的索引数据库;所述第二目标状态与第一目标状态相邻;所述特征点的索引数据库包括所述与第一目标状态对应的特征点的索引以及所述与第二目标状态对应的特征点的索引;
获取所述被跟踪目标的第二图像帧并提取所述第二图像帧的特征点的索引;
将所述第二图像帧的特征点的索引与所述特征点的索引数据库进行匹配,获得与所述特征点的索引数据库中特征点的索引匹配的第二图像帧的特征点以及所述特征点的索引数据库中特征点的索引对应的特征点组成的特征点对,根据获得的特征点对确定被跟踪目标在第二图像帧中呈现的目标状态。
2.根据权利要求1所述的基于增强现实的目标跟踪方法,其特征在于,所述终端将被跟踪目标的第一图像帧的特征点的索引发送给服务器之前,该方法进一步包括:
获取所述被跟踪目标的第一图像帧,并提取所述第一图像帧的特征索引。
3.根据权利要求1或2所述的基于增强现实的目标跟踪方法,其特征在于,所述根据所述第一目标状态和所述与第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,包括:
根据所述第一目标状态对应的特征点的索引,计算预定方向上或随机方向上所述与第二目标状态对应的特征点的索引。
4.根据权利要求3所述的基于增强现实的目标跟踪方法,第三图像帧之前有至少k帧第二图像帧,并且已通过所述k帧第二图像帧中每一帧的特征点的索引与所述特征点的索引数据库分别确定了被跟踪目标在所述k帧第二图像帧中每一帧中呈现的目标状态,其特征在于,所述根据所述第一目标状态和所述与第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,还包括:
获取所述第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态;其中k为预先设定的大于或等于2的整数;
根据所述第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态,统计得到所述被跟踪目标的运动方向;
根据所述第一目标状态对应的特征点的索引,计算所述运动方向上所述与第二目标状态对应的特征点的索引。
5.根据权利要求4所述的基于增强现实的目标跟踪方法,其特征在于,所述根据所述与所述第一目标状态对应的特征点的索引,计算所述运动方向上所述与所述第一目标状态对应的特征点的索引的与第二目标状态对应的特征点的索引,包括循环地对分别每一维度轮流做如下操作,其中所述维度包括尺度因子S、旋转因子Z以及仿射因子X和仿射因子Y:
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,按照所述特征索引数据计算方向继续计算与第二目标状态对应的特征点的索引;
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向不同,进行下一维度的与第二目标状态对应的特征点的索引计算。
6.根据权利要求5所述的基于增强现实的目标跟踪方法,其特征在于,所述确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同之后,还包括:
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,且确定当前维度上目标所在位置与所述特征点的索引数据库在所述当前维度的目标运动方向上边界值的绝对差值小于预设阈值,则按照所述特征索引数据计算方向继续计算所述与第二目标状态对应的特征点的索引;
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,但当前维度上目标所在位置与所述特征点的索引数据库在所述当前维度的目标运动方向上边界值的绝对差值不小于预设阈值,则进行下一维度的与第二目标状态对应的特征点的索引计算。
7.根据权利要求1所述的基于增强现实的目标跟踪方法,其特征在于,该方法还包括:
确定第四图像帧的特征点的索引与所述特征点的索引数据库的匹配失败,将所述第四图像帧的特征点的索引发送给所述服务器以获取所述第四图像帧中被跟踪目标呈现的的第三目标状态和与所述第三目标状态对应的特征点的索引。
8.根据权利要求7所述的基于增强现实的目标跟踪方法,其特征在于,将特征索引数据保存在内存或磁盘区;在将所述第四图像帧的特征索引发送给所述服务器之前,所述方法还包括:
从所述内存或磁盘区中获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引;
确定所述内存或磁盘区中未存储所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引,执行所述将第四图像帧的特征点的索引发送给所述服务器以获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引。
9.一种基于增强现实的目标跟踪方法,其特征在于,包括:
服务器接收终端发送的被跟踪目标的第一图像帧的特征点的索引;
将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定第一目标状态和与所述第一目标状态对应的特征点的索引;所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;
向所述终端发送所述第一目标状态和所述与所述第一目标状态对应的特征点的索引,以便于所述终端根据所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,从而确定所述被跟踪目标在第二图像帧中呈现的目标状态。
10.根据权利要求9所述的基于增强现实的目标跟踪方法,其特征在于,所述将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定第一目标状态和与所述第一目标状态对应的特征点的索引,包括:
将所述第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定在所述第一图像帧中被跟踪目标呈现的初始目标状态;
根据所述初始目标状态和网络配置确定所述第一目标状态以及与所述第一目标状态对应的特征点的索引。
11.根据权利要求10所述的基于增强现实的目标跟踪方法,其特征在于,所述根据所述初始目标状态和网络配置确定所述第一目标状态以及与所述第一目标状态对应的特征点的索引,包括:
根据网络带宽和用户设备容许的最长等待时间,计算与所述第一目标状态对应的特征点的索引的数据容量;
根据所述数据容量确定n值,从而将初始目标状态各维度分别增大和减小n个最小间隔时对应的目标状态确定为第一目标状态,从而确定与所述第一目标状态对应的特征点的索引,其中n为大于等于1的整数。
12.一种终端,其特征在于,包括:
发送单元,用于将被跟踪目标的第一图像帧的特征点的索引发送给服务器;
接收单元,用于接收所述服务器根据所述第一图像帧的特征点的索引下发的所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引;将所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引发送给计算单元;其中所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;
计算单元,用于接收所述接收单元发送的所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引;根据所述第一目标状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,得到特征点的索引数据库;将所述特征点的索引数据库发送给匹配单元;其中第二目标状态是与所述第一目标状态相邻的目标状态;所述特征点的索引数据库由所述与所述第一目标状态对应的特征点的索引和所述与第二目标状态对应的特征点的索引组成;
提取单元,用于获取所述被跟踪目标的第二图像帧并提取所述第二图像帧的特征点的索引;将所述第二图像帧的特征点的索引发送给匹配单元;
匹配单元,用于接收所述提取单元发送的所述第二图像帧的特征点的索引;接收所述计算单元发送的所述特征点的索引数据库;将所述第二图像帧的特征点的索引与所述特征点的索引数据库进行匹配,获得与所述特征点的索引数据库中特征点的索引匹配的第二图像帧的特征点以及所述特征点的索引数据库中特征点的索引对应的特征点组成的特征点对,根据获得的特征点对确定被跟踪目标在第二图像帧中呈现的目标状态。
13.根据权利要求12所述的终端,其特征在于,还包括:
获取单元,用于获取所述被跟踪目标的第一图像帧,并提取所述第一图像帧的特征点的索引;将所述第一图像帧的特征点的索引发送给所述发送单元。
14.根据权利要求12或13所述的终端,其特征在于,所述计算单元包括:
计算子单元,用于根据所述接收单元接收的所述第一目标状态对应的特征点的索引,计算预定方向上或随机方向上所述与第二目标状态对应的特征点的索引。
15.根据权利要求14所述的终端,第三图像帧之前有至少k帧第二图像帧,并且已通过所述k帧第二图像帧中每一帧的特征点的索引与所述特征点的索引数据库分别确定了被跟踪目标在所述k帧第二图像帧中每一帧中呈现的目标状态,其特征在于,所述计算单元还包括:
获取子单元,用于获取所述第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态;将所述第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态发送给方向子单元;其中k为预先设定的大于或等于2的整数;
方向子单元,用于接收所述获取子单元发送的所述第三图像帧之前的k帧图像中所述被跟踪目标的状态;根据所述第三图像帧之前的k帧第二图像帧中所述被跟踪目标的状态,统计得到目标运动方向;
所述计算子单元,还用于根据所述接收单元接收的与所述第一目标状态对应的特征点的索引,计算所述方向子单元确定的运动方向上的所述与第二目标状态对应的特征点的索引。
16.根据权利要求15所述的终端,其特征在于,所述计算子单元具体用于循环地对每一维度轮流做如下操作,其中所述维度包括尺度因子S、旋转因子Z以及两个仿射因子X和Y:
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,按照所述特征索引数据计算方向继续计算与第二目标状态对应的特征点的索引;
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向不同,进行下一维度的与第二目标状态对应的特征点的索引计算。
17.根据权利要求16所述的终端,其特征在于,所述计算子单元还用于:
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,且确定当前维度上目标所在位置与所述特征点的索引数据库在所述当前维度的目标运动方向上边界值的绝对差值小于预设阈值,则按照所述特征索引数据计算方向继续计算与第二目标状态对应的特征点的索引;
确定当前维度的目标运动方向与所述当前维度的特征索引数据计算方向相同,但当前维度上目标所在位置与所述特征点的索引数据库在所述当前维度的目标运动方向上边界值的绝对差值不小于预设阈值,进行下一维度的与第二目标状态对应的特征点的索引计算。
18.根据权利要求12所述的终端,其特征在于,还包括:
更新单元,用于当所述匹配单元确定第四图像帧的特征点的索引与所述特征点的索引数据库的匹配失败时,将所述第四图像帧的特征点的索引发送给所述服务器以获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引。
19.根据权利要求18所述的终端,其特征在于,所述更新单元还用于:将所述特征点的索引数据保存在内存或磁盘区;从所述内存或磁盘区中获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引;确定所述内存或磁盘区中未存储所述第四图像帧中被跟踪目标对应的第三目标状态和与所述第三目标状态对应的特征点的索引,执行所述将第四图像帧的特征点的索引发送给所述服务器以获取所述第四图像帧中被跟踪目标呈现的第三目标状态和与所述第三目标状态对应的特征点的索引。
20.一种服务器,其特征在于,包括:
接收单元,用于接收终端发送的被跟踪目标的第一图像帧的特征点的索引;
匹配单元,用于将所述接收单元接收的第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定第一目标状态和与所述第一目标状态对应的特征点的索引;将所述第一目标状态和与所述第一目标状态对应的特征点的索引发送给发送单元;所述第一目标状态为根据第一图像帧的特征点的索引获得的与初始目标状态相邻的目标状态;
发送单元,用于接收所述匹配单元发送的第一目标状态和所述与所述第一目标状态对应的特征点的索引;向所述终端发送所述第一目标状态和所述与所述第一目标状态对应的特征点的索引,以便于所述终端根据所述被跟踪目标的第一目标状态和与所述第一目标状态对应的特征点的索引计算与第二目标状态对应的特征点的索引,从而确定所述被跟踪目标在第二图像帧中呈现的目标状态。
21.根据权利要求20所述的服务器,其特征在于,所述匹配单元包括:
状态子单元,用于将所述接收单元接收到的第一图像帧的特征点的索引与特征点的索引数据库进行匹配,确定在所述第一图像帧中被跟踪目标呈现的初始目标状态;将所述初始目标状态发送给索引子单元;
索引子单元,用于接收所述状态子单元发送的初始目标状态;根据所述初始目标状态和网络配置确定第一目标状态以及与所述第一目标状态对应的特征点的索引。
22.根据权利要求21所述的服务器,其特征在于,所述索引子单元具体用于:
根据网络带宽和用户设备容许的最长等待时间,计算与所述第一目标状态对应的特征点的索引的数据容量;
根据所述数据容量确定n值,从而将初始目标状态各维度分别增大和减小n个最小间隔时对应的目标状态确定为第一目标状态,从而确定与所述第一目标状态对应的特征点的索引,其中n为大于等于1的整数。
23.一种基于增强现实的目标跟踪系统,其特征在于,包括:
如权利要求12-19中任一项所述的终端;
以及,如权利要求20-22中任一项所述的服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210551951.9A CN103871073B (zh) | 2012-12-18 | 2012-12-18 | 一种基于增强现实的目标跟踪方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210551951.9A CN103871073B (zh) | 2012-12-18 | 2012-12-18 | 一种基于增强现实的目标跟踪方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103871073A CN103871073A (zh) | 2014-06-18 |
CN103871073B true CN103871073B (zh) | 2017-08-25 |
Family
ID=50909578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210551951.9A Active CN103871073B (zh) | 2012-12-18 | 2012-12-18 | 一种基于增强现实的目标跟踪方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103871073B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050475A (zh) * | 2014-06-19 | 2014-09-17 | 樊晓东 | 基于图像特征匹配的增强现实的系统和方法 |
CN108596756A (zh) * | 2018-04-18 | 2018-09-28 | 中国银行股份有限公司 | 一种辅助办理银行业务的方法及装置 |
CN111754543B (zh) * | 2019-03-29 | 2024-03-29 | 杭州海康威视数字技术股份有限公司 | 图像处理方法、装置及系统 |
TWI740275B (zh) * | 2019-11-19 | 2021-09-21 | 國立臺北大學 | 擴增實境物件顯示裝置及擴增實境物件顯示方法 |
CN112762831B (zh) * | 2020-12-29 | 2022-10-11 | 南昌大学 | 一种采用多相机实现多自由度运动物体姿态重建方法 |
CN115114466B (zh) * | 2022-08-30 | 2022-12-13 | 成都实时技术股份有限公司 | 一种打靶信息图像的查找方法、系统、介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011149159A1 (ko) * | 2010-05-27 | 2011-12-01 | 한국항공대학교산학협력단 | 증강현실을 위한 실시간 마커리스 3차원 객체추적 시스템 및 그 방법 |
CN102332095A (zh) * | 2011-10-28 | 2012-01-25 | 中国科学院计算技术研究所 | 一种人脸运动跟踪方法和系统以及一种增强现实方法 |
CN102646275A (zh) * | 2012-02-22 | 2012-08-22 | 西安华旅电子科技有限公司 | 通过跟踪和定位算法实现虚拟三维叠加的方法 |
CN102668605A (zh) * | 2010-03-02 | 2012-09-12 | 英派尔科技开发有限公司 | 在增强现实中跟踪对象 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2542946C2 (ru) * | 2009-11-19 | 2015-02-27 | Нокиа Корпорейшн | Способ и устройство для отслеживания и распознавания объектов с использованием дескрипторов, инвариантных относительно вращения |
-
2012
- 2012-12-18 CN CN201210551951.9A patent/CN103871073B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102668605A (zh) * | 2010-03-02 | 2012-09-12 | 英派尔科技开发有限公司 | 在增强现实中跟踪对象 |
WO2011149159A1 (ko) * | 2010-05-27 | 2011-12-01 | 한국항공대학교산학협력단 | 증강현실을 위한 실시간 마커리스 3차원 객체추적 시스템 및 그 방법 |
CN102332095A (zh) * | 2011-10-28 | 2012-01-25 | 中国科学院计算技术研究所 | 一种人脸运动跟踪方法和系统以及一种增强现实方法 |
CN102646275A (zh) * | 2012-02-22 | 2012-08-22 | 西安华旅电子科技有限公司 | 通过跟踪和定位算法实现虚拟三维叠加的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103871073A (zh) | 2014-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103871073B (zh) | 一种基于增强现实的目标跟踪方法、设备及系统 | |
CN108970113B (zh) | 一种碰撞检测方法、装置、设备及介质 | |
CN110189246B (zh) | 图像风格化生成方法、装置及电子设备 | |
CN104253929B (zh) | 视频降噪方法及其系统 | |
CN110298306B (zh) | 目标对象运动信息的确定方法、装置及设备 | |
CN107563974B (zh) | 图像去噪方法、装置、电子设备及存储介质 | |
CN109840491A (zh) | 视频流播放方法、系统、计算机装置及可读存储介质 | |
WO2014187108A1 (zh) | 服务器、客户端及视频处理方法 | |
CN109040587A (zh) | 抓拍处理方法、装置、抓拍机构、设备及存储介质 | |
CN107123077B (zh) | 对象的渲染方法和装置 | |
CN109783680B (zh) | 图像推送方法、图像获取方法、装置及图像处理系统 | |
CN109697393A (zh) | 人物跟踪方法、装置、电子装置及计算机可读介质 | |
CN107659505B (zh) | 一种sdn网络的选路方法和sdn控制器 | |
CN109559336A (zh) | 对象追踪方法、装置及存储介质 | |
CN113554726A (zh) | 基于脉冲阵列的图像重构方法、装置、存储介质及终端 | |
CN112528811A (zh) | 行为识别方法和装置 | |
CN108595211A (zh) | 用于输出数据的方法和装置 | |
CN108769684A (zh) | 基于WebP图像压缩算法的图像处理方法以及装置 | |
CN106488402B (zh) | 地盘点呈现方法及相关设备 | |
CN104424485A (zh) | 一种基于图像识别来获取特定信息的方法与装置 | |
CN110536087A (zh) | 电子设备及其运动轨迹照片合成方法、装置和嵌入式装置 | |
CN104978583A (zh) | 人物动作的识别方法及装置 | |
CN106303153B (zh) | 一种图像处理方法及装置 | |
CN108921773A (zh) | 人体跟踪处理方法、装置、设备及系统 | |
CN106375700A (zh) | 一种视频传输的方法及移动终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |