一种用于多视点视频采集的时间同步方法及系统的制作方法

文档序号:7647278阅读:245来源:国知局
专利名称:一种用于多视点视频采集的时间同步方法及系统的制作方法
技术领域
本发明涉及视频和图像处理方法及系统,特别是关于一种用于多视点视频采集的时间同步方法及系统。
背景技术
多视点视频包括由多个摄像机针对同一物体同时从多个不同位置和角度拍摄到的多个视频序列。相对于传统的单点视频来说,多视点视频可以提供某一事物或场景的不同角度、不同层面的信息,并且可以把这些信息进行合成,生成多角度、全方位的自由或立体视觉。多视点视频的原始数据一般是由多个摄像机组成的集合采集而成,并且根据摄像机的排列方式不同而生成不同类型的多视点视频数据。
构建一个多视点视频系统的首要环节是多个视点视频数据的采集。由于视频处理涉及的数据量大,对系统的CPU处理能力和网络传输带宽的要求较高,因此对于一个多视点视频系统来说,往往需要采用多台计算机构成的网络系统来控制多视点视频数据的采集和处理,其中每台计算机分别控制多摄像机阵列中的一个或多个摄像机。在这种情况下,如何保证由多台计算机所控制的所有摄像机能够实时地同步完成对同一时刻同一场景不同视角运动图像数据的采集就显得尤为重要,这就是多视点视频采集中的时间同步问题。
传统的多摄像机阵列一般采用基于硬件的方法来进行时间同步。这种方法不仅价格昂贵,需要特殊的硬件设备,而且还要求来自摄像机本身的支持。然而目前市场上大量存在的许多价格较为低廉的摄像机(摄像头)并不提供这样的硬件支持,因而无法采用基于硬件的方式来进行时间同步。
近年来陆续有文献提出基于软件的多视点视频采集同步方法。其基本思路在于除了用于控制摄像机进行视频采集的计算机(称之为视频采集机)外,另外还增加了一台计算机用于各视频采集机之间的同步控制(称之为同步服务器);所有这些视频采集机和同步服务器通过局域网相互连接;在进行多视点视频采集之前,首先使用NTP协议(网络时间协议)来对所有这些视频采集机和同步服务器的系统时间进行同步;然后在同步服务器上估计一个时延值L,并提取本机当前系统时间t0,将L和t0的值通过局域网打包发送到所有视频采集机;第i个视频采集机在接收到从同步服务器发来的含有L和t1值的网络数据包后,首先提取本机当前系统时间ti,然后令系统等待一个时延值L-(ti-t0),等待结束后再调用摄像机采集程序开始视频数据的采集。
在工程实践中上述方法仍然存在一定的问题。首先,该方法中随意估计的时延值L如果过小,则某些视频采集机在接收到来自同步服务器的含有L和t0值的网络数据包后,其当前系统时间与t0的差可能已经超过了L,从而导致同步失败;反之如果L值估计过大,则可能导致所有视频采集机上的等待时间过长。其次,在基于软件的方法中,视频采集机一般通过调用操作系统的等待命令(例如C语言中的sleep语句)来将当前程序(进程或线程)挂起,以达到等待一段时间的效果。然而在普通的非实时多任务操作系统中,调用该命令所等待的时间长度并不精确,实测结果表明在不同机器、不同多任务运行环境中的误差值各不相同,无法做到毫秒级的精确同步。最后,各视频采集机在取得时间同步之后方才调用视频采集程序启动摄像机硬件进行视频采集,然而由于该采集程序在不同机器、不同运行环境中的启动时间也各不相同,从而进一步引入了时间误差,实测结果表明该误差有时可高达100毫秒。

