借助精確時間協議(PTP)同步
HK IDSGigEVision相機
精確時間協議(PTP)是一種時間同步標準(IEEE1588),它使通過網絡連接的設備實現時間同步。支持此標準的相機可在特定的周期內與主時鐘交換同步信息。利用各自發送和接收時間中的時間戳信息,相機內部的計數器可實現精確地校準和同步。所有固件版本為2.2及以上的HK IDSGigEVision相機都可與PTP兼容!IEEE1588時間戳是以1970年1月1日0時0分為計時起點,支持1納秒(1 GHz)的時間分辨率。然而,由于延遲和信號運行時的不準確性,聯網設備的時間同步精度達微秒級。PTP應用案例
PTP作為一種基礎協議,通過為圖像數據提供時間基準,為各種應用奠定基礎。視應用要求及網絡基礎設施的復雜性的不同,PTP可以通過不同的方式來實現。1. 相對時間戳同步
在本案例中,所有相機都在同一個網絡。其中一臺相機為主服務器,其余相機為從服務器。所有從相機的時間戳與主相機同步。相機既不提供絕對時間戳(實時),同時在無其他操作的情況下,也無法實現同步觸發。?優勢:
-
在該應用場合中,相對時間戳確定所有相機圖像記錄的時間分配。此外,相對時間戳還能確定哪一張圖像為第一張,以及不同相機的圖像時差大小。
-
無需額外的操作和成本,即可為特定的網絡基礎架構生成相對時間戳。
2. 利用絕對時間同步時間戳
本案例中,聯網相機與外部主時鐘同步。該PTP主時鐘可以是支持“硬件時間戳”的網卡——若無硬件支持,同步精度將顯著降低。除必要的硬件外,還需要支持PTP的軟件。
優勢:
-
具備全局(實時)時間戳的圖像內容可跨越當前的應用限制,與任何其他使用實時時間基準的信息相關聯。
-
對于其它使用全局時間基準的應用場合或評估,圖像內容可以重用。
使用PTP:“相對同步”
硬件設置
兩臺不同的固件版本為2.2(支持PTP)的HK IDS GigE Vision相機(GV-526xFA-C和GV-504xCP-M)連至同一網絡交換機。一臺額外的主機PC,僅用于控制和配置相機,不涉及相機的PTP同步。軟件設置
可通過“PtpControl”下的相機功能節點圖查找所有PTP配置功能。只有固件需為2.2或以上版本的相機才能使用這些功能。我們在主機PC上安裝配套軟件,來設置PTP同步。將一臺相機配置為PTP主時鐘
GV-526xFA-C相機應設置為PTP主時鐘。在軟件中打開相機,并將“PtpEnable”設為“True”,啟用PTP。另外,將“PtpSlaveOnly”設為“False”為相機賦予“主時鐘”角色。# Configure master camera
PtpEnable = True
PtpSlaveOnly=False
將另一臺相機配置為PTP從時鐘
GV-504xCP-M相機應設為PTP從時鐘。同理,將“PtpEnable”設為“True”以啟用PTP。此時,這臺相機僅作為從時鐘使用。將“PtpSlaveOnly”仍設為“True”。# Configure slave camera
PtpEnable = True
PtpSlaveOnly = True
創建主從等級
在完成主從時鐘配置后,主-從等級將自動創建。對于主時鐘相機,可通過“PtpStatus”由“Listening”變成“Master”來確定。對于從時鐘相機,可通過“PtpStatus”先由“Listening”變為“Uncalibrated”,并在與主時鐘相機同步后變為“Slave”來確定。在通過相機的新PTP功能完成主從等級創建后,“相對同步”也隨之完成。啟用時間戳
如果您希望對圖像數據使用已同步相機生成的時間戳,則必須將時間戳作為元數據,啟用元數據(及塊數據)傳輸。首先,將“ChunkModeActive”設為“True”,以通過圖像緩沖區啟用塊數據傳輸。然后,通過“ChunkSelector”選擇“Timestamp”,并通過“ChunkEnable”開關啟用時間戳。
# activate chunk data creation
ChunkModeActive = True
# enable "ChunkTimestamp"
ChunkSelector = Timestamp
ChunkEnable = True
這時,相機所采集的每一張圖像將具備相應的時間戳,并借助圖像緩沖區(通過塊數據)傳輸至主機PC。這樣,塊數據及時間戳可通過任何視覺標準軟件進行讀取。圖像采集
如果應用中需要對帶時間戳的圖像數據進行處理,則圖像的記錄時間和相機的觸發至關重要。這種情況取決于來自多臺相機的圖像是否需要完全相同的采集時間(同步圖像采集)以及時間關聯偏差(時間戳抖動)有多大。根據應用要求,須選擇適合相機的觸發模式。在做出這一選擇時,要考慮的決定性的因素不僅包括不同軟件和硬件信號模式的精度,也包括部署和使用所需操作和成本。為檢查先前配置的“相對同步”,我們使用每秒脈沖數(PPS)信號來觸發相機,以實現同步自由運行。同步自由運行
顧名思義,在PTP功能啟用的情況下,每臺相機(主時鐘相機和從時鐘相機)的PPS信號會每秒生成一個。因此我們可借助PPS信號檢查相機的同步狀態。這一信號被設置為觸發源,因此每秒鐘將觸發一次圖像采集。除了由“相對同步”導致的幾微妙的偏差,相機生成的圖像時間戳應為一致。通過PPS信號實現所有相機同步自由運行的操作如下:# image acquisition configuration for both cameras
LineSelector = Line2
LineMode = Output
LineSource = PPS
TriggerSelector = ExposureStart
TriggerMode = On
TriggerSource = Line2
# Limit bandwidth on both cameras
DeviceLinkThroughputLimit = 60000000
# Start acquisition on both cameras
Execute AcquisitionStart
同步PPS觸發信號將觸發相機在同一時間點進行圖像采集讀取時間戳
為在應用場合中處理時間戳和圖像內容,您須讀取當前圖像緩沖區的塊數據。塊數據為制造商相關的有效負載緩沖區,其存儲布局通常未知,因此我們將通過節點圖來讀取各個元數據。為此,所有現有的元數據及其標準的節點名稱將從GenTL傳輸至節點圖,以便通過標準的API進行訪問。以下的源代碼片段為您演示如何從圖像緩沖區中提取時間戳。安裝包也為您提供了有關塊數據處理的完整源代碼示例。// Get buffer from device's datastream
const auto buffer = m_dataStream->WaitForFinishedBuffer(5000);
// check buffer for chunks
if (buffer->HasChunks())
{
// update nodemap with current chunk data
m_nodemapRemoteDevice->UpdateChunkNodes(buffer);
// Get the value of the timestamp chunk
const auto chunktimestamp = m_nodemapRemoteDevice->FindNode("ChunkTimestamp")->Value();
}
總結
當涉及圖像內容的時間分配時,PTP是多相機應用場合中一個重要的基礎功能,能夠輕松實現相機間的相對同步,無需額外的硬件和軟件支持。在許多應用場合中,相對相機同步也足以確保圖像在“相同”的時間或以正確的順序使用。相機還配備外部定時器,適用于全局同步。如果您對通過PTP同步時間存有疑問或需要了解更多信息,請聯系我們。end
關注我們,持續給您分享干貨!關于我們
虹科智能感知事業部專注于智能感知與機器視覺領域,已經和IDS,Blickfeld和Gidel等有著重要地位的國際公司展開深度的技術合作。我們的解決方案包括3D激光雷達,工業相機,視覺處理平臺,圖像采集卡及視覺系統集成等。虹科的工程師積極參與國內外專業協會和聯盟的活動,我們非常重視技術培訓和積累,公司定期與國內外專家團隊進行交流和培訓。
往期回顧
【虹科】蘊藏在廢物分類中的機器人技術革命
【虹科新聞】虹科受邀參加香港地鐵外來物檢測招標項目
【虹科】速度與激情:用于高速和高分辨圖像處理的緊湊型計算機FantoVision 20【虹科】機器視覺-LUT技術入門
【虹科】虹科教您部署混合人工智能以降低檢測成本【虹科】無需編碼,構建流程圖開發視覺應用,強勢來襲!
【虹科】激光雷達在安防中的應用——改變游戲規則
【虹科】嵌入式3D視覺功能原文標題:【虹科】如何借助PTP來做高精度相機同步?
文章出處:【微信公眾號:智能感知解決方案】歡迎添加關注!文章轉載請注明出處。
-
PTP
+關注
關注
0文章
50瀏覽量
8643
發布評論請先 登錄
相關推薦
評論