图像处理系统、方法、智能终端及计算机可读存储介质与流程

文档序号:31053468发布日期:2022-08-06 09:23阅读:85来源:国知局
图像处理系统、方法、智能终端及计算机可读存储介质与流程

1.本发明涉及图像信息计算处理技术领域,尤其涉及的是一种图像处理系统、系统、方法、智能终端及计算机可读存储介质。


背景技术:

2.随着科学技术的发展,对于图像信息的获取和应用越来越广泛。在一些应用场景中,需要对获取的多个图像进行对齐处理,以便获取多个图像中相对应的数据信息。例如,在3d视觉的应用场景中,为了更好地应用深度图像中的深度数据,需要将一个场景对应的深度图像与该场景对应的另一个二维图像(例如rgb图像、灰度图像等)进行对应的图像处理,使得深度图像与该二维图像对齐,即将深度图像中的深度信息映射到对应的二维图像的像素上,方便使用深度信息辅助进行3d识别等操作。
3.现有的图像处理系统在对两张(或多张)图像进行对齐处理时,需要一次处理两张图像中的所有数据,不能将数据进行分批计算和处理。现有技术的问题在于,在进行图像对齐处理时需要同时对大量数据进行处理,不利于提高处理效率和图像对齐的准确性。同时,庞大的计算量要求用于处理的硬件设备性能高,不利于在硬件设备性能不高的场景下进行图像对齐处理,即影响图像对齐处理的适用性。


技术实现要素:

4.本发明的主要目的在于提供一种图像处理系统、方法、智能终端及计算机可读存储介质,旨在解决现有技术中在进行图像对齐处理时需要同时对大量数据进行处理,不利于提高处理效率,不利于在硬件设备性能不高的场景下进行图像对齐处理,影响图像对齐处理的适用性的问题。
5.为了实现上述目的,本发明第一方面提供一种图像处理系统,包括:
6.深度相机,被配置为采集目标场景的深度图像;
7.二维相机,被配置为采集目标场景的二维图像;
8.存储器,被配置为存储上述深度图像、二维图像、上述深度相机和上述二维相机之间的标定信息以及上述深度相机的深度测量范围;
9.处理器,被配置为根据上述标定信息和上述深度测量范围确定上述深度图像的每一行在上述二维图像中对应的行索引范围,并根据上述行索引范围提取上述深度图像中的至少一行深度数据及上述二维图像中对应的至少一行二维数据进行对齐处理确定上述深度数据对应的二维数据。
10.可选的,上述根据上述行索引范围提取上述深度图像中的至少一行深度数据及上述二维图像中对应的至少一行二维数据进行对齐处理确定上述深度数据对应的二维数据,包括:
11.根据上述处理器的内存大小和上述行索引范围对上述深度图像和上述二维图像进行划分并提取多组待处理数据,其中,每组上述待处理数据包括至少一行深度数据以及
对应的多行二维数据,且相邻行深度数据共享部分二维数据。
12.可选的,上述对上述待处理数据进行对齐处理确定上述深度数据对应的二维数据,包括:
13.将一组上述待处理数据搬运到上述处理器的内存中,通过上述处理器对该组待处理数据进行对齐处理,确定该组待处理数据中上述深度数据对应的二维数据,然后将下一组上述待处理数据搬运到上述内存中进行对齐处理,直到每一组上述待处理数据都完成对齐处理;
14.其中,一组内存存储数据的数据量之和不大于上述处理器的内存大小,一组上述内存存储数据包括一组上述待处理数据以及对该组待处理数据进行对齐处理后获得的已处理数据。
15.可选的,上述图像处理系统还用于:
16.搬运第i组上述待处理数据时,获取第i组上述待处理数据与第i-1组上述待处理数据的行索引重叠范围,保留上述内存中的重叠数据,将待搬运数据搬运到上述内存中;
17.其中,上述重叠数据是第i-1组上述待处理数据中与上述行索引重叠范围对应的数据,上述待搬运数据是第i组上述待处理数据中上述行索引重叠范围以外的数据。
18.可选的,上述存储器中存储的上述标定信息包括:上述深度相机的内参、上述二维相机的内参、上述深度相机和上述二维相机之间的旋转矩阵以及上述深度相机和上述二维相机之间的平移矩阵。
19.可选的,上述存储器中存储的上述深度测量范围包括:上述深度相机的最大探测值和最小探测值。
20.可选的,上述根据上述标定信息和上述深度测量范围确定上述深度图像的每一行在上述二维图像中对应的行索引范围,包括:
21.根据上述深度相机的内参、上述二维相机的内参、上述旋转矩阵、上述平移矩阵、上述最大探测值和上述最小探测值分别获取上述深度图像的每一行对应的最大行索引和最小行索引;
22.根据上述最大行索引和上述最小行索引获取上述深度图像中每一行对应的上述行索引范围;
23.其中,上述深度图像中一个待对齐行对应的行索引范围用于指示上述二维图像中目标对齐行的范围,上述二维图像中的目标对齐像素点属于上述目标对齐行,上述目标对齐像素点与上述待对齐行中任意一个待对齐像素点对应。
24.本发明第二方面提供一种图像处理方法,其中,上述图像处理方法应用于上述任意一种图像处理系统中,上述方法包括:
25.通过深度相机采集目标场景的深度图像并存入存储器;
26.通过二维相机采集目标场景的二维图像并存入存储器;
27.获取上述存储器中预先存储的上述深度相机和上述二维相机之间的标定信息以及上述深度相机的深度测量范围;
28.通过处理器根据上述标定信息和上述深度测量范围确定上述深度图像的每一行在上述二维图像中对应的行索引范围,并根据上述行索引范围提取上述深度图像中的至少一行深度数据及上述二维图像中对应的至少一行二维数据进行对齐处理确定上述深度数
据对应的二维数据。
29.本发明第三方面提供一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的图像处理程序,上述图像处理程序被上述处理器执行时实现上述图像处理方法的步骤。
30.本发明第四方面提供一种计算机可读存储介质,上述计算机可读存储介质上存储有图像处理程序,上述图像处理程序被处理器执行时实现上述图像处理方法的步骤。
31.由上可见,本发明方案中提供的图像处理系统包括:深度相机,被配置为采集目标场景的深度图像;二维相机,被配置为采集目标场景的二维图像;存储器,被配置为存储上述深度图像、二维图像、上述深度相机和上述二维相机之间的标定信息以及上述深度相机的深度测量范围;处理器,被配置为根据上述标定信息和上述深度测量范围确定上述深度图像的每一行在上述二维图像中对应的行索引范围,并根据上述行索引范围提取上述深度图像中的至少一行深度数据及上述二维图像中对应的至少一行二维数据进行对齐处理确定上述深度数据对应的二维数据。与现有技术中需要一次处理两张图像中的所有数据、不能将数据进行分批计算和处理的方案相比,本发明中的图像处理系统可以根据标定信息和深度测量范围获取深度图像中的每一行在二维图像中对应的行索引范围,从而根据对应的行索引范围将需要进行处理的数据进行分组,每一次对一组待处理数据进行对齐处理。如此,处理器不需要一次同时处理所有数据,每一次的数据计算量较小,有利于提高处理效率。同时,可以合理地根据处理器的内存大小进行数据分组,从而合理利用处理器的计算能力和存储能力,有利于适用于不同性能的处理器,提高图像对齐处理过程的适用性。进而方便进行图像对齐之后的操作流程(例如人脸识别),提升用户体验。
附图说明
32.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
33.图1是本发明实施例提供的一种图像处理系统的结构示意图;
34.图2是本发明实施例提供的一种深度图像与rgb图像的映射关系示意图;
35.图3是本发明实施例提供的一种深度图像和rgb图像的映射关系示意图;
36.图4是本发明实施例提供的一种图像处理方法的流程示意图;
37.图5是本发明实施例提供的一种智能终端的内部结构原理框图。
具体实施方式
38.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
39.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、
操作、元素、组件和/或其集合的存在或添加。
40.还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
41.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
42.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当