发明内容
针对上述问题,本发明的目的是提供一种不仅能够有效避免同步失败,而且能够取得更精确的时间同步精度的基于软件的用于多视点视频采集的时间同步方法及系统。
为实现上述目的,本发明采取以下技术方案一种用于多视点视频采集的时间同步方法,其包括以下步骤(1)在进行多视点视频采集之前,首先使用网络时间协议对同步服务器和所有视频采集机的系统时间进行同步;(2)在每个视频采集机上为它所连接的各台摄像机分别启动一个视频采集程序;(3)在各视频采集程序启动之后,首先调用其中的同步控制模块并在特定的网络端口上监听来自同步服务器的相关同步控制命令;(4)同步服务器在获知系统中所有摄像机所对应的视频采集程序都已经在相应的视频采集机上启动之后,首先通过多次与各视频采集程序中的同步控制模块进行交互来探测出一个局域网最大往返时间值来;(5)一旦局域网最大往返时间值确定之后,同步服务器首先提取本机当前系统时间,并将该当前系统时间值与局域网最大往返时间值相加作为预计采集启动时间,打包后通过局域网发送至所有视频采集程序;(6)各视频采集程序中的同步控制模块在接收到来自同步服务器的采集启动数据包后,从中提取预计采集启动时间;(7)各视频采集程序中的同步控制模块提取本机当前系统时间;(8)各视频采集程序中的同步控制模块判断本机当前系统时间是否超过预计采集启动时间,如果未超过则转至步骤(7),否则转至步骤(9);(9)调用摄像机驱动模块启动摄像机硬件开始进行视频数据采集。
其中步骤(4)同步服务器通过多次与各视频采集程序中的同步控制模块进行交互来探测局域网最大往返时间值的步骤如下①同步服务器确定一个常数值M作为探测次数,并将局域网最大往返时间赋值为0;②同步服务器首先提取本机当前系统时间并记录为初始系统时间,然后通过局域网分别向所有视频采集程序中的同步控制模块各发送一个往返时间探测数据包;③各视频采集程序中的同步控制模块在收到来自同步服务器的往返时间探测数据包之后,立即向同步服务器返回一个往返时间应答数据包;④同步服务器在接收到每个由各视频采集程序返回来的往返时间应答数据包时,重新提取本机当前系统时间并计算其与初始系统时间之差,并将差值最大者作为候选局域网最大往返时间;⑤同步服务器在接收到所有视频采集程序返回来的往返时间应答数据包后,判断候选局域网最大往返时间是否大于局域网最大往返时间的当前值,如果大于则将局域网最大往返时间赋值为候选局域网最大往返时间;⑥判断探测次数是否已等于M,如果没有则转至步骤②,否则转至步骤⑦;⑦返回局域网最大往返时间值。
其中步骤①中,所述探测次数为3次。
一种用于多视点视频采集的时间同步方法的系统,它包括同步服务器、多个视频采集机和多个摄像机所组成,所述同步服务器与各视频采集机之间通过局域网相连;每个所述视频采集机同时连接一个或多个摄像机,并通过加载多个视频采集程序来分别对多个摄像机的视频数据采集过程进行控制;其特征在于在每个所述视频采集程序中,除原有摄像机驱动模块之外,还增加一个同步控制模块,所述同步控制模块一方面通过局域网与同步服务器进行交互,另一方面通过调用所述摄像机驱动模块来真正启动所述摄像机硬件进行视频数据采集。
本发明由于采取以上技术方案,因此不仅与现有基于硬件的多视点视频采集同步方法相比具有成本低、使用灵活方便和适用范围广等优势,而且与现有基于软件的多视点视频采集同步方法相比也具有以下优点1、本发明所提出的用于多视点视频采集的时间同步方法在发送视频采集命令之前首先通过测量局域网的最大往返时间来确定采集等待时延,因此既能够有效避免因等待时延过短而导致的同步失败,同时也能够避免视频采集机无原则的长时间等待。2、本发明直接将视频采集机中的同步控制模块放置于视频采集程序之中,即在视频采集程序中循环地将系统当前时间与目标采集时间进行比较,从而去除了可能引起时延误差的各中间环节,能够达到更为精确的采集时间同步,时间精度可达到毫秒级。本发明方法可广泛用于各种基于多摄像机的多视点视频数据采集和传输系统。


