一种现实场景关键帧的确定方法、装置、介质及设备与流程

文档序号:12306010阅读:270来源:国知局
一种现实场景关键帧的确定方法、装置、介质及设备与流程

本发明涉及视频图像处理技术领域,尤其涉及一种现实场景关键帧的确定方法、装置、介质及设备。



背景技术:

目前,构建ar(augmentedreality,增强现实)场景的方式为:

利用摄像机在已设置ar卡片的特定场景中采集图像,并直接将采集到的图像确定为现实场景的关键帧并存入现实场景对应的场景地图,从而构建得到现实场景;将虚拟场景叠加到构建得到的现实场景中,进而构建得到ar场景。

其中,需要在特定场景中进行现实场景关键帧的采集,并将采集到特定场景的图像直接作为现实场景的关键帧,如果在特定场景之外,则无法确定现实场景关键帧,进而无法构建得到现实场景。因此,现有技术中缺乏一种改进的现实场景关键帧的确定方法,从而能够在不受特定场景限制的情况下,确定现实场景的关键帧,进而构建得到现实场景。



技术实现要素:

本发明提供一种现实场景关键帧的确定方法、装置、介质及设备,用于解决现有技术中如果在特定场景之外,无法确定现实场景关键帧,进而无法构建得到现实场景的问题。

第一方面,本发明实施例提供一种现实场景关键帧的确定方法,包括:

对当前视频帧的特征点与参考视频帧的特征点进行特征匹配,得到匹配后的特征点对,所述参考视频帧为现实场景中的视频帧且所述参考视频帧与所述当前视频帧的采集时间不同;

按照预设筛选算法,从所述匹配后的特征点对中筛选出相似度超过第一阈值的特征点对;

根据筛选出的特征点对的个数,确定所述当前视频帧为所述现实场景的关键帧并将所述关键帧存入所述现实场景所对应的场景地图,所述场景地图仅用于存储所述现实场景的关键帧。

可选地,所述方法中,确定所述当前视频帧为所述现实场景的关键帧,具体包括:

若筛选出的特征点对的个数与匹配后特征点对的个数的比值小于第二阈值,并且,筛选出的特征点对的个数大于第三阈值,则确定所述当前视频帧为所述现实场景的关键帧。

可选地,所述方法,还包括:

若筛选出的特征点对的个数与匹配后特征点对的个数的比值不小于第二阈值,或者,筛选出的特征点对的个数不大于第三阈值,则判断当前视频帧的采集时间与所述参考视频帧的采集时间的时间差是否超过第四阈值,其中,所述参考视频帧为所述场景地图之外的视频帧,并且,所述参考视频帧的采集时间早于所述当前视频帧的采集时间;

若所述时间差超过所述第四阈值,将所述当前视频帧更新为参考视频帧,以及将最新采集到的视频帧更新为当前视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤;

若所述时间差未超过所述第四阈值,将最新采集到的视频帧更新为当前视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤。

可选地,所述方法,进一步包括:

确定所述当前视频帧为所述现实场景的关键帧的同时,确定所述参考视频帧为所述现实场景的关键帧并存入所述场景地图。

可选地,所述方法,还包括:

若筛选出的特征点对的个数与匹配后的特征点对的个数的比值不小于第二阈值,或者,筛选出的特征点对的个数不大于第三阈值,则判断当前视频帧的采集时间与参考视频帧的采集时间的时间差是否超过第五阈值,其中,所述参考视频帧为所述场景地图中的关键帧,并且,所述参考视频帧的采集时间早于所述当前视频帧的采集时间;

若所述时间差未超过所述第五阈值,从所述场景地图中所述参考视频帧之外的关键帧中提取指定关键帧作为新的参考视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤,其中,所述指定关键帧为采集时间与所述参考视频帧的采集时间的时间差最小的关键帧。

可选地,所述方法,还包括:

若所述时间差超过所述第五阈值,将所述场景地图中与所述当前视频帧的相似度最高的关键帧作为新的参考视频帧,并执行对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤。

可选地,所述方法,还包括:

确定所述场景地图中参与优化的关键帧;

根据参与优化的关键帧,对所述场景地图进行优化。

可选地,所述方法中,确定所述场景地图中参与优化的关键帧,具体包括:

将存入所述场景地图的时间距离当前时间最近的关键帧,作为预设关键帧;

确定所述预设关键帧与第一关键帧集合中各个关键帧的相似度,其中,所述第一关键帧集合为所述场景地图中所述预设关键帧之外的关键帧;

从所述第一关键帧集合中提取与所述预设关键帧的相似度超过预设相似度阈值的关键帧,组成第二关键帧集合;

从所述第一关键帧集合中提取不属于所述第二关键帧集合的关键帧,组成第三关键帧集合;

从所述第三关键帧集合中提取与所述第二关键帧集合中的关键帧具有相同特征点的关键帧,组成第四关键帧集合;

将所述预设关键帧,第二关键帧集合中的关键帧以及第四关键帧集合中的关键帧作为参与优化的关键帧。

可选地,所述方法中,确定所述场景地图中参与优化的关键帧,具体包括:

若达到预设优化周期,或者,在上次优化后存入所述场景地图的关键帧的个数达到设定数目,则将所述场景地图中的所有关键帧作为参与优化的关键帧。

可选地,所述方法中,确定所述场景地图中参与优化的关键帧,具体包括:

针对在第一时间段内存入所述场景地图的每个关键帧,确定该关键帧与第一时间段外存入所述场景地图的关键帧的相似度;

将与该关键帧的相似度最高的关键帧,作为该关键帧对应的相似关键帧;

若在第一时间段内存入所述场景地图的每个关键帧对应的相似关键帧为同一关键帧,则确定该相似关键帧的采集时间与所述第一时间段的开始时间对应的第二时间段,其中,所述第一时间段的开始时间晚于所述相似关键帧的采集时间;

将在所述第二时间段内存入所述场景地图的关键帧作为参与优化的关键帧。

可选地,所述方法中,采用如下方式确定任意两帧视频帧的相似度:

确定第一视频帧的每个特征点对应的描述子;

利用确定的所述场景地图对应的词汇树,确定各个所述描述子对应的关键帧;

将各个所述描述子对应的关键帧中,第二视频帧的出现次数作为第一视频帧和第二视频帧的相似度,其中,所述任意两帧视频帧包括第一视频帧和第二视频帧。

可选地,所述方法中,采用如下方式确定所述场景地图对应的词汇树:

针对存入所述场景地图的每个关键帧的每个特征点,分别执行以下步骤,得到所述场景地图对应的词汇树:

针对该特征点对应的描述子中的每个特征向量,将该特征向量映射到二叉树的对应层;

根据该特征向量中第一类元素的平方和与第二类元素的平方和的大小,确定该特征向量在该层对应的节点相对于上层节点的位置。

可选地,所述方法中,根据该特征向量中第一类元素的平方和与第二类元素的平方和的大小,确定该特征向量在该层对应的节点相对于上层节点的位置,具体包括:

若第一类元素的平方和大于第二类元素的平方和,确定该特征向量在该层对应的节点为上层节点的左分支;

若第一类元素的平方和不大于第二类元素的平方和,确定该特征向量在该层对应的节点为上层节点的右分支。

可选地,所述方法中,确定各个所述描述子对应的关键帧,具体包括:

针对每个描述子,确定该描述子在所述词汇树中对应的叶子节点,所述词汇树中每个叶子节点对应至少一个关键帧;

将确定的叶子节点对应的关键帧作为该描述子对应的关键帧。

可选地,所述方法中,采用如下方式确定任一视频帧的特征点:

建立所述任一视频帧对应的三层图像金字塔,其中,所述任一视频帧位于所述三层图像金字塔的第二层,所述任一视频帧的降采样图像位于所述三层图像金字塔的第一层,所述任一视频帧的插值图像位于所述三层图像金字塔的第三层;

将所述任一视频帧中,满足极大值抑制条件的像素点作为候选特征点;

针对每个候选特征点,确定所述降采样图像中与该候选特征点对应的第一像素点以及所述插值图像中与该候选特征点对应的第二像素点;

按照预设邻域选取规则,分别选取该候选特征点在所述任一视频帧中的第一邻域、所述第一像素点在所述降采样图像中的第二邻域以及所述第二像素点在所述插值图像中的第三邻域;

根据所述第一邻域、所述第二邻域以及所述第三邻域中像素点的灰度值,确定该候选特征点为所述任一视频帧的特征点。

可选地,所述方法中,确定该候选特征点为所述任一视频帧的特征点,具体包括:

计算所述第一邻域所包含的各个像素点的灰度值与该候选特征点的灰度值的差值的绝对值之和,作为第一和值;

计算所述第二邻域所包含的各个像素点的灰度值与所述第一像素点的灰度值的差值的绝对值之和,作为第二和值;以及

计算所述第三邻域所包含的各个像素点的灰度值与所述第二像素点的灰度值的差值的绝对值之和,作为第三和值;

若所述第一和值、所述第二和值与所述第三和值之和大于预设灰度阈值,则将该候选特征点作为所述任一视频帧的特征点。

第二方面,本发明实施例提供一种现实场景关键帧的确定装置,包括:

匹配模块,用于对当前视频帧的特征点与参考视频帧的特征点进行特征匹配,得到匹配后的特征点对,所述参考视频帧为现实场景中的视频帧且所述参考视频帧与所述当前视频帧的采集时间不同;

筛选模块,用于按照预设筛选算法,从所述匹配后的特征点对中筛选出相似度超过第一阈值的特征点对;

第一确定模块,用于根据筛选出的特征点对的个数,确定所述当前视频帧为所述现实场景的关键帧并将所述关键帧存入所述现实场景所对应的场景地图,所述场景地图仅用于存储所述现实场景的关键帧。

可选地,所述装置中,所述第一确定模块具体用于:

若筛选出的特征点对的个数与匹配后特征点对的个数的比值小于第二阈值,并且,筛选出的特征点对的个数大于第三阈值,则确定所述当前视频帧为所述现实场景的关键帧。

可选地,所述装置中,所述第一确定模块还用于:

若筛选出的特征点对的个数与匹配后特征点对的个数的比值不小于第二阈值,或者,筛选出的特征点对的个数不大于第三阈值,则判断当前视频帧的采集时间与所述参考视频帧的采集时间的时间差是否超过第四阈值,其中,所述参考视频帧为所述场景地图之外的视频帧,并且,所述参考视频帧的采集时间早于所述当前视频帧的采集时间;

若所述时间差超过所述第四阈值,将所述当前视频帧更新为参考视频帧,以及将最新采集到的视频帧更新为当前视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤;

若所述时间差未超过所述第四阈值,将最新采集到的视频帧更新为当前视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤。

可选地,所述装置中,所述第一确定模块进一步用于:

确定所述当前视频帧为所述现实场景的关键帧的同时,确定所述参考视频帧为所述现实场景的关键帧并存入所述场景地图。

可选地,所述装置中,所述第一确定模块还用于:

若筛选出的特征点对的个数与匹配后的特征点对的个数的比值不小于第二阈值,或者,筛选出的特征点对的个数不大于第三阈值,则判断当前视频帧的采集时间与参考视频帧的采集时间的时间差是否超过第五阈值,其中,所述参考视频帧为所述场景地图中的关键帧,并且,所述参考视频帧的采集时间早于所述当前视频帧的采集时间;

若所述时间差未超过所述第五阈值,从所述场景地图中所述参考视频帧之外的关键帧中提取指定关键帧作为新的参考视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤,其中,所述指定关键帧为采集时间与所述参考视频帧的采集时间的时间差最小的关键帧。

可选地,所述装置中,所述第一确定模块还用于:

若所述时间差超过所述第五阈值,将所述场景地图中与所述当前视频帧的相似度最高的关键帧作为新的参考视频帧,并执行对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤。

可选地,所述装置,还包括:优化模块,其中,

所述第一确定模块,还用于确定所述场景地图中参与优化的关键帧;

所述优化模块,用于根据参与优化的关键帧,对所述场景地图进行优化。

可选地,所述装置中,所述第一确定模块具体用于:

将存入所述场景地图的时间距离当前时间最近的关键帧,作为预设关键帧;

确定所述预设关键帧与第一关键帧集合中各个关键帧的相似度,其中,所述第一关键帧集合为所述场景地图中所述预设关键帧之外的关键帧;

从所述第一关键帧集合中提取与所述预设关键帧的相似度超过预设相似度阈值的关键帧,组成第二关键帧集合;

从所述第一关键帧集合中提取不属于所述第二关键帧集合的关键帧,组成第三关键帧集合;

从所述第三关键帧集合中提取与所述第二关键帧集合中的关键帧具有相同特征点的关键帧,组成第四关键帧集合;

将所述预设关键帧,第二关键帧集合中的关键帧以及第四关键帧集合中的关键帧作为参与优化的关键帧。

可选地,所述装置中,所述第一确定模块具体用于:

若达到预设优化周期,或者,在上次优化后存入所述场景地图的关键帧的个数达到设定数目,则将所述场景地图中的所有关键帧作为参与优化的关键帧。

可选地,所述装置中,所述第一确定模块具体用于:

针对在第一时间段内存入所述场景地图的每个关键帧,确定该关键帧与第一时间段外存入所述场景地图的关键帧的相似度;

将与该关键帧的相似度最高的关键帧,作为该关键帧对应的相似关键帧;

若在第一时间段内存入所述场景地图的每个关键帧对应的相似关键帧为同一关键帧,则确定该相似关键帧的采集时间与所述第一时间段的开始时间对应的第二时间段,其中,所述第一时间段的开始时间晚于所述相似关键帧的采集时间;

将在所述第二时间段内存入所述场景地图的关键帧作为参与优化的关键帧。

可选地,所述装置中,所述第一确定模块用于采用如下方式确定任意两帧视频帧的相似度:

确定第一视频帧的每个特征点对应的描述子;

利用确定的所述场景地图对应的词汇树,确定各个所述描述子对应的关键帧;

将各个所述描述子对应的关键帧中,第二视频帧的出现次数作为第一视频帧和第二视频帧的相似度,其中,所述任意两帧视频帧包括第一视频帧和第二视频帧。

可选地,所述装置中,所述第一确定模块用于采用如下方式确定所述场景地图对应的词汇树:

针对存入所述场景地图的每个关键帧的每个特征点,分别执行以下步骤,得到所述场景地图对应的词汇树:

针对该特征点对应的描述子中的每个特征向量,将该特征向量映射到二叉树的对应层;

根据该特征向量中第一类元素的平方和与第二类元素的平方和的大小,确定该特征向量在该层对应的节点相对于上层节点的位置。

可选地,所述装置中,所述第一确定模块用于采用如下方式根据该特征向量中第一类元素的平方和与第二类元素的平方和的大小,确定该特征向量在该层对应的节点相对于上层节点的位置:

若第一类元素的平方和大于第二类元素的平方和,确定该特征向量在该层对应的节点为上层节点的左分支;

若第一类元素的平方和不大于第二类元素的平方和,确定该特征向量在该层对应的节点为上层节点的右分支。

可选地,所述装置中,所述第一确定模块用于采用如下方式确定各个所述描述子对应的关键帧:

针对每个描述子,确定该描述子在所述词汇树中对应的叶子节点,所述词汇树中每个叶子节点对应至少一个关键帧;

将确定的叶子节点对应的关键帧作为该描述子对应的关键帧。

可选地,所述装置,还包括:第二确定模块,用于采用如下方式确定任一视频帧的特征点:

建立所述任一视频帧对应的三层图像金字塔,其中,所述任一视频帧位于所述三层图像金字塔的第二层,所述任一视频帧的降采样图像位于所述三层图像金字塔的第一层,所述任一视频帧的插值图像位于所述三层图像金字塔的第三层;

将所述任一视频帧中,满足极大值抑制条件的像素点作为候选特征点;

针对每个候选特征点,确定所述降采样图像中与该候选特征点对应的第一像素点以及所述插值图像中与该候选特征点对应的第二像素点;

按照预设邻域选取规则,分别选取该候选特征点在所述任一视频帧中的第一邻域、所述第一像素点在所述降采样图像中的第二邻域以及所述第二像素点在所述插值图像中的第三邻域;

根据所述第一邻域、所述第二邻域以及所述第三邻域中像素点的灰度值,确定该候选特征点为所述任一视频帧的特征点。

可选地,所述装置中,所述第二确定模块用于采用如下方式确定该候选特征点为所述任一视频帧的特征点:

计算所述第一邻域所包含的各个像素点的灰度值与该候选特征点的灰度值的差值的绝对值之和,作为第一和值;

计算所述第二邻域所包含的各个像素点的灰度值与所述第一像素点的灰度值的差值的绝对值之和,作为第二和值;以及

计算所述第三邻域所包含的各个像素点的灰度值与所述第二像素点的灰度值的差值的绝对值之和,作为第三和值;

若所述第一和值、所述第二和值与所述第三和值之和大于预设灰度阈值,则将该候选特征点作为所述任一视频帧的特征点。

第三方面,本发明实施例提供一种非易失性计算机存储介质,所述计算机存储介质存储有可执行程序,该可执行程序被处理器执行实现上述任一方法实施例的步骤。

第四方面,本发明实施例提供一种现实场景关键帧的确定设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述程序时实现上述任一方法实施例的步骤。

利用本发明实施例提供的现实场景关键帧的确定方法、装置、介质及设备,具有以下有益效果:通过将当前采集到的视频帧与参考视频帧进行比对,在当前采集到的视频帧与参考视频帧中相似的特征点较多的情况下,将当前采集到是视频帧确定为现实场景的关键帧,即,场景中无需布置ar卡片,即可确定现实场景中的关键帧,从而能够在不受特定场景限制的情况下,确定现实场景的关键帧,从而构建得到较准确可靠的现实场景。

附图说明

图1为本发明实施例一提供的现实场景关键帧的确定方法流程示意图;

图2为本发明实施例一提供的一种确定当前视频帧为现实场景的关键帧方法流程示意图;

图3为本发明实施例一提供的另一种确定当前视频帧为现实场景的关键帧方法流程示意图;

图4为本发明实施例一提供的确定任意两帧视频帧的相似度的方法流程示意图;

图5为本发明实施例一提供的确定场景地图对应的词汇树的方法流程示意图;

图6为本发明实施例一提供的确定该特征向量在该层对应的节点相对于上层节点的位置的方法流程示意图;

图7为本发明实施例一提供的对场景地图进行优化的方法流程示意图;

图8为本发明实施例一提供的第一种确定场景地图中参与优化的关键帧的方法流程示意图;

图9为本发明实施例一提供的第三种确定场景地图中参与优化的关键帧的方法流程示意图;

图10为本发明实施例一提供的确定任一视频帧的特征点的方法流程示意图;

图11为本发明实施例一提供的确定该候选特征点为任一视频帧的特征点的方法流程示意图;

图12为本发明实施例一提供的确定该特征点的描述子的方法流程示意图;

图13为本发明实施例二提供的现实场景关键帧的确定装置的结构示意图;

图14为本发明实施例三提供的现实场景关键帧的确定设备的硬件结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明可能的实施方式作进一步描述。

实施例一

本发明实施例提供一种现实场景关键帧的确定方法,如图1所示,包括:

步骤101,对当前视频帧的特征点与参考视频帧的特征点进行特征匹配,得到匹配后的特征点对,所述参考视频帧为现实场景中的视频帧且所述参考视频帧与所述当前视频帧的采集时间不同。

具体实施时,可采用现有的特征点检测提取算法,预先确定当前视频帧中的特征点以及参考视频帧的特征点。特征点确定后,根据特征点匹配算法对当前视频帧中的特征点以及参考视频帧中的特征点进行特征匹配,将两帧视频帧中相匹配的两个特征点组成一个特征点对。其中,一个特征点对中的两个特征点为真实世界中同一空间点在不同视角下拍摄的不同的2d投影,即,实际上这两个特征点对应同一个3d点,这两个特征点周边的颜色、纹理以及形状通常具有一致性。因此,一个特征点对中的两个特征点具有在颜色、纹理以及形状上具有共同的特征,即,颜色相近、纹理相似、形状相似。

其中,参考视频帧可以为在当前视频帧之前采集到的现实场景中的任一视频帧,或者,也可以为现实场景对应的场景地图中的任一关键帧,这里不做限定。

步骤102,按照预设筛选算法,从所述匹配后的特征点对中筛选出相似度超过第一阈值的特征点对。

其中,预设筛选算法可以为随机采样一致方法(ransac)或其它筛选算法,这里不做限定。具体的,每个特征点对中的两个特征点具有一定相似度,本步骤中,针对匹配后的特征点对中的每个特征点对,若该特征点对中两个特征点的相似度超过第一阈值,则将该特征点筛选出来,第一阈值的大小可根据实际应用场景设定,这里不做限定。

步骤103,根据筛选出的特征点对的个数,确定所述当前视频帧为所述现实场景的关键帧并将所述关键帧存入所述现实场景所对应的场景地图,所述场景地图仅用于存储所述现实场景的关键帧。

具体实施时,可在筛选出的特征点对的个数大于预设个数阈值的情况下,将当前视频帧确定为现实场景的关键帧,并存入现实场景对应的场景地图,其中,场景地图用于存储现实场景的关键帧,具体存储每个关键帧以及关键帧中2d特征点、3d特征点的对应关系,进一步地,场景地图中还可包括3d特征点的位姿以及在真实世界坐标系中的坐标。其中,现实场景所对应的场景地图仅用于存储该现实场景的关键帧,现实场景的关键帧用于构建现实场景。

本发明实施例,通过将当前采集到的视频帧与参考视频帧进行比对,在当前采集到的视频帧与参考视频帧中相似的特征点较多的情况下,将当前采集到是视频帧确定为现实场景的关键帧,即,场景中无需布置ar卡片,即可确定现实场景中的关键帧,从而能够在不受特定场景限制的情况下,确定现实场景的关键帧,从而构建得到较准确可靠的现实场景。利用本发明实施例,可构建任意现实场景,比如:当用户处于某咖啡厅时,可实时利用本发明实施例提供的现实场景关键帧的确定方法,确定该咖啡厅场景中的关键帧,从而构建得到该咖啡厅对应的现实场景。

需要说明的是,在构建现实场景的不同阶段,都需要确定现实场景的关键帧,本发明实施例提供的现实场景关键帧的确定方法,可应用于构建现实场景的不同阶段,构建现实场景的不同阶段可分为:现实场景预构建阶段、现实场景扩展阶段以及现实场景丢失重定位阶段,其中,现实场景预构建阶段,即构建现实场景的初始状态阶段,此时现实场景对应的场景地图中未存入关键帧;现实场景扩展阶段,即在场景预构建阶段后,进一步增加场景地图中现实场景关键帧的阶段,此时,现实场景对应的场景地图中已存入关键帧;现实场景丢失重定位阶段,即在现实场景扩展阶段,可能出现现实场景丢失的情况,此时进入现实场景丢失重定阶段,从而重定位出丢失的现实场景。

可选地,采用如下方式确定所述当前视频帧为所述现实场景的关键帧:

若筛选出的特征点对的个数与匹配后特征点对的个数的比值小于第二阈值,并且,筛选出的特征点对的个数大于第三阈值,则确定所述当前视频帧为所述现实场景的关键帧。

其中,第二阈值以及第三阈值的大小可根据实际情况设定,这里不做限定。

具体实施时,在现实场景预构建阶段进行现实场景关键帧的确定时所采用的第二阈值、在现实场景扩展阶段进行现实场景关键帧的确定时所采用的第二阈值以及在现实场景丢失重定位阶段进行现实场景关键帧的确定时所采用的第二阈值,可以相同也可以不同;在现实场景预构建阶段进行现实场景关键帧的确定时所采用的第三阈值、在现实场景扩展阶段进行现实场景关键帧的确定时所采用的第三阈值以及在现实场景丢失重定位阶段进行现实场景关键帧的确定时所采用的第三阈值,可以相同也可以不同。

优选地,现实场景预构建阶段的第二阈值大于现实场景扩展阶段的第二阈值,现实场景扩展阶段的第二阈值与现实场景丢失重定位阶段的第二阈值相同,现实场景预构建阶段的第三阈值大于现实场景扩展阶段下的第三阈值,现实场景扩展阶段的第三阈值与现实场景丢失重定位阶段的第三阈值相同。比如,现实场景预构建阶段的第二阈值为0.9,现实场景扩展阶段以及现实场景丢失重定位阶段的第二阈值均为0.7,现实场景预构建阶段的第三阈值为100,现实场景扩展阶段以及现实场景丢失重定位阶段的第三阈值均为50。

具体实施时,若参考视频帧为场景地图之外的视频帧,则确定当前视频帧为现实场景的关键帧的同时,确定所述参考视频帧为所述现实场景的关键帧并存入所述场景地图。

本发明实施例仅为一种可选实施方式,也可在选出的特征点对的个数与匹配后特征点对的个数的比值小于第二阈值时,确定所述当前视频帧为所述现实场景的关键帧,或者,在筛选出的特征点对的个数大于第三阈值时,确定所述当前视频帧为所述现实场景的关键帧。

可选地,如图2所示,在所述参考视频帧为所述场景地图之外的视频帧时,若筛选出的特征点对的个数与匹配后特征点对的个数的比值不小于第二阈值,或者,筛选出的特征点对的个数不大于第三阈值,则执行以下步骤:

步骤201,判断当前视频帧的采集时间与所述参考视频帧的采集时间的时间差是否超过第四阈值,如果是,执行步骤202,否则,执行步骤203。

具体实施时,所述参考视频帧为所述场景地图之外的视频帧,并且,所述参考视频帧的采集时间早于所述当前视频帧的采集时间,其中,参考视频帧为现实场景中的视频帧且为现实场景对应的场景地图之外的视频帧,即此时的参考视频帧为在当前视频帧之前采集的现实场景中的任一视频帧,并未采用本发明实施例提供的现实场景关键帧的确定方法确定该任一视频帧是否为现实场景的关键帧。第四阈值的大小可根据实际应用场景设定这里不做限定,比如,第四阈值可以为1s。

需要说明的是,在现实场景预构建阶段,所述参考视频帧为所述场景地图之外的视频帧。

步骤202,将所述当前视频帧更新为参考视频帧,以及将最新采集到的视频帧更新为当前视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤。

本步骤中,在当前视频帧的采集时间与参考视频帧的采集时间的时间差较大时,将当前视频帧作为新的参考视频帧,并将摄像机最新采集到的视频帧更新为当前视频帧,并转入步骤101。

步骤203,将最新采集到的视频帧更新为当前视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤。

本步骤中,在当前视频帧的采集时间与参考视频帧的采集时间的时间差较小时,将当前视频帧丢弃,并将摄像机最新采集到的视频帧更新为当前视频帧,并转入步骤101。

本发明实施例,在筛选出的特征点对的个数与匹配后特征点对的个数的比值不小于第二阈值,或者,筛选出的特征点对的个数不大于第三阈值的情况下,重新确定参考视频帧以及当前视频帧,并重新进行现实场景关键帧的确定。

可选地,现实场景对应的场景地图未存入关键帧的情况下,实施图2提供的实施例。

可选地,如图3所示,在所述参考视频帧为所述场景地图中的关键帧时,若筛选出的特征点对的个数与匹配后特征点对的个数的比值不小于第二阈值,或者,筛选出的特征点对的个数不大于第三阈值,则执行以下步骤:

步骤301,判断当前视频帧的采集时间与参考视频帧的采集时间的时间差是否超过第五阈值,如果是,执行步骤303,否则,执行步骤302。

具体实施时,所述参考视频帧为所述场景地图中的关键帧,并且,所述参考视频帧的采集时间早于所述当前视频帧的采集时间,其中,参考视频帧为现实场景的关键帧。第五阈值的大小可根据实际情况设定,比如第五阈值等于3s。

可选地,在当前视频帧的采集时间与参考视频帧的采集时间的时间差未超过第五阈值的情况下,执行步骤302,在当前视频帧的采集时间与参考视频帧的采集时间的时间差超过第五阈值的情况下,执行步骤303。在实际应用场景中,在当前视频帧的采集时间与参考视频帧的采集时间的时间差超过第五阈值的情况下也可不执行步骤303,而执行确定现实场景丢失,并发送用于提示用户现实场景丢失的信息的步骤。

步骤302,从所述场景地图中所述参考视频帧之外的关键帧中提取指定关键帧作为新的参考视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤,其中,所述指定关键帧为采集时间与所述参考视频帧的采集时间的时间差最小的关键帧。

具体实施时,针对场景地图中参考关键帧之外的每个关键帧,确定该关键帧的采集时间与参考视频帧的采集时间的时间差,从而得到各个关键帧的采集时间与参考视频帧的采集时间的时间差,并确定其中最小时间差对应的关键帧为新的参考视频帧,并转入步骤101。

需要说明的是,本步骤可应用于现实场景扩展阶段,此时在现实场景扩展结果,场景地图中已存入关键帧,并且参考视频帧为场景地图中的关键帧。

步骤302仅为一种可能的实施方式,步骤302的实施方式还可以为:将最新采集到的视频帧更新为当前视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤。

步骤303,将所述场景地图中与所述当前视频帧的相似度最高的关键帧作为新的参考视频帧,并执行对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤。

具体实施时,计算场景地图中每个关键帧与当前视频帧的相似度,并确定与当前视频帧的相似度最高的关键帧为新的参考视频帧。当前视频帧的采集时间与参考视频帧的采集时间的时间差超过第五阈值的情况,可理解为现实场景丢失,此时,进一步执行步骤303,达到现实场景重定位的目的。

需要说明的是,本步骤可应用于现实场景丢失重定位阶段,此时,场景地图中已存入关键帧,并且参考视频帧为场景地图中的关键帧。具体的,在当前视频帧的采集时间与参考视频帧的采集时间的时间差超过第五阈值的情况下,确定现实场景丢失,需要进入现实场景丢失重定位阶段,即执行步骤303。

当然,步骤303也可以应用于现实场景扩展阶段,这里不做限定。

本发明实施例,在筛选出的特征点对的个数与匹配后特征点对的个数的比值不小于第二阈值,或者,筛选出的特征点对的个数不大于第三阈值的情况下,重新确定参考视频帧以及当前视频帧,并重新进行现实场景关键帧的确定。

可选地,采用如下方式确定任意两帧视频帧的相似度,如图4所示,包括:

步骤401,确定第一视频帧的每个特征点对应的描述子。

其中,任意两帧视频帧包括第一视频帧和第二视频帧。描述子为m*m的特征向量矩阵,即该矩阵中包括m的平方个特征向量,每个特征向量中包含多个特征值,本发明实施例中将特征值称为元素,每个特征向量所包含的特征值个数可根据实际应用场景设定,这里不做限定。具体实施时,可采用sift算法确定每个特征点对应的描述子。

