一种同步曝光方法、装置及终端设备与流程

文档序号:11180976阅读:933来源:国知局
一种同步曝光方法、装置及终端设备与流程

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



背景技术:

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

目前,多相机系统中的各相机采集图像后会立即发送服务器,服务器将同一时间采集到的图像作为同步曝光的图像处理。但是,当多相机系统中相机的型号不同时,不同型号的相机采集一帧图像的时间也就不相同,所以服务器将同一时间采集到的图像作为同步曝光的图像将是不准确的。



技术实现要素:

鉴于此,本发明提供一种同步曝光方法、装置及终端设备,解决在识别同步曝光的图像时不准确的问题。

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

调整所述多相机系统中的相机的曝光时间,使得所述多相机系统中的所有相机采集图像时同步曝光;

获取同步标识信息,以便于所述同步标识信息与所述多相机系统中每个相机的待同步图像关联,使得每个相机的待同步图像具有相同的同步标识信息,所述每个相机的待同步图像为所述多相机系统中所有相机同步曝光时每个相机分别采集的图像。

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

同步模块,用于调整所述多相机系统中的相机的曝光时间,使得所述多相机系统中的所有相机采集图像时同步曝光;

关联模块,用于获取同步标识信息,以便于所述同步标识信息与所述多相机系统中每个相机的待同步图像关联,使得每个相机的待同步图像具有相同的同步标识信息,所述每个相机的待同步图像为所述多相机系统中所有相机同步曝光时每个相机分别采集的图像。

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

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

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

本发明提供的技术方案,首先需要调整所述多相机系统中的相机采集图像时同步曝光,在多相机同步曝光的基础上,获取同步标识信息,所述同步标识信息可以与所述多相机系统中每个相机的待同步图像关联,或者将所述同步标识信息压缩入所述多相机系统中每个相机的待同步图像数据中,这样同步曝光的所有图像就具有相同的同步标识信息,即使多相机系统中每个相机采集图像后发送到服务器的时间不同,也不会导致在识别同步曝光的图像时出现不准确的现象。

附图说明

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

图1是本发明提供的同步曝光方法的第一实施例的流程示意图;

图2是本发明提供的同步曝光方法的又一实施例的流程示意图;

图3是本发明提供的第一实施例中步骤s101的一个实施例流程示意图;

图4是本发明提供的第一实施例中步骤s101的又一个实施例流程示意图;

图5是本发明提供的第一实施例中步骤s101的又一个实施例流程示意图;

图6是本发明提供的第一实施例中步骤s101的又一个实施例流程示意图;

图7是本发明提供的第一实施例中步骤s101的又一个实施例流程示意图;

图8是本发明提供的第一实施例中步骤s101的又一个实施例流程示意图;

图9是本发明提供的第一实施例中步骤s101的又一个实施例流程示意图;

图10是本发明提供的同步曝光装置的实施例的示意框图;

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

具体实施方式

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

在描述本发明实施例的具体实施方式之前,首先分析多相机系统的工作方式。

通常,多相机系统应用于3d重建、运动捕捉、多视点视频等。这就要求多相机系统中参与拍摄的多个相机采集每一帧图像时曝光对齐;同时,由于多相机系统以较高的速率连续拍摄,然后将较高速率连续拍摄的图像序列发送至服务器或者数据处理系统,服务器或者数据处理系统需要从接受到的大量图像中识别同步曝光的图像,现有的方式是服务器根据接收的时间识别同步曝光的图像。但是,实际应用中,常常会因为各种各样的原因,多相机系统中的相机并无法保证具有相同型号,而不同型号的相机如果实现了同步曝光,但是由于采集一帧图像所经过的时间可能不同,多相机系统中的相机在采集图像后会立即发送至服务器或者数据处理系统,这样就导致同步曝光采集的图像并不会在相同时刻发送至服务器或者图像处理系统,如果服务器或者图像处理系统依然采用根据接收的时间识别同步曝光的图像显然是不准确的。

为了解决这个问题,提出了本发明的同步曝光方法、装置及终端设备。

下面,将通过具体的实施例进行详细描述。

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

步骤s101,调整所述多相机系统中的相机的曝光时间,使得所述多相机系统中的所有相机采集图像时同步曝光。

在本发明实施例中,多相机系统的应用范围决定了多相机系统采集的图像应该是同步曝光的图像,所以首先需要调整多相机系统中的相机,使得多相机系统中所有相机采集图像时同步曝光。为保证多相机系统中的所有相机采集图像时同步曝光时,可以选择多相机系统中的一个相机作为主相机,其它相机作为从相机,根据主相机和从相机曝光时间的差值调整所述多相机系统中的相机的曝光时间使得所述多相机系统中所有相机采集图像时同步曝光。

步骤s102,获取同步标识信息,以便于所述同步标识信息与所述多相机系统中每个相机的待同步图像关联,使得每个相机的待同步图像具有相同的同步标识信息,所述每个相机的待同步图像为所述多相机系统中所有相机同步曝光时每个相机分别采集的图像。

在本发明实施例中,在实现多相机系统中的所有相机同步曝光后,如前所述,多相机系统常常需要多个相机以足够高的速率连续拍摄以从图像序列中获得物体的运动轨迹等,所以服务器或数据处理系统会以足够高的速率接收多个相机发送的图像序列。如果多相机系统存在不同型号的相机,即使所有相机曝光时间相同,但各个相机发送采集图像给到服务器的时刻也是不同的,那么服务器仍然根据接收到采集图像的时间判断这些图像是否同步曝光的方式显然是不准确的。这时,我们考虑可以获取同步标识信息,并将所述同步标识信息告知多相机系统中相应的相机。如此,多相机系统中的所有相机可以将所述同步标识信息与待同步图像关联在一起,例如多相机系统中的相机可以在待同步图像中增加同步标识信息,或者将所述同步标识信息压缩入待同步图像数据中,从而使得同步曝光的图像(即待同步图像)具有相同的同步标识信息。这样服务器或者数据处理系统可以根据同步标识信息判断接收到的大量图像中哪些是多相机系统中所有相机同步曝光时每个相机分别采集的图像。需要说明的是,所述同步标识信息可以是主相机中待同步图像的图像帧号,还可以是随机生成的信息,例如由不同字符或者不同数字组成信息。

需要说明的是,同步标识信息的获取方式有多种,例如通过外接的控制设备生成的,那么在获取同步标识信息后可以将所述同步标识信息发送至多相机系统中的每个相机,以便于每个相机能够将所述同步标识信息与待同步图像相关联使得同步曝光的图像具有相同的同步标识信息;又例如,同步标识信息是通过其中一个相机产生的,那么此时在获取同步标识信息之后,可以将所述同步标识信息发送至多相机系统中的其余相机,这样就使得多相机系统中的所有相机同步曝光时每个相机分别采集的图像具有相同的标识信息。

本发明实施例通过先将多相机系统中的所有相机实现同步曝光,将同步标识信息发送至相应的相机,然后各个相机再将同步标识信息与待同步图像关联使得所有相机同一时刻曝光的图像具有相同的同步标识信息。如此,服务器便可根据接收到的采集图像中的同步标识信息判断各个相机发来的采集图像是否同步。

请参见图2,是本发明提供的同步曝光方法又一实施例的流程示意图,如图2所示该同步曝光方法可以包括以下步骤:

步骤s201,调整所述多相机系统中的相机的曝光时间,使得所述多相机系统中的所有相机采集图像时同步曝光。

步骤s202,获取所述多相机系统中的任意一个相机待同步图像的图像帧号,并将所述图像帧号作为所述同步标识信息。

在本发明实施例中,还可以将某一个相机的待同步图像的图像帧号作为同步标识信息,待同步图像为所述多相机系统中所有相机同步曝光时每个相机分别采集的图像。选取的相机可以与主相机是同一台相机,也可以是不同的相机,具体获取哪一个相机的待同步图像的图像帧号作为同步标识信息,可以根据实际应用场景进行选择,在此不做限制。

步骤s203,将所述待同步图像的图像帧号发送至所述多相机系统中相应的相机,以便于所述多相机系统中的相机根据接收到的所述图像帧号调整自身待同步图像的图像帧号。