图1是本发明提供的多视点视频采集系统的网络结构示意2是本发明提供的用于多视点视频采集的时间同步方法流程3是本发明提供的局域网最大往返时间探测方法流程图具体实施方式
下面结合附图和实施例,对本发明进行详细的描述。
如图1所示,本发明所适用的多视点视频采集系统由一个同步服务器1、多个视频采集机2和多个摄像机3所组成,其中同步服务器1与各视频采集机2之间通过局域网4相连;每个视频采集机可以同时连接一个或多个摄像机3,并通过加载多个视频采集程序21来分别对多个摄像机3的视频数据采集过程进行控制;在每个视频采集程序21中,除了现有的摄像机驱动模块22之外,还需要增加一个新的同步控制模块23,它一方面通过局域网4与同步服务器1进行交互,另一方面通过调用摄像机驱动模块23来真正启动摄像机3硬件进行视频数据采集。
如图1、图2所示,本发明一种用于多视点视频采集的时间同步方法,其操作步骤如下(1)在进行多视点视频采集之前,首先使用NTP协议(网络时间协议)对同步服务器1和所有视频采集机2的系统时间进行同步。由于同步服务器1和各视频采集机2位于同一个局域网4中,经NTP协议同步之后它们之间的系统时间误差将小于1毫秒;(2)在每个视频采集机2上为它所连接的各摄像机3分别启动一个视频采集程序21,假设系统中共有N台摄像机3,则总共需要启动N个视频采集程序21,这些程序分布在不同的视频采集机2上;(3)各视频采集程序21启动之后,首先调用其中的同步控制模块23,在特定的网络端口上监听来自同步服务器1的同步控制命令;(4)待同步服务器1获知所有N台摄像机3所对应的N个视频采集程序21都已经在相应的视频采集机2上启动之后,它启动一个局域网最大往返时间探测过程,通过多次与各视频采集程序21中的同步控制模块23进行交互来探测出一个局域网最大往返时间值L来;(5)同步服务器1提取本机当前系统时间并设为t0,令预计采集启动时间tc=t0+L,然后通过局域网4分别向所有视频采集程序21中的同步控制模块23各发送一个采集启动数据包,其中包含tc的值;(6)各视频采集程序21中的同步控制模块23在接收到来自同步服务器1的采集启动数据包后,从中提取出预计采集启动时间tc;(7)视频采集程序i(1<=i<=N)中的同步控制模块23提取本机当前系统时间并设为ti;(8)判断ti是否大于或等于tc,如果是则转至步骤(9),否则转至步骤(7)继续循环检测;(9)视频采集程序i(1<=i<=N)中的同步控制模块23调用摄像机驱动模块22,启动摄像机3硬件开始进行视频数据采集。
如图3所示,上述步骤(4)中用到的局域网最大往返时间探测方法,其操作步骤如下①在同步服务器1上确定一个常数值M,表示系统进行局域网往返时间探测的次数,建议取值为3;令L=0,j=1;②同步服务器1提取本机当前系统时间并设为t0,令Lj=0,然后通过局域网4分别向所有视频采集程序21中的同步控制模块23各发送一个往返时间探测数据包;③各视频采集程序21中的同步控制模块23在收到来自同步服务器1的往返时间探测数据包后,立即向其返回一个往返时间应答数据包;④同步服务器1在接收到由视频采集程序i(1<=i<=N,其中N为系统中所有摄像机3的个数)返回来的往返时间应答数据包后,提取本机当前系统时间并设为ti,如果Lj<ti-t0,则令Lj=ti-t0;⑤同步服务器1在接收到来自所有N个视频采集程序21的往返时间应答数据包之后,如果L<Lj,则令L=Lj;令j=j+1;⑥判断j是否大于M,如果大于则转至步骤⑦,否则转至步骤②进一步探测;⑦同步服务器1将当前的L值作为探测到的局域网最大往返时间返回,供下一步同步操作使用。
权利要求
1.一种用于多视点视频采集的时间同步方法,其包括以下步骤(1)在进行多视点视频采集之前,首先使用网络时间协议对同步服务器和所有视频采集机的系统时间进行同步;(2)在每个视频采集机上为它所连接的各台摄像机分别启动一个视频采集程序;(3)在各视频采集程序启动之后,首先调用其中的同步控制模块并在特定的网络端口上监听来自同步服务器的相关同步控制命令;(4)同步服务器在获知系统中所有摄像机所对应的视频采集程序都已经在相应的视频采集机上启动之后,首先通过多次与各视频采集程序中的同步控制模块进行交互来探测出一个局域网最大往返时间值来;(5)一旦局域网最大往返时间值确定之后,同步服务器首先提取本机当前系统时间,并将该当前系统时间值与局域网最大往返时间值相加作为预计采集启动时间,打包后通过局域网发送至所有视频采集程序;(6)各视频采集程序中的同步控制模块在接收到来自同步服务器的采集启动数据包后,从中提取预计采集启动时间;(7)各视频采集程序中的同步控制模块提取本机当前系统时间;(8)各视频采集程序中的同步控制模块判断本机当前系统时间是否超过预计采集启动时间,如果未超过则转至步骤(7),否则转至步骤(9);(9)调用摄像机驱动模块启动摄像机硬件开始进行视频数据采集。
2.如权利要求1所述的用于多视点视频采集的时间同步方法,其特征在于其中步骤(4)同步服务器通过多次与各视频采集程序中的同步控制模块进行交互来探测局域网最大往返时间值的步骤如下①同步服务器确定一个常数值M作为探测次数,并将局域网最大往返时间赋值为0;②同步服务器首先提取本机当前系统时间并记录为初始系统时间,然后通过局域网分别向所有视频采集程序中的同步控制模块各发送一个往返时间探测数据包;③各视频采集程序中的同步控制模块在收到来自同步服务器的往返时间探测数据包之后,立即向同步服务器返回一个往返时间应答数据包;④同步服务器在接收到每个由各视频采集程序返回来的往返时间应答数据包时,重新提取本机当前系统时间并计算其与初始系统时间之差,并将差值最大者作为候选局域网最大往返时间;⑤同步服务器在接收到所有视频采集程序返回来的往返时间应答数据包后,判断候选局域网最大往返时间是否大于局域网最大往返时间的当前值,如果大于则将局域网最大往返时间赋值为候选局域网最大往返时间;⑥判断探测次数是否已等于M,如果没有则转至步骤②,否则转至步骤⑦;⑦返回局域网最大往返时间值。
3.如权利要求2所述的用于多视点视频采集的时间同步方法,其特征在于其中步骤①中,所述探测次数为3次。
4.一种如权利要求1~3所述的用于多视点视频采集的时间同步方法的系统,它包括同步服务器、多个视频采集机和多个摄像机所组成,所述同步服务器与各视频采集机之间通过局域网相连;每个所述视频采集机同时连接一个或多个摄像机,并通过加载多个视频采集程序来分别对多个摄像机的视频数据采集过程进行控制;其特征在于在每个所述视频采集程序中,除原有摄像机驱动模块之外,还增加一个同步控制模块,所述同步控制模块一方面通过局域网与同步服务器进行交互,另一方面通过调用所述摄像机驱动模块来真正启动所述摄像机硬件进行视频数据采集。
全文摘要
本发明涉及一种用于多视点视频采集的时间同步方法及系统,本发明方法包括以下步骤(1)使用网络时间协议对所有设备系统时间进行同步;(2)在视频采集机上为各摄像机分别启动一个视频采集程序;(3)视频采集程序监听来自同步服务器的控制命令;(4)同步服务器探测局域网最大往返时间;(5)同步服务器将当前系统时间与局域网最大往返时间相加作为预计采集时间发送至各视频采集程序;(6)视频采集程序循环地将当前系统时间与预计采集时间进行比较,如果超过则启动视频数据采集。本发明有效避免了因等待时延过短而导致的同步失败,同时也能够避免视频采集机无原则的长时间等待,时间精度可达到毫秒级。本发明方法可广泛用于各种基于多摄像机的多视点视频数据采集和传输系统。
文档编号H04N7/56GK101014136SQ20071006358
公开日2007年8月8日 申请日期2007年2月5日 优先权日2007年2月5日
发明者霍龙社, 王威, 高文 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1