图像处理方法、摄像头标定方法、装置、存储介质和电子设备
文献发布时间:2023-06-19 10:58:46
本申请是申请日为2018年6月28日、发明名称为“摄像头标定方法、装置、计算机可读存储介质和电子设备”、申请号为201810690949.7的专利申请的分案申请。
技术领域
本申请涉及计算机技术领域,特别是涉及一种图像处理方法、摄像头标定方法、装置、计算机可读存储介质和电子设备。
背景技术
结构光可用于解锁、支付、美颜等应用中。具体地,可以通过一个激光发射器发射具有一定结构特征的红外光线,然后通过激光摄像头采集这些红外光线形成的图像,通过采集的这些红外光线形成的图像可以计算物体到摄像头的深度信息。如果激光发射器和激光摄像头产生形变,就会导致采集的图像发生变化,从而导致计算得到的深度信息也会产生误差。
发明内容
本申请实施例提供一种摄像头标定方法、装置、计算机可读存储介质和电子设备,可以图像处理的准确性。
一种摄像头标定方法,所述方法包括:
控制摄像头模组的温度到达至少两个不同的指定温度,其中所述摄像头模组中包括光发射器和摄像头;
控制所述摄像头采集所述光发射器在所述指定温度下照射参考平面时所形成的参考图像;
将所述指定温度与参考图像对应地进行存储;其中,所述参考图像带有参考深度信息,所述参考深度信息用于计算物体的深度信息。
一种摄像头标定装置,所述装置包括:
温度控制模块,用于控制摄像头模组的温度到达至少两个不同的指定温度,其中所述摄像头模组中包括光发射器和摄像头;
图像获取模块,用于控制所述摄像头采集所述光发射器在所述指定温度下照射参考平面时所形成的参考图像;
图像存储模块,用于将所述指定温度与参考图像对应地进行存储;其中,所述参考图像带有参考深度信息,所述参考深度信息用于计算物体的深度信息。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
控制摄像头模组的温度到达至少两个不同的指定温度,其中所述摄像头模组中包括光发射器和摄像头;
控制所述摄像头采集所述光发射器在所述指定温度下照射参考平面时所形成的参考图像;
将所述指定温度与参考图像对应地进行存储;其中,所述参考图像带有参考深度信息,所述参考深度信息用于计算物体的深度信息。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机可读指令,所述指令被所述处理器执行时,使得所述处理器执行如下步骤:
控制摄像头模组的温度到达至少两个不同的指定温度,其中所述摄像头模组中包括光发射器和摄像头;
控制所述摄像头采集所述光发射器在所述指定温度下照射参考平面时所形成的参考图像;
将所述指定温度与参考图像对应地进行存储;其中,所述参考图像带有参考深度信息,所述参考深度信息用于计算物体的深度信息。
上述摄像头标定方法、装置、计算机可读存储介质和电子设备,可以控制摄像头模组的温度到达至少两个不同的指定温度,并控制摄像头模组采集在不同指定温度下所形成的参考图像,然后将参考图像与指定温度对应地进行存储。由于摄像头模组在不同的温度下会产生形变,同时温度本身也会对摄像头模组采集的图像产生影响,所以在摄像头标定的时候控制摄像头模组在不同的指定温度下采集图像。这样就可以根据摄像头模组的温度来获取对应的参考图像,并根据参考图像中的参考深度信息来计算物体的深度信息,避免摄像头模组的温度变化所带来的误差,提高了图像处理的准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中摄像头标定方法的应用环境图;
图2为一个实施例中安装摄像头模组的电子设备的示意图;
图3为一个实施例中摄像头标定方法的流程图;
图4为另一个实施例中摄像头标定方法的流程图;
图5为一个实施例中计算深度信息的原理图;
图6为又一个实施例中摄像头标定方法的流程图;
图7为又一个实施例中摄像头标定方法的流程图;
图8为一个实施例中实现摄像头标定方法的硬件结构图;
图9为一个实施例中实现摄像头标定方法的交互图;
图10为一个实施例中摄像头标定装置的结构示意图;
图11为另一个实施例中摄像头标定装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。
图1为一个实施例中摄像头标定方法的应用环境图。如图1所示,该应用环境中包含标定设备10和电子设备12。电子设备12上可安装摄像头模组,摄像头模组中包括光发射器和摄像头。将电子设备12固定在标定设备10上,通过标定设备10对电子设备12的摄像头模组进行标定。具体的,标定设备10中包括面光源100、参考平面102、激光传感器104、电动角位台106和电动升降台108。电动角位台106光可以调节电子设备10的角度,使电子设备10的摄像头模组的光轴垂直于参考平面102,电动升降台108可以调整电子设备12与参考平面102之间的垂直距离,并通过激光传感器104对该垂直距离进行测量。面光源100用于照亮参考平面102上的编码区域,电子设备12可控制摄像头模组的温度到达至少两个不同的指定温度,当光发射器在不同的指定温度下发射的光源照射到参考平面102时,通过摄像头采集不同指定温度下参考平面102上所形成的参考图像,并建立指定温度与参考图像之间的对应关系,然后将指定温度和参考图像对应地进行存储。
图2为一个实施例中安装摄像头模组的电子设备的示意图。如图2所示,该电子设备20上安装了摄像头模组,包括光发射器202和摄像头204。在对摄像头标定的过程中,电子设备20可以控制摄像头模组的温度达到不同的指定温度,并在不同指定温度时通过光发射器202发射光线,并通过摄像头204采集光线照射到参考平面时所形成的参考图像。最后电子设备20可以建立指定温度和参考图像的对应关系,并将指定温度和参考图像进行存储。
图3为一个实施例中摄像头标定方法的流程图。如图3所示,该摄像头标定方法中包括步骤302至步骤306。其中:
步骤302,控制摄像头模组的温度到达至少两个不同的指定温度,其中摄像头模组中包括光发射器和摄像头。
在一个实施例中,电子设备上可以安装摄像头,并通过安装的摄像头获取图像。摄像头可以根据获取的图像的不同分为激光摄像头、可见光摄像头等类型,激光摄像头可以获取激光照射到物体上所形成的图像,可见光图像可以获取可见光照射到物体上所形成的图像。电子设备上可以安装若干个摄像头,且安装的位置不做限定。例如,可以在电子设备的正面面板上安装一个摄像头,在背面面板上安装两个摄像头,摄像头还可以以内嵌的方式安装于电子设备的内部,然后通过旋转或滑动的方式打开摄像头。具体地,电子设备上可安装前置摄像头和后置摄像头,前置摄像头和后置摄像头可以从不同的视角获取图像,一般前置摄像头可以从电子设备的正面视角获取图像,后置摄像头可以从电子设备的背面视角获取图像。
电子设备可通过拍摄的图像测量场景中的物体到电子设备的深度信息,具体可以通过结构光来测量该深度信息。在通过结构光获取深度信息时,电子设备上可安装包含光发射器和摄像头的摄像头模组,获取深度信息的过程具体可包括摄像头标定阶段和测量阶段。在摄像头标定阶段,光发射器可以发射光线,光线照射到参考平面时,可形成参考图像,然后通过摄像头来获取该参考图像。参考平面到电子设备的距离是已知的,然后就可以建立该已知距离和参考图像的对应关系。在测量阶段,就可以根据实时获取的图像以及上述对应关系来计算物体实际的距离。
可以理解的是,摄像头模组在工作过程中可能会产生热量,而摄像头模组的参数和形状可能会受到温度变化的影响。因此为了减少温度带来的误差,就可以在对摄像头标定的过程中,控制摄像头模组达到不同的温度,并在不同温度下控制摄像头模组来采集参考图像。具体地,可控制摄像头模组的温度到达至少两个不同的指定温度,并分别在不同的指定温度下完整标定。
步骤304,控制摄像头采集光发射器在指定温度下照射参考平面时所形成的参考图像。
摄像头模组中的光发射器和摄像头一般在同一水平线上,标定设备首先需要调节电子设备的位置,使光发射器和摄像头形成的光轴与参考平面垂直,这样就可以计算电子设备到参考平面的垂直距离。可以理解的是,上述垂直距离是可以调节的,电子设备到参考平面的垂直距离不同时,所形成的参考图像也不同。当摄像头模组的温度到达不同指定温度的时候,可以控制光源发生器发射光线。光线照射到参考平面时,通过摄像头来采集所形成的参考图像。
步骤306,将指定温度与参考图像对应地进行存储;其中,参考图像带有参考深度信息,参考深度信息用于计算物体的深度信息。
光发射器可以发射包含若干个散斑点的激光,然后通过摄像头采集上述包含散斑点的激光照射到参考平面上所形成的参考图像。参考深度信息即为电子设备到参考平面的距离,参考深度信息是已知的,可以根据参考图像和参考深度信息得到计算深度信息的模型。在测量过程中,可获取激光照射到物体上时所形成的散斑图像,根据上述模型就可以计算出散斑图像中包含的物体的深度信息。
在摄像头标定过程中,会采集不同指定温度对应的参考图像,并将参考图像进行存储。在测量深度信息的过程中,就可以首先获取摄像头模组的温度,并根据温度获取对应的参考图像,根据获取的参考图像计算物体的深度信息。例如,控制摄像头模组分别在30℃(Degree Celsius,摄氏度)和80℃时,分别采集一张参考图像,然后将参考图像与摄像头模组对应的进行存储。在测量过程中,首先获取摄像头模组的当前温度,获取与当前温度最靠近的指定温度所对应的参考图像来计算深度信息。
上述实施例提供的摄像头标定方法,可以控制摄像头模组的温度到达至少两个不同的指定温度,并控制摄像头模组采集在不同指定温度下所形成的参考图像,然后将参考图像与指定温度对应地进行存储。由于摄像头模组在不同的温度下会产生形变,同时温度本身也会对摄像头模组采集的图像产生影响,所以在摄像头标定的时候控制摄像头模组在不同的指定温度下采集图像。这样就可以根据摄像头模组的温度来获取对应的参考图像,并根据参考图像中的参考深度信息来计算物体的深度信息,避免摄像头模组的温度变化所带来的误差,提高了图像处理的准确性。
图4为另一个实施例中摄像头标定方法的流程图。如图4所示,该摄像头标定方法包括步骤402至步骤412。其中:
步骤402,向光发射器输入至少两个不同频率的脉冲宽度调制PWM,通过脉冲宽度调制PWM控制光发射器的温度到达至少两个不同的指定温度。
在一个实施例中,光发射器可与处理器进行连接,通过处理器对光发射器发射指令,控制光发射器的开关。具体的,在摄像头标定过程中,可通过光发射器发射激光散斑,再通过激光摄像头采集激光散斑照射到物体上所形成的参考图像。光发射器的工作可以通过一个脉冲波进行控制的,这样工作频率越高,光发射器的温度就会越高,从而使得摄像头模组的温度也会升高。因此在标定过程中,可以通过控制光发射器的工作频率来调节摄像头模组的温度。具体地,控制光发射器在指定频率下工作,通过在指定频率下工作的光发射器控制摄像头模组的温度到达指定温度。
具体的,可以通过处理器与摄像头模组进行连接,并通过处理器来控制光发射器的工作频率。处理器会向光发射器输入一个脉冲信号,并通过该脉冲信号来控制光发射器的开关。上述脉冲信号可以是PWM(Pulse Width Modulation,脉冲宽度调制),处理器可以向光发射器输入不同频率的PWM,从而使得光发射器到达不同的指定温度。
步骤404,控制摄像头采集光发射器在指定温度下照射参考平面时所形成的参考图像。
每获取一次参考图像,电子设备都可以将获取的该参考图像与指定温度建立对应关系。在获取到参考图像之后,电子设备会将参考图像与对应的指定温度进行存储。这样在实际拍摄的过程中,就可以根据摄像头模组的温度来获取对应的参考图像。
步骤406,建立指定温度和参考图像的对应关系,将指定温度和参考图像写入到终端的安全运行环境中进行存储。
可以理解的是,可以直接建立指定温度和参考图像的对应关系,也可以根据指定温度划定一个温度范围,并建立温度范围和参考图像的对应关系,然后将温度范围和参考图像写入到终端中。例如,采集光发射器在指定温度为30℃、60℃和90℃时所形成的参考图像,分别为“pic-01”、“pic-02”和“pic-03”。若上述指定温度对应的温度范围分别为[0,50℃]、[50℃,90℃]、[90℃,+∞),那么在测距过程中,就可以确定光发射器所落入的温度范围,并根据温度范围获取对应的参考图像。
一般地,为保证图像处理的安全性,电子设备都会在安全运行环境中计算深度信息。因此可以将采集的参考图像及对应的指定温度,存储在安全运行环境中,在测量过程中,就可以直接在安全环境中计算深度信息。例如,电子设备的上层应用发起人脸支付指令,在人脸支付的过程中可以通过摄像头模组来获取深度信息,并通过深度信息来判断人脸是否为活体,那么就需要保证深度信息是在一个安全运行环境中计算得到的。
在本申请提供的实施例中,终端中的安全运行环境可分为第一安全运行环境和第二安全运行环境,第一安全运行环境中的存储空间大于第二安全运行环境的存储空间。为了避免第二安全运行环境中的存储空间被过度占用,影响图像的处理,就可以在标定过程中,将指定温度和参考图像写入到终端的第一安全运行环境中进行存储。当检测到终端开机时,将指定温度和参考图像从第一安全运行环境中加载到第二安全运行环境中进行存储。
步骤408,当检测到摄像头模组被打开时,控制摄像头模组采集散斑图像。
具体的,终端的处理单元可以接收来自上层应用程序的指令,当处理单元接收到图像采集指令时,就可以控制摄像头模组进行工作,通过摄像头采集散斑图像。处理单元连接于摄像头,摄像头获取的图像就可以传输给处理单元,并通过处理单元进行裁剪、亮度调节、人脸检测、人脸识别等处理。具体地,当处理单元接收到图像采集指令时,处理单元会控制光发射器进行工作,当光发射器开启时,通过激光摄像头采集光发射器照射到物体上所形成的散斑图像。
可以理解的是,上述光发射器可以是激光发射器,当激光照射在平均起伏大于波长数量级的光学粗糙表面上时,这些表面上无规分布的面元散射的子波相互叠加使反射光场具有随机的空间光强分布,呈现出颗粒状的结构,这就是激光散斑。形成的激光散斑具有高度随机性,因此不同的激光发射器发射出来的激光所生成的激光散斑不同。当形成的激光散斑照射到不同深度和形状的物体上时,生成的散斑图像是不一样的。通过不同的激光发射器形成的激光散斑具有唯一性,从而得到的散斑图像也具有唯一性。光发射器形成的激光散斑可以照射到物体上,然后通过激光摄像头来采集的激光散斑照射到物体上所形成的散斑图像。
图像采集指令是指用于触发图像采集操作的指令。例如,当用户对智能手机进行解锁的时候,可以通过获取人脸图像进行验证解锁,则上层应用可以发起图像采集指令,并通过图像采集指令控制摄像头模组来采集图像。具体地,第一处理单元可以接收上层应用程序发起的图像采集指令,当第一处理单元检测到图像采集指令时,会控制摄像头模组开启,然后控制摄像头模组采集散斑图像。摄像头模组采集的散斑图像可以发送给第二处理单元,第二处理单元再根据散斑图像计算深度信息。
步骤410,当检测到光发射器的温度变化超过温度阈值时,获取光发射器的当前温度。
在检测到摄像头模组被打开后,可以通过一个温度传感器定时检测光发射器的温度,并将检测到的温度发送给第二处理单元。第二处理单元判断光发射器的温度变化是否超过温度阈值,若是则将该温度作为光发射器的当前温度,并根据当前温度来获取对应的目标参考图像,根据获取的目标参考图像计算深度信息。例如,温度阈值可以为5℃,当光发射器的温度变化超过5℃时,就可以根据获取的光发射器的温度确定对应的目标参考图像。可以理解的是,为保证准确性,采集散斑图像和获取当前温度时所间隔的时间不能太长。
步骤412,根据光发射器的当前温度获取对应的目标参考图像,并根据散斑图像和目标参考图像计算深度图像,深度图像用于表示物体的深度信息。
指定温度和参考图像对应地进行存储,那么在测量深度信息的过程中,就可以根据光发射器的当前温度来确定对应的目标参考图像,然后根据散斑图像和目标参考图像计算深度图像。具体的,可以将目标参考图像与散斑图像进行比较得到偏移信息,偏移信息用于表示散斑图像中散斑点相对于目标参考图像中对应散斑点的水平偏移量,根据偏移信息和参考深度信息计算得到深度图像。。
在一个实施例中,遍历散斑图像中每一个像素点(x,y),以该像素点为中心,选择一个预设大小像素块。例如,可以是选取31pixel*31pixel大小的像素块。然后在目标参考图像上搜索相匹配的像素块,计算在目标参考图像上匹配的像素点的坐标与像素点(x,y)坐标的水平偏移量,向右偏移即为正,向左偏移记为负。再把计算出的水平偏移量带入公式(1)可以得到像素点(x,y)的深度信息。这样依次计算散斑图像中每个像素点的深度信息,就可以得到带有散斑图像中各个像素点所对应的深度信息。
深度图像可以用于表示被拍摄物体对应的深度信息,深度图像中包含的每一个像素点表示一个深度信息。具体地,参考图像中的每一个散斑点都对应一个参考深度信息,当获取到参考图像中散斑点与散斑图像中散斑点的水平偏移量后,可以根据该水平偏移量计算得到散斑图像中的物体到参考平面的相对深度信息,然后再根据相对深度信息和参考深度信息,就可以计算得到物体到摄像头的实际深度信息,即得到最后的深度图像。
图5为一个实施例中计算深度信息的原理图。如图5所示,镭射灯502可以生成激光散斑,激光散斑经过物体进行反射后,通过激光摄像头504获取形成的图像。在摄像头的标定过程中,镭射灯502发射的激光散斑会经过参考平面508进行反射,然后通过激光摄像头504采集反射光线,通过成像平面510成像得到参考图像。参考平面508到镭射灯502的参考深度为L,该参考深度为已知的。在实际计算深度信息的过程中,镭射灯502发射的激光散斑会经过物体506进行反射,再由激光摄像头504采集反射光线,通过成像平面510成像得到实际的散斑图像。则可以得到实际的深度信息的计算公式为:
其中,L是镭射灯502到与参考平面508之间的距离,f为激光摄像头504中透镜的焦距,CD为镭射灯502到激光摄像头504之间的距离,AB为物体506的成像与参考平面508的成像之间的偏移距离。AB可为像素偏移量n与像素点的实际距离p的乘积。当物体504到镭射灯502之间的距离Dis大于参考平面506到镭射灯502之间的距离L时,AB为负值;当物体504到镭射灯502之间的距离Dis小于参考平面506到镭射灯502之间的距离L时,AB为正值。
在一个实施例中,摄像头模组中可以包括第一摄像头模组和第二摄像头模组,第一摄像头模组是由泛光灯和激光摄像头构成的,第二摄像头模组是由镭射灯和激光摄像头构成的,第一摄像头模组的激光摄像头和第二摄像头模组的激光摄像头可以是同一个激光摄像头,也可以是不同的激光摄像头,在此不做限定。镭射灯可以发射激光散斑,通过第一摄像头模组可以采集散斑图像。泛光灯可以发生激光,通过第二摄像头模组可以采集红外图像。
其中,红外图像可以表示被拍摄物体的细节信息,根据散斑图像可以获取被拍摄物体的深度信息。为了保证电子设备采集的红外图像和散斑图像是相对应的,就需要控制摄像头模组同时采集红外图像和散斑图像。假设第一摄像头模组和第二摄像头模组为分时工作的话,就必须保证采集红外图像和散斑图像的时间间隔非常短。具体地,根据图像采集指令控制第一摄像头模组采集红外图像,并控制第二摄像头模组采集散斑图像;其中,采集红外图像的第一时刻与采集散斑图像的第二时刻之间的时间间隔小于第一阈值。
第一阈值一般是一个比较小的值,当时间间隔小于第一阈值时,认为被摄物体没有发生变化,采集的红外图像和散斑图像是对应的。可以理解的是,还可以根据被拍摄物体的变化规律进行调整。被拍摄物体的变化越快,对应获取的第一阈值越小。假设被拍摄物体长时间处于静止状态的话,该第一阈值就可以设置为一个较大的值。具体的,获取被拍摄物体的变化速度,根据该变化速度获取对应的第一阈值。
举例来说,当手机需要通过人脸进行认证解锁时,用户可以点击解锁键发起解锁指令,并将前置摄像头对准脸部进行拍摄。手机会将解锁指令发送到处理单元,处理单元再控制摄像头进行工作。首先通过第一摄像头模组采集红外图像,间隔1毫秒时间后,再控制第二摄像头模组采集散斑图像,并通过采集的红外图像和散斑图像进行认证解锁。
更进一步地,在第一时刻控制摄像头模组采集红外图像,并在第二时刻控制摄像头模组采集散斑图像;第一时刻与目标时刻之间的时间间隔小于第二阈值;第二时刻与目标时刻之间的时间间隔小于第三阈值。若第一时刻与目标时刻之间的时间间隔小于第二阈值,则控制摄像头模组采集红外图像;若第一时刻与目标时刻之间的时间间隔大于第二阈值,则可向应用程序返回响应超时的提示信息,并等待应用程序重新发起图像采集指令。
摄像头模组采集红外图像之后,处理单元可控制摄像头模组采集散斑图像,采集散斑图像的第二时刻与第一时刻之间的时间间隔小于第一阈值,同时第二时刻与目标时刻之间的时间间隔小于第三阈值。若第二时刻与第一时刻之间的时间间隔大于第一阈值,或第二时刻与目标时刻之间的时间间隔大于第三阈值,则可向应用程序返回响应超时的提示信息,并等待应用程序重新发起图像采集指令。可以理解的是,采集散斑图像的第二时刻可以大于采集红外图像的第一时刻,也可以小于采集红外图像的第一时刻,在此不做限定。
具体地,电子设备可分别设置泛光灯控制器和镭射灯控制器,通过两路PWM(PulseWidth Modulation,脉冲宽度调制)分别连接泛光灯控制器和镭射灯控制器,处理单元可向泛光灯控制器输入PWM控制泛光灯开启或向镭射灯控制器输入PWM控制镭射灯开启。
在本申请提供的实施例中,存储参考图像的步骤还可以包括:
步骤602,获取摄像头模组的模组标识,并建立模组标识、指定温度与参考图像的对应关系。
可以理解的是,在对摄像头进行标定的过程中,可以是对终端上安装的摄像头模组进行标定,也可以是单独对摄像头模组进行标定。这样假设终端上的摄像头模组被损坏,在更换摄像头模组之后,就可以直接将标定得到的摄像头模组的参考图像写入到终端中。
具体的,每一个摄像头模组都有对应的模组标识,模组标识可用于区分不同的摄像头模组。在对摄像头模组进行标定的时候,获取到参考图像后,可以建立模组标识、指定温度和参考图像的对应关系。这样终端在重新安装摄像头模组之后,就可以根据模组标识获取对应的指定温度和参考图像。
步骤604,将模组标识、指定温度与参考图像存储到服务器中。
在单独对摄像头模组进行标定的过程中,可将获取的模组标识、指定温度与参考图像存储到服务器中。服务器可以以列表形式存储上述模组标识、指定温度与参考图像,根据模组标识就可以对指定温度和参考图像进行查询并获取。对摄像头模组标定完成之后,终端在重新安装摄像头模组时,可以从服务器上获取参考图像。具体的:
步骤702,当服务器接收到终端发送的参考图像获取请求时,根据参考图像获取请求中包含的模组标识获取对应的指定温度和参考图像。
终端可重新安装摄像头模组,并在安装好摄像头模组之后,读取所安装的摄像头模组的模组标识。然后根据模组标识生成参考图像获取请求,并将该参考图像获取请求发送给服务器。具体的,终端发送参考图像获取请求时,可将其中包含的模组标识进行加密处理,再将加密后的参考图像获取请求发送给服务器。
步骤704,将指定温度和参考图像发送至终端。
服务器在接收到参考图像获取请求之后,可以根据模组标识查找对应的指定温度和参考图像,并将指定温度和参考图像加密之后发送给终端。终端接收到指定温度和参考图像之后,进行解密处理。然后将解密处理后的指定温度和参考图像写入到终端中。具体的,对模组标识、指定温度和参考图像进行加密处理的算法不做限定。例如,可以是根据DES(Data Encryption Standard,数据加密标准)、MD5(Message-Digest Algorithm 5,信息-摘要算法5)、HAVAL(Diffie-Hellman,密钥交换算法)。
上述实施例提供的摄像头标定方法,可以控制摄像头模组的温度到达至少两个不同的指定温度,并控制摄像头模组采集在不同指定温度下所形成的参考图像,然后将参考图像与指定温度对应地进行存储。由于摄像头模组在不同的温度下会产生形变,同时温度本身也会对摄像头模组采集的图像产生影响,所以在摄像头标定的时候控制摄像头模组在不同的指定温度下采集图像。这样就可以根据摄像头模组的温度来获取对应的参考图像,并根据参考图像中的参考深度信息来计算物体的深度信息,避免摄像头模组的温度变化所带来的误差,提高了图像处理的准确性。
应该理解的是,虽然图3、图4、图6、图7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3、图4、图6、图7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
图8为一个实施例中实现摄像头标定方法的硬件结构图。如图8所示,该电子设备中可包括摄像头模组810、中央处理器(CPU)820和第二处理单元830,上述摄像头模组810中包括激光摄像头812、泛光灯814、RGB(Red/Green/Blue,红/绿/蓝色彩模式)摄像头816和镭射灯818。第二处理单元830包括脉冲宽度调制模块832、SPI/I2C(Serial PeripheralInterface/Inter-Integrated Circuit,串行外设接口/双向二线制同步串行接口)模块834、RAM(Random Access Memory,随机存取存储器)模块836、Depth Engine模块838。其中,第一处理单元822可为处于TEE(Trusted execution environment,可信运行环境)下的CPU内核,第二处理单元830为MCU(Microcontroller Unit,微控制单元)处理器。可以理解的是,中央处理器820可以为多核运行模式,中央处理器820中的CPU内核可以在TEE或REE(Rich Execution Environment,自然运行环境)下运行。TEE和REE均为ARM模块(AdvancedRISC Machines,高级精简指令集处理器)的运行模式。通常情况下,电子设备中安全性较高的操作行为需要在TEE下执行,其他操作行为则可在REE下执行。
在摄像头标定的过程中,可通过第二处理单元830中的脉冲宽度调制模块932控制镭射灯818到达至少两个不同的指定温度,并在到达不同的指定温度时,控制激光摄像头812采集镭射灯818照射参考平面时所形成的参考图像。采集到的参考图像和指定温度可以存储在处于可信运行环境(第一安全运行环境)中的第一处理单元822。当电子设备开机时,将指定温度和参考图像从第一处理单元822中加载到第二处理单元830进行存储。可以理解的是,第二处理单元830为外置与中央处理器820的处理单元,其输入和输出都是由处于可信运行环境中的第一处理单元822进行控制的,因此可认为第二处理单元830是处于第二安全运行环境中的。
在测量深度信息的过程中,当中央处理器820接收到目标应用程序发起的图像采集指令,TEE下运行的CPU内核即第一处理单元822,会通过SECURE SPI/I2C向MCU830中SPI/I2C模块834发送图像采集指令至第二处理单元830。第二处理单元830在接收到图像采集指令后,通过脉冲宽度调制模块832发射脉冲波控制摄像头模组810中泛光灯814开启来采集红外图像、控制摄像头模组810中镭射灯818开启来采集散斑图像。摄像头模组810可将采集到的红外图像和散斑图像传送给第二处理单元830中Depth Engine模块838,Depth Engine模块838可根据红外图像计算红外视差图像,根据散斑图像和参考图像计算深度图像,并根据深度图像得到深度视差图像。然后将红外视差图像和深度视差图像发送给TEE下运行的第一处理单元822。第一处理单元822会根据红外视差图像进行校正得到校正红外图像,并根据深度视差图像进行校正得到校正深度图像。其中,激光摄像头812和RGB摄像头816因为安装的位置不同,所以在采集图像的时候,需要对两个摄像头采集的图像进行对齐校正,以避免拍摄角度带来的误差。也即需要将红外图像和深度图像进行校正,分别得到校正红外图像和校正深度图像。
在一个实施例中,可以根据校正红外图像进行人脸识别,检测上述校正红外图像中是否存在人脸以及检测到的人脸与存储的人脸是否匹配;若人脸识别通过,再根据上述校正红外图像和校正深度图像来进行活体检测,检测上述人脸是否为活体人脸。在获取到校正红外图像和校正深度图像后,可先进行活体检测再进行人脸识别,或同时进行人脸识别和活体检测。在人脸识别通过且检测到的人脸为活体人脸后,第一处理单元822可将上述校正红外图像、校正深度图像以及人脸识别结果中的一种或多种发送给目标应用程序。
图9为一个实施例中实现摄像头标定方法的交互图。如图9所示,该摄像头标定方法的交互过程可以包括步骤902至步骤920。其中:
步骤902,标定设备控制摄像头模组的温度到达至少两个不同的指定温度。
步骤904,标定设备控制摄像头采集光发射器在指定温度下照射参考平面时所形成的参考图像。
步骤906,标定设备获取摄像头模组的模组标识,并建立模组标识、指定温度与参考图像的对应关系。
步骤908,标定设备发送模组标识、指定温度与参考图像给服务器。
步骤910,服务器接收并存储模组标识、指定温度与参考图像。
步骤912,终端安装摄像头模组,并获取安装的摄像头模组的模组标识,并根据模组标识生成图像获取请求。
步骤914,终端将生成的图像获取请求发送给服务器。
步骤916,服务器根据参考图像获取请求中包含的模组标识获取对应的指定温度和参考图像。
步骤918,服务器将获取的指定温度与参考图像发送给终端。
步骤920,终端接收服务器发送的指定温度与参考图像,并将指定温度和参考图像写入到终端的安全运行环境中进行存储。
上述实施例提供的摄像头标定装置,可以根据摄像头模组的温度来获取对应的参考图像,并根据参考图像中的参考深度信息来计算物体的深度信息,避免摄像头模组的温度变化所带来的误差,提高了图像处理的准确性。
图10为一个实施例中摄像头标定装置的结构示意图。如图10所示,该摄像头标定装置1000包括温度控制模块1002、图像获取模块1004和图像存储模块1006。其中:
温度控制模块1002,用于控制摄像头模组的温度到达至少两个不同的指定温度,其中所述摄像头模组中包括光发射器和摄像头。
图像获取模块1004,用于控制所述摄像头采集所述光发射器在所述指定温度下照射参考平面时所形成的参考图像。
图像存储模块1006,用于将所述指定温度与参考图像对应地进行存储;其中,所述参考图像带有参考深度信息,所述参考深度信息用于计算物体的深度信息。
上述实施例提供的摄像头标定装置,可以控制摄像头模组的温度到达至少两个不同的指定温度,并控制摄像头模组采集在不同指定温度下所形成的参考图像,然后将参考图像与指定温度对应地进行存储。由于摄像头模组在不同的温度下会产生形变,同时温度本身也会对摄像头模组采集的图像产生影响,所以在摄像头标定的时候控制摄像头模组在不同的指定温度下采集图像。这样就可以根据摄像头模组的温度来获取对应的参考图像,并根据参考图像中的参考深度信息来计算物体的深度信息,避免摄像头模组的温度变化所带来的误差,提高了图像处理的准确性。
图11为另一个实施例中摄像头标定装置的结构示意图。如图11所示,该摄像头标定装置1100包括温度控制模块1102、图像获取模块1104、图像存储模块1106和深度计算模块1108。其中:
温度控制模块1102,用于控制摄像头模组的温度到达至少两个不同的指定温度,其中所述摄像头模组中包括光发射器和摄像头。
图像获取模块1104,用于控制所述摄像头采集所述光发射器在所述指定温度下照射参考平面时所形成的参考图像。
图像存储模块1106,用于将所述指定温度与参考图像对应地进行存储;其中,所述参考图像带有参考深度信息,所述参考深度信息用于计算物体的深度信息。
深度计算模块1108,用于当检测到摄像头模组被打开时,控制所述摄像头模组采集散斑图像;当检测到所述光发射器的温度变化超过温度阈值时,获取所述光发射器的当前温度;根据所述光发射器的当前温度获取对应的目标参考图像,并根据所述散斑图像和目标参考图像计算深度图像,所述深度图像用于表示物体的深度信息。
上述实施例提供的摄像头标定装置,可以根据摄像头模组的温度来获取对应的参考图像,并根据参考图像中的参考深度信息来计算物体的深度信息,避免摄像头模组的温度变化所带来的误差,提高了图像处理的准确性。
在一个实施例中,温度控制模块1102还用于向光发射器输入至少两个不同频率的脉冲宽度调制PWM,通过所述脉冲宽度调制PWM控制所述光发射器的温度到达至少两个不同的指定温度。
在一个实施例中,图像存储模块1106还用于建立所述指定温度和参考图像的对应关系,将所述指定温度和参考图像写入到终端的安全运行环境中进行存储。
在一个实施例中,图像存储模块1106还用于将所述指定温度和参考图像写入到终端的第一安全运行环境中进行存储;当检测到所述终端开机时,将所述指定温度和参考图像从所述第一安全运行环境中加载到第二安全运行环境中进行存储。
在一个实施例中,图像存储模块1106还用于获取所述摄像头模组的模组标识,并建立所述模组标识、指定温度与参考图像的对应关系;将所述模组标识、指定温度与参考图像存储到服务器中。
在一个实施例中,图像存储模块1106还用于当所述服务器接收到终端发送的参考图像获取请求时,根据所述参考图像获取请求中包含的模组标识获取对应的指定温度和参考图像;将所述指定温度和参考图像发送至所述终端。
上述摄像头标定装置中各个模块的划分仅用于举例说明,在其他实施例中,可将摄像头标定装置按照需要划分为不同的模块,以完成上述摄像头标定装置的全部或部分功能。
本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行上述实施例提供的摄像头标定方法。
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的摄像头标定方法。
本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 图像处理方法、摄像头标定方法、装置、存储介质和电子设备
- 摄像头标定方法、装置、计算机可读存储介质和电子设备