图像处理方法及相关终端、设备和存储介质与流程

文档序号:26670119发布日期:2021-09-17 22:24阅读:69来源:国知局
图像处理方法及相关终端、设备和存储介质与流程

1.本技术涉及人工智能技术领域,特别是涉及一种图像处理方法及相关终端、设备和存储介质。


背景技术:

2.图像配准以及跟踪是ar、vr等计算机视觉领域中的研究重点,通过图像配准、图像跟踪技术可以获取相机拍摄到的当前图像与目标图像之间的变换参数,从而后续可以通过变换参数,得到目标图像在当前图像中的位置。
3.目前,终端在运行图像处理算法时,需要将本地端获取的图像通过网络上传至云端,由云端来对图像进行具体的处理,本地端再根据云端反馈的处理结果进行后续的渲染、展示等等。然而,这样的处理方法,容易受到网络传输速度不佳、云端处理速度较慢的影响,导致设备无法及时得到结果,延迟较高,阻碍了该技术的进一步发展。
4.因此,如何提高设备在运行图像处理算法的速度,具有非常重要的意义。


技术实现要素:

5.本技术提供一种图像处理方法及相关终端、设备和存储介质。
6.本技术第一方面提供了一种图像处理方法,方法包括:终端获取拍摄装置拍摄得到的图像帧,其中,图像帧包括第一图像帧和第二图像帧;利用第一线程执行:将第一图像帧作为待配准图像,并将待配准图像与目标图像进行配准,以得到待配准图像的第一处理结果;利用第二线程执行:将第二图像帧作为待跟踪图像,并基于参考图像帧的参考处理结果、待跟踪图像与参考图像帧中的图像信息,以得到待跟踪图像的第二处理结果,其中,参考图像帧为在待跟踪图像之前的图像帧,参考处理结果是基于第一处理结果确定,第一线程和第二线程是异步处理的。
7.因此,通过将第一线程和第二线程是设置为异步处理,使得终端具有在进行图像配准的过程中,还可以进行图像跟踪的能力,故使得图像跟踪不一定需等待图像配准的结果(第一处理结果),进而终端能够及时得到跟踪结果(第二处理结果)实现图像跟踪,提高了终端的响应速度,降低了延迟。
8.其中,上述的将待配准图像与目标图像进行配准,以得到待配准图像的第一处理结果,包括:基于待配准图像与目标图像之间的第一匹配点对,确定待配准图像与目标图像之间的第一变换参数;基于第一变换参数,得到第一处理结果;上述的参考处理结果为参考图像帧与目标图像之间的参考变换参数;上述的基于参考图像帧的参考处理结果、待跟踪图像与参考图像帧中的图像信息,以得到待跟踪图像的第二处理结果,包括:基于待跟踪图像与参考图像帧之间的第二匹配点对,确定第二变换参数;利用参考变换参数和第二变换参数,得到待跟踪图像与目标图像之间的第三变换参数;基于第三变换参数,得到第二处理结果。
9.因此,通过获取第一匹配点对,可以得到待配准图像与目标图像之间的第一变换
参数,并最终得到第一处理结果,另外,通过获取第二匹配点对,可以得到待跟踪图像与目标图像之间的第三变换参数,并最终得到第二处理结果。
10.其中,上述的第一处理结果为待配准图像与目标图像之间的第一变换参数,第二处理结果为待跟踪图像与目标图像之间的第三变换参数;或者,第一处理结果为待配准图像的位姿,第二处理结果为待跟踪图像的位姿;或者,第一处理结果为第一变换参数,第二处理结果为待跟踪图像的位姿,且方法还包括利用第二线程执行以下步骤:利用第一变换参数,得到待配准图像的位姿。
11.因此,通过将第二处理结果设置为不同的类型(第三变换参数或者是待跟踪图像的位姿),后续可以根据需要进行选择。
12.其中,在上述的基于参考图像帧的参考处理结果、待跟踪图像与参考图像帧中的图像信息,得到待跟踪图像的第二处理结果之前,方法还包括利用第二线程执行以下步骤:响应于参考处理结果不是基于最新得到的第一处理结果确定的情况下,基于最新得到的第一处理结果,得到参考处理结果。
13.因此,通过最新的第一处理结果得到参考处理结果,可以是实现对参考处理结果的更新。
14.其中,上述的最新得到的第一处理结果所对应的待配准图像为第三图像帧;其中,上述的基于最新得到的第一处理结果,得到参考处理结果,包括:在参考图像帧为第三图像帧的情况下,将第三图像帧的第一处理结果作为参考处理结果;和/或,在参考图像帧不为第三图像帧的情况下,基于第三图像帧的第一处理结果以及第三图像帧与参考图像帧之间的变化关系,得到参考处理结果。
15.因此,通过确定参考图像帧是否为第三图像帧,可以分别确定对应的参考处理结果。
16.其中,在上述的将第一图像帧作为待配准图像之前,方法还包括利用第二线程执行以下步骤:选出满足配准条件的图像帧作为第一图像帧,并将第一图像帧传递给第一线程,或者,将获取到的图像帧传递给第一线程,利用第一线程选出满足配准条件的图像帧作为第一图像帧。
17.因此,通过选出满足预设条件的图像帧作为第一图像帧,可以避免对每一图像帧都执行图像配准的步骤,可以减少运算量,提高终端的响应速度。
18.其中,上述的配准条件为属于每间隔预设数量的图像帧,或者为与前一图像帧之间的相似度不满足相似度要求的图像帧。
19.因此,通过设置具体的预设条件,可以选出满足预设条件的图像帧。
20.在利用利用第一线程执行:将第一图像帧作为待配准图像,并将待配准图像与目标图像进行配准,以得到待配准图像的第一处理结果之前,方法还包括利用第二线程执行以下步骤:将第一线程进行初始化;和/或,方法还包括利用第二线程执行以下至少一个步骤:在第二线程得到待跟踪图像的第二处理结果之后,基于待跟踪图像的第二处理结果,对待跟踪图像进行渲染并显示;在第一线程得到待配准图像的第一处理结果的情况下,基于待配准图像的第一处理结果,对待配准图像进行渲染并显示。
21.因此,通过利用第二线程对待跟踪图像进行渲染并显示,或者是利用第二线程对待配准图像进行渲染并显示,可以实现对图像帧的加工,实现与真实环境之间的交互。
22.其中,上述的第一线程为网页中的woker工人线程;和/或,第一线程和第二线程的部分或全部执行步骤是由webassembly(wasn)编程语言实现;和/或,第一线程和第二线程之间采用消息传递机制进行数据传递。
23.因此,通过在网页端创建并利用worker线程,可以使得网页端能够执行多线程任务,提高了网页端运行本技术图像处理方法的运行速度。另外,通过在网页端利用wasn编程语言来执行第一线程或者第二线程的部分或全部执行步骤,可以充分利用终端自身的算力,提高了设备的使用效率,并且可以提高整个图像处理方法的运行速度,降低延迟。
24.其中,上述的参考图像帧为待跟踪图像的前第i帧,i为大于或等于1的整数;和/或,上述的第一图像帧与第二图像帧为不同的图像帧,或者,至少部分第一图像帧为第二图像帧。
25.因此,通过将第一图像帧与第二图像帧为不同的图像帧,或者是将至少部分第一图像帧为第二图像帧,可以分别针对第一图像帧进行图像配准或者针对第二图像帧进行图像跟踪。
26.本技术第二方面提供了一种图像处理终端,包括:图像获取模块、第一线程模块、第二线程模块;其中,图像获取模块用于获取拍摄装置拍摄得到的图像帧,其中,图像帧包括第一图像帧和第二图像帧;第一线程模块用于利用第一线程执行将第一图像帧作为待配准图像,并将待配准图像与目标图像进行配准,以得到待配准图像的第一处理结果步骤;第二线程模块用于利用第二线程执行将第二图像帧作为待跟踪图像,并基于参考图像帧的参考处理结果、待跟踪图像与参考图像帧中的图像信息,以得到待跟踪图像的第二处理结果步骤,其中,参考图像帧为在待跟踪图像之前的图像帧,参考处理结果是基于第一处理结果确定,第一线程和第二线程是异步处理的。
27.本技术第三方面提供了一种电子设备,包括相互耦接的存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述第一方面中的图像处理方法。
28.本技术第四方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述第一方面中的图像处理方法。
29.上述方案,通过将第一线程和第二线程是设置为异步处理,使得终端具有可以在进行图像配准的过程中同时,还可以进行图像跟踪的能力,故使得图像跟踪不一定无需等待图像配准的结果(第一处理结果),使得进而终端能够及时得到跟踪结果(第二处理结果)实现图像跟踪,提高了终端的响应速度,降低了延迟。
附图说明
30.图1是本技术图像配准方法第一实施例的第一流程示意图;
31.图2是本技术图像处理方法第一实施例的第二流程示意图;
32.图3是本技术图像处理方法第一实施例的第三流程示意图;
33.图4是本技术图像处理方法第二实施例的流程示意图;
34.图5是本技术图像处理方法第三实施例的流程示意图;
35.图6是本技术图像处理终端实施例的框架示意图;
36.图7是本技术电子设备一实施例的框架示意图;
37.图8是本技术计算机可读存储介质一实施例的框架示意图。
具体实施方式
38.下面结合说明书附图,对本技术实施例的方案进行详细说明。
39.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本技术。
40.本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
41.请参阅图1,图1是本技术图像处理方法第一实施例的第一流程示意图。具体而言,可以包括如下步骤:
42.步骤s11:获取拍摄装置拍摄得到的图像帧。
43.实施本技术的图像处理方法可以是移动终端,具体可以包括手机、平板电脑、智能眼镜等。拍摄装置例如是终端的相机模块或是其他图像采集设备(如监控相机等)。得到的图像帧可以包括第一图像帧和第二图像帧。第一图像帧和第二图像帧可以是相同的,也可以不同;相同时,第二图像帧即为第一图像帧。
44.在一个具体实施场景中,本技术的图像处理方法可以在网页浏览器中执行,也即可以在网页端中执行。
45.步骤s12:利用第一线程执行:将第一图像帧作为待配准图像,并将待配准图像与目标图像进行配准,以得到待配准图像的第一处理结果。
46.在终端执行本技术的图像处理方法时,可以创建多个线程,用于分别执行本技术的图像处理方法的部分步骤。其中,在本实施例中,可以首先创建第一线程,用于将第一图像帧作为待配准图像,并将待配准图像与目标图像进行配准,以得到待配准图像的第一处理结果。在一个实施方式中,在将第一图像帧作为待配准图像时,可以是基于第一图像帧的获得顺序,依序作为待配准图像,来得到待配准图像的第一处理结果。
47.具体而言,第一线程可以基于拍摄装置拍摄得到的第一图像帧作为待配准图像。然后,运行图像配准算法,进而得到待配准图像的第一处理结果。当待配准图像有多帧时,可以得到多个第一处理结果。图像配准算法例如是基于灰度和模板的算法,或者是基于特征的匹配方法。例如,关于基于特征的匹配方法,可以获得一定数量的关于待配准图像与目标图像的匹配点对,然后利用随机一致性采样算法(ransac)来计算待配准图像与目标图像的变换参数,以此实现图像的配准。另外,在一个具体实施场景中,第一处理结果可以直接确定为待配准图像与目标图像的变换参数;在另一个具体实施场景中,第一处理结果还可以是终端的位姿,即通过利用待配准图像与目标图像的变换参数(例如是单应性矩阵h),求得在基于目标图像建立的世界坐标系中终端的位姿(下称终端的位姿)。
48.当本技术的图像处理方法是在浏览器中执行,即在网页端中执行时,第一线程例如是工人(worker)线程。通过在网页端创建并利用worker线程,可以使得网页端能够执行多线程任务,提高了网页端运行本技术图像处理方法的运行速度。
49.在一个实施场景中,第一线程的部分或全部执行步骤是由webassembly(wasn)编程语言实现。在网页端中,通过利用wasn编程语言来执行第一线程的部分或全部执行步骤,可以利用wasn编程语言执行速度快的特点,以此可以提高网页端运行本技术图像处理方法
的运行速度。
50.步骤s13:利用第二线程执行:将第二图像帧作为待跟踪图像,并基于参考图像帧的参考处理结果、待跟踪图像与参考图像帧中的图像信息,以得到待跟踪图像的第二处理结果。
51.在一个具体实施场景中,可以在得到一个第一处理结果以后,开始执行步骤s13。
52.在本实施例中,终端还可以创建第二线程,用于执行后续本技术后续的图像处理方法的步骤。具体的,终端可以利用第二线程执行将第二图像帧作为待跟踪图像,并基于参考图像帧的参考处理结果、待跟踪图像与参考图像帧中的图像信息,以得到待跟踪图像的第二处理结果。在一个实施方式中,在将第二图像帧作为待跟踪图像时,可以是基于第二图像帧的获得顺序,依序作为待跟踪图像,来得到待跟踪图像的第二处理结果。在一个具体实施场景中,第二处理结果可以直接确定为待跟踪图像与目标图像的变换参数;在另一个具体实施场景中,第二处理结果还可以是终端的位姿。得到待跟踪图像与目标图像的变换参数的具体方法可以是同样的图像配准算法,得到终端的位姿的方法可以是通用的图像跟踪算法,此处不再详细描述。
53.在一个实施场景中,参考图像帧为在待跟踪图像之前的图像帧。在一个具体实施场景中,参考图像帧为待跟踪图像的前第i帧,i为大于或等于1的整数。若在作为待跟踪图像的第二图像帧之前,还有部分第二图像帧时,参考图像帧既可以是第一图像帧,还可以是第二图像帧。
54.另外,参考处理结果可以基于第一处理结果确定。
55.在一个实施场景中,当参考图像帧是第一图像帧时,可以直接利用第一处理结果得到参考处理结果。当第一处理结果是待配准图像与目标图像的变换参数,参考处理结果可以是待配准图像与目标图像的变换参数,参考处理结果还可以是基于该变换参数得到的终端的位姿。当第一处理结果是终端的位姿时,则参考处理结果可以直接确定为终端的位姿。
56.在另一个实施场景中,当参考图像帧是第二图像帧时,参考处理结果可以基于第一处理结果确定,具体确定方法可以是获取参考图像帧相对于其前n图像帧(n大于等于1)的相对处理结果以及前n帧的处理结果,以此得到参考处理结果,其中,前n帧的处理结果是基于第一处理结果得到的。例如,当第1图像帧为第一图像帧,第2图像帧为第二图像帧,且第2图像帧作为参考图像帧时,此时参考处理结果可以是获取第2图像帧相对于第1图像帧的相对处理结果(两帧图像对应的单应性矩阵或者是两帧图像对应的终端的位姿变化量),获取第1图像帧的处理结果(第一处理结果),以此得到第2图像帧的处理结果(参考处理结果)。此后,当第3图像帧是第二图像帧且为参考图像帧时,此时还可以获取第3图像帧相对于第2图像帧的相对处理结果,以及获取第2图像帧的处理结果,以此得到第3图像帧的处理结果(参考处理结果),因为第2图像帧的处理结果是基于第一处理结果得到的,因此也可以认为第3图像帧的处理结果(参考处理结果)是基于第一处理结果确定的。在另一个具体实施场景中,也可以是获取第3图像帧相对于第1图像帧的相对处理结果,以及获取第1图像帧的第一处理结果,以此获得第3图像帧的处理结果(参考处理结果)。具体确定方法,可以根据需要进行调整,此处不做限制。在步骤s13中,在得到第一处理结果以后,可以将第一处理结果对应的第一图像帧,以及之后的每一帧图像都作为参考图像帧。
57.待跟踪图像与参考图像帧中的图像信息,可以理解为通过对待跟踪图像和参考图像帧进行处理以后,得到的一切信息。例如,可以基于特征提取算法,分别对待跟踪图像和参考图像帧进行特征提取,以得到的关于待跟踪图像和参考图像帧中的特征点的特征信息,这些特征信息可以认为是待跟踪图像与参考图像帧中的图像信息。
58.在一个实施场景中,第二线程的部分或全部执行步骤是由webassembly(wasn)编程语言实现。在网页端中,通过利用wasn编程语言来执行第一线程的部分或全部执行步骤,可以利用wasn编程语言执行速度快的特点,以此可以提高网页端运行本技术图像处理方法的运行速度。在本技术中,通过在网页端利用wasn编程语言来执行第一线程或者第二线程的部分或全部执行步骤,可以充分利用终端自身的算力,提高了设备的使用效率,并且可以提高整个图像处理方法的运行速度,降低延迟。
59.在本公开实施例中,第一线程和第二线程是异步处理的,即第一线程和第二线程可以不同步执行。例如,在得到第一处理结果以后,此时可以执行步骤s13,并且重复执行步骤s13,而不需要等待步骤s12得到第一处理结果,以此实现持续获得待跟踪图像的第二处理结果,以此实现图像配准和图像跟踪的异步处理。例如,在第1图像帧(第1图像帧为第一图像帧)得到第一处理结果以后,若同时将第2图像帧作为第一图像帧和第二图像帧,此时,可以无需等待第2图像帧对应的第一处理结果,即可以根据第一处理结果得到第2图像帧的第二处理结果,以此实现图像的跟踪。在一个具体实施场景中,第一线程和第二线程之间采用消息传递机制进行数据传递。
60.在一个实施场景中,第一图像帧与第二图像帧为不同的图像帧。例如,在将第1图像帧作为第一图像帧以后,会将后续第2图像帧作为第二图像帧,进行图像跟踪。在将第10图像帧作为第一图像帧以后,会将后续第11图像帧作为第二图像帧,进行图像跟踪,第11图像帧的第二处理结果可以根据第11图像帧相对于第9图像帧(作为参考图像帧)的相对处理结果,以及获取第9图像帧的参考处理结果,得到第11图像帧的第二处理结果。或者,也可以直接将第9图像帧(作为第二图像帧时)的第二处理结果直接作为第11图像帧的第二处理结果。在另一个实施场景中,可以将至少部分第一图像帧为第二图像帧。例如,可以将第10图像帧作为第一图像帧,并针对第10图像帧执行步骤s12,进行图像配准;还可以将第10图像帧作为第二图像帧,并针对第10图像帧执行步骤s13,进行图像跟踪。通过将第一图像帧与第二图像帧为不同的图像帧,或者是将至少部分第一图像帧为第二图像帧,可以分别针对第一图像帧进行图像配准或者针对第二图像帧进行图像跟踪。
61.一般而言,执行图像配准的步骤(步骤s12)需要较长的时间(算法运行时间)才能得到结果,而进行图像跟踪相比于图像配准,所需时间较短,因此,通过将第一线程和第二线程是设置为异步处理,可以在进行图像配准的同时,还可以进行图像跟踪,无需等待图像配准的结果(第一处理结果),使得终端能够及时得到跟踪结果(第二处理结果),提高了终端的响应速度,降低了延迟。
62.请参阅图2,图2是本技术图像处理方法第一实施例的第二流程示意图。本实施例是对上述实施例步骤s12中提及的“将待配准图像与目标图像进行配准,以得到待配准图像的第一处理结果”的进一步扩展,具体而言,可以包括如下步骤:
63.步骤s121:基于待配准图像与目标图像之间的第一匹配点对,确定待配准图像与目标图像之间的第一变换参数。
64.确定目标图像和待配准图像以后,可以对目标图像和待配准图像进行特征提取的操作,以获得关于目标图像和待配准图像的特征信息。在一个实施场景中,可以利用一些特征提取算法进行特征提取,以获得图像的中的特征点,特征点的数量不做具体限制。特征提取算法例如是fast(features from accelerated segment test)算法,sift(scale

invariant feature transform)算法,orb(oriented fast and rotated brief)算法等等。在一个具体实施场景中,特征提取算法为orb(oriented fast and rotated brief)算法。另外,在得到特征点以后,还会得到与每个特征点对应的特征表示,特征表示例如是特征向量。因此,每一个特征点,均有一个与其对应的特征表示。对目标图像进行特征提取,得到的特征点定义为第一特征点。对待配准图像进行特征提取,得到的特征点定义为第二特征点。在本技术中,对图像帧提取的特征点,可以包括对基于该图像帧建立的图像金字塔中的一系列的图像帧进行特征提取得到的特征点。在本实施例中,基于图像帧进行特征提取的特征点,可以认为是与目标图像处于同一个平面。
65.在一个实施场景中,可以基于第一特征点和第二特征点之间的匹配程度,选出至少一组第一匹配点对,其中,每组第一匹配点对包括第一特征点和第二特征点,其中,在第一匹配点对,以第一特征点作为第一匹配点,以第二特征点为第二匹配点。第一特征点和第二特征点之间的匹配程度,具体可以是第一特征点的特征表示与第二特征点的特征表示的匹配程度。在一个实施场景中,可以计算每一个第一特征点与每一个第二特征点的匹配程度。以此获得第一特征点和第二特征点之间的匹配程度。在一个实施场景中,第一特征点和第二特征点之间的匹配程度是基于第一特征点和第二特征点的特征表示之间的距离得到的。例如,两个特征点(一个是第一特征点,一个是第二特征点)特征表示之间的距离的大小,即为匹配程度,距离越近则越匹配;距离最近的,则可以认为是最匹配的。在一个具体实施场景中,特征表示为特征向量,特征表示之间的距离即是特征向量之间的距离。在具体确定第一匹配点对时,可以按照匹配程度的从高到低来选择,选出一定数量的第一匹配点对。
66.在一个具体实施场景,在得到第一匹配点对以后,可以利用随机一致性采样算法来计算待配准图像与目标图像的第一变换参数。第一变换参数例如是配准图像与目标图像之间的单应性矩阵h。
67.在一个具体实施场景中,第一匹配点对的方向信息可以是第一匹配点和第二匹配点的方向的差值。例如,当特征点是通过orb算法提取得到的,则第一匹配点的方向是角点方向角,第二匹配点的方向也是角点方向角,则本地匹配点对的方向信息可以为第一匹配点的角点方向角与第二匹配点的角点方向角的差值。以此,可以通过计算一组本地匹配点对的方向信息,可以求得待配准图像相对于目标图像的旋转角度。在得到一组第一匹配点对的方向信息以后,后续就可以利用该组第一特征点匹配点对的方向信息代表的待配准图像相对于目标图像的旋转角度,来进行图像配准,最终得到目标图像与待配准图像之间的第一变换参数。
68.在一个具体实施场景中,可以在目标图像中提取以第一匹配点为中心的第一图像区域,并在待配准图像中提取以第二匹配点为中心的第二图像区域。然后,确定第一图像区域的第一偏转角度和第二图像区域的第二偏转角度。最后,基于第一偏转角度和第二偏转角度,得到第一变换参数,具体可以是基于第一匹配点对的方向信息,以及本地匹配点对中的第一匹配点与第二匹配点的像素坐标信息,来得到变换参数。
69.在一个具体实施场景中,第一偏转角度为第一图像区域的形心与第一图像区域的中心的连线与预设方向(例如是世界坐标系的x轴)之间的有向夹角。第二偏转角度为第二图像区域的形心与第二图像区域的中心的连线与预设方向之间的有向夹角。
70.在另一个具体实施场景中,第一偏转角度θ可以直接通过下式得到:
71.θ=arctan(∑yi(x,y),∑xi(x,y))
ꢀꢀ
(1)
72.上述公式(1)中,(x,y)表示第一图像区域中某一像素点相对第一图像区域中心的偏移量,i(x,y)表示该像素点的像素值,∑表示求和,其求和范围为第一图像区域中的像素点。同理,第二偏转角度也可以按照相同的方法计算得到。
73.在一个具体实施场景中,可以利用第一匹配点对的方向信息,以及第一匹配点对中的第一匹配点与第二匹配点的坐标信息,例如是像素坐标信息,来到目标图像与待配准图像之间的第一变换参数。以此实现了一组第一匹配点对计算第一变换参数。
74.在一个具体实施方式中,可以通过以下步骤a和步骤b得到待配准图像与目标图像之间的变换参数。
75.步骤a:获取第一偏转角度与第二偏转角度之间的角度差。
76.角度差例如是第一偏转角度与第二偏转角度的差值。
77.在一个实施场景中,计算角度差的公式(2)如下:
[0078][0079]
其中,θ为角度差,为第一偏转角度,t表示目标图像,为第二偏转角度,f表示待配准图像。
[0080]
步骤b:基于角度差和第一匹配点对所对应的尺度,得到第一候选变换参数。
[0081]
第一候选变换参数例如是待配准图像与目标图像之间对应的单应性矩阵。单应性矩阵的计算公式(3)如下:
[0082]
h=h
l
h
s
h
r
h
r
ꢀꢀ
(3)
[0083]
其中,h为目标图像与待配准图像之间对应的单应性矩阵,即第一候选变换参数;h
r
表示待配准图像相对于目标图像的平移量;h
s
代表的第一匹配点对所对应的尺度,尺度即为在对目标图像进行缩放时的比例信息;h
r
代表的是待配准图像相对于目标图像的旋转量,h
l
代表平移之后复位的平移量。
[0084]
为了利用上述的求得角度差,可以对上述的公式(3)进行变换,得到公式(4)。
[0085][0086]
其中,为第一匹配点在目标图像上的像素坐标;为第二匹配点在待配准图像上的像素坐标;s为第一匹配点对所对应的尺度,即点对应的尺度;θ为角度差。
[0087]
步骤s122:基于第一变换参数,得到第一处理结果。
[0088]
在一个实施场景中,第一处理结果为待配准图像与目标图像之间的第一变换参数。在另一个实施场景中,第一处理结果为待配准图像的位姿,待配准图像的位姿即为终端
在拍摄待配准图像时的位姿。在一个具体实施场景中,可以利用pnp(perspective

n

point)算法对第一变换参数进行处理,以此得到待配准图像的位姿。通过将第一处理结果设置的具体类型(第一变换参数或者是待配准图像的位姿),后续可以根据需要进行的变换。
[0089]
因此,通过获取第一匹配点对,可以得到待配准图像与目标图像之间的第一变换参数,并最终得到第一处理结果。
[0090]
请参阅图3,图3是本技术图像处理方法第一实施例的第三流程示意图。本实施例是对上述实施例步骤s13中提及的“基于参考图像帧的参考处理结果、待跟踪图像与参考图像帧中的图像信息,以得到待跟踪图像的第二处理结果”步骤的进一步扩展,具体而言,可以包括如下步骤:
[0091]
步骤s131:基于待跟踪图像与参考图像帧之间的第二匹配点对,确定第二变换参数;
[0092]
获取第二匹配点对以及第二变换参数的方法可以参阅上述获取第一匹配点对和第一变换参数的具体描述,此处不再赘述。
[0093]
步骤s132:利用参考变换参数和第二变换参数,得到待跟踪图像与目标图像之间的第三变换参数。
[0094]
在本公开实施例中,参考处理结果为参考图像帧与目标图像之间的参考变换参数,参考变换参数例如是参考图像帧与目标图像之间的单应性矩阵h。获取参考变换参数的方法可以参阅上述获取第一变换参数的具体描述,此处不再赘述。
[0095]
以此,可以利用参考变换参数和第二变换参数,得到待跟踪图像与目标图像之间的第三变换参数。
[0096]
在一个具体实施场景中,计算第三变换参数的公式(5)如下:
[0097]
h3=h1·
h2ꢀꢀ
(5)
[0098]
其中,h3为第三变换参数,h1为参考变换参数,h2为第二变换参数。
[0099]
步骤s133:基于第三变换参数,得到第二处理结果。
[0100]
在一个实施场景中,第二处理结果为待跟踪图像与目标图像之间的第三变换参数。在另一个实施场景中,第二处理结果为待跟踪图像的位姿,待跟踪图像的位姿即为终端在拍摄待跟踪图像时的位姿。在一个具体实施场景中,可以利用pnp算法对第三变换参数进行处理,以此得到待跟踪图像的位姿。通过将第二处理结果设置不同的类型(第三变换参数或者是待跟踪图像的位姿),后续可以根据需要进行选择。
[0101]
因此,通过获取第二匹配点对,可以得到待跟踪图像与目标图像之间的第三变换参数,并最终得到第二处理结果。
[0102]
在另一个实施例中,参考处理结果可以是参考图像帧的位姿,即终端拍摄参考图像帧时的位姿。此时,可以获取为参考图像帧的位姿与目标图像位姿之间的位姿变化量,即终端在拍摄参考图像帧时的位姿和拍摄目标图像时的位姿变化量,以及参考图像帧位姿,以此获得待跟踪图像的位姿。参考图像帧的位姿以及参考图像帧的位姿与目标图像位姿之间的位姿变化量,可以根据通用的相机位姿计算方法得到。
[0103]
在一个实施场景中,第一处理结果为待配准图像与目标图像之间的第一变换参数,第二处理结果为待跟踪图像与目标图像之间的第三变换参数。此时,基于第一处理结果
(第一变换参数)得到的参考处理结果可以是参考图像帧与目标图像之间的参考变换参数,然后利用参考变换参数和待跟踪图像与参考图像帧之间的第二变换参数得到第三变换参数。
[0104]
在一个实施场景中,第一处理结果为待配准图像的位姿,第二处理结果为待跟踪图像的位姿。此时,基于第一处理结果(待配准图像的位姿)得到的参考处理结果可以是参考图像帧的位姿,然后利用参考图像帧的位姿,待跟踪图像与参考图像帧之间的位姿变化量得到待跟踪图像的位姿。
[0105]
在一个实施场景中,第一处理结果为第一变换参数,第二处理结果为待跟踪图像的位姿。此时,还可以利用第二线程执行步骤:利用第一变换参数,得到待配准图像的位姿。此时,基于第一处理结果(待配准图像的位姿)得到的参考处理结果可以是参考图像帧的位姿,然后利用参考图像帧的位姿,待跟踪图像与参考图像帧之间的位姿变化量得到待跟踪图像的位姿。
[0106]
因此,通过设置获得的第一处理结果为待配准图像与目标图像之间的第一变换参数或者是待配准图像的位姿,后续可以根据第一处理结果的具体类型,利用第一变换参数或者是待配准图像的位姿来求分别求得待跟踪图像的位姿。
[0107]
在一个公开实施例中,在执行上述的“将第一图像帧作为待配准图像”之前,本技术的图像处理方法还包括利用第二线程执行以下步骤s21,以确定第一图像帧。
[0108]
步骤s21:选出满足配准条件的图像帧作为第一图像帧,并将第一图像帧传递给第一线程。
[0109]
在一个实施场景中,第二线程可以作为主线程,此时,第二线程可以执行“获取拍摄装置拍摄得到的图像帧”步骤。并且,第二线程可以选出满足配准条件的图像帧作为第一图像帧,并将第一图像帧传递给第一线程。配准条件可以是每间隔预设时间确定一帧第一图像帧,并传递给第一线程;或者,配准条件可以是属于每间隔预设数量的图像帧,例如,每间隔10帧,确定一帧第一图像帧;或者是为某一帧图像帧与前一图像帧之间的相似度不满足相似度要求的图像帧,相似度的计算方法例如是误差平方和(sum of squared differences,ssd)函数,或者归一化互相关(normalized cross correlation,ncc)函数等。
[0110]
此外,第二线程也可以执行步骤s22。
[0111]
步骤s22:将获取到的图像帧传递给第一线程,利用第一线程选出满足配准条件的图像帧作为第一图像帧。
[0112]
此时,第二线程可以执行“获取拍摄装置拍摄得到的图像帧”步骤,然后第二线程可以将获得的图像帧传递给第一线程,由第一线程来选出满足配准条件的图像帧作为第一图像帧。
[0113]
因此,通过选出满足预设条件的图像帧作为第一图像帧,可以避免对每一图像帧都执行图像配准的步骤(步骤s12),可以减少运算量,提高终端的响应速度。
[0114]
请参阅图4,图4是本技术图像处理方法第二实施例的流程示意图。在执行上述实施例步骤s13中提及的“基于参考图像帧的参考处理结果、待跟踪图像与参考图像帧中的图像信息,得到待跟踪图像的第二处理结果”之前,还可以利用第二线程执行以下步骤:
[0115]
步骤s31:判断参考处理结果是否为基于最新得到的第一处理结果确定的。
[0116]
判断参考处理结果是否为基于最新得到的第一处理结果确定的,具体可以是,若第一线程输出了新的第一处理结果,判断当前的参考处理结果是否为基于最新得到的第一处理结果确定。例如,第一线程在第1图像帧(作为第一图像帧)输出了第一处理结果,后续在第10图像帧(作为第一图像帧)输出了第一处理结果,则判断第10图像帧以及后的参考处理结果是否为基于第10图像帧对应的第一处理结果得到的。
[0117]
执行本实施例的终端能够响应于参考处理结果不是基于最新得到的第一处理结果确定的情况,然后执行步骤s32,在参考处理结果是基于最新得到的第一处理结果确定的情况下,可以继续基于最新得到的第一处理结果确定参考处理结果。
[0118]
步骤s32:基于最新得到的第一处理结果,得到参考处理结果。
[0119]
可以理解的,因为第一线程和第二线程是异步处理的,且因为第一线程执行的步骤是图像配准的步骤,运算速度较慢,所以,第二线程一般会根据第一线程得到的一个第一处理结果,得到后续的参考图像帧的参考处理结果。在得到后续参考图像帧的参考处理结果的过程中,第一线程可能会基于新的第一图像帧得到新的第一处理结果。例如,在将第5图像帧作为第一图像帧,且根据第一线程得到了第5图像帧对应的第一处理结果。第二线程后续可以根据该第一处理结果得到第6图像帧、第7图像帧等(这些图像帧均作为参考图像帧)的参考处理结果。在此过程中,后续会将第10图像帧作为第一图像帧,用于得到新的第一处理结果,得到新的第一处理结果对应的设备获得图像帧可能是第16帧(在第10帧以后),若此时以第15图像帧为参考图像帧,则第15图像帧的参考处理结果可以是基于最新得到的第一处理结果(第10图像帧对应的第一处理结果)得到的。
[0120]
由此,可以根据最新的第一处理结果得到参考处理结果,实现对参考处理结果的更新。
[0121]
在一个实施场景中,最新得到的第一处理结果所对应的待配准图像为第三图像帧。例如,上述的用于得到新的第一处理结果对应的第10图像帧即为第三图像帧。
[0122]
在一个实施场景中,步骤s32提及的“基于最新得到的第一处理结果,得到参考处理结果”包括一下步骤s321和步骤s322。
[0123]
步骤s321:在参考图像帧为第三图像帧的情况下,将第三图像帧的第一处理结果作为参考处理结果;
[0124]
若参考图像帧为第三图像帧,则可以直接将第三图像帧的第一处理结果作为参考处理结果。
[0125]
步骤s322:在参考图像帧不为第三图像帧的情况下,基于第三图像帧的第一处理结果以及第三图像帧与参考图像帧之间的变化关系,得到参考处理结果。
[0126]
若参考图像帧不是第三图像帧,意味着参考图像帧和第三图像帧之间间隔有数帧图像帧。此时,可以基于第三图像帧的第一处理结果以及第三图像帧与参考图像帧之间的变化关系,得到参考处理结果。具体得到参考处理结果方法,可以参阅上述步骤s13中提及的“参考图像帧是第二图像帧时,确定参考处理结果”的具体描述,此处不再赘述。
[0127]
可以理解的,若参考处理结果是第三图像帧相对于目标图像的变换参数(例如是单应性矩阵h),则第三图像帧与参考图像帧之间的变化关系也可以是两帧图像帧之间的变换参数(单应性矩阵h);若参考处理结果是第三图像帧的位姿(终端拍摄第三图像帧的位姿),则第三图像帧与参考图像帧之间的变化关系也可以是两帧图像帧之间的位姿变化量。
[0128]
因此,通过确定参考图像帧是否为第三图像帧,可以分别确定对应的参考处理结果。
[0129]
请参阅图5,图5是本技术图像处理方法第三实施例的流程示意图。在本实施例中,在执行上述的“利用第一线程执行:将第一图像帧作为待配准图像,并将待配准图像与目标图像进行配准,以得到待配准图像的第一处理结果”之前,图像处理方法还包括利用第二线程执行以下步骤:
[0130]
步骤s41:将第一线程进行初始化。
[0131]
将第一线程进行初始化,可以是常规的线程初始化过程,此处不再赘述。通过初始化第一线程,后续可以利用第一线程执行图像配准(步骤s12)等步骤。
[0132]
步骤s42:在第二线程得到待跟踪图像的第二处理结果之后,基于待跟踪图像的第二处理结果,对待跟踪图像进行渲染并显示。
[0133]
基于待跟踪图像的第二处理结果,对待跟踪图像进行渲染并显示,具体是可以根据待跟踪图像的位姿,即根据终端拍摄待跟踪图像时的位姿,对待跟踪图像进行渲染并显示。可以理解的,若第二处理结果是待跟踪图像与目标图像之间的变换参数,则可以根据该变化参数得到终端的位姿;若第二处理结果是待跟踪图像的位姿,则直接根据待跟踪图像的位姿对待跟踪图像进行渲染并显示。
[0134]
步骤s43:在第一线程得到待配准图像的第一处理结果且的情况下,基于待配准图像的第一处理结果,对待配准图像进行渲染并显示。
[0135]
第一线程得到待配准图像的第一处理结果后,可以基于待配准图像的第一处理结果,对待配准图像进行渲染并显示。可以理解的,若第一处理结果是待跟踪图像与目标图像之间的变换参数,则可以根据该变化参数得到终端的位姿;若第一处理结果是待配准图像的位姿,则直接根据待配准图像的位姿对待配准图像进行渲染并显示。
[0136]
因此,通过利用第二线程对待跟踪图像进行渲染并显示,或者是利用第二线程对待配准图像进行渲染并显示,可以实现对图像帧的加工,实现与真实环境之间的交互。
[0137]
请参阅图6,图6是本技术图像处理终端实施例的框架示意图。图像处理终端60包括图像获取模块61、第一线程模块62以及第二线程模块63。图像获取模块用于获取拍摄装置拍摄得到的图像帧,其中,图像帧包括第一图像帧和第二图像帧;第一线程模块62用于利用第一线程执行将第一图像帧作为待配准图像,并将待配准图像与目标图像进行配准,以得到待配准图像的第一处理结果步骤;第二线程模块63用于利用第二线程执行将第二图像帧作为待跟踪图像,并基于参考图像帧的参考处理结果、待跟踪图像与参考图像帧中的图像信息,以得到待跟踪图像的第二处理结果步骤,其中,参考图像帧为在待跟踪图像之前的图像帧,参考处理结果是基于第一处理结果确定,第一线程和第二线程是异步处理的。
[0138]
其中,上述的第一线程模块62利用第一线程用于将待配准图像与目标图像进行配准,以得到待配准图像的第一处理结果,包括:基于待配准图像与目标图像之间的第一匹配点对,确定待配准图像与目标图像之间的第一变换参数;基于第一变换参数,得到第一处理结果;上述的参考处理结果为参考图像帧与目标图像之间的参考变换参数;上述的第二线程模块63用于基于参考图像帧的参考处理结果、待跟踪图像与参考图像帧中的图像信息,以得到待跟踪图像的第二处理结果,包括:基于待跟踪图像与参考图像帧之间的第二匹配点对,确定第二变换参数;利用参考变换参数和第二变换参数,得到待跟踪图像与目标图像
之间的第三变换参数;基于第三变换参数,得到第二处理结果。
[0139]
其中,上述的第一处理结果为待配准图像与目标图像之间的第一变换参数,第二处理结果为待跟踪图像与目标图像之间的第三变换参数;或者,上述的第一处理结果为待配准图像的位姿,第二处理结果为待跟踪图像的位姿;或者,上述的第一处理结果为第一变换参数,第二处理结果为待跟踪图像的位姿,且还包括利用第二线程模块63利用第二线程执行以下步骤:利用第一变换参数,得到待配准图像的位姿。
[0140]
其中,在上述的第二线程模块63利用第二线程基于参考图像帧的参考处理结果、待跟踪图像与参考图像帧中的图像信息,得到待跟踪图像的第二处理结果之前,第二线程模块63还可以利用第二线程执行以下步骤:响应于参考处理结果不是基于最新得到的第一处理结果确定的情况,执行基于最新得到的第一处理结果,得到参考处理结果的步骤。
[0141]
其中,上述的最新得到的第一处理结果所对应的待配准图像为第三图像帧;上述的第二线程模块63利用第二线程基于最新得到的第一处理结果,得到参考处理结果,包括:在参考图像帧为第三图像帧的情况下,将第三图像帧的第一处理结果作为参考处理结果;和/或,在参考图像帧不为第三图像帧的情况下,基于第三图像帧的第一处理结果以及第三图像帧与参考图像帧之间的变化关系,得到参考处理结果。
[0142]
其中,在上述的第一线程模块62用于在将第一图像帧作为待配准图像之前,第二线程模块63还用于利用第二线程执行以下步骤:选出满足配准条件的图像帧作为第一图像帧,并将第一图像帧传递给第一线程,或者,将获取到的图像帧传递给第一线程模块62,利用第一线程选出满足配准条件的图像帧作为第一图像帧。
[0143]
其中,上述的配准条件为属于每间隔预设数量的图像帧,或者为与前一图像帧之间的相似度不满足相似度要求的图像帧。
[0144]
其中,在上述的第一线程模块62用于利用第一线程执行:将第一图像帧作为待配准图像,并将待配准图像与目标图像进行配准,以得到待配准图像的第一处理结果之前,第二线程模块63还用于利用第二线程执行以下步骤:将第一线程进行初始化;和/或,方法还包括利用第二线程执行以下至少一个步骤:在第二线程得到待跟踪图像的第二处理结果之后,基于待跟踪图像的第二处理结果,对待跟踪图像进行渲染并显示;在第一线程得到待配准图像的第一处理结果的情况下,基于待配准图像的第一处理结果,对待配准图像进行渲染并显示。
[0145]
其中,上述的第一线程为网页中的工人线程;和/或,第一线程和第二线程的部分或全部执行步骤是由webassembly编程语言实现;和/或,第一线程和第二线程之间采用消息传递机制进行数据传递。
[0146]
其中,上述的参考图像帧为待跟踪图像的前第i帧,i为大于或等于1的整数;和/或,第一图像帧与第二图像帧为不同的图像帧,或者,至少部分第一图像帧为第二图像帧。
[0147]
请参阅图7,图7是本技术电子设备一实施例的框架示意图。电子设备70包括相互耦接的存储器701和处理器702,处理器701用于执行存储器701中存储的程序指令,以实现上述任一图像处理方法实施例的步骤。在一个具体的实施场景中,电子设备70可以包括但不限于:微型计算机、服务器,此外,电子设备70还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
[0148]
具体而言,处理器702用于控制其自身以及存储器701以实现上述任一图像处理方
法实施例的步骤。处理器702还可以称为cpu(central processing unit,中央处理单元)。处理器702可能是一种集成电路芯片,具有信号的处理能力。处理器702还可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器702可以由集成电路芯片共同实现。
[0149]
请参阅图8,图8是本技术计算机可读存储介质一实施例的框架示意图。计算机可读存储介质80存储有能够被处理器运行的程序指令801,程序指令801用于实现上述任一图像处理方法实施例的步骤。
[0150]
上述方案,通过将第一线程和第二线程是设置为异步处理,使得终端具有可以在进行图像配准的过程中同时,还可以进行图像跟踪的能力,故使得图像跟踪不一定无需等待图像配准的结果(第一处理结果),使得进而终端能够及时得到跟踪结果(第二处理结果)实现图像跟踪,提高了终端的响应速度,降低了延迟。
[0151]
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
[0152]
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
[0153]
在本技术所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
[0154]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0155]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0156]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1