步骤402,利用确定的所述场景地图对应的词汇树,确定各个所述描述子对应的关键帧。

具体实施时,词汇树的形式优选为二叉树形式,词汇树的叶子节点对应至少一个关键帧,可通过确定描述子对应的叶子节点,确定描述子对应的关键帧,可采用以下方式确定各个所述描述子对应的关键帧:针对每个描述子,确定该描述子在所述词汇树中对应的叶子节点,所述词汇树中每个叶子节点对应至少一个关键帧;将确定的叶子节点对应的关键帧作为该描述子对应的关键帧。

步骤403,将各个所述描述子对应的关键帧中,第二视频帧的出现次数作为第一视频帧和第二视频帧的相似度。

具体实施时,一个描述子可能对应多个关键帧,在确定各个描述子对应的关键帧后,统计第二视频帧在各个描述子对应的关键帧中的出现次数,作为第一视频帧和第二视频帧的相似度。

本发明实施例,使用词汇树确定两个视频帧的相似度的运算速度较快,相应地,利用本发明实施例,能够提高从多个关键帧中提取与同一视频帧相似度较高的关键帧的速度,尤其是在关键帧数量较多的情况下,能够满足实时性需求。现有的将多个关键帧逐个与同一视频帧比较,得到与该视频帧相似的关键帧的方式,运算速度较慢,尤其是在关键帧数量较多的情况下,无法满足实时性需求。

可选地,采用如下方式确定所述场景地图对应的词汇树:

如图5所示,针对存入所述场景地图的每个关键帧的每个特征点,分别执行以下步骤,得到所述场景地图对应的词汇树:

步骤501,针对该特征点对应的描述子中的每个特征向量,将该特征向量映射到二叉树的对应层。

具体实施时,在场景地图存入关键帧之前,生成一个n层的空二叉树,n等于上述特征向量矩阵中特征向量的个数,即等于m的平方,将特征点对应的描述子的每个特征向量映射到二叉树的不同层,具体的映射方式可以为将特征向量矩阵中第一行第一列对应的特征向量映射到第一层,第一行第二列对应的特征向量映射到第二层,以此类推,也可为其它映射方式,只要保证各个描述子的映射方式相同即可。

步骤502,根据该特征向量中第一类元素的平方和与第二类元素的平方和的大小,确定该特征向量在该层对应的节点相对于上层节点的位置。

具体实施时,将特征向量中包括的元素分为两类,比如该特征向量中的前x个元素划分为第一类,剩余元素划分为第二类,从而根据第一类元素的平方和与第二类元素的平方和的大小,确定该特征向量在二叉树的对应层对应的节点相对于上一层节点的位置,即,确定该特征向量在二叉树的对应层对应的节点为上一层节点的左分支还是右分支。

可选地,根据该特征向量中第一类元素的平方和与第二类元素的平方和的大小,确定该特征向量在该层对应的节点相对于上层节点的位置,如图6所述,具体包括:

步骤601,判断第一类元素的平方和是否大于第二类元素的平方和,若是,执行步骤602,否则,执行步骤603。

步骤602,确定该特征向量在该层对应的节点为上层节点的左分支。

步骤603,确定该特征向量在该层对应的节点为上层节点的右分支。

本发明实施例仅为一种实施方式,也可在第一类元素的平方和不大于第二类元素的平方和的情况下,执行步骤602,在第一类元素的平方和大于第二类元素的平方和的情况下,执行步骤603,这里不做限定。

可选地,本发明实施例还包括现实场景优化过程,即在得到现实场景对应的场景地图后,对场景地图进行优化,具体优化方式如图7所示,包括:

步骤701,确定所述场景地图中参与优化的关键帧。

具体实施时,可将场景地图中所有的关键帧作为参与优化的关键帧,也可将场景地图中在指定时间段内的关键帧作为参与优化的关键帧,这里不做限定。

步骤702,根据参与优化的关键帧,对所述场景地图进行优化。

具体实施时,可利用图优化理论对场景地图对场景地图进行优化,具体的图优化理论的实施过程为现有过程,这里不做赘述。

可选地,作为第一种实施方式,确定所述场景地图中参与优化的关键帧,如图8所示,具体包括:

步骤801,将存入所述场景地图的时间距离当前时间最近的关键帧,作为预设关键帧。

具体实施时,将最近存入场景地图的关键帧作为预设关键帧。

步骤802,确定所述预设关键帧与第一关键帧集合中各个关键帧的相似度,其中,所述第一关键帧集合为所述场景地图中所述预设关键帧之外的关键帧。

具体实施时,第一关键帧集合中的关键帧与预设关键帧的相似度的计算方式可参考上述实施例中任意两帧视频帧相似度的计算方式。第一关键帧集合中的关键帧为所述场景地图中预设关键帧之外的关键帧。

步骤803,从所述第一关键帧集合中提取与所述预设关键帧的相似度超过预设相似度阈值的关键帧,组成第二关键帧集合。

步骤804,从所述第一关键帧集合中提取不属于所述所述第二关键帧集合关键帧,组成第三关键帧集合。

其中,第三关键帧集合为第一关键帧集合中除第二关键帧集合之外的关键帧组成的集合。

步骤805,从所述第三关键帧集合中提取与所述第二关键帧集合中的关键帧具有相同特征点的关键帧,组成第四关键帧集合。

具体实施时,针对第三关键帧集合中的各个关键帧中,与第二关键帧集合中的关键帧具有同一特征点的关键帧,从而得到第四关键帧集合。

步骤806,将所述预设关键帧,第二关键帧集合中的关键帧以及第四关键帧集合中的关键帧作为参与优化的关键帧。

本发明实施例,可在确定场景地图中新加入关键帧的情况下执行。

可选地,作为第二种实施方式,确定所述场景地图中参与优化的关键帧,具体包括:

若达到预设优化周期,或者,在上次优化后存入所述场景地图的关键帧的个数达到设定数目,则将所述场景地图中的所有关键帧作为参与优化的关键帧。

具体实施,预先设置优化周期,达到优化周期时,将所述场景地图中的所有关键帧作为参与优化的关键帧,并执行场景地图优化过程,或者,监测在最近一次优化完成之后,存入场景地图的关键帧的个数,若该个数达到设定数目,则将所述场景地图中的所有关键帧作为参与优化的关键帧,并执行场景地图优化过程。

可选地,作为第三种可能的实施方式,确定所述场景地图中参与优化的关键帧,如图9所示,具体包括:

步骤901,针对在第一时间段内存入所述场景地图的每个关键帧,确定该关键帧与第一时间段外存入所述场景地图的关键帧的相似度。

具体实施时,第一时间段的开始时间点优选为当前时间,结束时间可根据实际情况进行设定,这里不做限定。优选地,第一时间段外存入所述场景地图的关键帧为在第一时间段的结束时间之前存入所述场景地图的关键帧,比如第一时间段为2017年5月12日9:00-9:05,则第一时间段外存入所述场景地图的关键帧为在2017年5月12日9:05之前存入场景地图的关键帧。其中,两个关键帧的相似度的计算方式可参考上述实施例中任意两帧视频帧相似度的计算方式。在第一时间段内存入所述场景地图的关键帧至少包括一帧。

步骤902,将与该关键帧的相似度最高的关键帧,作为该关键帧对应的相似关键帧。

具体实施时,将与在第一内存入场景地图的该关键帧的相似度最高的在第一时间段外存入所述场景地图的关键帧,作为在第一内存入场景地图的该关键帧对应的相似关键帧。

步骤903,若在第一时间段内存入所述场景地图的每个关键帧对应的相似关键帧为同一关键帧,则确定该相似关键帧的采集时间与所述第一时间段的开始时间对应的第二时间段,其中,所述第一时间段的开始时间晚于所述相似关键帧的采集时间。

