一种多相机系统同步曝光的控制方法、装置及终端设备与流程

文档序号:11778791阅读:794来源:国知局
一种多相机系统同步曝光的控制方法、装置及终端设备与流程

本发明属于多相机系统技术领域,尤其涉及一种多相机系统同步曝光的控制方法、装置及终端设备。



背景技术:

多相机系统是基于计算机视觉原理,将多个相机、光源、存储设备等组合在一起组建的系统,常应用于3d重建、运动捕捉、多视点视频等。例如光学式动作捕捉就是基于计算机视觉原理,由多个高速相机从不同角度对目标特征点的监视和跟踪来进行动作捕捉的技术。对于空间中的任意一点,只要它同时被两部相机所见,就可以确定这一时刻该点在空间中的位置,当相机以足够高的速率连续拍摄时,从图像序列中就可以得到该点的运动轨迹,若是在一个物体标记多个点,通过多台相机同时拍摄这个物体,就可以得到这个物体的运动轨迹。

但是,这也就需要参与拍摄的多个相机采集每一帧图像时曝光对齐,否则由多个相机得到的标记点运动轨迹与真实运动轨迹就会有差异,甚至出现扭曲现象。现有的将多个相机同步的方法通常是采用同步信号对多个相机进行触发,通过有线或者无线的方式将同步触发信号传输至各相机,但是在实际中发现网络传输延迟、网络不稳定、温度、湿度等外部环境因素会造成多个相机采集图像时并不会完全同步。



技术实现要素:

鉴于此,本发明提供一种多相机系统同步曝光的控制方法、装置及终端设备,能够提高复杂场景下多相机系统中多个相机同步曝光的精度。

本发明的第一方面,提供一种多相机系统同步曝光的控制方法,所述控制方法包括:

在接收到曝光同步的指令后,获取所述多相机系统中每个相机的初始硬件时间码,得到多个初始硬件时间码;

根据所述多个初始硬件时间码确定同步基准值,并根据所述同步基准值和每个相机的初始硬件时间码,确定所述多相机系统中每个相机对应的帧补偿值;

将所述每个相机对应的帧补偿值发送至多相机系统中对应的每个相机,以便每个相机根据对应的所述帧补偿值调整图像的长度使得所述多相机系统中所有相机的曝光时间同步。

本发明的第二方面,提供一种多相机系统同步曝光的控制装置,所述控制装置包括:

获取模块,用于在接收到曝光同步的指令后,获取所述多相机系统中每个相机的初始硬件时间码,得到多个初始硬件时间码;

确定模块,用于根据所述多个初始硬件时间码确定同步基准值,以及根据所述同步基准值和每个相机的初始硬件时间码,确定所述多相机系统中每个相机对应的帧补偿值;

发送模块,用于将所述每个相机对应的帧补偿值发送至多相机系统中对应的每个相机,以便每个相机根据对应的所述帧补偿值调整图像的长度使得所述多相机系统中所有相机的曝光时间同步。

本发明的第三方面,提供一种终端设备,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面提供的所述方法的步骤。

本发明的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的所述方法的步骤。

本发明与现有技术相比存在的有益效果是:

本发明提供的技术方案,在接收到曝光同步的指令之后,获取每个相机的初始硬件时间码,并根据该多个初始硬件时间码确定同步基准值,以及根据所述同步基准值和每个相机的初始硬件时间码,确定所述多相机系统中每个相机对应的帧补偿值,并将帧补偿值发送至多相机系统中对应的每个相机,从而使得多相机系统中每个相机能够根据该确定出来的帧补偿值对应调整图像的帧长,进而使得多相机系统中的每个相机在采集图像时曝光时间同步,提高了多相机系统中多个相机曝光同步的精度。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的多相机系统同步曝光的控制方法的第一实施例的流程示意图;

图2是本发明提供的多相机系统同步曝光的控制方法的第二实施例的流程示意图;

图3是图2中步骤202的实施例的流程示意图;

图4是图2中步骤202的实施例的流程示意图;

图5是图2中步骤202的实施例的流程示意图;

图6是本发明提供的多相机系统同步曝光的控制方法的第三实施例的流程示意图;

图7是本发明提供的多相机系统同步曝光的控制装置的第一实施例的示意框图;

图8是本发明提供的多相机系统同步曝光的控制装置的第二实施例的示意框图;

图9是本发明提供的终端设备的实施例的示意框图;

图10是本发明提供的控制装置与多相机系统的关系图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

在描述本发明实施例的具体实施方式之前,首先分析造成多相机系统中各个相机曝光不同步的原因。

通常地,相机内部有一个fpga构建的64位的硬件计时器,即硬件时间码,该硬件时间码以相机传感器的输入时钟(mclk)晶振振荡周期为最小计时单位,即每经过一个晶振时钟周期硬件时间码的值自动累加1。