在本发明实施例中,在获取某一个相机的待同步图像的图像帧号后,将所述图像帧号发送至所述多相机系统中相应的相机,所述多相机系统中的相机在接收到所述图像帧号后调整自身待同步图像的图像帧号,从而使得多相机系统中同步曝光的图像具有相同的图像帧号。

多相机系统中的每个相机在调整待同步图像的帧号时,具体是将作为同步标识信息的图像帧号与自身待同步图像的帧号进行对比,判断是否需要调整,若需要,则将自身待同步图像的帧号调整为作为同步标识信息的图像帧号。

本发明实施例通过获取多相机系统中其中一个相机的待同步图像的图像帧号作为同步标识信息,其它相机在自身的待同步图像中将待同步图像的图像帧号调整为作为同步标识信息的图像帧号,使得多相机系统中所有相机同一时间曝光的图像具有相同的图像帧号,如此,服务器便可以根据接收到的采集图像中的图像帧号判断各个相机发来的采集图像是否同步。

作为本发明又一实施例,在将待同步图像关联同步标识信息之后,还可以包括:

根据所述同步标识信息生成同步标识子序列信息,以便于所述多相机系统中的每个相机将所述同步标识子序列信息依次与待同步图像之后的图像序列关联使得待同步图像之后的图像序列依次具有相同的同步标识子序列信息。

在本发明实施例中,多相机系统不会每拍一帧图像之前都会做一次同步曝光,即可能会间隔一定时间才会进行一次同步曝光,这时我们可以考虑在同步曝光的图像中加入同步标识信息后,根据同步标识信息生成同步标识子序列信息,在同步曝光的图像之后拍摄的图像序列中加入同步标识子序列信息,当再次实现同步曝光时,重新生成同步标识信息,再次同步曝光之后拍摄的图像序列依次加入同步标识子序列信息。

具体的,我们通过举例说明,假设第一次同步曝光时待同步图像中加入的同步标识信息为八位数字组成的信息00010000,第二次同步曝光时待同步图像中加入的同步标识信息就为00020000,这样依次类推,前面四位表示了同步曝光时待同步图像序列。每次同步曝光之间可能会拍摄多组图像,第一次同步曝光时待同步图像和第二次同步曝光时待同步图像之间拍摄的多个图像序列就可以用00010001、00010002、00010003……表示,同理,第二次同步曝光时待同步图像和第三次同步曝光时待同步图像之间的图像序列可以用00020001、00020002、00020003……表示,这样依次类推,后面四位表示了两次同步曝光时待同步图像之间的图像序列。需要说明的是,该举例只是用于说明,并不用于限制本发明实施例,还可以根据不同的同步标识信息演变出不同的同步标识信息序列。

需要说明的是,若所述同步标识子序列是通过其中一个相机产生的,那么此时在获得同步标识子序列之后,可以将所述同步标识子序列发送至所述多相机系统中的相应相机,这样所有相机可以将获取的同步标识子序列与待同步图像之后的图像相关联,使得多相机系统中多个相机待同步图像(同步曝光的图像)之后采集的图像也具有相同的标识信息。

本发明实施例通过同步标识子序列信息使得多个相机待同步图像之后采集的图像也能够具有相同的同步标识子序列信息,这样服务器或者数据处理系统在接收到大量的图像时可以根据同步标识信息或者同步标识子序列信息得知哪些图像可以作为同步曝光的图像。

作为步骤s101中的一个实施例,可以通过以下方式调整所述多相机系统中的相机使得所述多相机系统中的所有相机采集图像时同步曝光。

步骤s301,选取所述多相机系统中的其中一个相机作为主相机,所述主相机之外的相机作为从相机。

步骤s302,获取所述主相机与所述从相机曝光时间的差值;

步骤s303,根据所述主相机与所述从相机曝光时间的差值调整所述多相机系统中的相机的曝光时间使得所述多相机系统中的所有相机采集图像时同步曝光。

在本发明实施例中,为保证多相机系统中的所有相机采集图像时同步曝光时,可以先从多相机系统中选取其中一个相机作为主相机,其它相机作为从相机,分别获取主相机与所述从相机曝光时间的差值,正是由于这个差值的存在才会导致多相机系统中相机不能实现同步曝光。因此可以根据这个差值调整每个相机的曝光时间使得所有相机同步曝光。

需要说明的是,以上仅仅用于举例,并不用于限制本发明,在实际中,实现多相机同步曝光的方法很多。

如前所述,本发明实施例需要先调整所述多相机系统中的相机的曝光时间,使得所述多相机系统中的所有相机采集图像时同步曝光。步骤s301至步骤s303已经做出一些举例,作为本发明的又一实施例,还可以通过其它方法实现多相机系统中的多个相机采集图像时同步曝光。可以理解的是,可以通过调整相机采集图像的帧长的方式达到调整曝光时间的目的。

首先分析造成多相机系统中各个相机曝光不同步的原因。

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

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

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

为解决多相机系统中相机曝光不同步的问题,我们将通过具体的实施例进行详细描述来解决该问题。其中一个实施例可以通过多相机系统外接一个控制设备来实现多相机系统中的多个相机同步曝光,该控制设备可以控制多相机系统中多个相机同步曝光,以上实施例中的步骤也可以由该控制设备完成,具体实现的步骤如下:

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

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

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

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

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

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

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

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

在计算每个相机对应的帧补偿值后发送给多相机系统中的所有相机,多相机系统中的相机接收到该帧补偿值之后,更新相机内部的帧扩展寄存器,以便在多相机系统中的每个相机在采集图像时能够对齐曝光时间。

需要说明的是,若确定出的同步基准值和相机的初始硬件时间码没有偏差,则表示此相机在本次同步曝光过程中不需要进行帧补偿。

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

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

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

请参见图5,是本发明第一实施例中步骤s101的又一个实施例流程示意图,如图5所示该同步曝光方法可以包括以下步骤:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

特别需要说明的是,在获取多相机系统中每个相机的初始硬件时间码时,若需要分别获取每一个相机的初始硬件时间码,在获取了某个相机的初始硬件时间码后,由于多相机系统中存在多个相机,发出读取第一个相机的初始硬件时间码的指令和发出读取第二个相机的初始硬件时间码的指令时并不会完全相同。因此,在对初始硬件时间码进行修正时,还需要考虑操作延时。若采用广播的方式读取多相机系统中每个相机的时间码时,则可以不考虑操作延时。具体可根据实际情况选择。

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

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

步骤s802,将每一次读取的本地的瞬时硬件时间码与获取第一个相机的初始硬件时间码时读取的本地的瞬时硬件时间码做差值运算,得到本地(外接的控制设备)与每个相机之间的操作延时值。

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

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

即操作延时值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。

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

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

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

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

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

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

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

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

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

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

在将多相机系统中的每个相机实现同步曝光时,作为又一个实施例,可以将多相机系统外接的控制设备的功能通过多相机系统中的一个相机来实现。此时,可以选取多相机系统中的一个相机作为主相机,其它相机作为从相机,以上在实现多相机系统中每个相机同步曝光时外接设备采用的方法都可以通过多相机系统中的主相机实现。也就是说,此时主相机作为多相机系统内的相机设备,除可以实现之前外接的控制设备的所有功能之外,还可以实现多相机系统内从相机的所有功能。当然,主相机在实现外接控制设备的功能时,之前外接的控制设备获得的外接设备本地的数据信息将相应替代为主相机获取主相机本地的数据信息获取,同样的,之前外接设备与多相机系统中每个相机之间的数据差值将相应替代为主相机与从相机之间的数据差值代替。

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

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

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

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

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

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

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

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

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

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

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

请参见图10,图10是本发明提供的同步曝光装置1000的结构框图,为了便于说明,仅示出与本发明实施例相关的部分。该同步曝光装置1000作为一个外接于多相机系统的控制装置可以是内置于终端设备内的软件单元、硬件单元或者软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中。该同步曝光装置1000还可以是内置于主相机内的软件单元、硬件单元或者软硬结合的单元,也可以作为独立的挂件集成到所述主相机中。该同步曝光装置1000包括:

同步模块1001,用于调整所述多相机系统中的相机使得所述多相机系统中的所有相机采集图像时同步曝光;