具体实施时,若在第一时间段内存入场景地图的每个关键帧对应的相似关键帧均为同一关键帧,则说明出现了回环现象,此时将该相似关键帧的采集时间与第一时间段的开始时间组成第二时间段,并执行步骤904。

步骤904,将在所述第二时间段内存入所述场景地图的关键帧作为参与优化的关键帧。

本发明实施例,在现实场景确定过程中,若出现回环现象,则对现实场景对应的场景地图进行优化,从而避免场景地图中出现多帧相同的关键帧。

可选地,采用如下方式确定任一视频帧的特征点,如图10所示,包括:

步骤1001,建立所述任一视频帧对应的三层图像金字塔,其中,所述任一视频帧位于所述三层图像金字塔的第二层,所述任一视频帧的降采样图像位于所述三层图像金字塔的第一层,所述任一视频帧的插值图像位于所述三层图像金字塔的第三层。

具体的,图形金字塔的建立方式为现有技术,这里不做赘述。本发明实施例中通过建立三层图像金字塔确定视频帧的特征点,图像金字塔的层数可根据实际应用场景设定为其它值。其中,可根据现有算法提取视频帧的降采样图像和插值图像。

步骤1002,将所述任一视频帧中,满足极大值抑制条件的像素点作为候选特征点。

具体实施时,满足极大值抑制条件的像素点包括:灰度值均比相邻像素点的灰度值大的像素点,以及,灰度值均比相邻像素点的灰度值小的像素点,假设像素点p的灰度值为i(p),则与像素点p相邻的像素点为p-1和p+1,像素点为p-1的灰度值为i(p-1)和像素点为p+1的灰度值为i(p+1),像素点p满足i(p)>i(p-1)且i(p)>i(p+1),或者,满足i(p)<i(p-1)且i(p)<i(p+1)。

步骤1003,针对每个候选特征点,确定所述降采样图像中与该候选特征点对应的第一像素点以及所述插值图像中与该候选特征点对应的第二像素点。

具体实施时,将降采样图像中与该候选特征点对应的像素点作为第一像素点,将插值图像中与该候选特征点对应的像素点作为第二像素点。其中,确定降采样像以及插值图像中与特征点对应的像素点的方式为现有方式,这里不做赘述。

步骤1004,按照预设邻域选取规则,分别选取该候选特征点在所述任一视频帧中的第一邻域、所述第一像素点在所述降采样图像中的第二邻域以及所述第二像素点在所述插值图像中的第三邻域。

具体实施时,按照相同的邻域选取规则,分别选取第一邻域、第二邻域以及第三邻域,具体的,邻域选取规则可以为选取以指定像素点为中心的包括x*x个像素点的邻域,或者,将以指定像素点为圆心,以设定长度为半径的圆作为邻域。其中,指定像素点为候选特征点、第一像素点或者第二像素点。

步骤1005,根据所述第一邻域、所述第二邻域以及所述第三邻域中像素点的灰度值,确定该候选特征点为所述任一视频帧的特征点。

图10提供的确定视频帧的特征点的方式仅为一种可能的实施方式,也可采用现有的fast特征点检测算法确定视频帧的特征点,但现有的fsat特征点检测算法所确定的特征点不具备尺度不变性,图10提供的确定视频帧的特征点的方式由于采用三层图像金字塔,根据三个不同尺度的视频帧中的像素点确定视频帧的特征点,从而使得确定出的视频帧的特征点具有尺度不变性。

具体实施时,按照图11提供的内容根据所述第一邻域、所述第二邻域以及所述第三邻域中像素点的灰度值,确定该候选特征点为所述任一视频帧的特征点:

步骤1101,计算所述第一邻域所包含的各个像素点的灰度值与该候选特征点的灰度值的差值的绝对值之和,作为第一和值。

具体实施时,第一和值的计算公式如下:

其中,s1为第一和值,x1为第一邻域中的像素点,p为候选特征点,n1为第一邻域中的像素点个数,i(x1)为第一邻域中的像素点的灰度值,i(p)为候选特征点的灰度值。

步骤1102,计算所述第二邻域所包含的各个像素点的灰度值与所述第一像素点的灰度值的差值的绝对值之和,作为第二和值。

具体实施时,第二和值的计算公式如下:

其中,s2为第二和值,x2为第二邻域中的像素点,p1为第一像素点,n2为第二邻域中的像素点个数,i(x2)为第二邻域中的像素点的灰度值,i(p1)为第一像素点的灰度值。

步骤1103,计算所述第三邻域所包含的各个像素点的灰度值与所述第二像素点的灰度值的差值的绝对值之和,作为第三和值。

具体实施时,第三和值的计算公式如下:

其中,s3为第三和值,x3为第三邻域中的像素点,p2为第二像素点,n3为第三邻域中的像素点个数,i(x3)为第三邻域中的像素点的灰度值,i(p2)为第三像素点的灰度值。

步骤1104,若所述第一和值、所述第二和值与所述第三和值之和大于预设灰度阈值,则将该候选特征点作为所述任一视频帧的特征点。

具体实施时,预设灰度阈值的大小可根据实际应用场景设定,这里不做限定。其中,在s1+s2+s3大于预设灰度阈值时,将该候选特征点作为该候选特征点所属的视频帧的特征点。

具体实施时,可采用现有的sift特征描述算法实现步骤401,确定第一视频帧的每个特征点对应的描述子,也可采用以下方式确定第一视频帧的每个特征点对应的描述子,针对第一视频帧的每个特征点,按照如图12提供的内容确定该特征点的描述子:

步骤1201,确定包含该特征点的4*4区域,作为第一区域。

具体实施时,该第一区域为第一视频帧中的图像子区域,该第一区域中具有8个像素点与该特征点相邻,比如,该特征点位于该第一区域的第二行第二列时,具有8个像素点与该特征点相邻。

步骤1202,计算第一区域内的每个像素点的像素梯度的幅角和幅值。

具体的,第一区域内任一像素点(i,j)的幅值计算公式为:

其中,m(i,j)为第一视频帧中第i行第j列的像素点的幅值,l((i+1,j)为第一视频帧中第i+1行第j列的像素点的灰度值,l((i-1,j)为第一视频帧中第i-1行第j列的像素点的灰度值,l((i,j+1)为第一视频帧中第i行第j+1列的像素点的灰度值,l((i,j-1)为第一视频帧中第i行第j-1列的像素点的灰度值。

具体的,第一区域内任一像素点(i,j)的幅角计算公式为:

其中,θ(i,j)为第一视频帧中第i行第j列的像素点的幅角,l((i+1,j)为第一视频帧中第i+1行第j列的像素点的灰度值,l((i-1,j)为第一视频帧中第i-1行第j列的像素点的灰度值,l((i,j+1)为第一视频帧中第i行第j+1列的像素点的灰度值,l((i,j-1)为第一视频帧中第i行第j-1列的像素点的灰度值。

步骤1203,确定该第一区域内的每个像素点的像素梯度的幅角中,属于同一预设角度范围的幅角对应的幅值的和值,并统计得到以预设角度范围为横坐标,以幅值的和值为纵坐标的梯度直方图。

具体实施时,以10度为步长,将360度划分为36个预设角度范围,并将16个幅角中,属于同一预设角度范围的幅角对应的幅值的和值作为梯度直方图中该预设角度范围对应的柱高,其中,预设角度范围为梯度直方图的横坐标,幅值的和值为梯度直方图的纵坐标。

步骤1204,对得到的梯度直方图进行平滑处理。

具体实施时,按照以下方式进行平滑处理:

其中,t=0,1,…35,t对为预设角度范围的标识,h(-1)=h(35),h(-2)=h(34)。具体的平滑处理过程为现有过程,这里不做赘述。

步骤1205,对平滑处理后的梯度直方图中的最大峰值点进行插值拟合。

其中,最大峰值点为平滑处理后的梯度直方图中最大柱高所属的预设角度范围标识tm对应的h(tm),具体按照如下公式对h(tm)进行差值拟合:

按照如下公式计算该特征点的主方向角θ:

θ=360-10z

步骤1206,从第一视频中获取包含第一区域的18*18区域,作为第二区域。

步骤1207,将第二区域对其该特征点的主方向角,得到第二区域内每个像素点的新坐标。

具体的,针对第二区域内的任一像素点,采用如下方式算该任一像素点的新坐标:

x'=xcosθ-ysinθ

y'=xsinθ+ycosθ

其中,x和y分别为第二区域内的任一像素点的原横坐标和原纵坐标,x'和y'分别为第二区域内的任一像素点的新横坐标和新纵坐标,即,(x',y')为第二区域内的任一像素点的新坐标。

步骤1208,从主方向角对齐后的第二区域中提取包含该特征点的12*12区域,作为第三区域。

步骤1209,将第三区域划分为3*3个单元,每个单元为一个4*4的区域。

步骤1210,针对每个单元,根据该单元内每个像素点的新坐标,计算该单元内对应像素点的像素梯度的幅角和幅值。

具体的,计算幅角和幅值的公式与步骤1202中计算幅角和幅值的公式相同,本步骤计算幅角和幅值时所使用的坐标为该单元内每个像素点的新坐标。

步骤1211,对该单元进行直方图统计,得到每个角度范围对应的幅值的和值,其中,角度范围包括8个,每个角度范围对应的步长为45度。

具体实施时,确定该单元内的每个像素点的像素梯度的幅角中,属于同一角度范围的幅角对应的幅值的和值,并统计得到以角度范围为横坐标,以幅值的和值为纵坐标的梯度直方图。

具体实施时,以45度为步长,将360度划分为8个角度范围,并将16个幅角中,属于同一角度范围的幅角对应的幅值的和值作为梯度直方图中该角度范围对应的柱高,其中,角度范围为梯度直方图的横坐标,幅值的和值为梯度直方图的纵坐标。

步骤1212,将该单元对应的8个幅值的和值组成该单元对应的特征向量。

该特征向量中包括8个元素,每个元素为一个角度范围对应的幅值的和值,优选地,按照每个角度范围的起始角度由小到大的顺序,对该特征向量中的元素进行排序,即0度~45度这个角度范围对应的幅值的和值为该特征向量中的第一个元素,45度~90度这个角度范围对应的幅值的和值为该特征向量中的第二个元素,以此类推。

步骤1213,将每个单元对应的特征向量聚合为一个3*3*8的特征向量矩阵,并将该特征向量矩阵作为该特征点对应的描述子。

相比于现有技术中一般描述子的计算方式,本发明实施例,设置了合适的计算区域,从而提高了特征点对应的描述子的运算速度。

在具体实施时,采用图12提供的内容,确定每个存入场景地图的关键帧的每个特征点对应的描述子,其中,每个特征点对应的描述子为一个3*3*8的特征向量矩阵。

在得到存入场景地图的每个关键帧中每个特征点的描述子后,采用以下方式确定场景地图对应的词汇树,其中,描述子为一个3*3*8的特征向量矩阵:

针对存入场景地图的每个关键帧均执行以下步骤,从而得到场景地图对应的词汇树:

在场景地图中存入关键帧之前,生成一棵10层的空二叉树;当确定存入场景地图一个关键帧时,假设该关键帧中的每个特征点为3*3*8的特征向量矩阵描述d,实际为9个单元的特征向量描述d,其中,每个特征向量包括八个元素;将每个单元的特征向量描述对应用于二叉树一层的分类,对应关系如下:第1层:d(1,1,:),第2层:d(1,2,:),第3层:d(1,3,:),第4层:d(2,1,:),第5层:d(2,2,:),第6层:d(2,3,:),第7层:d(3,1,:),第8层:d(3,2,:),第9层:d(3,3,:);在任一层中,按以下规则进行分类:

left:d(1)2+d(2)2+d(3)2+d(4)2≤d(5)2+d(6)2+d(7)2+d(8)2

right:d(1)2+d(2)2+d(3)2+d(4)2>d(5)2+d(6)2+d(7)2+d(8)2

其中,d(1)为该任一层对应的特征向量中的第一个元素,d(2)为该任一层对应的特征向量中的第二个元素,d(3)为该任一层对应的特征向量中的第三个元素,d(4)为该任一层对应的特征向量中的第四个元素,d(5)为该任一层对应的特征向量中的第五个元素,d(6)为该任一层对应的特征向量中的第六个元素,d(7)为该任一层对应的特征向量中的第七个元素,d(8)为该任一层对应的特征向量中的第一个元素。

经过逐层分类后,得到该关键帧对应的词汇树的各个叶子节点。

需要说明的是,第1层中的特征向量为3*3*8的特征向量矩阵中第一行第一列的特征向量即(1,1,:),其中,冒号用于标识取第一行第一列特征向量的全部元素,第2层为一行第二列的特征向量即(1,2,:),以此类推。在每一层的分类中,将该层对应的特征向量的前四个元素的平方和与后四个元素的平方和进行比较,若前四个元素的平方和小于或等于后四个元素的平方,则确定该特征向量在该层对应的节点为上层节点的左分支;若前四个元素的平方和大于后四个元素的平方,则确定该特征向量在该层对应的节点为上层节点的右分支。

实施例二

第二方面,本发明实施例提供一种现实场景关键帧的确定装置,如图13所示,包括:

匹配模块1301,用于对当前视频帧的特征点与参考视频帧的特征点进行特征匹配,得到匹配后的特征点对,所述参考视频帧为现实场景中的视频帧且所述参考视频帧与所述当前视频帧的采集时间不同;

筛选模块1302,用于按照预设筛选算法,从所述匹配后的特征点对中筛选出相似度超过第一阈值的特征点对;

第一确定模块1303,用于根据筛选出的特征点对的个数,确定所述当前视频帧为所述现实场景的关键帧并将所述关键帧存入所述现实场景所对应的场景地图,所述场景地图仅用于存储所述现实场景的关键帧。

可选地,所述装置中,所述第一确定模块1303具体用于:

若筛选出的特征点对的个数与匹配后特征点对的个数的比值小于第二阈值,并且,筛选出的特征点对的个数大于第三阈值,则确定所述当前视频帧为所述现实场景的关键帧。

可选地,所述装置中,所述第一确定模块1303还用于:

若筛选出的特征点对的个数与匹配后特征点对的个数的比值不小于第二阈值,或者,筛选出的特征点对的个数不大于第三阈值,则判断当前视频帧的采集时间与所述参考视频帧的采集时间的时间差是否超过第四阈值,其中,所述参考视频帧为所述场景地图之外的视频帧,并且,所述参考视频帧的采集时间早于所述当前视频帧的采集时间;

若所述时间差超过所述第四阈值,将所述当前视频帧更新为参考视频帧,以及将最新采集到的视频帧更新为当前视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤;

若所述时间差未超过所述第四阈值,将最新采集到的视频帧更新为当前视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤。

可选地,所述装置中,所述第一确定模块1303进一步用于:

确定所述当前视频帧为所述现实场景的关键帧的同时,确定所述参考视频帧为所述现实场景的关键帧并存入所述场景地图。

可选地,所述装置中,所述第一确定模块1303还用于:

若筛选出的特征点对的个数与匹配后的特征点对的个数的比值不小于第二阈值,或者,筛选出的特征点对的个数不大于第三阈值,则判断当前视频帧的采集时间与参考视频帧的采集时间的时间差是否超过第五阈值,其中,所述参考视频帧为所述场景地图中的关键帧,并且,所述参考视频帧的采集时间早于所述当前视频帧的采集时间;

若所述时间差未超过所述第五阈值,从所述场景地图中所述参考视频帧之外的关键帧中提取指定关键帧作为新的参考视频帧,并转入对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤,其中,所述指定关键帧为采集时间与所述参考视频帧的采集时间的时间差最小的关键帧。

可选地,所述装置中,所述第一确定模块1303还用于:

若所述时间差超过所述第五阈值,将所述场景地图中与所述当前视频帧的相似度最高的关键帧作为新的参考视频帧,并执行对当前视频帧的特征点与参考视频帧的特征点进行特征匹配的步骤。

可选地,所述装置,还包括:优化模块1304,其中,

所述第一确定模块1303还用于确定所述场景地图中参与优化的关键帧;

所述优化模块1304,用于根据参与优化的关键帧,对所述场景地图进行优化。

可选地,所述装置中,所述第一确定模块1303具体用于:

将存入所述场景地图的时间距离当前时间最近的关键帧,作为预设关键帧;

确定所述预设关键帧与第一关键帧集合中各个关键帧的相似度,其中,所述第一关键帧集合为所述场景地图中所述预设关键帧之外的关键帧;

从所述第一关键帧集合中提取与所述预设关键帧的相似度超过预设相似度阈值的关键帧,组成第二关键帧集合;

从所述第一关键帧集合中提取不属于所述第二关键帧集合的关键帧,组成第三关键帧集合;

从所述第三关键帧集合中提取与所述第二关键帧集合中的关键帧具有相同特征点的关键帧,组成第四关键帧集合;

将所述预设关键帧,第二关键帧集合中的关键帧以及第四关键帧集合中的关键帧作为参与优化的关键帧。

可选地,所述装置中,所述第一确定模块1303具体用于:

若达到预设优化周期,或者,在上次优化后存入所述场景地图的关键帧的个数达到设定数目,则将所述场景地图中的所有关键帧作为参与优化的关键帧。

可选地,所述装置中,所述第一确定模块1303具体用于:

针对在第一时间段内存入所述场景地图的每个关键帧,确定该关键帧与第一时间段外存入所述场景地图的关键帧的相似度;

将与该关键帧的相似度最高的关键帧,作为该关键帧对应的相似关键帧;

若在第一时间段内存入所述场景地图的每个关键帧对应的相似关键帧为同一关键帧,则确定该相似关键帧的采集时间与所述第一时间段的开始时间对应的第二时间段,其中,所述第一时间段的开始时间晚于所述相似关键帧的采集时间;

将在所述第二时间段内存入所述场景地图的关键帧作为参与优化的关键帧。

可选地,所述装置中,所述第一确定模块1303用于采用如下方式确定任意两帧视频帧的相似度:

确定第一视频帧的每个特征点对应的描述子;

利用确定的所述场景地图对应的词汇树,确定各个所述描述子对应的关键帧;

将各个所述描述子对应的关键帧中,第二视频帧的出现次数作为第一视频帧和第二视频帧的相似度,其中,所述任意两帧视频帧包括第一视频帧和第二视频帧。

可选地,所述装置中,所述第一确定模块1303用于采用如下方式确定所述场景地图对应的词汇树:

针对存入所述场景地图的每个关键帧的每个特征点,分别执行以下步骤,得到所述场景地图对应的词汇树:

针对该特征点对应的描述子中的每个特征向量,将该特征向量映射到二叉树的对应层;

根据该特征向量中第一类元素的平方和与第二类元素的平方和的大小,确定该特征向量在该层对应的节点相对于上层节点的位置。

可选地,所述装置中,所述第一确定模块1303用于采用如下方式根据该特征向量中第一类元素的平方和与第二类元素的平方和的大小,确定该特征向量在该层对应的节点相对于上层节点的位置:

若第一类元素的平方和大于第二类元素的平方和,确定该特征向量在该层对应的节点为上层节点的左分支;

若第一类元素的平方和不大于第二类元素的平方和,确定该特征向量在该层对应的节点为上层节点的右分支。

可选地,所述装置中,所述第一确定模块1303用于采用如下方式确定各个所述描述子对应的关键帧:

针对每个描述子,确定该描述子在所述词汇树中对应的叶子节点,所述词汇树中每个叶子节点对应至少一个关键帧;

将确定的叶子节点对应的关键帧作为该描述子对应的关键帧。

可选地,所述装置,还包括:第二确定模块1305,用于采用如下方式确定任一视频帧的特征点:

建立所述任一视频帧对应的三层图像金字塔,其中,所述任一视频帧位于所述三层图像金字塔的第二层,所述任一视频帧的降采样图像位于所述三层图像金字塔的第一层,所述任一视频帧的插值图像位于所述三层图像金字塔的第三层;

将所述任一视频帧中,满足极大值抑制条件的像素点作为候选特征点;

针对每个候选特征点,确定所述降采样图像中与该候选特征点对应的第一像素点以及所述插值图像中与该候选特征点对应的第二像素点;

按照预设邻域选取规则,分别选取该候选特征点在所述任一视频帧中的第一邻域、所述第一像素点在所述降采样图像中的第二邻域以及所述第二像素点在所述插值图像中的第三邻域;

根据所述第一邻域、所述第二邻域以及所述第三邻域中像素点的灰度值,确定该候选特征点为所述任一视频帧的特征点。

可选地,所述装置中,所述第二确定模块1305用于采用如下方式确定该候选特征点为所述任一视频帧的特征点:

计算所述第一邻域所包含的各个像素点的灰度值与该候选特征点的灰度值的差值的绝对值之和,作为第一和值;

计算所述第二邻域所包含的各个像素点的灰度值与所述第一像素点的灰度值的差值的绝对值之和,作为第二和值;以及

计算所述第三邻域所包含的各个像素点的灰度值与所述第二像素点的灰度值的差值的绝对值之和,作为第三和值;

若所述第一和值、所述第二和值与所述第三和值之和大于预设灰度阈值,则将该候选特征点作为所述任一视频帧的特征点。

实施例三

本发明实施例提供一种非易失性计算机存储介质,所述计算机存储介质存储有可执行程序,该可执行程序被处理器执行实现上述实施例一中的任一现实场景关键帧的确定方法的步骤。

实施例四

本发明实施例提供一种现实场景关键帧的确定设备,用于执行实施例一中的任一现实场景关键帧的确定方法,如图14所示,为本发明实施四中所述的现实场景关键帧的确定设备的硬件结构示意图,该现实场景关键帧的确定设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑等。具体地,该现实场景关键帧的确定设备可以包括存储器1401、处理器1402及存储在存储器上的计算机程序,所述处理器执行所述程序时实现实施例一的任一现实场景关键帧的确定方法的步骤。其中,存储器1401可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器1402提供存储器1401中存储的程序指令和数据。

进一步地,本发明实施例四中所述的现实场景关键帧的确定设备还可以包括输入装置1403以及输出装置1404等。输入装置1403可以包括键盘、鼠标、触摸屏等;输出装置1404可以包括显示设备,如液晶显示器(liquidcrystaldisplay,lcd)、阴极射线管(cathoderaytube,crt)等。存储器1401,处理器1402、输入装置1403和输出装置1404可以通过总线或者其他方式连接,图14中以通过总线连接为例。

处理器1402调用存储器1401存储的程序指令并按照获得的程序指令执行实施例一提供的现实场景关键帧的确定方法。

利用本发明实施例提供的现实场景关键帧的确定方法、装置、介质及设备,具有以下有益效果:通过将当前采集到的视频帧与参考视频帧进行比对,在当前采集到的视频帧与参考视频帧中相似的特征点较多的情况下,将当前采集到是视频帧确定为现实场景的关键帧,即,场景中无需布置ar卡片,即可确定现实场景中的关键帧,从而能够在不受特定场景限制的情况下,确定现实场景的关键帧,从而构建得到较准确可靠的现实场景。

应当注意,尽管在上文详细描述中提及了现实场景关键帧的确定装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1