一种情况,当所有相机初始设置相同(即软硬件配置均相同),所有相机采集一帧图像经过的硬件时间码都是相同的。另一种情况,当所有相机的图像传感器型号不同时(且其他软硬件配置相同时),此时相机的图像分辨率虽不相同,但所有相机采集一帧图像经过的硬件时间码仍然是相同的。但在实际中,往往由于温度、湿度等一些因素,相机实际晶振的振荡周期是在变化的。即是说,每个相机的晶振振荡周期不一定相等,因此多相机系统中每个相机采集一帧图像时经过的时间不一定相同,这也是多相机系统中出现相机曝光不同步的根本原因。

当然,实际使用中还发现,网络传输延迟、网络不稳定等外部环境因素也会造成多个相机采集图像时并不会完全同步。

为解决多相机系统中相机曝光不同步的问题,提出了本发明的多相机系统同步曝光的控制方法、装置及终端设备。下面,将通过具体的实施例进行详细描述。

请参见图1,图1是本发明提供的多相机系统同步曝光的控制方法的第一实施例的流程示意图,如图1所示该多相机系统同步曝光的控制方法可以包括以下步骤:

步骤s101,在接收到曝光同步的指令后,获取所述多相机系统中每个相机的初始硬件时间码,得到多个初始硬件时间码。

本发明实施例是用于控制多相机系统中的多个相机同步曝光拍照。该方法可以应用于一个控制装置,该控制装置用于控制多相机系统中每个相机同步曝光。

本发明实施例中,曝光同步的指令可以由多相机系统中的相机发出,也可以由控制装置自身发出。当曝光同步的指令由多相机系统中的相机发出时,曝光同步的指令可以是相机内部一个定时器,每当定时器计数结束就发一次曝光同步命令。例如,在实际应用中,当相机传感器的输入时钟为40mhz时,大约30秒左右时钟相位会漂移一个曝光周期(1ms),因此需要在30s之内进行一次曝光同步,这时可以设定每20s发出一次曝光同步的指令。如果所述曝光同步的指令是由控制装置本身发出的,则控制装置内部也有一个定时器,作用与上述的定时器作用相同。作为另一个实施例,还可以直接设置控制装置自身每经过预定时间就发出一个曝光同步的指令。

本发明实施例中,理论上来说多相机系统中每个相机的曝光时间是相同的。根据前文的描述可知,在实际中由于温度、湿度等一些因素,实际晶振的振荡周期也是在变化的,并不是完全不变的,因此出现了曝光不同步的问题。为解决曝光不同步的问题,本步骤中需要获取多相机系统中每个相机的硬件时间码,以便于可以根据获取的硬件时间码对多相机系统的每个相机的曝光时间进行调整,以使得所有相机的曝光时间同步。

其中,每个相机的内部都有时间码寄存器,其用于读写当前相机的硬件时间码。相机传感器开始工作后,硬件计时器模块开始计时。相机每一帧图像的曝光开始时刻和曝光持续时间都是以硬件计时器记录的硬件时间码进行计时的。控制装置具体获取多相机系统中每个相机的初始硬件时间码的过程可以是:假设多相机系统中共有n个相机,控制装置分别向多相机系统中的每一个相机发送硬件时间码获取请求,每个相机接收到该请求时,通过自身的时间码寄存器读取自身的硬件时间码并将其返回控制装置,控制装置接收多相机系统中每个相机发来的硬件时间码,并分别计为初始硬件时间码t1、t2、t3……tn。此时,便得到了多相机系统中每个相机对应的初始硬件时间码t1、t2、t3……tn。

步骤s102,根据所述多个初始硬件时间码确定同步基准值,并根据所述同步基准值和每个相机的初始硬件时间码,确定所述多相机系统中每个相机对应的帧补偿值。

在获取多个相机对应的初始硬件时间码之后,便可根据所述多个初始硬件时间码确定同步基准值。在确定同步基准值时,可以选择多个初始硬件时间码的任意一个值作为同步基准值,也可以选择所述多个初始硬件时间码中的最大值或最小值作为同步基准值,当然也可以计算所述多个初始硬件时间码的平均值,并将该平均值作为同步基准值。然后根据该同步基准值和获取到的多个初始硬件时间码,确定每个相机的帧补偿值。帧扩展寄存器根据同步基准值与相机的初始硬件时间码的偏差,计算每个相机的对应的帧补偿值。

步骤s103,将所述每个相机对应的帧补偿值发送至多相机系统中对应的每个相机,以便于每个相机根据对应的所述帧补偿值调整图像的长度使得所述多相机系统中所有相机的曝光时间同步。

在本发明实施例中,控制装置计算每个相机对应的帧补偿值后将帧补偿值发送给多相机系统中的对应相机。多相机系统中每个相机接收到对应的帧补偿值之后,更新相机内部的帧扩展寄存器中存储的图像的帧长,以便多相机系统中的每个相机在采集图像时能够对齐曝光时间。需要说明的是,若确定出的同步基准值和相机的初始硬件时间码没有偏差,则表示此相机在本次曝光同步过程中不需要进行帧补偿。

需要说明的另一点是,在根据帧补偿值调整图像的帧长时,可以调整当前图像帧的帧长,这样多相机系统中的相机在采集下帧图像时便可实现曝光同步,即是说,下帧图像就是待同步的图像。当然,相机也可以根据帧补偿值调整下一帧图像的帧长,这样多相机系统中的相机在采集下下帧图像时便可实现曝光同步,即是说,下下帧图像就是待同步的图像,以此类推。

