專利名稱:一種用于多視點視頻采集的時間同步方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及視頻和圖像處理方法及系統(tǒng),特別是關于一種用于多視點視頻采集的時間同步方法及系統(tǒng)。
背景技術:
多視點視頻包括由多個攝像機針對同一物體同時從多個不同位置和角度拍攝到的多個視頻序列。相對于傳統(tǒng)的單點視頻來說,多視點視頻可以提供某一事物或場景的不同角度、不同層面的信息,并且可以把這些信息進行合成,生成多角度、全方位的自由或立體視覺。多視點視頻的原始數據一般是由多個攝像機組成的集合采集而成,并且根據攝像機的排列方式不同而生成不同類型的多視點視頻數據。
構建一個多視點視頻系統(tǒng)的首要環(huán)節(jié)是多個視點視頻數據的采集。由于視頻處理涉及的數據量大,對系統(tǒng)的CPU處理能力和網絡傳輸帶寬的要求較高,因此對于一個多視點視頻系統(tǒng)來說,往往需要采用多臺計算機構成的網絡系統(tǒng)來控制多視點視頻數據的采集和處理,其中每臺計算機分別控制多攝像機陣列中的一個或多個攝像機。在這種情況下,如何保證由多臺計算機所控制的所有攝像機能夠實時地同步完成對同一時刻同一場景不同視角運動圖像數據的采集就顯得尤為重要,這就是多視點視頻采集中的時間同步問題。
傳統(tǒng)的多攝像機陣列一般采用基于硬件的方法來進行時間同步。這種方法不僅價格昂貴,需要特殊的硬件設備,而且還要求來自攝像機本身的支持。然而目前市場上大量存在的許多價格較為低廉的攝像機(攝像頭)并不提供這樣的硬件支持,因而無法采用基于硬件的方式來進行時間同步。
近年來陸續(xù)有文獻提出基于軟件的多視點視頻采集同步方法。其基本思路在于除了用于控制攝像機進行視頻采集的計算機(稱之為視頻采集機)外,另外還增加了一臺計算機用于各視頻采集機之間的同步控制(稱之為同步服務器);所有這些視頻采集機和同步服務器通過局域網相互連接;在進行多視點視頻采集之前,首先使用NTP協(xié)議(網絡時間協(xié)議)來對所有這些視頻采集機和同步服務器的系統(tǒng)時間進行同步;然后在同步服務器上估計一個時延值L,并提取本機當前系統(tǒng)時間t0,將L和t0的值通過局域網打包發(fā)送到所有視頻采集機;第i個視頻采集機在接收到從同步服務器發(fā)來的含有L和t1值的網絡數據包后,首先提取本機當前系統(tǒng)時間ti,然后令系統(tǒng)等待一個時延值L-(ti-t0),等待結束后再調用攝像機采集程序開始視頻數據的采集。
在工程實踐中上述方法仍然存在一定的問題。首先,該方法中隨意估計的時延值L如果過小,則某些視頻采集機在接收到來自同步服務器的含有L和t0值的網絡數據包后,其當前系統(tǒng)時間與t0的差可能已經超過了L,從而導致同步失??;反之如果L值估計過大,則可能導致所有視頻采集機上的等待時間過長。其次,在基于軟件的方法中,視頻采集機一般通過調用操作系統(tǒng)的等待命令(例如C語言中的sleep語句)來將當前程序(進程或線程)掛起,以達到等待一段時間的效果。然而在普通的非實時多任務操作系統(tǒng)中,調用該命令所等待的時間長度并不精確,實測結果表明在不同機器、不同多任務運行環(huán)境中的誤差值各不相同,無法做到毫秒級的精確同步。最后,各視頻采集機在取得時間同步之后方才調用視頻采集程序啟動攝像機硬件進行視頻采集,然而由于該采集程序在不同機器、不同運行環(huán)境中的啟動時間也各不相同,從而進一步引入了時間誤差,實測結果表明該誤差有時可高達100毫秒。
發(fā)明內容
針對上述問題,本發(fā)明的目的是提供一種不僅能夠有效避免同步失敗,而且能夠取得更精確的時間同步精度的基于軟件的用于多視點視頻采集的時間同步方法及系統(tǒng)。
為實現上述目的,本發(fā)明采取以下技術方案一種用于多視點視頻采集的時間同步方法,其包括以下步驟(1)在進行多視點視頻采集之前,首先使用網絡時間協(xié)議對同步服務器和所有視頻采集機的系統(tǒng)時間進行同步;(2)在每個視頻采集機上為它所連接的各臺攝像機分別啟動一個視頻采集程序;(3)在各視頻采集程序啟動之后,首先調用其中的同步控制模塊并在特定的網絡端口上監(jiān)聽來自同步服務器的相關同步控制命令;(4)同步服務器在獲知系統(tǒng)中所有攝像機所對應的視頻采集程序都已經在相應的視頻采集機上啟動之后,首先通過多次與各視頻采集程序中的同步控制模塊進行交互來探測出一個局域網最大往返時間值來;(5)一旦局域網最大往返時間值確定之后,同步服務器首先提取本機當前系統(tǒng)時間,并將該當前系統(tǒng)時間值與局域網最大往返時間值相加作為預計采集啟動時間,打包后通過局域網發(fā)送至所有視頻采集程序;(6)各視頻采集程序中的同步控制模塊在接收到來自同步服務器的采集啟動數據包后,從中提取預計采集啟動時間;(7)各視頻采集程序中的同步控制模塊提取本機當前系統(tǒng)時間;(8)各視頻采集程序中的同步控制模塊判斷本機當前系統(tǒng)時間是否超過預計采集啟動時間,如果未超過則轉至步驟(7),否則轉至步驟(9);(9)調用攝像機驅動模塊啟動攝像機硬件開始進行視頻數據采集。
其中步驟(4)同步服務器通過多次與各視頻采集程序中的同步控制模塊進行交互來探測局域網最大往返時間值的步驟如下①同步服務器確定一個常數值M作為探測次數,并將局域網最大往返時間賦值為0;②同步服務器首先提取本機當前系統(tǒng)時間并記錄為初始系統(tǒng)時間,然后通過局域網分別向所有視頻采集程序中的同步控制模塊各發(fā)送一個往返時間探測數據包;③各視頻采集程序中的同步控制模塊在收到來自同步服務器的往返時間探測數據包之后,立即向同步服務器返回一個往返時間應答數據包;④同步服務器在接收到每個由各視頻采集程序返回來的往返時間應答數據包時,重新提取本機當前系統(tǒng)時間并計算其與初始系統(tǒng)時間之差,并將差值最大者作為候選局域網最大往返時間;⑤同步服務器在接收到所有視頻采集程序返回來的往返時間應答數據包后,判斷候選局域網最大往返時間是否大于局域網最大往返時間的當前值,如果大于則將局域網最大往返時間賦值為候選局域網最大往返時間;⑥判斷探測次數是否已等于M,如果沒有則轉至步驟②,否則轉至步驟⑦;⑦返回局域網最大往返時間值。
其中步驟①中,所述探測次數為3次。
一種用于多視點視頻采集的時間同步方法的系統(tǒng),它包括同步服務器、多個視頻采集機和多個攝像機所組成,所述同步服務器與各視頻采集機之間通過局域網相連;每個所述視頻采集機同時連接一個或多個攝像機,并通過加載多個視頻采集程序來分別對多個攝像機的視頻數據采集過程進行控制;其特征在于在每個所述視頻采集程序中,除原有攝像機驅動模塊之外,還增加一個同步控制模塊,所述同步控制模塊一方面通過局域網與同步服務器進行交互,另一方面通過調用所述攝像機驅動模塊來真正啟動所述攝像機硬件進行視頻數據采集。
本發(fā)明由于采取以上技術方案,因此不僅與現有基于硬件的多視點視頻采集同步方法相比具有成本低、使用靈活方便和適用范圍廣等優(yōu)勢,而且與現有基于軟件的多視點視頻采集同步方法相比也具有以下優(yōu)點1、本發(fā)明所提出的用于多視點視頻采集的時間同步方法在發(fā)送視頻采集命令之前首先通過測量局域網的最大往返時間來確定采集等待時延,因此既能夠有效避免因等待時延過短而導致的同步失敗,同時也能夠避免視頻采集機無原則的長時間等待。2、本發(fā)明直接將視頻采集機中的同步控制模塊放置于視頻采集程序之中,即在視頻采集程序中循環(huán)地將系統(tǒng)當前時間與目標采集時間進行比較,從而去除了可能引起時延誤差的各中間環(huán)節(jié),能夠達到更為精確的采集時間同步,時間精度可達到毫秒級。本發(fā)明方法可廣泛用于各種基于多攝像機的多視點視頻數據采集和傳輸系統(tǒng)。
圖1是本發(fā)明提供的多視點視頻采集系統(tǒng)的網絡結構示意2是本發(fā)明提供的用于多視點視頻采集的時間同步方法流程3是本發(fā)明提供的局域網最大往返時間探測方法流程圖具體實施方式
下面結合附圖和實施例,對本發(fā)明進行詳細的描述。
如圖1所示,本發(fā)明所適用的多視點視頻采集系統(tǒng)由一個同步服務器1、多個視頻采集機2和多個攝像機3所組成,其中同步服務器1與各視頻采集機2之間通過局域網4相連;每個視頻采集機可以同時連接一個或多個攝像機3,并通過加載多個視頻采集程序21來分別對多個攝像機3的視頻數據采集過程進行控制;在每個視頻采集程序21中,除了現有的攝像機驅動模塊22之外,還需要增加一個新的同步控制模塊23,它一方面通過局域網4與同步服務器1進行交互,另一方面通過調用攝像機驅動模塊23來真正啟動攝像機3硬件進行視頻數據采集。
如圖1、圖2所示,本發(fā)明一種用于多視點視頻采集的時間同步方法,其操作步驟如下(1)在進行多視點視頻采集之前,首先使用NTP協(xié)議(網絡時間協(xié)議)對同步服務器1和所有視頻采集機2的系統(tǒng)時間進行同步。由于同步服務器1和各視頻采集機2位于同一個局域網4中,經NTP協(xié)議同步之后它們之間的系統(tǒng)時間誤差將小于1毫秒;(2)在每個視頻采集機2上為它所連接的各攝像機3分別啟動一個視頻采集程序21,假設系統(tǒng)中共有N臺攝像機3,則總共需要啟動N個視頻采集程序21,這些程序分布在不同的視頻采集機2上;(3)各視頻采集程序21啟動之后,首先調用其中的同步控制模塊23,在特定的網絡端口上監(jiān)聽來自同步服務器1的同步控制命令;(4)待同步服務器1獲知所有N臺攝像機3所對應的N個視頻采集程序21都已經在相應的視頻采集機2上啟動之后,它啟動一個局域網最大往返時間探測過程,通過多次與各視頻采集程序21中的同步控制模塊23進行交互來探測出一個局域網最大往返時間值L來;(5)同步服務器1提取本機當前系統(tǒng)時間并設為t0,令預計采集啟動時間tc=t0+L,然后通過局域網4分別向所有視頻采集程序21中的同步控制模塊23各發(fā)送一個采集啟動數據包,其中包含tc的值;(6)各視頻采集程序21中的同步控制模塊23在接收到來自同步服務器1的采集啟動數據包后,從中提取出預計采集啟動時間tc;(7)視頻采集程序i(1<=i<=N)中的同步控制模塊23提取本機當前系統(tǒng)時間并設為ti;(8)判斷ti是否大于或等于tc,如果是則轉至步驟(9),否則轉至步驟(7)繼續(xù)循環(huán)檢測;(9)視頻采集程序i(1<=i<=N)中的同步控制模塊23調用攝像機驅動模塊22,啟動攝像機3硬件開始進行視頻數據采集。
如圖3所示,上述步驟(4)中用到的局域網最大往返時間探測方法,其操作步驟如下①在同步服務器1上確定一個常數值M,表示系統(tǒng)進行局域網往返時間探測的次數,建議取值為3;令L=0,j=1;②同步服務器1提取本機當前系統(tǒng)時間并設為t0,令Lj=0,然后通過局域網4分別向所有視頻采集程序21中的同步控制模塊23各發(fā)送一個往返時間探測數據包;③各視頻采集程序21中的同步控制模塊23在收到來自同步服務器1的往返時間探測數據包后,立即向其返回一個往返時間應答數據包;④同步服務器1在接收到由視頻采集程序i(1<=i<=N,其中N為系統(tǒng)中所有攝像機3的個數)返回來的往返時間應答數據包后,提取本機當前系統(tǒng)時間并設為ti,如果Lj<ti-t0,則令Lj=ti-t0;⑤同步服務器1在接收到來自所有N個視頻采集程序21的往返時間應答數據包之后,如果L<Lj,則令L=Lj;令j=j+1;⑥判斷j是否大于M,如果大于則轉至步驟⑦,否則轉至步驟②進一步探測;⑦同步服務器1將當前的L值作為探測到的局域網最大往返時間返回,供下一步同步操作使用。
權利要求
1.一種用于多視點視頻采集的時間同步方法,其包括以下步驟(1)在進行多視點視頻采集之前,首先使用網絡時間協(xié)議對同步服務器和所有視頻采集機的系統(tǒng)時間進行同步;(2)在每個視頻采集機上為它所連接的各臺攝像機分別啟動一個視頻采集程序;(3)在各視頻采集程序啟動之后,首先調用其中的同步控制模塊并在特定的網絡端口上監(jiān)聽來自同步服務器的相關同步控制命令;(4)同步服務器在獲知系統(tǒng)中所有攝像機所對應的視頻采集程序都已經在相應的視頻采集機上啟動之后,首先通過多次與各視頻采集程序中的同步控制模塊進行交互來探測出一個局域網最大往返時間值來;(5)一旦局域網最大往返時間值確定之后,同步服務器首先提取本機當前系統(tǒng)時間,并將該當前系統(tǒng)時間值與局域網最大往返時間值相加作為預計采集啟動時間,打包后通過局域網發(fā)送至所有視頻采集程序;(6)各視頻采集程序中的同步控制模塊在接收到來自同步服務器的采集啟動數據包后,從中提取預計采集啟動時間;(7)各視頻采集程序中的同步控制模塊提取本機當前系統(tǒng)時間;(8)各視頻采集程序中的同步控制模塊判斷本機當前系統(tǒng)時間是否超過預計采集啟動時間,如果未超過則轉至步驟(7),否則轉至步驟(9);(9)調用攝像機驅動模塊啟動攝像機硬件開始進行視頻數據采集。
2.如權利要求1所述的用于多視點視頻采集的時間同步方法,其特征在于其中步驟(4)同步服務器通過多次與各視頻采集程序中的同步控制模塊進行交互來探測局域網最大往返時間值的步驟如下①同步服務器確定一個常數值M作為探測次數,并將局域網最大往返時間賦值為0;②同步服務器首先提取本機當前系統(tǒng)時間并記錄為初始系統(tǒng)時間,然后通過局域網分別向所有視頻采集程序中的同步控制模塊各發(fā)送一個往返時間探測數據包;③各視頻采集程序中的同步控制模塊在收到來自同步服務器的往返時間探測數據包之后,立即向同步服務器返回一個往返時間應答數據包;④同步服務器在接收到每個由各視頻采集程序返回來的往返時間應答數據包時,重新提取本機當前系統(tǒng)時間并計算其與初始系統(tǒng)時間之差,并將差值最大者作為候選局域網最大往返時間;⑤同步服務器在接收到所有視頻采集程序返回來的往返時間應答數據包后,判斷候選局域網最大往返時間是否大于局域網最大往返時間的當前值,如果大于則將局域網最大往返時間賦值為候選局域網最大往返時間;⑥判斷探測次數是否已等于M,如果沒有則轉至步驟②,否則轉至步驟⑦;⑦返回局域網最大往返時間值。
3.如權利要求2所述的用于多視點視頻采集的時間同步方法,其特征在于其中步驟①中,所述探測次數為3次。
4.一種如權利要求1~3所述的用于多視點視頻采集的時間同步方法的系統(tǒng),它包括同步服務器、多個視頻采集機和多個攝像機所組成,所述同步服務器與各視頻采集機之間通過局域網相連;每個所述視頻采集機同時連接一個或多個攝像機,并通過加載多個視頻采集程序來分別對多個攝像機的視頻數據采集過程進行控制;其特征在于在每個所述視頻采集程序中,除原有攝像機驅動模塊之外,還增加一個同步控制模塊,所述同步控制模塊一方面通過局域網與同步服務器進行交互,另一方面通過調用所述攝像機驅動模塊來真正啟動所述攝像機硬件進行視頻數據采集。
全文摘要
本發(fā)明涉及一種用于多視點視頻采集的時間同步方法及系統(tǒng),本發(fā)明方法包括以下步驟(1)使用網絡時間協(xié)議對所有設備系統(tǒng)時間進行同步;(2)在視頻采集機上為各攝像機分別啟動一個視頻采集程序;(3)視頻采集程序監(jiān)聽來自同步服務器的控制命令;(4)同步服務器探測局域網最大往返時間;(5)同步服務器將當前系統(tǒng)時間與局域網最大往返時間相加作為預計采集時間發(fā)送至各視頻采集程序;(6)視頻采集程序循環(huán)地將當前系統(tǒng)時間與預計采集時間進行比較,如果超過則啟動視頻數據采集。本發(fā)明有效避免了因等待時延過短而導致的同步失敗,同時也能夠避免視頻采集機無原則的長時間等待,時間精度可達到毫秒級。本發(fā)明方法可廣泛用于各種基于多攝像機的多視點視頻數據采集和傳輸系統(tǒng)。
文檔編號H04N7/56GK101014136SQ20071006358
公開日2007年8月8日 申請日期2007年2月5日 優(yōu)先權日2007年2月5日
發(fā)明者霍龍社, 王威, 高文 申請人:北京大學