时”或“一旦”或“响应于确定”或“响应于检测到”。类似的,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述的条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0043]
下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0044]
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
[0045]
随着科学技术的发展,对于图像信息的获取和应用越来越广泛。在一些应用场景中,需要对获取的多个图像进行对齐处理,以便获取多个图像中相对应的数据信息。例如,在3d视觉的应用场景中,从3d相机模组中获取到深度图像之后,为了更好地应用深度图像中的深度数据,需要将一个场景对应的深度图像与该场景对应的另一个二维图像(例如rgb图像、灰度图像、ir图像等)进行对应的图像处理,使得深度图像与该二维图像对齐,即将深度图像中的深度信息映射到对应的二维图像的像素上,方便使用深度信息辅助进行3d识别等操作。例如,将该深度图像与从二维相机模组(例如,rgb相机模组)中获取的rgb图像对齐,将获取的深度信息映射到彩色图像的像素上(即d2c,depth to color),以实现更好地信息利用。
[0046]
现有技术中,在对两张(或多张)图像进行对齐处理时,需要一次处理两张图像中的所有数据,不能将数据进行分批计算和处理。现有技术的问题在于,在进行图像对齐处理时需要同时对大量数据进行处理,不利于提高处理效率和图像对齐的准确性。同时,庞大的计算量要求用于处理的硬件设备性能高,不利于在硬件设备性能不高的场景下进行图像对齐处理,即影响图像对齐处理的适用性。
[0047]
具体地,受计算量的限制,目前常见的3d设备中的图像对齐处理计算都需要在额外设置的宿主机或者移动终端的cpu上计算,不能直接在3d设备对应的图像处理器(如数字信号处理器)上进行计算。如果使用宿主机,则限制了3d设备的使用场景,如果使用移动终端的cpu,则会增加cpu的负担,影响其他任务的进行。同时,现有技术中的d2c算法通常只能根据特定的3d相机模组采集的数据进行计算,而不同的3d相机模组存在个体本身差异以及安装的差异,使得现有的d2c算法无法自适应地对不同的3d相机模组采集的数据进行计算。
[0048]
为了解决现有技术中存在的至少一个问题,本发明中提供一种图像处理系统包括:深度相机,被配置为采集目标场景的深度图像;二维相机,被配置为采集目标场景的二
维图像;存储器,被配置为存储上述深度图像、二维图像、上述深度相机和上述二维相机之间的标定信息以及上述深度相机的深度测量范围;处理器,被配置为根据上述标定信息和上述深度测量范围确定上述深度图像的每一行在上述二维图像中对应的行索引范围,并根据上述行索引范围提取上述深度图像中的至少一行深度数据及上述二维图像中对应的至少一行二维数据进行对齐处理确定上述深度数据对应的二维数据。与现有技术中需要一次处理两张图像中的所有数据、不能将数据进行分批计算和处理的方案相比,本发明中的图像处理系统可以根据标定信息和深度测量范围获取深度图像中的每一行在二维图像中对应的行索引范围,从而根据对应的行索引范围将需要进行处理的数据进行分组,每一次对一组待处理数据进行对齐处理。如此,处理器不需要一次同时处理所有数据,每一次的数据计算量较小,有利于提高处理效率。同时,可以合理地根据处理器的内存大小进行数据分组,从而合理利用处理器的计算能力和存储能力,有利于适用于不同性能的处理器,提高图像对齐处理过程的适用性。进而方便进行图像对齐之后的操作流程(例如人脸识别),提升用户体验。
[0049]
如图1所示,本发明实施例提供一种图像处理系统,包括:
[0050]
深度相机10,被配置为采集目标场景的深度图像;
[0051]
二维相机20,被配置为采集目标场景的二维图像;
[0052]
存储器30,被配置为存储上述深度图像、二维图像、上述深度相机和上述二维相机之间的标定信息以及上述深度相机的深度测量范围;
[0053]
处理器40,被配置为根据上述标定信息和上述深度测量范围确定上述深度图像的每一行在上述二维图像中对应的行索引范围,并根据上述行索引范围提取上述深度图像中的至少一行深度数据及上述二维图像中对应的至少一行二维数据进行对齐处理确定上述深度数据对应的二维数据。
[0054]
其中,深度图像和二维图像是需要进行对齐处理的图像,目标场景是进行图像拍摄的场景。本实施例中,以对两个图像进行对齐处理为例进行说明,实际使用过程中,可以基于上述图像处理系统对多个图像进行对齐处理,即二维图像不止一幅,例如,将深度图像和第一二维图像对齐后获得第一对齐图像,将第二二维图像与第一对齐图像进行对齐处理获得第二对齐图像,从而实现三个图像之间的对齐处理。
[0055]
本实施例中,将深度图像与二维图像(例如rgb图像)进行对齐,可以实现将深度图像中的深度信息映射到二维图像的对应像素上,有利于结合深度信息辅助二维图像进行三维信息识别(例如3d人脸识别)。
[0056]
需要说明的是,本实施例中,深度图像和二维图像是通过不同相机拍摄获取的,深度图像是深度相机10拍摄获得,二维图像是二维相机20拍摄获得的。具体的,二维图像为待对齐rgb图像,是利用rgb相机拍摄获得。基于本实施例中的图像处理系统,对待对齐深度图像和待对齐rgb图像进行图像对齐处理,将深度信息映射到彩色图像(待对齐rgb图像)的像素上,从而进一步基于彩色图像进行图像识别,获取对应的环境或被拍摄的对象的信息,有利于更好地实现对于深度信息的利用。
[0057]
具体的,标定信息包括深度相机10的内参、二维相机20的内参、深度相机10和二维相机20之间的旋转矩阵以及深度相机10和二维相机20之间的平移矩阵,深度测量范围包括深度相机10的最大探测值和最小探测值。
[0058]
本实施例中,基于标定信息可以对待对齐深度图像和待对齐rgb图像进行对齐处理。同时,基于深度相机10对应的最大探测值和最小探测值可以确定深度图像中各行在二维图像中可能对应的行索引范围,从而方便对深度图像和二维图像进行分行对齐,即实现数据的分批处理。
[0059]
其中,深度图像中一行对应的行索引范围是该行中的像素点在二维图像中对应的各个像素点可能存在的行的索引范围。例如,深度图像的第1行中各个像素点对应的像素点可能分布在二维图像的第1行到第3行之间,则深度图像的第1行对应的行索引范围是1到3行。
[0060]
需要说明的是,深度测量范围可以根据深度相机10的最大工作距离和最小工作距离确定。
[0061]
本实施例中,上述根据上述标定信息和上述深度测量范围确定上述深度图像的每一行在上述二维图像中对应的行索引范围,包括:根据深度相机10的内参、二维相机20的内参、旋转矩阵、平移矩阵、最大探测值和最小探测值分别获取深度图像的每一行对应的最大行索引和最小行索引;基于最大行索引和最小行索引获取深度图像中每一行对应的行索引范围。
[0062]
其中,深度图像中一个待对齐行(即深度图像中的任意一行)对应的行索引范围用于指示二维图像中目标对齐行(即与待对齐行对应的行)的范围,二维图像中的目标对齐像素点属于目标对齐行,目标对齐像素点与待对齐行中任意一个待对齐像素点对应。
[0063]
具体的,对于一个待对齐行,该行中的所有像素点都为待对齐像素点,每一个待对齐像素点在二维图像中有一个目标对齐像素点,一个待对齐行对应的所有目标对齐像素点在二维图像中属于上述行索引范围之内。例如,深度图像中的第1行有640个像素点,该640个像素点在二维图像中有对应的640个目标对齐像素点。将二维图像中这640个目标对齐像素点对应的行索引范围(例如第1到3行)作为待对齐行的行索引范围。其中,该待对齐行对应的最大行索引是3,最小行索引是1。
[0064]
具体的,深度相机(例如3d相机模组)和二维(例如rgb)相机(模组)的光心存在距离上和旋转角度上的偏差,因此将深度信息映射到rgb图像上时需要先将深度信息转换到世界坐标系,再由世界坐标系转换到rgb图像像素坐标系,即实现d2c。
[0065]
本实施例中,构建深度图像像素坐标系和rgb图像像素坐标系间的坐标转换关系,如下公式(1)所示:
[0066][0067]
其中,u
rgb
和v
rgb
分别代表图像在rgb图像像素坐标系下的横坐标和纵坐标,u
ir
和v
ir
分别代表图像在深度图像像素坐标系下的横坐标和纵坐标,r
ir2rgb
代表从深度(ir)相机到rgb相机的旋转矩阵,t
ir2rgb
代表从深度相机到rgb相机的平移矩阵,k
ir
和k
rgb
分别代表深度相机和rgb相机的内参,是k
ir
的逆矩阵,depth代表深度图像中坐标为(u
ir
,v
ir
)的位置的深度值,z
rgb
则为深度图像中(u
ir
,v
ir
)坐标点在rgb图像中对应的(u
rgb
,v
rgb
)坐标位置的深度值。
[0068]
需要说明的是,上述公式(1)中,深度图像中的一个待对齐像素点的坐标为(u
ir
,vir
),rgb图像中与该待对齐像素点对应的目标对齐像素点的坐标为(u
rgb
,v
rgb
)。d2c算法是把深度图像的深度值映射到rgb图像上的对应像素点(目标对齐像素点)上,这样就可以变成rgbd的数据(即结合rgb色彩和深度信息的数据),在整个算法中不需要考虑rgb像素的值。在一种应用场景中,rgb相机和深度相机分别采图,两种图中的同一物体在两个图像中的像素坐标是不一样的,即把两张图像重叠在一起的话会有偏差,d2c需要做的是将深度图像与rgb重叠后使得两张图中的同一物体重叠,上述z
rgb
则为(u
ir
,v
ir
)坐标点的深度映射到(u
rgb
,v
rgb
)点上的深度,即为在对齐后的rgb图像上像素点的深度值,也即(u
ir
,v
ir
)坐标点在经过对齐处理后对应的已处理数据(已处理数据包括对齐后的图像中各点的rgb色彩值和深度值)。
[0069]
本实施例中,将深度图像中的各个像素点对齐二维图像中的各个像素点,并映射对应的深度信息。因此(u
ir
,v
ir
)是确定的(根据对应的待对齐像素点的坐标确定),且预先获取了深度图像和二维图像之间的标定信息以及上述深度图像对应的深度测量范围,因此上述公式(1)中,只有u
rgb
、v
rgb
和z
rgb
是需要计算的未知量。本实施例中,是对深度图像中的像素点进行逐行对齐,因此无需考虑v
rgb
对应的列索引范围。在实际使用过程中,也可以对深度图像中的像素点进行逐列对齐,则只需考虑v
rgb
对应的列索引范围,而无需考虑u
rgb
对应的行索引范围,具体也可以参照本实施例方案,在此不再赘述。
[0070]
本实施例中,以逐行处理为例进行说明,可以将公式(1)中的未知量z
rgb
移到等式左边,从而针对深度图像中的某一待对齐行(第u
ir
行),根据depth的最大值和最小值分别求取u
rgb
对应的最大值和最小值,作为该待对齐行的最大行索引和最小行索引。
[0071]
在一种应用场景中,以常见的一种深度图像为例,常见的深度图像的分辨率为640*480,则u
ir
的取值范围为0到639(从第0行开始计数),v
ir
的取值范围为0到479(从第0列开始计数)。深度值depth的最大值和最小值(即上述深度图像中的最大探测值和最小探测值)可以根据深度相机的工作距离确定。
[0072]
具体的,基于上述公式(1)所示的d2c原理可知,rgb图像中对应的行索引u
rgb
和列索引v
rgb
均与depth相关。图2是本发明实施例提供的一种深度图像与rgb图像的映射关系示意图,如图2所示,当depth为最小探测值时,根据上述公式(1)可以获取对应的最小行索引,反之当depth为最大探测值时,根据上述公式(1)可以获取对应的最大行索引,从而可以获取深度图像中待对齐行对应的二维图像中的行索引范围,确定每次需要搬运的数据。
[0073]
本实施例中,针对深度图像中的每一行,可以根据深度相机的工作距离(即深度相机的探测距离范围,根据具体的深度相机和应用场景设置确定)以及相机标定信息可以提前计算出对应的行索引范围。且可以根据每一行对应的最小行索引(color_y_min)和最大行索引(color_y_max)建立对应的索引表,以便确定深度图像中每一行对应的行索引范围。需要说明的是,图2中展示的是深度图像与rgb图像的对应映射关系,实际使用过程中,可以认为对齐后的图像是与rgb图像重叠的,即图2也可以作为深度图像与对齐后的图像之间的对应映射关系。
[0074]
本实施例中,可以预设一个用于计算行索引范围的算法(或程序等),将相机间的旋转矩阵r
ir2rgb
、平移矩阵t
ir2rgb
、深度相机内参k
ir
和rgb相机内参k
rgb
输入对应的算法,同时,基于深度相机工作距离获取最大探测值depth
max
和最小探测值depth
min
并输入上述算法。
[0075]
需要说明的是,在一种应用场景中,最大探测值和最小探测值还可以预先通过对深度相机及其应用场景的设定来确认,例如,在对应的拍摄区域内,预先规定被拍摄对象(如需要进行人脸检测的用户)距离深度相机的最近距离和最远距离。在另一种应用场景中,还可以对深度图像进行深度值分析,获取已经拍摄好的深度图像中具体的最大探测值和最小探测值进行计算,以提高计算精度,进行更好的数据搬运,提高图像对齐效率。
[0076]
具体的,依次计算深度图像中每一行对应的最大行索引和最小行索引,从而获得每一行对应的行索引范围。对于深度图像中的一个待对齐行,u
ir
是确定的,遍历v
ir
的每一个取值(例如0到639),分别将depth
max
和depth
min
代入上述公式(1)计算获得该待对齐行的640个候选最小索引和640个候选最大索引,并将所有候选最小索引中的最小值作为该待对齐行对应的最小行索引,将所有候选最大索引中的最大值作为该待对齐行对应的最大行索引。如此,可以获取深度图像中每一行对应的最大行索引和最小行索引,从而获取每一行对应的行索引范围。需要说明的是,还可以进一步将各行及其对应的行索引范围制成查找表,方便进行存储和查找,且根据上述查找表可以快速获取深度图像中的一行在二维图像中可能对应哪几行,有利于进行数据分组和搬运。
[0077]
需要说明的是,为了便于计算,本实施例中每一个待对齐行进行计算时采用的是相同的depth
max
和depth
min
。在一个实施例中,为了更精准的体现映射关系,上述深度测量范围可以包括深度图像中每一行的最大探测值和最小探测值,从而根据每一行的最大探测值和最小探测值计算获取该行对应的最大行索引、最小行索引和行索引范围。
[0078]
本实施例中,处理器40是图像处理器,且具体为用于进行图像对齐处理的图像处理器,图像处理器可以为数字信号处理器。具体的,采用本实施例中的系统,可以对所有需要进行图像对齐处理的数据(包括深度图像和二维图像中的所有数据)进行分组(分批)处理,因此并不要求对应的图像处理器的硬件性能非常高,从而可以直接基于深度相机(或3d相机模组)中的数字信息处理器进行处理,无需使用额外的宿主机或移动终端,不仅可以提高d2c算法的计算效率,还可以减少系统消耗资源,降低硬件的功耗,且可以提高适用性。可见,与现有技术中使用宿主机和移动终端的cpu的方案不同,本实施例中基于数字信号处理器进行图像对齐处理的计算过程,如此,可以降低移动终端cpu的负担并降低整个系统的功耗。
[0079]
本实施例中,上述根据上述行索引范围提取上述深度图像中的至少一行深度数据及上述二维图像中对应的至少一行二维数据进行对齐处理确定上述深度数据对应的二维数据,包括:根据处理器40的内存大小及行索引范围同时提取上述深度图像中的多行深度数据以及二维图像中对应的多行二维数据并组成多组待处理数据;分别对每一组待处理数据进行对齐处理,确定每一行深度数据对应的二维数据。
[0080]
具体的,进行图像对齐处理的过程中,有大量的访存操作,上述d2c计算过程在dsp上进行计算,深度图像和二维图像都不是存储在dsp的片上内存中的,即需要访问的数据不在dsp的片上内存中,则需要将对应的数据搬运到dsp的片上内存中。同时,dsp的片上内存大小有限,通常无法容纳深度图像和二维图像中的所有数据,因此需要对数据进行分批搬运和计算,同时需要保证每次搬运的一批数据中,待对齐行所对应的目标对齐行中的数据也被成功搬运。本实施例中,需要从同步动态随机存取存储器(sdram,synchronous dynamic random access memory)中搬运数据到dsp的片上内存中。
[0081]
在一种应用场景中,需要用户判断每次搬运几行数据,且需要用户手动输入对应的指令来实现片上内存和sdarm中的数据的来回搬移,获取不同大小、类型的数据都需要输入不同的指令,因此不方便操作,且不利于提升图像处理效率。同时,还需要用户手动计算每次搬运的数据量,难以实现对片上内存的充分利用,且容易导致搬移数据次数增多,耗费计算时间。
[0082]
因此,本实施例中,优选的,根据行索引范围提取深度图像中的一行深度数据及二维图像中对应的至少一行二维数据组成一组待处理数据,将一组待处理数据搬运到处理器40的内存中,通过处理器40对该组待处理数据进行对齐处理,确定该组待处理数据中深度数据对应的二维数据,然后将下一组处理数据搬运到内存中进行对齐处理,直到每一组待处理数据都完成对齐处理。其中,一组内存存储数据的数据量之和不大于处理器40的内存大小,一组内存存储数据包括一组待处理数据以及对该组待处理数据进行对齐处理后获得的已处理数据。
[0083]
更进一步的,也可以同时搬运多组待处理数据到处理器40中同步进行对齐处理。需要说明的是,受处理器40的内存大小的限制,每次只能搬运几行到几十行数据到片上内存中进行处理,因此,可以根据实际需求预先对深度图像和二维图像进行划分确定每次需要搬运的待处理数据。具体的,本实施例中,可以根据预先确定的行索引范围来确定深度图像中一行在二维图像中对应的行数,从而确定深度图像中一行对应的需要进行处理的数据量,从而可以进行数据分组(例如,确定将深度图像中的几行确定为一组)。如此,基于预先确定的行索引范围即可以确定每次需要计算几行、可以搬运几行的数据到片上内存。如此,可以降低计算量和搬移数据的次数。同时,上述图像处理系统还可以适用于不同相机模组采集的不同图像数据(例如分辨率不同)的图像数据,对不同的图像数据进行适当的分组搬运,使得d2c算法适应不同模组之间的差异,不需要过多人工干预即可充分利用dsp的硬件性能。
[0084]
本实施例中,根据内存大小和上述行索引范围分别对深度图像和二维图像进行划分获得多组待处理数据。需要说明的是,其中,每组所述待处理数据包括至少一行深度数据以及对应的多行二维数据,且相邻行待处理数据共享部分二维数据。其中,共享部分二维数据是指相邻行的待处理数据对应的二维数据可能存在重叠部分,对于重叠部分可以对齐过程中保留并重复使用,不需要重复进行搬运。
[0085]
例如,一组待处理图像中包括深度图像中的第1行和第2行,其中,深度图像中第1行对应的行索引范围为二维图像的1到3行,深度图像中第2行对应的行索引范围为二维图像的2到5行,则上述一待处理数据包括二维图像中第1到5行的所有数据,在进行对齐处理时第一行深度数据和第二行深度数据可以共享第2到第3行二维数据。如此,可以保证每次进行图像对齐处理时需要用到的数据都被搬运到片上内存中而又避免了重复搬用造成数据量的浪费。
[0086]
同时,还需考虑片上内存的存储空间,即一组内存存储数据的数据量之和不大于上述片上内存大小,一组内存存储数据包括一组待处理数据以及与该组待处理数据对应的已处理数据。需要说明的是,在dsp上不仅需要搬运输入的数据(一组待处理数据),也需要搬运输出的数据(对齐后的图像数据,aligned_depth),即该组待处理数据对应的已处理数据,计算时使用到的这两块数据需要同时在片上内存中存储,而片上的内存大小是固定的,
因此需要限定一组内存存储数据的数据量之和不大于上述片上内存大小。
[0087]
在一种应用场景中,每一组上述待处理数据中包括第一待处理数据和第二待处理数据,上述第一待处理数据是上述深度图像中待处理行对应的数据,上述第二待处理数据是上述二维图像中与上述待处理行对应的行索引范围内的所有数据,上述待处理行包括所述深度图像中的至少一行。对应的,可以根据行索引范围提取深度图像中的至少一行深度数据及二维图像中对应的至少一行二维数据组成至少一组待处理数据,具体包括:根据处理器40的内存大小和行索引范围分别对深度图像和二维图像进行划分并提取多组待处理数据,其中,每一组待处理数据包括第一待处理数据和第二待处理数据,第一待处理数据是深度图像中待处理行对应的数据,第二待处理数据是二维图像中与待处理行对应的行索引范围内的所有数据,待处理行包括深度图像中的至少一行。
[0088]
需要说明的是,根据输入数据的数据量可以获取对应的输出数据的数据量,从而限制每次搬运的数据。例如,在一种应用场景中,可以预先设置深度图像的一行对应数据量、rgb图像的一行对应的数据量,由于对齐后获得的输出数据是包含rgb图像信息和深度信息的数据,即数据类型是确定的,且深度图像中的一个像素点可以对应一个输出像素点数据,输出数据的行数和数据量可以根据输入的待处理数据确定。本实施例中,只需要保证输入数据的大小和输出数据的大小总和不超过片上内存的大小即可。
[0089]
对于不同的相机模组,相机的内参不同,因此获取的深度图像中各行对应的行索引范围也不同,因此不同的相机模组一次能搬运的待处理数据的行数也不同。例如,一种相机模组产生的数据一次能搬运8行,则480行数据需要60次才能计算完。另一种相机模组产生的数据一次能搬运10行,则480行数据只需要搬运48次。搬运的次数越小,系统的开销也越小。基于本实施例中的方案,可以充分利用dsp的性能,合理地进行数据分组,获取多组待处理数据,并依次对每一组待处理数据进行处理,从而在合理利用dsp的内存和处理能力的同时提高图像对齐处理的效率。
[0090]
需要说明的是,不同的图像分辨率也会导致搬运次数不同,即一行的像素点数目越多,一次能搬运的行数越少,例如1280*960的图像可能一次只能搬运4行数据。而基于本实施例中的图像处理系统,可以自适应不同的模组采集的不同分辨率的图像,从而提高对应的算法代码的利用率,无需用户在切换模组和分辨率时修改对应的代码,有利于提高图像处理过程的适用性,且方便在不同的场景进行图像对齐处理。
[0091]
同时,本实施例中计算出来的行索引范围是基于最大探测值和最小探测值计算获得的一个大致范围,而并不是基于深度图像中每一个像素点的具体深度值计算获得的精确的范围,因此连续几个待对齐行中可能会出现重叠的行索引范围(也可能不存在重叠的行索引范围),即对应的相邻行深度数据可能可以共享重叠的行索引范围内的二维数据。而重叠的行索引范围中对应的数据如果重复搬运,则会浪费时间。因此,本实施例中,上述系统还用于:
[0092]
搬运第i组上述待处理数据时,获取第i组待处理数据与第i-1组待处理数据的行索引重叠范围,保留片上内存中的重叠数据,将待搬运数据搬运到片上内存中;
[0093]
其中,重叠数据是第i-1组待处理数据中与行索引重叠范围对应的数据,待搬运数据是第i组待处理数据中行索引重叠范围以外的数据。
[0094]
图3是本发明实施例提供的一种深度图像和rgb图像的映射关系示意图,图3中,假
设深度图像中的一组待处理数据包括深度图像中的一行数据以及rgb图像中的多行数据。如图3所示,深度图像中的第i-1行数据和第i行数据对应的行索引范围有重叠,对应的重叠数据是图3中rgb图像中虚线之间的数据。在对第i-1组待处理数据进行处理时,重叠数据会被搬运到片上内存中,而在对第i组待处理数据进行处理时,也需要用到重叠数据。因此,基于本实施例中的方案,可以保留片上内存中的重叠数据,或根据实际需求对重叠数据在片上内存上进行搬运即可(在片上内存内部搬运的速度远快于sdram和片上内存之间的搬运速度),如此,可以减少数据搬运过程中的冗余搬运操作,有利于减少数据搬运的时间,提升整个系统运行的速度,从而提升图像对齐处理的效率。
[0095]
在一种应用场景中,还可以结合单指令多数据(simd,single instruction multiple data)技术进行上述图像处理过程,进一步提高图像数据对齐处理的速度。
[0096]
需要说明的是,本实施例中是在数字信号处理器上分批进行图像对齐处理,实际使用过程中,还可以通过cpu分批进行图像对齐处理,或者采用fpga、数字芯片等分批进行图像对齐处理,对图像处理器进行合理且充分的使用。
[0097]
由上可见,本实施例中,获取3d相机模组的先验信息(包括深度图像中各行对应的行索引范围),根据先验信息对数据进行分组,获取多组待处理数据,依次搬运和处理各组待处理数据,在保证每次需要存储的数据不超过数字信号处理器的片上内存的条件下充分利用数字信号处理器的性能,减少数据搬运次数,从而可以降低硬件系统的功耗,使得3d相机模组能够适用于各种场景。同时,上述系统还可以自适应不同的3d相机模组,可以考虑不同模组的标定参数的差异,根据具体的标定参数进行配置,充分利用dsp的硬件性能,且基于dsp对数据进行并行化处理。
[0098]
同时,本实施例中,还考虑需要搬运的数据中的重叠数据,避免重叠数据的重复搬运,进一步降低处理时间,提升图像对齐处理的效率,方便进行图像对齐之后的操作流程(例如人脸识别),有利于提升用户的使用体验。
[0099]
如图4中所示,对应于上述图像处理系统,本发明实施例还提供一种图像处理方法,上述方法应用于上述任意一种图像处理系统,上述方法包括:
[0100]
步骤s100,通过深度相机采集目标场景的深度图像并存入存储器;
[0101]
步骤s200,通过二维相机采集目标场景的二维图像并存入存储器;
[0102]
步骤s300,获取上述存储器中预先存储的上述深度相机和上述二维相机之间的标定信息以及上述深度相机的深度测量范围;
[0103]
步骤s400,通过处理器根据上述标定信息和上述深度测量范围确定上述深度图像的每一行在上述二维图像中对应的行索引范围,并根据上述行索引范围提取上述深度图像中的至少一行深度数据及上述二维图像中对应的至少一行二维数据进行对齐处理确定上述深度数据对应的二维数据。
[0104]
其中,深度图像和二维图像是需要进行对齐处理的图像,目标场景是进行图像拍摄的场景。本实施例中,以对两个图像进行对齐处理为例进行说明,实际使用过程中,可以基于图像处理方法对多个图像进行对齐处理,即二维图像不止一幅,例如,将深度图像和第一二维图像对齐后获得第一对齐图像,将第二二维图像与第一对齐图像进行对齐处理获得第二对齐图像,从而实现三个图像之间的对齐处理。
[0105]
本实施例中,将深度图像与二维图像(例如rgb图像)进行对齐,可以实现将深度图
像中的深度信息映射到二维图像的对应像素上,有利于结合深度信息辅助二维图像进行三维信息识别(例如3d人脸识别)。
[0106]
需要说明的是,本实施例中,深度图像和二维图像是通过不同相机拍摄获取的,深度图像是深度相机拍摄获得,二维图像是二维相机拍摄获得的。具体的,二维图像为待对齐rgb图像,是利用rgb相机拍摄获得。基于本实施例中的图像处理方法,对待对齐深度图像和待对齐rgb图像进行图像对齐处理,将深度信息映射到彩色图像(待对齐rgb图像)的像素上,从而进一步基于彩色图像进行图像识别,获取对应的环境或被拍摄的对象的信息,有利于更好地实现对于深度信息的利用。
[0107]
具体的,标定信息包括深度相机的内参、二维相机的内参、深度相机和二维相机之间的旋转矩阵以及深度相机和二维相机之间的平移矩阵,深度测量范围包括深度相机的最大探测值和最小探测值。
[0108]
本实施例中,基于标定信息可以对待对齐深度图像和待对齐rgb图像进行对齐处理。同时,基于深度图像中的最大探测值和最小探测值可以确定深度图像中各行在二维图像中可能对应的行索引范围,从而方便对深度图像和二维图像进行分行对齐,即实现数据的分批处理。
[0109]
其中,深度图像中一行对应的行索引范围是该行中的像素点在二维图像中对应的各个像素点可能存在的行的索引范围。
[0110]
本实施例中,处理器是图像处理器,且具体为用于进行图像对齐处理的图像处理器处理器,图像处理器可以为数字信号处理器。具体的,基于本实施例中的方法,可以对所有需要进行图像对齐处理的数据(包括深度图像和二维图像中的所有数据)进行分组(分批)处理,因此并不要求对应的图像处理器的硬件性能非常高,从而可以直接基于深度相机(或3d相机模组)中的数字信息处理器进行处理,无需使用额外的宿主机或移动终端,不仅可以提高d2c算法的计算效率,还可以减少系统消耗资源,降低硬件的功耗,且可以提高适用性。可见,与现有技术中使用宿主机和移动终端的cpu的方案不同,本实施例中基于数字信号处理器进行图像对齐处理的计算过程,如此,可以降低移动终端cpu的负担并降低整个系统的功耗。基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图5所示。智能终端包括处理器及存储器。该智能终端的存储器包括图像处理程序,存储器为图像处理程序的运行提供环境。该图像处理程序被处理器执行时实现上述任意一种图像处理方法的步骤。需要说明的是,智能终端还可以包括其它功能模块或单元,在此不作具体限定。
[0111]
本领域技术人员可以理解,图5中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体地智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0112]
在一个实施例中,图像处理程序被处理器执行时进行以下操作指令:
[0113]
利用深度相机和二维相机分别获取目标场景的深度图像和二维图像;
[0114]
获取深度相机和二维相机之间的标定信息以及深度相机测量的深度测量范围,标定信息是深度相机和二维相机之间的位姿标定信息;
[0115]
根据标定信息和深度测量范围获取深度图像的每一行在二维图像中对应的行索引范围;
[0116]
根据行索引范围提取深度图像中的至少一行深度数据及二维图像中对应的至少
一行二维数据组成至少一组待处理数据,对待处理数据进行对齐处理确定深度数据对应的二维数据。
[0117]
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有图像处理程序,图像处理程序被处理器执行时实现本发明实施例提供的任意一种图像处理方法的步骤。
[0118]
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0119]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0120]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0121]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0122]
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
[0123]
上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
[0124]
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改
或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1