CN109509261B - 一种增强现实的方法、装置及计算机存储介质 - Google Patents
一种增强现实的方法、装置及计算机存储介质 Download PDFInfo
- Publication number
- CN109509261B CN109509261B CN201811416978.0A CN201811416978A CN109509261B CN 109509261 B CN109509261 B CN 109509261B CN 201811416978 A CN201811416978 A CN 201811416978A CN 109509261 B CN109509261 B CN 109509261B
- Authority
- CN
- China
- Prior art keywords
- video frame
- target
- current video
- image
- tracking
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
本发明实施例公开了一种增强现实的方法、装置及计算机存储介质;该方法可以包括:将采集到的当前视频帧按照设定的数据结构类型生成对应的查询结构体;其中,查询结构体包括所述当前视频帧的特征描述参数。基于预设的图像模型的特征描述参数以及所述当前视频帧对应的查询结构体对当前视频帧进行检测,确定当前视频帧中是否存在目标;其中,预设的图像模型中包括至少一个用于表征目标的图像;若当前视频帧中存在所述目标,则在当前视频帧中与所述目标对应的位置绘制所述目标,并在当前视频帧的后续视频帧中跟踪所述目标;若当前视频帧的后续视频帧中存在所述目标,则在当前视频帧的后续视频帧中与所述目标对应的位置绘制所述目标。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种增强现实的方法、装置及计算机存储介质。
背景技术
增强现实(AR,Augmented Reality)技术,是一种实时地计算相机姿态并加上相应的图像、视频、三维模型等以增强人们对周围信息的获取能力和交互能力的技术。这种技术的目的是在屏幕上将虚拟世界与现实世界进行结合并进行互动,从而增强趣味性和交互性。增强现实技术能够在真实世界的基础上,为用户提供一种全新的感官复合的视觉效果,以提高用户认知世界的兴趣并扩增用户认知世界的能力。
目前,增强现实技术可以包括基于标记的增强现实技术以及基于地理定位的增强现实技术。针对基于标记的增强现实技术来说,其原理是通过识别场景中的人工标记来跟踪图像目标和计算相机姿态,具有标记识别率高、携带性强和系统实时性强等优点。尽管基于标记的增强现实技术算法复杂度低,应用成熟,但有时会遮盖真实场景,受遮挡影响较大。针对基于地理定位的增强现实技术来说,其原理是利用谷歌地图或者全球定位系统(GPS,Global Positioning System)类似的定位工具,将虚拟场景绘制于真实场景的合适位置之上,但其对于定位的准确度和分辨率都有较高的要求。为了避免上述两种增强现实技术的不足,当前较为理想的方案是采用无标记的增强现实技术,即通过计算机视觉等相关技术,对大量的物体进行特征提取和学习,可以在不同角度下自动对物体或者目标进行识别,从而实现增强现实的效果。由此可知,目前基于无标记的增强现实技术通过提取的特征点来进行目标的识别,因此可以增强目标的识别准确率,但是提取的特征点具有既多又复杂的缺陷,从而会导致执行过程中效率低下的问题。因此,需要一种能够更好地保证执行效率、识别准确率以及跟踪质量的增强现实技术方案。
发明内容
为解决上述技术问题,本发明实施例期望提供一种增强现实的方法、装置及计算机存储介质,在保证了较好的识别准确率以及跟踪质量的情况下,能够提高程序执行效率。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种增强现实的方法,可以包括:
将采集到的当前视频帧按照设定的数据结构类型生成对应的查询结构体;其中,所述查询结构体包括所述当前视频帧的特征描述参数。
基于预设的图像模型的特征描述参数以及所述当前视频帧对应的查询结构体对当前视频帧进行检测,确定所述当前视频帧中是否存在目标;其中,所述预设的图像模型中包括至少一个用于表征目标的图像;
若所述当前视频帧中存在所述目标,则在所述当前视频帧中与所述目标对应的位置绘制所述目标,并在所述当前视频帧的后续视频帧中跟踪所述目标;
若所述当前视频帧的后续视频帧中存在所述目标,则在所述当前视频帧的后续视频帧中与所述目标对应的位置绘制所述目标。
第二方面,本发明实施例提供了一种增强现实的装置,所述装置包括:网络接口、存储器和处理器;
其中,所述网络接口,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
所述存储器,用于存储能够在处理器上运行的计算机程序;
所述处理器,用于在运行所述计算机程序时,执行第一方面所述方法的步骤。
第三方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有增强现实的程序,所述增强现实的程序被至少一个处理器执行时实现第一方面所述的方法的步骤。
本发明实施例提供了一种增强现实的方法、装置及计算机存储介质;由于采用了视频帧的特征描述参数来对目标进行检测,从而可以将图像之间的对比检测改进为针对特征描述参数的对比检测,从而减少了检测过程中的数据处理量,降低了处理复杂度,从而在保证了较好的识别准确率以及跟踪质量的情况下,能够提高程序执行效率。
附图说明
图1为本发明实施例提供的一种增强现实的方法流程示意图;
图2为本发明实施例提供的一种绘制场景效果图;
图3为本发明实施例提供的一种具体实现的架构流程示意图;
图4为本发明实施例提供的一种processFrame函数的具体伪代码示意图;
图5为本发明实施例提供的一种多线程处理的架构流程示意图;
图6A为本发明实施例提供的一种调用函数的效果图;
图6B为本发明实施例提供的一种目标失踪时的效果图;
图7为本发明实施例提供的一种processPattern函数的具体伪代码图;
图8为本发明实施例提供的另一种processPattern函数的具体伪代码图;
图9A为本发明实施例提供的一种跟踪图像目标的效果图;
图9B为本发明实施例提供的另一种跟踪图像目标的效果图
图10为本发明实施例提供的一种findPattern函数的具体伪代码图;
图11为本发明实施例提供的一种比率测试函数的具体伪代码图;
图12为本发明实施例提供的一种对称性测试函数的具体伪代码图;
图13为本发明实施例提供的一种startTracking函数的具体伪代码图;
图14为本发明实施例提供的一种onTracking函数的具体伪代码图;
图15为本发明实施例提供的一种computePose函数的具体伪代码图;
图16为本发明实施例提供的一种OpenCV的坐标系示意图;
图17A为本发明实施例提供的一种识别目标的效果示意图;
图17B为本发明实施例提供的另一种识别目标的效果示意图;
图17C为本发明实施例提供的又一种识别目标的效果示意图;
图17D为本发明实施例提供的再一种识别目标的效果示意图;
图17E为本发明实施例提供的另一种识别目标的效果示意图;
图17F为本发明实施例提供的又一种识别目标的效果示意图;
图18A为本发明实施例提供的一种目标跟踪的效果示意图;
图18B为本发明实施例提供的另一种目标跟踪的效果示意图;
图18C为本发明实施例提供的又一种目标跟踪的效果示意图;
图18D为本发明实施例提供的再一种目标跟踪的效果示意图;
图18E为本发明实施例提供的另一种目标跟踪的效果示意图;
图18F为本发明实施例提供的又一种目标跟踪的效果示意图;
图19为本发明实施例提供的一种增强现实的装置组成示意图;
图20为本发明实施例提供的一种增强现实的装置具体硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
目前,AR技术的具体工作流程如下:终端通过摄像头拍摄图像帧;对图像帧进行识别,确定AR目标物体;对图像帧中的AR目标物体进行跟踪,确定AR目标物体的位置;获取与所述AR目标物体相关联的AR虚拟信息,对图像帧进行渲染,也就是将所述AR虚拟信息叠加在AR目标物体上进行显示,从而能够在终端屏幕上同时显示AR目标物体和AR虚拟内容以供用户进行交互。
需要说明的是,在本发明实施例中,摄像头可以设置于终端上,而成为终端的一部分;也可以是独立的拍摄装置,通过电缆或无线链路与终端进行连接。本发明实施例对此不做限定。
需要说明的是,上述终端可以包括蜂窝电话、智能电话、会话发起协议(SIP)电话、膝上型计算机、个人数字助理(PDA)、卫星无线电、全球定位系统、多媒体设备、视频设备、数字音频播放器(例如,MP3播放器)、照相机、游戏控制台、平板计算机、或任何其它具有类似功能的设备。与此同时,终端设备还可以被本领域技术人员称为用户设备、终端、移动站、订户站、移动单元、订户单元、无线单元、远程单元、移动设备、无线设备、无线通信设备、远程设备、移动订户站、接入终端、移动终端、无线终端、远程终端、手持机、用户代理、移动客户端、客户端、或某种其它适当的术语。
上述无线链路具体可以包含在通信频带诸如蜂窝电话频带中操作的无线通信链路,以及在通信频带诸如2.4GHz蓝牙(Bluetooth)频带和2.4GHz以及5GHz WIFI无线局域网频带(有时也可被称为IEEE 802.11频带或者无线局域网通信频带)中操作的无线链路。如果需要,上述无线链路还可包含用于实现近场通信、基于光的无线通信、或者其他无线通信(例如,60GHz或者其他极高频下的毫米波通信等)的无线通信链路。
对于目前无标记的AR技术来说,通常是通过提取特征点来进行目标的识别,由此可以增强目标的识别准确率,但是由于特征点的数量较多,会导致计算量较大、复杂度较高等缺陷。针对该缺陷,本申请期望通过引入以下实施例以解决上述缺陷。
实施例一
参见图1,其示出了本发明实施例提供的一种增强现实的方法,该方法可以应用于能够对图像进行处理的终端设备中,该方法可以包括:
S101:将采集到的当前视频帧按照设定的数据结构类型生成对应的查询结构体;其中,所述查询结构体包括所述当前视频帧的特征描述参数。
S102:基于预设的图像模型的特征描述参数以及所述当前视频帧对应的查询结构体对当前视频帧进行检测,确定所述当前视频帧中是否存在目标;其中,所述预设的图像模型中包括至少一个用于表征目标的图像;
S103:若所述当前视频帧中存在所述目标,则在所述当前视频帧中与所述目标对应的位置绘制所述目标,并在所述当前视频帧的后续视频帧中跟踪所述目标;
S104:若所述当前视频帧的后续视频帧中存在所述目标,则在所述当前视频帧的后续视频帧中与所述目标对应的位置绘制所述目标。
通过图1所示的技术方案,可以看出,由于采用了视频帧的特征描述参数来对目标进行检测,从而可以将图像之间的对比检测改进为针对特征描述参数的对比检测,从而减少了检测过程中的数据处理量,降低了处理复杂度,从而在保证了较好的识别准确率以及跟踪质量的情况下,能够提高程序执行效率。
针对图1所示的技术方案,在具体实现过程中,终端可以通过与之连接的摄像头采集真实场景中的视频,从而当前视频帧也就是当前摄像头在真实场景中所采集到的视频帧。并且将采集到的当前视频帧按照图1所示技术方案进行处理之前,可以对采集到的当前视频帧进行预处理,从而可以提升目标识别的效果。详细来说,当前视频帧对应的查询结构体中所包含的特征描述参数可以包括但不限于当前视频帧尺寸、当前视频帧灰度图、当前视频帧特征点、当前视频帧描述符、当前视频帧的二维轮廓以及当前视频帧的三维轮廓。
针对图1所示的技术方案,预设的图像模型可以由终端通过日常的图像学习来获得,而图像模型中的目标图像都用于识别各自对应的目标。基于预设的图像模型,在一种可能的实现方式中,S102所述的基于预设的图像模型的特征描述参数以及所述当前视频帧对应的查询结构体对当前视频帧进行检测,确定所述当前视频帧中是否存在目标,具体可以包括:
根据基于方向的FAST算子和旋转的BRIEF算子(ORB,Oriented FAST and RotatedBRIEF)ORB算法提取当前视频帧的特征点以及特征描述参数;
根据所述当前视频帧特征点以及特征描述参数在所述当前视频帧中初步检测所述目标,并获取单应性矩阵;
若能够初步检测到所述目标并获取到单应性矩阵,则利用比率测试及对称性测试对初步检测结果进行筛选匹配,确定所述当前视频帧中是否存在目标。
需要说明的是,在图像匹配过程中,首先可以尝试根据查询结构体中的内容在当前视频帧中初步检测目标。如果初步检测出图像目标并能够得到初步的单应性矩阵,则可以进行后续的筛选匹配。具体来说,首先可以获取单应性扭曲图像,并在扭曲图像上提取特征点和描述符,接着计算优化后的单应性矩阵和再次检测匹配。最终的单应性矩阵等于初步的单应性矩阵乘以优化后的单应性矩阵。因此,只有在再次检测匹配通过之后,才能够认定检测到相应的目标。
由于在匹配过程中,特征点和描述符很难做到绝对的精确,并且结合视频帧图像本身结构的复杂性以及噪声等因素的影响,会导致得到的原始匹配对中有不少是错误匹配,因此,需要对原始匹配进行一定程度的筛选。所以本发明实施例采用的是比率测试和对称性测试的方法来对匹配进行筛选。详细来说,比率测试指的是仅当第一个匹配与第二个匹配之间的距离足够小(也就是小于某个阈值)时,才认为这是一个匹配,因此,比率测试可以认为是一个简单高效的匹配点筛选算法。而对称性测试则是消除误匹配的良好手段,以当前视频帧图像fig1以及图像模型中的目标图像fig2为例,其基本步骤是:首先分别对fig1和fig2进行关键点检测,分别得到对应的关键点数组Points1和Points2;其次对Points1中的每一个点i在Points2中找到相应的点j;接着对Points2中的每一个点k在Points1中找到相应的点k;最后如果Points1中的点i在Points2中的匹配点j,而且Points2中的点j在Points1中的匹配点为点i,则fig1与fig2匹配成功。可以理解地,通过比率测试以及对称性测试,能够更加高效、精确、可靠地对当前视频帧与预设的图像模型中的目标进行匹配检测,以确定当前视频帧中是否存在目标。
针对图1所示的技术方案,若所述当前视频帧中存在所述目标,那么就可以将目标渲染至当前视频帧,并且继续在后续视频帧中对目标进行跟踪。基于此,对于S103来说,优选地,在所述当前视频帧中与所述目标对应的位置绘制所述目标,包括:
将当前视频帧设置为背景,根据检测到的目标在当前视频帧的相应位置上绘制与目标对应的目标模型。
对于该优选示例,由于需要绘制三维场景,并结合开发效率等原因,本发明实施例优先选用OpenSceneGraph库构建三维场景。具体的绘制示例参见图2。
对于S103来说,优选地,在所述当前视频帧的后续视频帧中跟踪所述目标,具体可以包括:
获取所述目标对应的目标模型姿态;
根据所述目标模型姿态采用预设的跟踪算法对目标进行跟踪。
对于该优选示例,本发明实施例优先采用如光流法、帧间差分法、背景检出法等跟踪算法对目标进行跟踪。需要说明的是,一旦跟踪目标失败,那么就重新检测视频帧中是否存在所述目标;而如果跟踪到当前视频帧的后续视频帧中存在所述目标,则会进行S104所述的步骤,在后续视频帧中的对应位置绘制目标,具体绘制过程参见前述针对S103的优选示例,本发明实施例在此不再赘述。
对于该优选示例,所述获取所述目标对应的目标模型姿态,可以包括:
从所述目标中选取N个对应点,并从选取的对应点恢复所述目标的姿态;
根据所述目标姿态适应性地确定绘制坐标系。
需要说明的是,通常来说,从三个对应点中恢复姿态所需要的信息是最少的,也就是P3P算法,但是,可以将P3P算法扩展至N个对应点,则称之为PnP算法。
本实施例提供了一种增强现实的方法,采用了视频帧的特征描述参数来对目标进行检测,并且在检测过程中,通过初步检测后进行筛选匹配,从而对目标进行识别,并通过光流法等跟踪算法对目标进行跟踪,减少了检测过程中的数据处理量,降低了处理复杂度,从而在保证了较好的识别准确率以及跟踪质量的情况下,能够提高程序执行效率。
实施例二
针对实施例一所描述的方法,本实施例基于opencv平台对实施例一的技术方案进行具体实现。参见图3,其示出了针对实施例一的技术方案进行具体实现的架构流程示意图,具体如下:
首先,工厂(Factory)类通过processFrame函数将输入的视频帧存储为保存着视频帧尺寸、灰度图、特征点、描述符、二维轮廓和三维轮廓的查询模式体。从而能够在每一帧只提取一次视频帧的相关参数,从而缩短多个图像目标的检测时间,传相关递参数时也就只需要传递一个模式结构体。
接着,在工厂类实例中调用物件(Object)类实例组的processPattern函数。物件(Object)类的用途是简单处理与增强现实相关的事件,例如通过图像目标(ImageTarget)类检测和跟踪图像目标。
然后,在物件(Object)类实例中调用图像目标(ImageTarget)类实例的processPattern函数。具体来说,图像目标(ImageTarget)类可以由一张图片和相关参数创建实例,主要作用就是处理一帧的内容后,获取模型观察矩阵和投影矩阵。
需要说明的是,图像目标类中有两个重要的成员变量,检测器(Detector)类和跟踪器(Tracker)类。在检测出图像目标之前,在图像目标类实例中调用检测器(Detector)类的processPattern函数检测一帧中的图像目标,并将从成功检测到图像目标后获得的数据传递给跟踪器(Tracker)去跟踪。跟踪器(Tracker)类通过startTracking函数开始对图像目标进行跟踪,跟踪失败后程序重新开始对图像目标的检测。如果图像目标已被跟踪,则直接调用跟踪器的onTracking函数对图像目标进行跟踪。
最后,将计算后的查询结构体和相关参数传入模式跟踪信息(TrackingInfo)类中以计算目标姿态。
针对上述流程中的所出现的类及函数,在具体实现过程中,可以包括以下内容:
一、建立模式结构(Pattern)类来负责存储图像数据和计算描述符,从而用于生成当前视频帧对应的查询结构体。其模式结构的伪码如下:
cv::Size_size;///<图像尺寸
cv::Mat_frame;///<视频帧
cv::Mat_grayImg;///<灰度图
std::vector<cv::KeyPoint>_keypoints;///<特征点
cv::Mat_descriptor;///<描述符
std::vector<cv::Point2f>_points2d;///<二维轮廓
std::vector<cv::Point3f>_points3d;///<三维轮廓
上述伪码中,“///”表示注释说明,由上述伪码可知,因为模式结构类几乎包含了视频帧所有的图像特征信息,因此可以大大减少在后续处理过程中传递参数的个数。
二、工厂(Factory)类通过processFrame函数为输入帧建立查询结构体,之后调用物件(Object)类的processPattern函数。
对于processFrame函数来说,针对每一视频帧都会调用一次工厂类实例的processFrame函数。首先,该函数可以通过查询帧建立查询模式体。然后,该函数还能够传递查询模式体到物件(Object)类的processPattern函数,达到处理查询模式体从而识别图像目标的目的,具体的伪代码图如图4所示。可以理解堤,在工厂类中,还可以通过宏定义等方式使用多线程以提高效率,具体实现流程架构参见图5,可以预先生成多个子线程,然后由这些子线程同时进行对目标对象组的处理,以达到提高效率的目的。
三、物件(Object)类对增强现实的相关事件做了简单处理,能够处理的基本事件有:处理的基本事件有:图像目标发现事件、图像目标失踪事件。事件发生后,通过调用相应的回调函数实现对应的函数功能。
对于设置回调函数来说,可以通过设置回调函数来响应事件。如图6A与图6B所示,其中图6A是发现图像目标时调用函数的效果图,图6B是目标失踪时的效果图。
对于物件(Object)类所调用的图像目标(ImageTarget)类实例的processPattern函数来说,processPattern函数通过图像目标(ImageTarget)类的processPattern函数实现了对基本的增强现实事件的处理。当发现图像目标而物件是不可见时,调用发现回调函数。当发现图像目标而物件是可见时,调用失踪回调函数。具体该processPattern函数的伪代码图如图7所示,
四、图像目标(ImageTarget)类的主要作用是用特定图像的数据填充模式结构体,通过processPattern函数计算出模型观察矩阵,获取投影矩阵。因此,图像目标(ImageTarget)类的主要功能可以通过以下函数实现:
(一)processPattern函数,当没有检测出图像目标时,processPattern函数就调用检测器对图像目标进行检测。当检测出图像目标之后,计算模式姿态并初始化跟踪数据传递给跟踪器开始跟踪。如果程序在跟踪图像目标,则直接调用跟踪器对图像目标进行持续跟踪。一旦跟踪器跟丢图像目标,程序就重新调用检测器检测图像目标。该函数的具体伪代码图参见图8。详细来说,检测器检测图像目标、跟踪器跟踪图像目标的效果如图9A以及图9B所示。需要说明的是,采集的视频帧为适应OpenSceneGraph而做了上下翻转的处理,所以在图9A以及与9B中的显示效果是上下颠倒的,并且在图像目标旋转角度不大的时候,检测出来的区域很准确。但当图像目标旋转角度过大,可能会导致计算结果出现较大的误差。
(二)获取矩阵函数,图像目标类有获取模型观察矩阵和投影矩阵的函数。需要注意的是,在同一视频帧下,只有调用了processPattern函数后,才能得出正确的模型观察矩阵。另外,在有正确的相机标定的情况下,才可以计算出正确的投影矩阵。
五、检测器(Detector)类的功能,一是初始化图像模式结构,并为其填充特征点和描述符,二是训练描述符匹配器,三是检测单帧中的图像目标,并计算检测到的图像目标的位置。检测器类的特征检测器和描述符提取器均采用效率高的ORB算法。因此,检测器(Detector)类主要通过以下函数具体实现:
(一)findPattern函数,该函数用于根据查询结构体尝试寻找图像目标。如果初步检测出图像目标和计算出单应性矩阵,则进行优化匹配。优化匹配时,先进行获取单应性扭曲图像,并在扭曲图像上提取特征点和描述符,之后计算优化后的单应性矩阵和再次检测匹配。最终的单应性矩阵等于初步计算的单应性矩阵乘以优化后的单应性矩阵。只有在再次检测匹配通过之后,检测器才认定找到了相应的图像目标。该函数的具体伪代码图参见图10。
对于图10中所包括的getMatches函数包括进行比率测试函数ratioTest以及对称性测试函数symmetryTset。比率测试函数的具体伪代码图参见图11,对称性测试函数的具体伪代码图参见图12。
(二)buildPatternFromImage函数,用于从图像文件中建立模式结构体,作为检测和跟踪的图像目标。
六、跟踪器(Tracker)类用于对检测出图像目标的跟踪。跟踪器跟踪图像目标失败之后,程序将重新开始对图像目标的检测。跟踪器类采用的核心算法是光流法,该方法是一种广泛应用的非刚性图像配准方法,对发生平移、旋转以及缩放变换的图像都能很好地配准,但在待配准图像比较大且初始位置距离目标位置较远时,配准速度以及位置效果较差。在本实施例中,周围的环境,特别是光照,也对光流法的效果有较大的影响。而跟踪器(Tracker)类主要通过以下函数具体实现:
(一)startTracking函数,用于调用OpenCV库的goodFeaturesToTrack函数以检测感兴趣区域的角点,并执行其他初始化操作。该函数的具体伪代码图参见图13。
(二)onTracking函数,利用光流法实现对图像目标的持续追踪。对图像目标的跟踪是在一个“匹配→修正→预测”的过程中实现的。并且对计算出的感兴趣区域和单应性矩阵应检查操作,以保证计算结果的准确性。该函数的具体伪代码图参见图14。
七、模式跟踪信息(TrackingInfo)类,除了用于保存模式姿态信息以外,还可以用于计算模式姿态。模式跟踪信息(TrackingInfo)类主要通过以下函数具体实现:
(一)computePose函数,根据PnP算法计算模式姿态。可以理解地,从三个对应点中恢复姿态,需要的信息是最少的,因此称为“三点透视问题”,即P3P。同理,扩展到N个点,就能够称为“PnP”。该函数的具体伪代码图参见图15。需要说明的是,在计算出模式姿态后要调用adaptToDrawingEnvironment函数适应绘图环境的坐标系。因为OpenCV的坐标系和OpenSceneGraph的坐标系是不同的。如图16所示,OpenCV的坐标系与常见的左手坐标系和右手坐标系是不同的。
基于上述针对图3所示的架构流程的阐述,本实施例通过以下具体测试过程对图3所示的架构流程进行测试。
在本测试中,测试环境配置如下:操作系统:Windows 7旗舰版64位;系统制造商:Acer;系统型号:Aspire E1-451G;处理器:AMD A8-4500M APU with Radeon(tm)HDGraphics(4CPUs),1.9GHz;内存:4096MB RAM。另外,编译器设置为MinGW6.2.0,64位;集成开发环境优选为CodeBlocks17.12。
在本测试中,分别选取1、2、3、4、5、6、7、8、9、10个图像目标,进行1000帧的时间统计,以计算平均处理一个视频帧所需的时间,测试结果如表1所示。
表1
图像目标数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
时间/毫秒 | 23 | 29 | 37 | 49 | 59 | 64 | 80 | 87 | 99 | 110 | 121 |
通常利用ORB算法提取一张640x480大小的图片的特征点和描述符所花费的时间在30ms~40ms,而表1中可以看出时间为23ms,减少了处理时间。而每增加一个目标图像,增加的时间△t为:
在测试结果中,选取六个图像进行测试,测试结果表明能够准确识别出图像目标。具体识别效果参见图17A至图17F。
由本次识别测试的效果可以得知,如果直接使用ORB提取出来的特征点和描述符,不进行任何形式的筛选,执行效率不仅低下,而且容易误匹配。因此筛选匹配对是必不可少的一个步骤。而对ORB算法的特征点取500,又经历了比率测试、对称性测试的情况下,匹配失误的概率就大幅度下降了。经过实验测试,基本没有造成误匹配的现象。本发明实施例的技术方案能够准确识别图像对象,并对其做出反应,说明程序图像识别的质量较高。
对于跟踪的测试效果,可以通过对图像目标进行X、Y、Z轴方向的旋转和左右、上下的移动,从而测试跟踪效果。测试结果如图18A至图18F所示,其中,图18A表示初始效果,图18B表示绕X轴旋转的效果,图18C表示绕Y轴旋转的效果,图18D表示绕Z轴旋转的效果,图18E表示上下移动的效果,图18F表示左右移动的效果。
由本次跟踪测试效果可以得知:如果不使用跟踪算法而直接每一帧都采取检测图像目标的办法,就会造成两个问题。一是耗费的时间长,检测出图像目标的时间远远比使用跟踪算法跟踪图像的时间要长。二是不能很好地应对图像目标的运动变化,结果是绘制的模型抖动明显。在本发明实施例的技术方案使用光流法跟踪图像目标后,能够进行一定程度的跟踪,甚至在图像目标大部分被遮挡的情况下能仍跟踪。
对于本实施例上述的测试过程,可以看出本发明实施例的技术方案减少了检测过程中的数据处理量,降低了处理复杂度,在保证了较好的识别准确率以及跟踪质量的情况下,能够提高程序执行效率。
实施例三
基于前述实施例相同的发明构思,参见图19,其示出了本发明实施例提供的一种增强现实的装置190,可以包括:生成部分1901、检测部分1902、跟踪部分1903以及绘制部分1904;其中,
所述生成部分1901,配置为将采集到的当前视频帧按照设定的数据结构类型生成对应的查询结构体;其中,所述查询结构体包括所述当前视频帧的特征描述参数。
所述检测部分1902,配置为基于预设的图像模型的特征描述参数以及所述当前视频帧对应的查询结构体对当前视频帧进行检测,确定所述当前视频帧中是否存在目标;其中,所述预设的图像模型中包括至少一个用于表征目标的图像;
所述跟踪部分1903,配置为若所述当前视频帧中存在所述目标,则在所述当前视频帧中与所述目标对应的位置绘制所述目标;
所述绘制部分1904,配置为若所述当前视频帧中存在所述目标,则在所述当前视频帧的后续视频帧中跟踪所述目标;
以及,若所述当前视频帧的后续视频帧中存在所述目标,则在所述当前视频帧的后续视频帧中与所述目标对应的位置绘制所述目标。
在上述方案中,所述当前视频帧对应的查询结构体中所包含的特征描述参数包括:当前视频帧尺寸、当前视频帧灰度图、当前视频帧特征点、当前视频帧描述符、当前视频帧的二维轮廓以及当前视频帧的三维轮廓。
在上述方案中,所述图像模型中的目标图像用于识别各自对应的目标。
在上述方案中,所述检测部分1902,配置为:
基于ORB算法提取当前视频帧的特征点以及特征描述参数;
根据所述当前视频帧特征点以及特征描述参数在所述当前视频帧中初步检测所述目标,并获取单应性矩阵;
若能够初步检测到所述目标并获取到单应性矩阵,则利用比率测试及对称性测试对初步检测结果进行筛选匹配,确定所述当前视频帧中是否存在目标。
在上述方案中,所述绘制部分1904,配置为:
将当前视频帧设置为背景,根据检测到的目标在当前视频帧的相应位置上绘制与目标对应的目标模型。
在上述方案中,所述跟踪部分1903,配置为:
获取所述目标对应的目标模型姿态;
根据所述目标模型姿态采用预设的跟踪算法对目标进行跟踪。
在上述方案中,所述跟踪部分1903,配置为:
从所述目标中选取N个对应点,并从选取的对应点恢复所述目标的姿态;
根据所述目标姿态适应性地确定绘制坐标系。
可以理解地,在本实施例中,“部分”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是单元,还可以是模块也可以是非模块化的。
另外,在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本实施例提供了一种计算机存储介质,具体可以为计算机可读存储介质,该计算机存储介质存储有增强现实的程序,所述资源调度的程序被至少一个处理器执行时实现上述实施例一或实施例二所述增强现实方法的步骤。
基于上述增强现实的装置190以及计算机存储介质,参见图20,其示出了本发明实施例提供的一种增强现实的装置190的具体硬件结构,包括:网络接口2001、存储器2002和处理器2003;各个组件通过总线系统2004耦合在一起。可理解,总线系统2004用于实现这些组件之间的连接通信。总线系统2004除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图20中将各种总线都标为总线系统2004。其中,网络接口2001,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
存储器2002,用于存储能够在处理器2003上运行的计算机程序;
处理器2003,用于在运行所述计算机程序时,执行以下步骤:
将采集到的当前视频帧按照设定的数据结构类型生成对应的查询结构体;其中,所述查询结构体包括所述当前视频帧的特征描述参数。
基于预设的图像模型的特征描述参数以及所述当前视频帧对应的查询结构体对当前视频帧进行检测,确定所述当前视频帧中是否存在目标;其中,所述预设的图像模型中包括至少一个用于表征目标的图像;
若所述当前视频帧中存在所述目标,则在所述当前视频帧中与所述目标对应的位置绘制所述目标,并在所述当前视频帧的后续视频帧中跟踪所述目标;
若所述当前视频帧的后续视频帧中存在所述目标,则在所述当前视频帧的后续视频帧中与所述目标对应的位置绘制所述目标。
可以理解,本发明实施例中的存储器2002可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本文描述的系统和方法的存储器2002旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器2003可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2003中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2003可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器2002,处理器2003读取存储器2002中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
具体来说,增强现实的装置190中的处理器2003还配置为运行所述计算机程序时,执行前述实施例一或实施例二中所述的方法步骤,这里不再进行赘述。
需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种增强现实的方法,其特征在于,所述方法包括:
将采集到的当前视频帧按照设定的数据结构类型生成对应的查询结构体;其中,所述查询结构体包括所述当前视频帧的特征描述参数;所述当前视频帧对应的查询结构体中所包含的特征描述参数包括:当前视频帧特征点和当前视频帧描述符;
基于预设的图像模型的特征描述参数以及所述当前视频帧对应的查询结构体对当前视频帧进行检测,确定所述当前视频帧中是否存在目标;其中,所述预设的图像模型中包括至少一个用于表征目标的图像;
若所述当前视频帧中存在所述目标,则在所述当前视频帧中与所述目标对应的位置绘制所述目标,并在所述当前视频帧的后续视频帧中跟踪所述目标;
若所述当前视频帧的后续视频帧中存在所述目标,则在所述当前视频帧的后续视频帧中与所述目标对应的位置绘制所述目标;
所述基于预设的图像模型的特征描述参数以及所述当前视频帧对应的查询结构体对当前视频帧进行检测,确定所述当前视频帧中是否存在目标,具体包括:
根据基于方向的FAST算子和旋转的BRIEF算子ORB算法提取当前视频帧的特征描述参数;
根据所述特征描述参数在所述当前视频帧中初步检测所述目标,并获取单应性矩阵;
若能够初步检测到所述目标并获取到单应性矩阵,则利用比率测试及对称性测试对初步检测结果进行筛选匹配,确定所述当前视频帧中是否存在目标。
2.根据权利要求1所述的方法,其特征在于,所述当前视频帧对应的查询结构体中所包含的特征描述参数还包括:当前视频帧尺寸、当前视频帧灰度图、当前视频帧的二维轮廓以及当前视频帧的三维轮廓。
3.根据权利要求1所述的方法,其中,所述图像模型中的目标图像用于识别各自对应的目标。
4.根据权利要求1所述的方法,其特征在于,所述在所述当前视频帧中与所述目标对应的位置绘制所述目标,包括:
将当前视频帧设置为背景,根据检测到的目标在当前视频帧的相应位置上绘制与目标对应的目标模型。
5.根据权利要求1所述的方法,其特征在于,所述在所述当前视频帧的后续视频帧中跟踪所述目标,具体包括:
获取所述目标对应的目标模型姿态;
根据所述目标模型姿态采用预设的跟踪算法对目标进行跟踪。
6.根据权利要求5所述的方法,其特征在于,所述获取所述目标对应的目标模型姿态,包括:
从所述目标中选取N个对应点,并从选取的对应点恢复所述目标的姿态;
根据所述目标姿态适应性地确定绘制坐标系。
7.一种增强现实的装置,其特征在于,所述装置包括:网络接口、存储器和处理器;
其中,所述网络接口,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
所述存储器,用于存储能够在处理器上运行的计算机程序;
所述处理器,用于在运行所述计算机程序时,执行权利要求1至6任一项所述方法的步骤。
8.一种计算机存储介质,其特征在于,所述计算机存储介质存储有增强现实的程序,所述增强现实的程序被至少一个处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811416978.0A CN109509261B (zh) | 2018-11-26 | 2018-11-26 | 一种增强现实的方法、装置及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811416978.0A CN109509261B (zh) | 2018-11-26 | 2018-11-26 | 一种增强现实的方法、装置及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109509261A CN109509261A (zh) | 2019-03-22 |
CN109509261B true CN109509261B (zh) | 2023-07-25 |
Family
ID=65750571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811416978.0A Active CN109509261B (zh) | 2018-11-26 | 2018-11-26 | 一种增强现实的方法、装置及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109509261B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221689B (zh) * | 2019-05-10 | 2022-07-08 | 杭州小影创新科技股份有限公司 | 一种基于增强现实的空间绘画方法 |
CN114697702B (zh) * | 2022-03-23 | 2024-01-30 | 咪咕文化科技有限公司 | 音视频标记方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011048497A2 (en) * | 2009-10-19 | 2011-04-28 | National University Of Singapore | Computer vision based hybrid tracking for augmented reality in outdoor urban environments |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201208088D0 (en) * | 2012-05-09 | 2012-06-20 | Ncam Sollutions Ltd | Ncam |
CN102821323B (zh) * | 2012-08-01 | 2014-12-17 | 成都理想境界科技有限公司 | 基于增强现实技术的视频播放方法、系统及移动终端 |
CN105096327B (zh) * | 2015-08-12 | 2017-12-12 | 北京航空航天大学 | 一种基于计算机双目视觉及单应性矩阵的盲道定位方法 |
CN107590453B (zh) * | 2017-09-04 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 增强现实场景的处理方法、装置及设备、计算机存储介质 |
-
2018
- 2018-11-26 CN CN201811416978.0A patent/CN109509261B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011048497A2 (en) * | 2009-10-19 | 2011-04-28 | National University Of Singapore | Computer vision based hybrid tracking for augmented reality in outdoor urban environments |
Also Published As
Publication number | Publication date |
---|---|
CN109509261A (zh) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109584276B (zh) | 关键点检测方法、装置、设备及可读介质 | |
CN106204660B (zh) | 一种基于特征匹配的地面目标跟踪装置 | |
US20210287381A1 (en) | Object tracking method, tracking processing method, corresponding apparatus, and electronic device | |
US7936945B2 (en) | System, method, device, and computer program product for providing image correction | |
KR101457313B1 (ko) | 템플릿 스위칭 및 특징 적응을 이용한 오브젝트 추적을 제공하는 방법, 장치 및 컴퓨터 프로그램 제품 | |
US9721387B2 (en) | Systems and methods for implementing augmented reality | |
US20140233800A1 (en) | Method of tracking object and electronic device supporting the same | |
CN108027884B (zh) | 一种用于监测对象的方法、存储媒体、服务器及设备 | |
US20140092132A1 (en) | Systems and methods for 3d pose estimation | |
KR20160003066A (ko) | 일반적인 카메라 움직임 및 파노라마 카메라 움직임을 갖는 단안 시각 slam | |
KR102572986B1 (ko) | 사용자 지정 초기화 포인트에 기반한 개체 추적 | |
CN111582240B (zh) | 一种对象数量的识别方法、装置、设备和介质 | |
CN110111364B (zh) | 运动检测方法、装置、电子设备及存储介质 | |
CN109509261B (zh) | 一种增强现实的方法、装置及计算机存储介质 | |
CN113112542A (zh) | 一种视觉定位方法、装置、电子设备及存储介质 | |
CN110245643B (zh) | 目标跟踪拍摄方法、装置、电子设备 | |
KR101586071B1 (ko) | 마커리스 증강현실 서비스 제공 장치 및 이를 위한 촬영 위치 추정 방법 | |
US20230351615A1 (en) | Object identifications in images or videos | |
CN112819889A (zh) | 位置信息的确定方法及装置、存储介质、电子装置 | |
CN110097061B (zh) | 一种图像显示方法及装置 | |
CN115661493B (zh) | 一种对象位姿的确定方法及装置、设备及存储介质 | |
US10282633B2 (en) | Cross-asset media analysis and processing | |
WO2021214540A1 (en) | Robust camera localization based on a single color component image and multi-modal learning | |
US20220027623A1 (en) | Object Location Determination in Frames of a Video Stream | |
Xuejie et al. | An image registration method based on improved TLD and improved ORB for mobile augmented reality |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |