本發(fā)明涉及電子技術領域,尤其涉及一種多相機的數(shù)據(jù)同步方法及系統(tǒng)。
背景技術:
目前,多攝像頭應用越來越廣泛,而且,多攝相機協(xié)同工作也越來越重要,比如在無人機雙目壁障系統(tǒng)下,雙攝像機進行遮擋識別和深度識別。而進行多攝像頭協(xié)同處理時,同一時間對比很重要,由于處理過程涉及到圖像緩沖、互相運算等,相機同步不僅可以解決很多問題,而且可以節(jié)約資源,增加可靠性。
公開號為CN 104270568 A的中國專利公開了一種相機同步拍攝控制裝置,包括:可編程邏輯器件CPLD芯片、多路相機接口電路、通信接口電路、時鐘電路、電源電路、CPLD編程電路和工作狀態(tài)顯示電路。其中時鐘電路為CPLD芯片提供工作時鐘。通信接口電路包括RS232通信接口電路、RS485通信接口電路和USB接口電路??删幊踢壿嬈骷﨏PLD芯片可通過RS232接口電路與近距離設置的計算機實現(xiàn)異步串行通信,通過RS485通信接口電路與遠距離設置的計算機實現(xiàn)通信,通過USB接口電路實現(xiàn)與計算機的USB通信。可編程邏輯器件CPLD芯片的相機控制指令輸出接口與多路相機接口電路的控制指令輸入接口連接,通過多路相機接口電路分別與多臺相機的I/O接口連接,為多臺相機提供拍攝觸發(fā)信號,實現(xiàn)同步拍攝。
上述方案實現(xiàn)了相機拍攝的同步控制,然而其控制是通過硬件控制,在無人機等對設備的體積和重量要求嚴格的場景下并不適用。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是:提供一種基于FPGA的多相機的數(shù)據(jù)同步方法及系統(tǒng),既能夠精確地實現(xiàn)多相機同步輸出,又無需額外增加硬件連接。
為了解決上述技術問題,本發(fā)明采用的技術方案為:
一種多相機的數(shù)據(jù)同步方法,包括:
連接FPGA與至少兩路的相機;
FPGA計算任意兩個所述相機的數(shù)據(jù)分別輸入至FPGA的時間差,所述時間差為延時周期;
依據(jù)所述延時周期將任意兩個所述相機的數(shù)據(jù)輸出FPGA的時間進行同步;
輸出同步后的相機的數(shù)據(jù)。
本發(fā)明提供的另一個技術方案為:
一種多相機的數(shù)據(jù)同步系統(tǒng),包括FPGA和至少兩路的相機,所述FPGA與至少兩路的相機連接;所述FPGA包括:
延時周期計算模塊,用于計算任意兩個所述相機的數(shù)據(jù)分別輸入至FPGA的時間差,所述時間差為延時周期;
同步模塊,用于依據(jù)所述延時周期將任意兩個所述相機的數(shù)據(jù)輸出FPGA的時間進行同步;
輸出模塊,用于輸出同步后的相機的數(shù)據(jù)。
本發(fā)明的有益效果在于:通過FPGA計算出延時周期后,即可按照延時周期將多路相機的數(shù)據(jù)進行同步后再輸出。對與接入FPGA的多路獨立的相機,不需要硬件上增加額外的連接,通過FPGA內部進行時序控制和同步,實現(xiàn)多路相機實時同步數(shù)據(jù)采集功能,該方法利用了FPGA在時序上的靈活性,可以非常便捷的實現(xiàn)同步采集功能。
附圖說明
圖1為本發(fā)明實施例的多相機的數(shù)據(jù)同步方法的流程圖;
圖2為本發(fā)明實施例的多相機的數(shù)據(jù)同步系統(tǒng)的結構示意圖;
圖3為本發(fā)明實施例一的多相機的數(shù)據(jù)同步方法的流程圖;
圖4為本發(fā)明實施例二的多相機的數(shù)據(jù)同步方法的第一相機和第二相機延時信號示意圖;
圖5為本發(fā)明實施例二的多相機的數(shù)據(jù)同步方法的第一相機和第二相機的同步信號輸出的示意圖。
標號說明:
100、FPGA;1、延時周期計算模塊;2、同步模塊;3、輸出模塊;4、延時測試模塊;5、時序約束模塊。
具體實施方式
為詳細說明本發(fā)明的技術內容、所實現(xiàn)目的及效果,以下結合實施方式并配合附圖予以說明。
本發(fā)明最關鍵的構思在于:通過FPGA計算任意兩個所述相機的數(shù)據(jù)分別輸入至FPGA的時間差,所述時間差為延時周期;依據(jù)所述延時周期將任意兩個所述相機的數(shù)據(jù)輸出FPGA的時間進行同步。
請參照圖1,本發(fā)明提供:
一種多相機的數(shù)據(jù)同步方法,包括:
連接FPGA與至少兩路的相機;
FPGA計算任意兩個所述相機的數(shù)據(jù)分別輸入至FPGA的時間差,所述時間差為延時周期;
依據(jù)所述延時周期將任意兩個所述相機的數(shù)據(jù)輸出FPGA的時間進行同步;
輸出同步后的相機的數(shù)據(jù)。
進一步的,所述FPGA設置在PCB板上,連接FPGA與至少兩路的相機之后,F(xiàn)PGA計算任意兩個所述相機的數(shù)據(jù)分別輸入至FPGA的時間差之前,進一步包括:
對所述PCB板上的電路進行延時測試;
依據(jù)延時測試結果對所述至少兩路的相機的數(shù)據(jù)到FPGA的輸入和輸出進行時序約束。
從上述描述可知,通過FPGA的時序約束,保證了多路相機數(shù)據(jù)的延時在幾個周期內,最小化的利用FPGA資源和數(shù)據(jù)延遲,對后續(xù)實時性提供很好的條件。
進一步的,所述至少兩路的相機包括第一相機和第二相機,所述第一相機的數(shù)據(jù)輸入至所述FPGA的時間先于所述第二相機的數(shù)據(jù)輸入至所述FPGA的時間,依據(jù)所述延時周期將任意兩個所述相機的數(shù)據(jù)輸出FPGA的時間進行同步具體為:
將所述第一相機的數(shù)據(jù)延時一個所述延時周期后與第二相機的數(shù)據(jù)同步輸出。
從上述描述可知,也可通過延時多個延時周期,以實現(xiàn)第一相機和第二相機的數(shù)據(jù)同步。對于兩路以上的相機,采用相同方法即可實現(xiàn)數(shù)據(jù)同步。
進一步的,所述相機的接口均為并行數(shù)據(jù)接口。
進一步的,所述相機的參數(shù)配置一致。
從上述描述可知,相機采用并行數(shù)據(jù)接口、參數(shù)配置一致等硬件設置,使得相機的數(shù)據(jù)延時在可控范圍。
請參照圖2,本發(fā)明的另一個技術方案為:
一種多相機的數(shù)據(jù)同步系統(tǒng),包括FPGA100和至少兩路的相機,所述FPGA100與至少兩路的相機連接;所述FPGA100包括:
延時周期計算模塊1,用于計算任意兩個所述相機的數(shù)據(jù)分別輸入至FPGA的時間差,所述時間差為延時周期;
同步模塊2,用于依據(jù)所述延時周期將任意兩個所述相機的數(shù)據(jù)輸出FPGA的時間進行同步;
輸出模塊3,用于輸出同步后的相機的數(shù)據(jù)。
進一步的,所述FPGA100設置在PCB板上,所述FPGA100還包括:
延時測試模塊4,用于對所述PCB上的電路進行延時測試;
時序約束模塊5,用于依據(jù)延時測試結果對所述至少兩路的相機的數(shù)據(jù)到FPGA的輸入和輸出進行時序約束。
進一步的,所述至少兩路的相機包括第一相機和第二相機,所述第一相機的數(shù)據(jù)輸入至所述FPGA的時間先于所述第二相機的數(shù)據(jù)輸入至所述FPGA的時間,所述同步模塊2具體用于將所述第一相機的數(shù)據(jù)延時一個所述延時周期后與第二相機的數(shù)據(jù)同步輸出。
進一步的,所述相機的接口均為并行數(shù)據(jù)接口。
進一步的,所述相機的參數(shù)配置一致。
請參照圖3,本發(fā)明的實施例一為:
一種多相機的數(shù)據(jù)同步方法,包括:
連接FPGA與至少兩路的相機;所述FPGA設置在PCB板上;具體的,提供一塊設有FPGA以及多個與FPGA連接的數(shù)據(jù)接口的PCB板,如支持20個預留GPIO的FPGA開發(fā)板;將至少兩路的采用并行數(shù)據(jù)接口的相機分別與不同的數(shù)據(jù)接口連接;所述相機的參數(shù)配置一致;PCB板上FPGA與每個相機之間的數(shù)據(jù)線的長度相同,F(xiàn)PGA與每個相機之間的時鐘線的長度也相同;對所述PCB上的電路進行延時測試;進行延時測試后通過FPGA內部邏輯復制實現(xiàn)對每一路相機的控制;
依據(jù)延時測試結果對所述至少兩路的相機的數(shù)據(jù)到FPGA的輸入和輸出進行時序約束;其中,所述相機的數(shù)據(jù)為相機拍攝的數(shù)據(jù),如圖像數(shù)據(jù)、視頻數(shù)據(jù)等;
FPGA計算任意兩個所述相機的數(shù)據(jù)分別輸入至FPGA的時間差,所述時間差為延時周期;
依據(jù)所述延時周期將任意兩個所述相機的數(shù)據(jù)輸出FPGA的時間進行同步;
輸出同步后的相機的數(shù)據(jù)以及形場同步信號。
請參照圖4和5,本發(fā)明的實施例二為:
一種多相機的數(shù)據(jù)同步方法,與上述實施例一的區(qū)別在于:
所述至少兩路的相機包括第一相機和第二相機,所述第一相機的數(shù)據(jù)輸入至所述FPGA的時間先于所述第二相機的數(shù)據(jù)輸入至所述FPGA的時間,依據(jù)所述延時周期將任意兩個所述相機的數(shù)據(jù)輸出FPGA的時間進行同步具體為:
將所述第一相機的數(shù)據(jù)延時一個所述延時周期后與第二相機的數(shù)據(jù)同步輸出。將FPGA連接計算機,測試其延時信號和同步輸出信號,計算機輸出的測試結果如圖4和5所示,其中,如圖4所示為第一相機和第二相機延時信號示意圖;圖5所示為第一相機和第二相機的同步信號輸出示意圖。其中,Name表示信號的名稱,-80、-60等數(shù)值表示時間,CCD_FVAL對應第一相機的信號,rCCD_FVAL對應第二相機的信號,CCD_PIXCLK對應FPGA內部時鐘信號。
請參照圖2,本發(fā)明的實施例三為:
一種與上述實施例一的多相機的數(shù)據(jù)同步方法對應的系統(tǒng),包括PCB板、FPGA100和至少兩路的相機,所述FPGA100設置在所述PCB板上,所述PCB板上還設有與所述FPGA100連接的多個數(shù)據(jù)接口,所述至少兩路的相機分別與不同的數(shù)據(jù)接口連接;所述相機的接口均為并行數(shù)據(jù)接口;所述相機的參數(shù)配置一致;所述FPGA100包括:
延時測試模塊4,用于對所述PCB上的電路進行延時測試;
時序約束模塊5,用于依據(jù)延時測試結果對所述至少兩路的相機的數(shù)據(jù)到FPGA的輸入和輸出進行時序約束;
延時周期計算模塊1,用于計算任意兩個所述相機的數(shù)據(jù)分別輸入至FPGA的時間差,所述時間差為延時周期;
同步模塊2,用于依據(jù)所述延時周期將任意兩個所述相機的數(shù)據(jù)輸出FPGA的時間進行同步;
輸出模塊3,用于輸出同步后的相機的數(shù)據(jù)。
在一優(yōu)選實施例中,所述至少兩路的相機包括第一相機和第二相機,所述第一相機的數(shù)據(jù)輸入至所述FPGA的時間先于所述第二相機的數(shù)據(jù)輸入至所述FPGA的時間,所述同步模塊2具體用于將所述第一相機的數(shù)據(jù)延時一個所述延時周期后與第二相機的數(shù)據(jù)同步輸出。
綜上所述,本發(fā)明提供的多相機的數(shù)據(jù)同步方法及系統(tǒng),利用了FPGA在時序上的靈活性,可以非常方便的實現(xiàn)同步采集功能。在性能上,滿足多路信號接入,可以實時檢測出延時周期,從而進行延時調整。
以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內容所作的等同變換,或直接或間接運用在相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內。