关联模块1002,用于获取同步标识信息,以便于所述同步标识信息与所述多相机系统中每个相机的待同步图像关联,使得每个相机的待同步图像具有相同的同步标识信息,所述每个相机的待同步图像为所述多相机系统中所有相机同步曝光时每个相机分别采集的图像。

可选的,所述同步标识信息包括图像帧号。

所述关联模块1002包括:

帧号获取单元,用于获取所述多相机系统中的任意一个相机待同步图像的图像帧号,并将所述图像帧号作为所述同步标识信息;

发送单元,用于将所述待同步图像的图像帧号发送至所述多相机系统中相应的相机,以便于所述多相机系统中的相机根据接收到的所述图像帧号调整待同步图像的图像帧号。

可选的,所述装置还包括:

同步子序列生成模块,用于根据所述同步标识信息生成同步标识子序列信息,以便于所述多相机系统中的每个相机将所述同步标识子序列信息依次与待同步图像之后的图像序列关联使得待同步图像之后的图像序列依次具有相同的同步标识子序列信息。

可选的,所述同步模块包括:

选取单元,用于选取所述多相机系统中的其中一个相机作为主相机,所述主相机之外的相机作为从相机;

获取单元,用于获取所述主相机与所述从相机曝光时间的差值;

调整单元,用于根据所述主相机与所述从相机曝光时间的差值调整所述多相机系统中的相机使得所述多相机系统中的所有相机采集图像时同步曝光。

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

图11是本发明一实施例提供的终端设备的示意框图。该终端设备还可以是多相机系统中的一个相机。如图11所示,该实施例的终端设备11包括:一个或多个处理器110、存储器111以及存储在所述存储器111中并可在所述处理器110上运行的计算机程序112。所述处理器110执行所述计算机程序112时实现上述各个同步曝光方法实施例中的步骤,例如图1所示的步骤s101至s102。或者,所述处理器110执行所述计算机程序112时实现上述同步曝光装置实施例中各模块/单元的功能,例如图10所示模块1001至1002的功能。

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

同步模块,用于调整所述多相机系统中的相机使得所述多相机系统中的所有相机采集图像时同步曝光;

关联模块,用于获取同步标识信息,以便于所述同步标识信息与所述多相机系统中每个相机的待同步图像关联,使得每个相机的待同步图像具有相同的同步标识信息,所述每个相机的待同步图像为所述多相机系统中所有相机同步曝光时每个相机分别采集的图像。

可选的,所述同步标识信息包括图像帧号。

所述关联模块包括:

帧号获取单元,用于获取所述多相机系统中的任意一个相机待同步图像的图像帧号,并将所述图像帧号作为所述同步标识信息;

发送单元,将所述待同步图像的图像帧号发送至所述多相机系统中相应的相机,以便于所述多相机系统中的相机根据接收到的所述图像帧号调整待同步图像的图像帧号。

可选的,还包括:

同步子序列生成模块,用于根据所述同步标识信息生成同步标识子序列信息,以便于所述多相机系统中的每个相机将所述同步标识子序列信息依次与待同步图像之后的图像序列关联使得待同步图像之后的图像序列依次具有相同的同步标识子序列信息。

可选的,所述同步模块,具体包括:

选取单元,用于选取所述多相机系统中的其中一个相机作为主相机,所述主相机之外的相机作为从相机;

获取单元,用于获取所述主相机与所述从相机曝光时间的差值;

调整单元,用于根据所述主相机与所述从相机曝光时间的差值调整所述多相机系统中的相机使得所述多相机系统中的所有相机采集图像时同步曝光。

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

所述存储器111,用于存储软件程序、模块、单元以及终端设备中需要的数据信息,所述处理器110通过运行存储在所述存储器111的软件程序、模块以及单元,从而执行各种功能应用以及数据处理。该存储器111可以包括只读存储器和随机存取存储器,并向处理器110提供指令和数据。存储器111的一部分还可以包括非易失性随机存取存储器。例如,存储器111还可以存储设备类型的信息。

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

具体实现中,本发明实施例中所描述的处理器110和存储器111可执行本发明实施例提供的同步曝光方法的实施例中所描述的实现方式,也可执行同步曝光装置的实施例中所描述的实现方式,在此不再赘述。

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

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

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

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

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

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

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

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

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