发明内容
本发明实施例目的在于提供一种多摄像头摄影方法和摄影设备,通过本发明实施例,能够通过多个普通摄像头即可实现提高成像速度。
本发明实施例提供了一种多摄像头摄影方法,包括步骤:
控制两个以上的摄像头按照预设的先后顺序摄像;所述两个以上的摄像头中的每一摄像头的成像周期相同,所述两个以上的摄像头中最先摄像的摄像头与最后摄像的摄像头之间摄像的时间间隔在所述成像周期内;
从所述两个以上的摄像头所成像的摄影图片中获取所述两个以上的摄像头间共有成像区域所对应的摄影图片;
将所述获取的摄影图片按照摄像时间先后排序,并按照时序提取所述先后排序好的摄影图片进行合并,所述摄影图片为所述摄像头进行行扫描后形成的图像数据片段。
相应的,本发明实施例还提供了一种摄影设备,包括两个以上的摄像头、控制单元、获得单元和处理单元,其中:
所述两个以上的摄像头用于摄像;
所述控制单元用于控制所述两个以上的摄像头按照预设的先后顺序摄像;所述两个以上的摄像头中的每一摄像头的成像周期相同,所述两个以上的摄像头中最先摄像的摄像头与最后摄像的摄像头之间摄像的时间间隔在所述成像周期内;
所述获得单元用于当所述两个以上的摄像头在控制单元的控制下摄像后,从所述两个以上的摄像头所成像的摄影图片中获取所述两个以上的摄像头间共有成像区域所对应的摄影图片;
所述处理单元用于将所述获得单元获取的摄影图片按照摄像时间先后排序,并按照时序提取所述先后排序好的摄影图片进行合并,所述摄影图片为所述摄像头进行行扫描后形成的图像数据片段。
通过本发明实施例,通过控制多个摄像头中的子摄像头协同拍摄同一场景,利用每个子摄像所摄像时刻不同,从而提高整体的摄像速度,比高精度摄像头高速处理的摄影设备价格便宜。
具体实施方式
由于嵌入式技术的发展,微型CPU处理速度已经完全胜任视频编解码的需要,同时以DSP等处理芯片作为辅助,使得数码摄像设备可以独立处理海量数据。使用多摄像头对景物进行交替拍摄,将不同摄像头所成图像的帧(或更小像素单位)进行处理,然后按时序合并,在这种情况下形成的摄像效果可以满足高速数码摄像的要求,同时也可以达到高精度数码摄像的目的。
由此,本发明实施例提供了多摄像头摄影的方法,在一个具有多摄像头的设备中,控制多个摄像头按照先后顺序对所需要的画面摄像,并将摄像后所成像的摄影图片按照摄像时间先后排序。
需要说明的,这些摄像头开始摄像的时间不同,多摄像头中的相邻的摄像头开始拍摄的时间间隔也可以预先设置好的。如在一个多摄像头设备中,有4个子摄像头a、子摄像头b、子摄像头c和子摄像头d,那么将该子摄像头按照顺序排序,控制子摄像头按照这个顺序进行开始摄像,它们之间的开始摄像的时间是通过设置的时间间隔来控制的,该时间间隔可以是等时间间隔,也可以是非等时间间隔的。如按照开始摄像先后顺序控制子摄像头a在0ms时开始摄像;接下来,控制子摄像头b在10ms时开始摄像;接下来,控制子摄像头c在15ms开始摄像;接下来,控制子摄像头d在25ms开始摄像。在多摄像头摄像开始之后,图片经过一个成像周期之后即可成一个完整的摄影图片,那么需要将这些摄影图片按照摄像时间先后顺序排序,从而可以得到一系列连续的摄影图片,能够达到更高的摄影速度。这里可以控制多个摄像头中的某一部分摄像头进行摄像,也可以控制所有的摄像头来进行摄像。这里的多摄像头是指两个或者两个以上的摄像头。
在应用具体时,由于多摄像头中的每个子摄像头的成像周期是一定的,这里多摄像头可以采用成像周期T相同的多个子摄像头N,这里的N可以是2(包括2的情形)以上的任一自然数,对于多摄像头的成像周期其可以缩短为T/N。如控制多摄像头中的每一摄像头按照先后顺序开始摄像,最先开始摄像的子摄像头与最后开始摄像的子摄像头间开始的时间间隔在该成像周期T内,那么所有的子摄像头在开始摄像之后所成像的第一张摄影图片,其最先开始摄影的子摄像头与最后开始摄影的子摄像头所成像的时间在成像周期T内,同样的,对于所有的子摄像头成像的第二张摄影图片也在成像周期内。对于有4个子摄像头的多摄像头来说,若子摄像头的成像周期是100ms时,可以控制每一子摄像头按照25ms的时间间隔来开始工作,那么对于多摄像头来说其100ms内可以获取4张成像图片。
在获取成像图片之后,可以在成像时刻将每一摄影图片标签上时间,那么对于所有成像的摄影图片都有一个时间标签,那么所有的摄影图片都存在一定的时间先后顺序,再将这些摄影图片按照时间顺序排序好就是一系列的连续图片。
在具体实现过程中,由于各个摄像头所拍摄的画面不是完全相同,为了保证整个摄影图像拍摄的连续性,需要对图片进行剪裁处理,使整个画面看起来是连续的,这样就需要提取多个摄像头间共有成像区域所对应的摄影图片,这个公共部分为多个摄像头在同时拍摄时,所能见到的重叠的画面。这里需要同类型的摄像头是处理同一个平面时,且焦距是相同的。在完成对共有成像区域所对应的摄影图片的获取之后,按照摄像时间先后顺序形成新的摄影图片,那么形成新的摄影图片看起来是连贯的摄影图片。这里的剪裁非共有的摄影图片,可以根据每一摄像头的焦距计算所需剪裁的摄影图片,也可以根据一个历史记录值或者采样,获取多摄像头所有多焦距状态下共有成像区域所对应的图像,确定所需剪贴部分或者非剪贴部分,那么当焦距调到该尺度时,就可以从保存这个历史记录值的地方得到信息,能够根据该值参考获取多摄像头间共有成像区域所对应的摄影图片。
下面主要结合具体的附图说明整个实现的方案,如图1中所示的多摄像头架构图,这里示出了四个子摄像头,摄像头a、摄像头b、摄像头c和摄像头d,对于每个子摄像头与所对应的处理单元和存储单元其都是一个完整的摄像子***,能完成摄影图片的拍摄。以摄像头a为例进行说明,这里的摄像头a在本发明实施例所设置的摄影先后顺序下开始时进行摄像,该摄像所成像的摄影图片需要处理单元a进行处理后放入存储单元a中,类似的,其它各个子摄像头也可以完成摄影,在摄像过程中所成像的同时,需要对成像的摄影图片贴上时间标记。需要说明的是,这里的处理单元a可以完成对多摄像头间共有成像区域所对应的摄影图片的剪裁功能或者获取多摄像头间共有成像区域所对应的摄影图片再存入存储单元a,由全局处理单元按照拍摄的时间序列来完成拼凑,这样子存入全局存储单元中的将是一系列连贯的摄影图片;或者完成裁剪功能或者获取共有成像区域所对应的摄影图片由全局处理单元来完成,全局处理单元再按照时间顺序来存入全局存储单元中。
同样的,对于多摄像头(m个摄像头)时,子摄像头与所对应的处理单元、存储单元一起都是一套独立的图像数据流,每个摄像子***独立地对自己的感光元件进行数据扫描、数据传输、数据处理和数据存储。各个子摄像头以一定的先后顺序开始独立的进行摄像,实时摄得的图片首先存储在各个子摄像头所对应的存储单元中,全局处理单元可以在后台运行,不停地从各个子摄像头所对应的存储单元中提取图片数据,根据一定的时序规则对这些图片进行拼接,最终拼接得到的图片就是最终图片,这些图片都存储于全局存储单元中。这里的每个子摄像***也可以通过设备控制独立进行摄影,或者设备控制几个子摄像***来进行摄影,其时间间隔在设备中也可以进行调控。
图2示出了本发明实施例中的子摄像头摄影流程图,包括如下步骤:
开始:
步骤S201:扫描感光阵列感光数据;
步骤S202:处理器裁剪、处理图像;
步骤S203:图像存入子摄像头所对应的子存储单元;
步骤S205:判断拍摄时间是否达到,如果没有达到,则继续进行步骤S201至步骤S203中的工作,否则结束此次拍摄;
结束。
流程图2中是多摄像头中每一子***的工作原理图,这些子摄像头和所对应的处理单元和存储单元所构成的子***主要将拍摄的图像数据进行裁剪、处理后存储于相应的存储器中;在处理完图片后,由全局处理单元和全局存储单元组成的***中的全局处理器将各个子***数据进行拼接,形成最终图像的过程。
需要说明的是在本发明实施例中,摄像头内采用CMOS感光元件组成K行J列的感光阵列。COMS感光元件用独立的放大器对曝光时产生的电荷进行放大,这使得图像信号得以实时分块;另外该类传感器具有体积小、集成度高的特点,以及功耗小、价格低等优势。本发明实施例中采用多摄像头对同一物体进行拍摄,摄像头数以m代替,摄像头需要处于同一平面紧凑排布。每个摄像头都独立对其K×J感光阵列进行扫描、数据传输,以形成完整的K×J大小的图像。一帧图像数据的扫描、传输占用时间记为T。摄像头扫描后的数据可以暂存于高速缓器,同时处理器工作效率要远高于I/O访问的效率,所以子***中的局部处理器对图像数据进行裁剪、处理的过程以及数据存入局部存储器的过程消耗时间不计。局部处理器还需对图像数据加时间戳和加标志位。时间戳表明时序;标志位表明该图像数据是否已经被全局处理器读取过,如果已经读取过,则该标志位被置位,该图像数据在局部存储器中的存储空间就可以被新的图像数据所取代。本发明实施例中,m个摄像头需以T/m为间隔先后开始工作,每个摄像头对最终每一帧合成的图像,贡献K/m行(或者J/m列)扫描数据,其中K(或J)是m的倍数。全局处理单元按照时序提取这些图像进行合并。全局处理单元和各个摄像子***之间相互独立,它以背景工作方式不断地从各个局部存储器中读取图像数据,经拼接、处理后存入全局存储器。局部摄像子***工作结束的标志是来自***的摄像结束命令;而全局处理器工作结束的标志是摄像头已经接到摄像结束命令,并且各个局部存储器内已经没有未读图像数据。
为了保证同一时刻各个摄像头所摄得的像的全等性,必须对各摄像头成像进行适当的裁剪,即将各个摄像头视角的公共部分作为最终成像区域。下面以两个摄像头的情况来说明。图3示出了本发明实施例中的两个摄像头摄影场景图,如图所示,摄像头a和摄像头b并排放置,物体在摄像头a的视角范围内的部分Wa,物体在摄像头b的视角范围内的部分Wb,物体在两个摄像头感光阵列上成的像并不相同。如果对成像进行截取,需要从摄像头a截取Ia’部分所成的图像,需要从摄像头b截取Ib’部分所成的图像,则他们都是Wa与Wb公共部分所成的像。由于透镜成像比例仅与透镜、物体、感光元件的距离有关,在拍摄中,根据不同的焦距来调整裁剪比例,就可以保证Ia’和Ib’的全等性,从而保证拼接后的图像是同一物体的完整图像。
图像裁剪的算法有很多,但是由于摄像头的视角一定,所以其裁剪算法只与摄像头摆放位置和当前摄像焦距有关。对于摄像头数量和其相对位置固定时,可以确定某种裁剪算法,而具体的裁剪比例是依据当前摄像时的焦距,按照裁剪算法计算出来的。按照图3中两个摄像头的情形为例,可以给出示例裁剪算法:
C=2*Di*tan(u)-2*(Dw*tan(u)-D/2)*Di/Dw=D*Di/Dw
就是要裁剪掉的部分。即,Ia’要在其下半部分裁剪掉C,Ib’要在其上半部分裁剪掉C。该设备制成时摄像头位置已经固定,则D为常量;Di是感光元件与透镜的距离,对于设备来说也是个常量,所以只有Dw是一个未知量,它是在拍摄过程中所要拍摄的物体距摄像设备的距离,是我们要进行预设的焦距量。所以对于该算法,在特定的拍摄场景下裁剪比例只和Dw有关。由于该设备一般用途为受限场景,它的最佳效果是在高速拍摄近似平面场景,所以该焦距量(给定Dw的值)将直接影响到合成图像的清晰度。
对于多摄像头的情况下同理对各个摄像头成像进行裁剪,使得这些像是各个摄像头视角的公共重叠部分在各感光阵列中的成像。其裁剪算法也只需要存在Dw未知量,即特定场景下裁剪量只受到给定焦距量的影响。
需要说明的是,这里可以在对成像的图片进行剪裁,也可以从获取多摄像头间共有成像区域所对应的摄影图片着手。由图中可知,其所对应的每次公共成像区域,根据每次摄影角度的不同而建立一个历史数据库或者采样,该历史数据库中可以存放摄像头间所有情况下成像时,应该获取多摄像头间共有成像区域所对应的摄影图片,从而可以根据不同的Dw,可以知道摄像头a与摄像头b中所对应的成像的公共区域,那么在处理中,只需获取公共图片部分即可。
由于各个摄像头以一定的时间间隔延时、并行工作,它们拍摄的图像数据经处理后供全局处理器按时序拼接。以摄像头数m=3为例,如图4中所示的,若A、B、C三个摄像头以T/3为延时并行工作,每个摄像头都能独立摄制完整的图像,其成像周期为T,B摄像头在A摄像头之后T/3开始工作,C摄像头在B摄像头之后T/3开始工作,并且连续不间断地独立工作。由于各个摄像头需要对感光元件进行行扫描,其周期为T,所以在任意的T/3周期内,三个摄像头在对传感器进行扫描时所得的扫描数据恰反映了物体在当前时刻的不同部位。
如果横向截取[t+T,t+4T/3]这个时域内三个摄像头所成图像数据片段,则A摄像头成像数据为整个图像的前1/3,B摄像头成像数据为整个图像的后1/3,C摄像头成像数据为整个图像的中间1/3。将这三个成像数据片段合并为一个图像,t+4T/3时刻图像;t+4T/3时刻图像就是[t+T,t+4T/3]周期内物体的完整图像。
同理可知,t+5T/3时刻图像是由[t+4T/3,t+5T/3]周期内,A摄像头成像数据为整个图像的中间1/3,B摄像头成像数据为整个图像的前1/3,C摄像头成像数据为整个图像的后1/3。t+2T时刻的图像是由[t+5T/3,t+2T]周期内,A摄像头成像数据为整个图像的后1/3,B摄像头成像数据为整个图像的中间1/3,C摄像头成像数据为整个图像的前1/3。
如上所述,在单个摄像头的成像周期([T,2T])内,三个摄像头成像数据被拼接成了三个时段[t+T,t+4T/3],[t+4T/3,t+5T/3],[t+5T/3,t+2T]内的三幅完整图像,它们在时间上是连续的。依次类推,每一个成像周期的成像都被时间轴细化、并拼接为三个连续的完整图像,采用该拼接图像的方法使得最终的成像周期缩短为T/3。当使用更多摄像头时,如m个,则理论上成像周期可以缩短为T/m。
相应的,本发明实施例还提供了一种摄影设备,如图5中所描述的,包括:
存储单元501,用于存储设置的多摄像头中摄像头摄像的先后顺序,设置的多摄像头中摄像头间摄像的时间间隔。具体的存储单元501中存储了设置的多摄像头中摄像头间摄像的先后顺序,设置的多摄像头中摄像头间开始摄像的时间间隔。这里的多个摄像头中的摄像头的成像周期可以是相同,该多个摄像头中最先摄像的摄像头与最后摄像的摄像头之间开始摄像的时间间隔在成像周期内。该设置的多摄像头中摄像头间摄像的每一时间间隔可以是相同的。
控制单元502,用于根据存储单元501存储的摄像先后顺序等控制多摄像头503摄像。
多摄像头503中的摄像头用于在控制单元502的控制下摄像。
获得单元504,用于当多摄像头503在控制单元502的控制下摄像后,从多摄像头中所成像的摄影图片中获取多摄像头503间共有成像区域所对应的摄影图片。具体的,可以根据多个摄像头中摄像头的焦距计算出摄像头间共有成像区域所对应的摄影图片;或根据存储的多个摄像头中摄像头间共有成像区域所对应的成像范围数据和多摄像头中成像时的焦距获取摄像头间共有成像区域所对应的摄影图片。
处理单元505,用于在获得单元504获得公共部分的摄影图片后,该摄影图片按照摄像时间先后排序。具体的,该处理单元505中还设有时间标签单元601和时间排序单元602,如图6中所示,其中:时间标签单元601,用于将所述多摄像头503中所成像的摄影图片标签成像时间或者摄像时间;时间排序单元602,用于按照时间标签单元601所标签的成像时间的先后顺序为所述成像的摄影图片排序。
综上,本发明实施例所提供方法,通过多摄像头中的各个子摄像头间的协作,按照时间先后开始摄像,控制多个摄像头中的子摄像头协同拍摄同一场景,利用每个子摄像头的成像时刻不同,从而提高整体的摄像速度。采用多个普通的摄像头,比高精度摄像头高速处理的摄影设备价格便宜,在提高摄影设备的摄像速度的同时,也降低了摄影成本。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。