本发明实施例的多相机系统同步曝光的方法,在接收到曝光同步的指令之后,获取每个相机的初始硬件时间码,并根据该多个初始硬件时间码确定同步基准值,以及根据每个相机的初始硬件时间码与同步基准值之间的偏差,确定图像的帧补偿值,并将该确定出来的帧补偿值发送至多相机系统中对应的相机,以便多相机系统中的每个相机能够根据接收到的帧补偿值对应调整图像的帧长,从而使得多相机系统中的每个相机在采集图像时曝光时间同步。

可以理解的是,造成多相机系统中多个相机曝光时间不同步的原因除了晶振振荡周期不相等之外,还有其他的一些因素。例如,获取与多相机系统中每个相机的初始时间码时的网络延时,获取每一个相机的初始时间码时的操作延时,以及多相机系统中每个相机本身硬件累计延时值。由于获取的初始硬件时间码中包括上述这些延时值,因此为进一步提高多相机系统的同步精准度,在获取初始硬件时间码之后,确定帧补偿值之前,还可以对获取的初始硬件时间码进行延时修正处理。可以理解的是,延时修正处理可以包括:网络延时修正处理、操作延时修正处理以及硬件累计修正处理中的至少一种。相应的,对初始硬件时间码做修正处理后,获得同步基准值时具体是采用修正后的硬件时间码,同时确定每个相机的帧补偿值时也采用修正后的硬件时间码。下面,将以延时修正处理包括网络延时修正处理、操作延时修正处理以及硬件累计修正处理为例进行详细说明。

请参见图2,是本发明提供的多相机系统同步曝光的控制方法的第二实施例的流程示意图,如图2所示该多相机系统同步曝光的控制方法可以包括以下步骤:

步骤s201,在接收到曝光同步的指令后,获取所述多相机系统中每个相机的初始硬件时间码,得到多个初始硬件时间码。

步骤s202,对得到的多个初始硬件时间码依次进行硬件累计修正处理、网络延时处理以及操作延时处理。

下面,将分别描述硬件累计修正处理、网络延时处理以及操作延时处理的具体操作过程。

第一,对多个初始硬件时间码依次进行硬件累计修正处理。

在进行硬件累计修正处理时,由于相机传感器开始工作后,硬件计时器就开始计时了,在工作一定时间之后,晶振则会产生一定的累计误差,为消除此误差,因此可以在每帧图像的预设位置(比如第100个像素点的位置)设置触发cpu硬件中断,当中断触发后,硬件计时器会自动锁存当前时刻的时间码,每经过一次中断触发,会锁存一个时间码。

在步骤202中,对多个初始硬件时间码进行硬件累计修正处理时,操作流程可以按照如图3所示的流程进行。

如图3所示,是步骤202中进行硬件累计修正处理的流程示意图时,可以包括如下步骤:

步骤301,对应获取每个相机最近一次中断触发时刻的中断时间码。

步骤302,将所述多个初始硬件时间码与获取的所述中断时间码做差值运算,对应得到每个相机的修正硬件时间码。

根据前文的描述可知,在产生一次中断时,硬件计时器可以自动锁存一个时间码。因此,每个相机在读取自身的初始硬件时间码之后,还读取最近一次中断触发时刻的硬件时间码,记为中断时间码。然后,将获取的初始硬件时间码与中断时间码做差,便可消除晶振产生的误差,得到经硬件累积延时处理后的修正硬件时间码。

需要说明的是,对于多相机系统中每个相机的硬件累计修正处理操作,可以由控制装置完成,当然也可以由多相机系统中每个相机完成。当由控制装置来完成多相机系统中每个相机的硬件累计修正处理操作时,每个相机在读取自身的初始硬件时间码和自身最近一次中断时刻的中断时间码之后,还需要将其发送给控制装置。控制装置将多相机系统中每个相机的初始硬件时间码和每个相机的中断时间码做差值运算,便可得到经硬件累计修正处理后的每个相机的修正硬件时间码。

举例来说,在对相机的初始硬件时间码进行修正时,若相机的初始硬件时间码为ti,获取到的相机的最近一次中断的中断时间码为ti0,那么经硬件累计修正处理操作后的相机的修正硬件时间码ki=ti-ti0,其中ti为相机i的初始硬件时间码,ti0为相机i最近一次中断的中断时间码,i的取值范围为1到n。

第二,对初始硬件时间码进行网络延时修正处理。

在获取相机的初始硬件时间码时,需要向每个相机发送一个硬件时间码的获取请求,多相机系统中的相机在接收到控制装置发来的硬件时间码的获取请求之后,通过自身的时间码寄存器读取自身的硬件时间码并发送给控制装置。从控制装置发送请求到多相机系统中的相机接收到请求所消耗的时间,便是本发明实施例中的网络延时。

具体地,在对初始硬件时间码进行网络延时修正处理时,具体可以按照图4所示的流程进行操作。

如图4所示,是对初始硬件时间码进行网络延时修正处理的实施例的流程示意图,具体方法可以包括:

步骤401,获取本地与多相机系统中每个相机之间的网络延时值。

步骤402,根据所述多个初始硬件时间码和获取的本地与所述多相机系统中每个相机之间的网络延时值计算获得每个相机的修正硬件时间码。

步骤401具体操作时,具体操作方法例如可以是:

在曝光同步任务启动后,可以通过ieee1588精密时钟同步协议测量本地与多相机系统中每个相机之间的网络延时,并以传感器时钟晶振周期为单位进行换算,由此可以得出此时本地与多相机系统中每个相机之间的网络延时。

需要说明的一点是,在步骤402中,在将所述多个初始硬件时间码与获取的本地与每个相机之间的网络延时值对应做差值运算后,相机的修正硬件时间码mi=ti-yi,其中ti为相机i的初始硬件时间码,yi相机i的网络延时值,i的取值范围为1到n。

同时,由于步骤202中已经对初始硬件延时码进行了硬件累计修正处理,因此本步骤中在进行差值运算时应该使用经硬件累计修正处理后的硬件时间码,即ti-ti0,其中i的取值范围为1到n。若前文没有进行硬件累计修正处理,那么本步骤中进行差值运算时,使用的便应该是初始的硬件时间码ti,其中i的取值范围为1到n。

下面,将通过具体的例子进行详细说明。

假设,获取到的本地与多相机系统中每个相机之间的网络延时值分别为y1、y2、y3……yn。

那么经硬件累计修正处理以及网络延时修正处理之后,得到的相机的修正硬件时间码mi=ki-yi=ti-ti0-yi,其中,其中i的取值范围为1到n。

第三,对初始硬件时间码进行操作延时修正处理。

如前所述可知,在获取多相机系统中每个相机的初始硬件时间码时,需要分别获取每一个相机的初始硬件时间码,在获取了某个相机的初始硬件时间码后,由于多相机系统中存在多个相机,发出读取下一个相机的初始硬件时间码的指令时的时间已经发生了变化了。因此,在对初始硬件时间码进行修正时,还需要考虑操作延时。

特别需要说明的是,若逐个读取多相机系统中每个相机的时间码,则需要进行操作延时修正处理,若采用广播的方式读取多相机系统中每个相机的时间码时,则可以不考虑操作延时。具体可根据实际情况选择。

如图5所示,是对初始硬件时间码做操作延时修正处理的实施例的流程示意图,包括如下步骤:

步骤501,当获取每个相机的初始硬件时间码时,读取本地的瞬时硬件时间码。

步骤502,将每一次读取的本地的瞬时硬件时间码与获取第一个相机的初始硬件时间码时读取的本地的瞬时硬件时间码做差值运算,得到本地与每个相机之间的操作延时值。

步骤503,根据所述多个初始硬件时间码和得到的本地与每个相机之间的操作延时值计算获得每个相机的修正硬件时间码。

步骤501中,在向每个相机发出初始硬件时间码的获取请求之前都先读取一遍控制装置本身的硬件时间码,记为瞬时硬件时间码。这也就要求控制装置本身也是含有时间码寄存器的,用于读写当前控制装置的硬件时间码。然后再向多相机系统中的每个相机发出初始硬件时间码的获取请求,多相机系统中的相机接收到所述请求后读取本相机的硬件时间码并返回本相机的硬件时间码给控制装置。这时需要将读取第一个相机的初始硬件时间码时读取的控制装置本身的瞬时硬件时间码作为一个参照;每次获取其它相机的初始硬件时间码时,控制装置读取的自身的瞬时硬件时间码与获取第一个相机的初始硬件时间码时读取到的自身的瞬时硬件时间码之间的差值就是操作延时值,因为控制装置在读取到自身的瞬时硬件时间码之后会立即获取第一个相机的初始硬件时间码,因此可以认为控制装置与第一个相机之间没有操作延时,而控制装置在获取其它相机的初始硬件时间码的时间点是在获取第一个相机的初始硬件时间码之后,因此与控制装置获取第一个相机的初始硬件时间码时读取到的控制装置本身的瞬时硬件时间码之间是存在操作延时的,因此需要计算这段时间的操作延时。

即操作延时值ci=t1i-t11。其中,t1i为获取第i相机初始硬件时间码之前读取的控制装置本地的瞬时硬件时间码,t11为读取第1个相机的初始硬件时间码时读取的控制装置本地的瞬时硬件时间码。其中,其中i的取值范围为1到n。当i等于1时表示控制装置与第一个相机之间的操作延时值。其中,控制装置与第一个相机的操作延时值为0,也可以记为c1=t11-t11。

那么在经操作延时修正处理之后,相机的修正硬件时间码ni=ti-ci,其中ti为相机i的初始硬件时间码,ci相机i的操作延时值,i的取值范围为1到n。经操作延时修正处理后的相机的修正硬件时间码ni=ti-ci,其中i的取值范围为1到n。

需要说明的一点是,由于步骤202中已经对初始硬件延时码进行了硬件累计修正处理以及网络延时修正处理,因此本步骤中在进行差值运算时应该使用经硬件累计修正处理、网络延时修正处理后的硬件时间码,即mi,其中i的取值范围为1到n。若前文没有进行硬件累计修正处理和网络延时修正处理,那么本步骤中进行差值运算时,使用的便应该是初始的硬件时间码ti,其中i的取值范围为1到n。

下面,将通过具体的例子进行详细说明。

假设,获取到的与多相机系统中每个相机之间的操作延时值分别为c1、c2、c3……cn。

那么经硬件累计修正处理、网络延时修正处理以及操作延时处理之后,得到的相机的修正硬件时间码ni=ki-yi-ci=ti-ti0-yi-(t1i-t11),其中,其中i的取值范围为1到n。

需要说明的是,以上实施例虽然是同时采用了网络延时修正处理、操作延时修正处理、硬件累计修正处理三项延时修正处理,但是在实际应用中,可以只选择其中的一项或者两项延时修正处理。在将初始硬件时间码做延时修正处理得到修正硬件时间码的过程中选择了哪项延时修正处理,相应的就将哪项延时修正处理获得的延时结果和初始硬件时间码一起计算获得修正硬件时间码,具体以上三项延时修正处理中只选择其中的一项延时修正处理的实施例和选择其中任两项延时修正处理的实施例在此不再举例说明,可参照上述实施例的计算过程获得。

步骤203,根据所述多个修正硬件时间码确定所述同步基准值,并根据所述同步基准值和每个相机的修正硬件时间码,确定所述多相机系统中每个相机对应的帧补偿值。

由于步骤202中,对初始硬件时间码进行了延时修正处理,那么在本步骤中,确定同步基准值时,则需要根据经修正处理后的多个修正时间码确定同步基准值。具体地,在确定同步基准值时,可以选择多个修正硬件时间码的任意一个值作为同步基准值,也可以选择所述多个修正硬件时间码中的最大值或最小值作为同步基准值,当然也可以计算所述多个修正硬件时间码的平均值,并将该平均值作为同步基准值。

若只对初始硬件时间码进行了硬件累计修正处理,那么则需要根据经硬件累计修正处理后的硬件时间码确定同步基准值,以此类推。由于本发明实施例中,对初始硬件时间码进行了硬件累计修正处理、网络延时修正处理以及操作延时修正处理,那么则应该根据经硬件累计修正处理、网络延时修正处理以及操作延时处理之后得到的每个相机的修正硬件时间码确定同步基准值。在选取同步基准值之后,所有的相机都与选取的同步基准值对应的相机对齐。

步骤s204,将所述每个相机对应的帧补偿值发送至多相机系统中对应的每个相机,以便于每个相机根据对应的所述帧补偿值调整图像的长度使得所述多相机系统中所有相机的曝光时间同步。

在本发明实施例中,由于曝光是根据时间码来确定的,若相机的修正硬件时间码大于同步基准值,则说明相机的硬件时间码相对与同步基准值走的快了,需要将相机当前帧图像或下一帧图像延长一定时间,以便于同步基准值对应的相机的时间码能赶上,从而在采集下帧或下下帧图像时曝光时间同步;若是相机的修正硬件时间码小于同步基准值,则说明相机的时间码走的慢了,需要赶上同步基准值对应的相机的时间码,因此需要将相机当前帧图像或下一帧图像缩短一定时间,以便于同步基准值对应的相机的时间码能赶上,从而在采集下帧或下下帧图像时曝光同步。

本发明实施例的多相机系统同步曝光的方法,在接收到曝光同步的指令之后,获取每个相机的初始硬件时间码,并对该多个初始硬件时间码进行延时修正处理,得到多个修正硬件时间码,以及根据该多个修正硬件时间码确定同步基准值,并根据所述同步基准值和每个相机的初始硬件时间码,确定所述多相机系统中每个相机对应的帧补偿值,以及将所述每个相机对应的帧补偿值发送至多相机系统中对应的每个相机,以便每个相机能够根据对应的所述帧补偿值调整图像的长度使得所述多相机系统中所有相机的曝光时间同步。

本发明的实施例可以将该方法应用于控制装置,用于控制多相机系统中每个相机实现同步曝光,同时,该方法还可以应用于多相机系统中的一个相机,也就是可以把该控制装置集成到多相机系统中的一个相机当中。可以选取多相机系统中一个相机作为主相机,其它命名为从相机,控制装置集成到主相机中,或者该方法直接应用于主相机中。获取的控制装置与每个相机的延时值用主相机与每个相机的延时值代替。主相机与自身的延时值可以采用数值0代替。具体将所述主相机作为控制装置实现多相机系统中每个相机同步曝光可以通过以上内容获取,在此不一一举例。

请参见图6,是本发明提供的多相机系统同步曝光的控制方法的第三实施例的流程示意图,如图6所示该多相机系统同步曝光的控制方法可以包括以下步骤:

步骤s601,在接收到曝光同步的指令后,获取所述多相机系统中每个相机的初始硬件时间码,得到多个初始硬件时间码。

步骤s602,对得到的多个初始硬件时间码依次进行硬件累计修正处理、网络延时处理以及操作延时处理,得到多个修正硬件时间码。

步骤s603,根据所述多个修正硬件时间码确定同步基准值。

步骤s604,按照公式:bi=(ni-s)%framelength计算相机的帧补偿值。

步骤s605,将所述每个相机对应的帧补偿值发送至多相机系统中对应的每个相机。

本实施例与图2所示的实施例的区别有:

在确定帧补偿值时,具体采用步骤s604中的公式。步骤s604中,bi表示相机i的帧补偿值,ni表示经延时修正处理后相机i的修正硬件时间码,s表示同步基准值,framelength表示所述多相机系统中每个相机的一帧图像以振荡周期为单位的大小,%表示模运算。具体的帧补偿值是相机一帧图像以晶振的振荡周期为单位的大小,也就是转换成时间码的大小。取模运算是为了相机的帧补偿值不会超过一帧图像的帧长(转换成时间码的一帧图像的时间长度),只要对齐时钟的相位就可以。

第二,在具体处理时,确定出的同步基准值可以是多个修正硬件时间码中的最小值,即从多个修正硬件时间码中选取一个最小值作为同步基准值。选取修正硬件时间码中的最小值得目的是为了简化计算,同时也为了获取更好的效果。这时,所有的相机都只需要拉长当前帧或下帧图像的时间长度就行。

在计算出相机的帧补偿值之后,多相机系统中的相机便可根据该帧补偿值相应调整当前帧或下一帧图像的长度,使得在相机在采集下帧或下下帧图像时可以实现曝光同步。

应理解,在上述实施例中,各步骤的序号的大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

上述图1至图6对多相机系统同步曝光的控制方法进行了详细的描述,下面将结合附图,对多相机系统同步曝光的控制装饰着、终端设备以及计算机可读存储介质进行详细描述。为避免赘述,上文中已经描述的术语在下文中可能不再做重复说明。

请参见图7,图7是本发明提供的控制装置700的结构框图,为了便于说明,仅示出与本发明实施例相关的部分。该控制装置700可以是内置于终端设备(手机、电脑、计算机)内的软件单元、硬件单元或者软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中;还可以是内置于主相机内的软件单元、硬件单元或者软硬结合的单元,也可以作为独立的挂件集成到所述主相机中。该同步曝光的装置700包括:

获取模块701,用于在接收到曝光同步的指令后,获取所述多相机系统中每个相机的初始硬件时间码,得到多个初始硬件时间码。

确定模块702,用于根据所述多个初始硬件时间码确定同步基准值,并根据所述同步基准值和每个相机的初始硬件时间码,确定所述多相机系统中每个相机对应的帧补偿值;

发送模块703,用于将所述每个相机对应的帧补偿值发送至多相机系统中对应的每个相机,以便每个相机根据对应的所述帧补偿值调整图像的长度使得所述多相机系统中所有相机的曝光时间同步。

如图8所示,是本发明提供的应用于多相机系统同步曝光的控制装置700的结构框图,为了便于说明,仅示出与本发明实施例相关的部分。该控制装置700可以是内置于终端设备(手机、电脑、计算机)内的软件单元、硬件单元或者软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中;还可以是内置于主相机内的软件单元、硬件单元或者软硬结合的单元,也可以作为独立的挂件集成到所述主相机中。

该控制装置700包括:获取模块701、确定模块702、发送模块703。本发明实施例与图7所示的实施例的区别在于:还包括修正模块704。

修正模块704,用于对获取模块701获得的多个初始硬件时间码依次进行硬件累计修正处理、网络延时处理以及操作延时处理。

下面,将分别描述修正模块704对多个初始硬件时间码进行硬件累计修正处理、网络延时处理以及操作延时处理的具体操作过程。

修正模块704具体可以包括:获取单元,以及修正单元。具体地,修正模块704对多个初始硬件时间码进行硬件累计修正处理时,具体操作方法可以是:

获取单元对应获取每个相机最近一次中断触发时刻的中断时间码,修正单元将所述多个初始硬件时间码与获取的所述中断时间码做差值运算,对应得到每个相机的修正硬件时间码。

根据前文的描述可知,在产生一次中断时,硬件计时器可以自动锁存一个时间码。因此,每个相机在读取自身的初始硬件时间码之后,还读取最近一次中断触发时刻的硬件时间码,记为中断时间码。然后,将读取的初始硬件时间码与中断时间码发送至获取单元,获取单元将从相机处获取的初始硬件时间码与中断时间码传送至修正单元处理。修正单元初始硬件时间码与中断时间码做差,便可消除晶振产生的误差,得到经硬件累积延时处理后的修正硬件时间码。

举例来说,修正模块704在对相机的初始硬件时间码进行修正时,若相机的初始硬件时间码为ti,获取到的相机的最近一次中断的中断时间码为ti0,那么经硬件累计修正处理操作后相机的修正硬件时间码ki=ti-ti0,其中ti为相机i的初始硬件时间码,ti0为相机i最近一次中断的中断时间码,i的取值范围为1到n。

具体地,修正模块704对多个初始硬件时间码进行网络延时修正处理时,具体操作方法可以是:

获取单元获取本地与多相机系统中每个相机之间的网络延时值,修正单元将所述多个初始硬件时间码与获取单元获取的本地与每个相机之间的网络延时值对应做差值运算,对应得到每个相机的修正硬件时间码。

获取单元在获取网络延时值时,操作方法可以是:通过ieee1588精密时钟同步协议测量与每个相机之间的网络延时,并以传感器时钟晶振周期为单位进行换算,由此可以得出此时控制装置本身与每个相机之间的网络延时。

其中,修正单元在将所述多个初始硬件时间码与获取的控制装置本地与每个相机之间的网络延时值对应做差值运算时,在经网络延时修正处理之后,相机的修正硬件时间码mi=ti-yi,其中ti为相机i的初始硬件时间码,yi是相机i的网络延时值,i的取值范围为1到n。

同时,由于已经对初始硬件延时码进行了硬件累计修正处理,因此此时在进行差值运算时应该使用经硬件累计修正处理后的硬件时间码,即ti-ti0,其中i的取值范围为1到n。若前文没有进行硬件累计修正处理,那么此时进行差值运算时,使用的便应该是初始的硬件时间码ti,其中i的取值范围为1到n。

具体地,修正模块703对多个初始硬件时间码进行操作延时修正处理时,具体操作方法可以是:

当获取每个相机的初始硬件时间码时,获取单元读取所述控制装置本地的瞬时硬件时间码,修正单元将每一次读取的控制装置本地的瞬时硬件时间码与获取第一个相机的初始硬件时间码时读取的控制装置本地的瞬时硬件时间码做差值运算,得到控制装置与每个相机之间的操作延时值,以及根据所述多个初始硬件时间码和获取的所述操作延时值计算获得每个相机的修正硬件时间码。

在向每个相机发出初始硬件时间码的获取请求之前,获取单元都先读取一遍控制装置本地的硬件时间码,计为瞬时硬件时间码。然后再向每个相机发出初始硬件时间码的获取请求,每个相机接收到所述请求后读取每个相机本身的硬件时间码并发送给控制装置。修正单元将读取单元读取的瞬时硬件时间码与获取第一个相机的初始硬件时间码时读取的控制装置本地的瞬时硬件时间码做差值运算,便可得到控制装置与每个相机之间的操作延时值。即操作延时值ci=t1i-t11。其中,t1i为获取第i相机初始硬件时间码之前读取的控制装置本身的瞬时硬件时间码,t11为读取第1个相机的硬件时间码时读取的控制装置本身的瞬时硬件时间码。其中,其中i的取值范围为1到n,当i等于1时表示控制装置与第一个相机之间的操作延时值。其中,控制装置与第一个相机的操作延时值为0,也可以记为c1=t11-t11。

那么在经操作延时修正处理之后,相机的修正硬件时间码ni=ti-ci,其中ti为相机i的初始硬件时间码,ci相机i的操作延时值,i的取值范围为1到n。经操作延时修正处理后的相机的修正硬件时间码ni=ti-ci,其中i的取值范围为1到n。

需要说明的一点是,由于已经对初始硬件延时码进行了硬件累计修正处理以及网络延时修正处理,因此此时在进行差值运算时应该使用经硬件累计修正处理、网络延时修正处理后的硬件时间码,即mi,其中i的取值范围为1到n。若前文没有进行硬件累计修正处理和网络延时修正处理,那么此时进行差值运算时,使用的便应该是初始的硬件时间码ti,其中i的取值范围为1到n。

本发明实施例的多相机系统同步曝光的控制装置,在接收到曝光同步的指令之后,通过获取每个相机的初始硬件时间码,并对该多个初始硬件时间码进行延时修正处理,得到多个修正硬件时间码,以及根据该多个修正硬件时间码确定同步基准值,并根据所述同步基准值和每个相机的初始硬件时间码,确定所述多相机系统中每个相机对应的帧补偿值;最后将所述每个相机对应的帧补偿值发送至多相机系统中对应的每个相机,以便每个相机能够根据对应的所述帧补偿值调整图像的长度使得所述多相机系统中所有相机的曝光时间同步。

进一步需要说明的是,本发明实施例的确定模块702具体包括:同步基准值单元以及帧补偿值确定单元。

帧补偿值确定单元在确定帧补偿值时,具体采用bi=(ni-s)%framelength计算相机的帧补偿值。其中,bi表示相机i的帧补偿值,ni表示经延时修正处理后相机i的修正硬件时间码,s表示同步基准值,framelength表示所述多相机系统中每个相机的一帧图像以振荡周期为单位的大小,%表示模运算。具体的帧补偿值是相机一帧图像以晶振的振荡周期为单位的大小,也就是转换成时间码的大小。取模运算是为了相机的帧补偿值不会超过一帧图像的帧长(转换成时间码的一帧图像的时间长度),只要对齐时钟的相位就可以。

具体处理时,同步基准值确定单元确定出的同步基准值可以是多个修正硬件时间码中的最小值,即从多个修正硬件时间码中选取一个最小值作为同步基准值。选取修正硬件时间码中的最小值得目的是为了简化计算,同时也为了获取更好的效果。这时,所有的相机都只需要拉长当前帧或下帧图像的时间长度就行。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上集成在一个单元或者模块中,上述集成的单元或模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述控制装置中模块的具体工作过程,可以参考前述方法实施例的对应过程,在此不再赘述。

图9是本发明一实施例提供的终端设备的示意框图。该终端设备还可以是多相机系统中的一个相机,例如主相机。如图9所示,该实施例的终端设备9包括:一个或多个处理器90、存储器91以及存储在所述存储器91中并可在所述处理器90上运行的计算机程序92。所述处理器90执行所述计算机程序92时实现上述各个多相机系统同步曝光的控制方法实施例中的步骤,例如图1所示的步骤s101至s103。或者,所述处理器90执行所述计算机程序92时实现上述终端设备实施例中各模块/单元的功能,例如图7所示模块701至703的功能。

示例性的,所述计算机程序92可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器91中,并由所述处理器90执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序92在所述终端设备9中的执行过程。例如,所述计算机程序92可以被分割成获取模块、确定模块、发送模块。

所述获取模块,用于在接收到曝光同步的指令后,获取所述多相机系统中每个相机的初始硬件时间码,得到多个初始硬件时间码;

所述确定模块,用于根据所述多个初始硬件时间码确定同步基准值,以及根据所述同步基准值和每个相机的初始硬件时间码,确定所述多相机系统中每个相机对应的帧补偿值;

所述发送模块,用于将所述每个相机对应的帧补偿值发送至多相机系统中对应的每个相机,以便每个相机根据对应的所述帧补偿值调整图像的长度使得所述多相机系统中所有相机的曝光时间同步。

可选的,还可以包括:

修正模块,用于对所述多个初始硬件时间码做延时修正处理,得到多个修正硬件时间码;

所述延时修正处理包括以下至少一项:网络延时修正处理、操作延时修正处理以及硬件累计修正处理;

可选的,所述确定模块具体用于:

根据所述多个修正硬件时间码确定所述同步基准值;

根据所述同步基准值和所述多个修正硬件时间码,确定所述多相机系统中每个相机对应的帧补偿值。

可选的,所述修正模块包括:

获取单元,用于获取本地与所述多相机系统中每个相机之间的网络延时值;

修正单元,用于根据所述多个初始硬件时间码和获取的本地与每个相机之间的网络延时值计算获得每个相机的修正硬件时间码。

可选的,所述获取单元,还用于当获取每个相机的初始硬件时间码时,读取本地的瞬时硬件时间码;

所述修正单元,还用于将每一次读取的本地的瞬时硬件时间码与获取第一个相机的初始硬件时间码时读取的本地的瞬时硬件时间码做差值运算,得到本地与每个相机之间的操作延时值;

根据所述多个初始硬件时间码和得到的本地与每个相机之间的操作延时值计算获得每个相机的修正硬件时间码。

可选的,所述获取单元,还用于对应获取每个相机最近一次中断触发时刻的中断时间码;

所述修正单元,还用于将所述多个初始硬件时间码与获取的所述中断时间码做差值运算,对应得到每个相机的修正硬件时间码。

可选的,所述确定模块具体用于:

根据公式bi=(ni-s)%framelength计算相机的帧补偿值;

其中,bi表示相机i的帧补偿值,ni表示经延时修正处理后相机i的修正硬件时间码,s表示同步基准值,framelength表示所述多相机系统中每个相机的一帧图像以振荡周期为单位的大小,%表示模运算。

所述终端设备包括但不仅限于处理器90、存储器91。本领域技术人员可以理解,图9仅仅是终端设备9的示例,并不构成对终端设备9的限定,该终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入设备、输出设备、网络接入设备、总线等。

所述存储器91,用于存储软件程序、模块、单元以及终端设备中需要的数据信息,所述处理器90通过运行存储在所述存储器91的软件程序、模块以及单元,从而执行各种功能应用以及数据处理,提高复杂场景下多相机系统中多个相机同步曝光的精度。该存储器91可以包括只读存储器和随机存取存储器,并向处理器90提供指令和数据。存储器91的一部分还可以包括非易失性随机存取存储器。例如,存储器91还可以存储设备类型的信息。

所述处理器90可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。所述处理器是所述终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。

具体实现中,本发明实施例中所描述的处理器90和存储器91可执行本发明实施例提供的多相机系统同步曝光的控制方法的实施例中所描述的实现方式,也可执行多相机系统同步曝光的控制装置的实施例中所描述的实现方式,在此不再赘述。

最后,为了更好的理解本发明实施例与多相机系统的关系,通过图10说明本发明所述方法应用于的控制装置7与多相机系统10的关系。如图所示,控制装置用于控制多相机系统,多相机系统包括多个相机101,控制装置7可以表示以上控制装置任一实施例所述的控制装置,还可以表示以上任一实施例所述的终端设备。

另外,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被一个或多个处理器执行时实现本发明实施例提供的应用于多相机系统同步曝光的控制方法的步骤。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的控制方法、控制装置以及终端设备,可以通过其它的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。

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