人人澡人人澡人人看添AV,99久在线精品99RE8热视频,午夜男女爽爽影院免费视频,91自产拍在线观看精品

NVIDIA Metropolis通過簡化攝像頭校準 增強AI驅動的多攝像頭追蹤

NVIDIA Metropolis 是一個利用 AI 實現各個行業視覺數據分析的應用框架和開發者工具套件。它所提供的多攝像頭追蹤參考 AI 工作流由云原生 NVIDIA Metropolis 微服務驅動,可實現跨多個攝像頭的高級物體追蹤和定位功能。本文將討論攝像頭校準、如何使用 Metropolis 攝像頭校準套件來校準真實攝像頭,以及如何使用 NVIDIA Omniverse 擴展校準合成攝像頭。

本文是構建多攝像頭追蹤視覺AI應用系列文章的第三篇。在第一和第二篇文章中,我們介紹了提高系統準確性的整個端到端工作流和微調過程。

NVIDIA Metropolis 是一個利用AI實現各個行業視覺數據分析的應用框架和開發者工具套件。它所提供的多攝像頭追蹤參考 AI 工作流由云原生 NVIDIA Metropolis 微服務驅動,可實現跨多個攝像頭的高級物體追蹤和定位功能。本文將討論攝像頭校準、如何使用 Metropolis 攝像頭校準套件來校準真實攝像頭,以及如何使用 NVIDIA Omniverse 擴展校準合成攝像頭。

攝像頭校準

攝像頭校準是確定特定攝像頭參數或估計攝像頭特性的過程。攝像頭校準可將攝像頭在 2D 世界中看到的景象轉換成現實世界坐標系,是許多基于視覺的應用的基礎。例如在創建多攝像頭追蹤應用時,需要先進行攝像頭校準,才能完成主要涉及坐標轉換的特定操作。

攝像頭參數由外在參數和內在參數兩部分組成。外在參數定義了攝像頭相對于指定世界坐標系的平移和旋轉,從而實現攝像頭坐標和世界坐標之間的映射。內在參數則實現了攝像頭坐標與像素坐標之間的映射。

多攝像頭追蹤中的攝像頭校準

NVIDIA Metropolis 多攝像頭 AI 參考工作流主要使用攝像頭作為傳感器,并對檢測到的移動物體進行大量時空方面的處理。由于物體最初在攝像頭視圖內的像素域中檢測到,因此為了在下游進行大量時空分析,一個必不可少的步驟就是將像素域與所需坐標系相關聯。

在 Metropolis AI 工作流中,攝像頭定位對下游任務的整體準確性有重大影響。詳細信息可參見攝像頭定位指南:

https://docs.nvidia.com/mms/text/MDX_Camera_Positioning_Guide.html

通過正確的攝像頭校準,就能在所需坐標系中定位檢測到的物體。這在許多核心能力中都起著至關重要的作用,包括但不限于:

將攝像頭用作傳感器的位置服務:檢測攝像頭內的物體,并通過校準后的攝像頭參數,計算出其在具有現實意義的坐標系上的位置。例如,零售店可以在平面圖上定位攝像頭看到的店內顧客。

多個攝像頭之間的活動關聯:當根據同一坐標系校準多個攝像頭后,就可以關聯各個攝像頭并進行推理,從而提供綜合洞察。例如,共享坐標系中的移動歷史記錄可以幫助確定攝像頭_1 檢測到的人_A 和攝像頭_2 檢測到的人_B 是否是同一個人;可以通過覆蓋不同區域的多個攝像頭,無縫追蹤一個人在倉庫中的行走軌跡等。

基于距離的度量計算:鑒于攝像頭的特性,直接在像素域進行距離計算并不可靠。例如 X 個像素覆蓋的實際距離(以米為單位)會因幀內位置的不同而產生很大差異。根據直角坐標系來校準攝像頭可以使距離計算更加方便。

圖 1 是一個實時位置系統示例。在一個 100 個攝像頭覆蓋的 10 萬平方英尺倉庫空間內,每個人的位置都可以在倉庫平面圖上進行追蹤。這樣的系統建立在上述通過正確攝像頭校準來實現的核心能力基礎上。

圖 1. 通過多個攝像頭追蹤多個物體的實時位置系統

當前的 Metropolis 參考AI工作流假定攝像頭沒有失真或失真很小,這樣就能確保像素坐標系與指定的世界坐標系之間的映射是線性的。這需要從兩個坐標系中選擇參考點進行計算。

特別是需要一系列地標,其中每個地標的像素值(x, y)和世界坐標(X, Y, Z)都是已知的。在我們的許多用例中,指定的世界坐標系是一個 2D 笛卡爾平面,或者更具體地說,是一個平面圖的圖像。以平面圖的一角為原點,可以將該笛卡爾平面轉換為平面圖圖像的像素值。

在這個意義上,世界坐標(X, Y, Z)變成了(X, Y),2D 轉 3D 的映射問題實際上變成了 2D 轉 3D 的透視變換問題。而作為該校準過程的輸出結果,根據地標計算出的 3 x 3 同構矩陣可用于以后的位置變換。

圖 2 提供了兩個演示該過程的示例,考慮到任務是找到左側攝像頭像素與右側平面圖之間的映射關系,唯一需要的是一系列可同時位于左右兩側的地標 {1, 2, 3, 4, ...}。選定一系列地標后,攝像頭位置(x, y)和世界位置(X, Y)會以相應的像素坐標形式給出,然后就可以通過現有的庫,輕松計算出同構矩陣(例如 OpenCV)。

圖 2. 來自攝像頭視圖和平面圖的參考點

現在,解決像素轉世界的映射問題,可以歸結為選擇參考點并獲取其在攝像頭畫面和平面圖中的像素值。這項工作看似簡單,實則不易。設計得當的工具可以大大減少工作量,簡化任務。

使用 Metropolis攝像頭校準套件

簡化現實世界的校準工作

您可以使用 Metropolis 攝像頭校準套件來執行攝像頭校準任務,并以適當的格式輸出文件,以便與其他 Metropolis 服務無縫對接。

視頻 1. 通過簡化攝像頭校準,增強AI驅動的多攝像頭追蹤

Metropolis 攝像頭校準套件提供以下功能:

項目組織、導入和導出

通過 Metropolis 媒體服務輕松導入攝像頭

用于選定參考點的 GUI

用于自檢的即時重投影錯誤

支持更多 Metropolis 功能的附加組件,包括感興趣區域(ROI)和絆線

使用 API 插入文件

有三種校準模式可供使用:

笛卡爾校準:一種在沒有參考建筑地圖的情況下創建外部校準的方法。用戶可以創建自己的全局坐標系。

多攝像頭追蹤:該模式是使用校準套件的最常見方式,也是本文的重點。采用該模式的用戶只需提供一個建筑地圖,每個攝像頭就能根據該地圖進行校準。

圖像:在圖像上繪制絆線和 ROI 并獲取像素坐標。對于某些下游任務,需要在攝像頭視圖中添加某些人為假象,以計算特定指標,例如基于絆線穿越次數的物體計數等。

最簡單的方法是使用示例應用中提供的資產來導入一個項目。通過 calibration.json、imageMetadata.json 和 Images.zip,用戶可以導入一個已經設置好的項目。

如要從頭開始創建一個多攝像頭追蹤項目,需要一個平面圖以及一項媒體服務,或者多張來自攝像頭的圖像,還需要來自攝像頭的信息,來幫助 Metropolis UI 設置攝像頭。

在導入項目或創建新項目后,“項目”頁面將引導您完成創建必要人工假象的步驟。首先,上傳平面圖。平面圖可以是代表攝像頭所見空間的建筑地圖。

接下來,如果您使用的是媒體服務,可以使用與部署案例最相關的 URL 導入傳感器。這是將傳感器導入套件的最簡單方法,但并非唯一的方法。如果不使用媒體服務,則需要設置傳感器。

首先為每個傳感器創建一個新傳感器,并添加攝像頭詳細信息。這些詳細信息對于將攝像頭導入 Metropolis 工作流非常必要。關閉該模態后,您會看到網格中顯示了一個傳感器,您可以單擊攝像頭圖標上傳圖像。如果您在上一步中發現了傳感器,則表示圖像應該已經從媒體服務中提取。對每個傳感器重復此步驟。

校準時,在攝像頭圖像上為每個傳感器創建一個多邊形,并在平面圖上創建相應的多邊形。然后,在平面圖空間中選擇在攝像頭圖像中可見的點或地標。通過這些相應的對,可以創建一個轉換矩陣,將攝像頭空間中的軌跡映射到平面圖上。

根據空間大小,最好選擇 8 到 15 個點。開始時至少需要 8 個點。圖 2 顯示了平面圖上已確認的在攝像頭圖像中可見的地標。如果在某一區域出現校準偏差,可通過添加更多的點幫助改善軌跡。

創建兩個多邊形后,添加一個 ROI 多邊形以及絆線和方向線。校準階段的示例見圖 3。

圖 3. 經過 Metropolis 攝像頭校準套件 的校準階段后完全校準的攝像頭示例

校準設置完成后,單擊“校準”查看重投影誤差并單擊“接受”(如果可以接受)。然后單擊“驗證”測試校準,繪制軌跡或多邊形,查看攝像頭域中的點如何落在平面圖上。如果平面圖上的投影點可以接受,就能夠驗證校準。如果不行,則在校準階段調整多邊形,直到校準合格為止。

接下來,設置平面圖并將攝像頭放置在平面圖上。這是在 Metropolis 工作流的用戶界面中顯示攝像頭所必不可少的一個步驟。有關如何放置傳感器的示例,請參見圖 4。

圖 4. 放置在 Metropolis攝像頭校準套件中 的平面圖上的傳感器

最后,導出可用于 Metropolis 工作流的人為假象文件 calibration.json、imageMetadata.json 和 images.zip。

借助 Metropolis 攝像頭校準套件,您可以輕松簡化真實攝像頭上的手動攝像頭校準流程。它所提供的格式化文件可供下游 Metropolis 服務無縫使用。

NVIDIA Omniverse 中的

合成攝像頭自動校準

Metropolis 參考應用也可以使用合成數據。這些參考應用提供在 NVIDIA Omniverse 平臺上創建的合成視頻數據。與現實世界中的攝像頭一樣,合成攝像頭也必須經過校準后,才能實現像素坐標與平面圖之間的映射。

視頻 2. 通過簡化攝像頭校準,增強 AI 驅動的多攝像頭追蹤

由于能夠完全控制 Omniverse 中的合成攝像頭,因此不需要手動選擇參考點。只需點擊一下按鈕,Omniverse 中的 omni.replicator.agent.camera_calibration 自動校準擴展就能輸出所需的虛擬攝像頭映射。該自動校準工具包含在 omni.replicator.agent 擴展中。

如要了解更多信息,請參見 Omniverse 攝像頭校準文檔:https://docs.omniverse.nvidia.com/isaacsim/latest/replicator_tutorials/ext_replicator-agent/camera_calibration.html

如要使用 omni.replicator.agent.camera_calibration,首先創建一個俯視攝像頭以及待校準的攝像頭。俯視攝像頭的精確攝像頭視圖將被用作平面圖。擴展將自動從攝像頭視圖中為每個待校準的攝像頭選擇平面圖上的點,并計算它們在俯視攝像頭中的對應點。

使用 omni.replicator.agent.camera_calibration 擴展的詳細情況如下:

通過從攝像頭視圖中隨機投射光線,來自動選擇參考點,記錄光線與平面圖相交的位置。

攝像頭的外在矩陣由攝像頭原型的變換矩陣導出,內在矩陣則根據攝像頭原型的屬性計算得出。

將參考點的 3D 位置轉換為攝像頭圖像平面上的 2D 位置,并使用這些數據計算出攝像頭的投影矩陣。

計算參考點 3D 位置與俯視攝像頭圖像平面之間的平移參數和縮放因子,這能夠提供攝像頭視圖與平面圖之間的對應關系。

通過向平面圖均勻投射光線來確定攝像頭的視野(FOV),收集命中點的數據,然后根據這些命中點的坐標生成視場多邊形。

最后,將攝像頭的內在矩陣和外在矩陣以及投影矩陣和攝像頭視圖與平面圖之間的對應關系導出到 JSON 文件,并在場景的俯視圖像上渲染 FOV 多邊形。

在 Omniverse 中創建合成攝像頭相對簡單,是一個生成合成視頻數據的好方法,所生成的數據可用于模型訓練和仿真等各種下游任務。omni.replicator.agent.camera_calibration 為用戶提供了一個方便創建格式化攝像頭校準文件的工具,這樣,Omniverse 中的合成攝像頭就能輕松用于各種 Metropolis 參考工作流或應用。

結論

通過攝像頭校準,NVIDIA Metropolis 參考應用可以在提供的平面圖上定位檢測到的物體,并建立多個攝像頭之間的物體位置空間關聯。這是在智能視頻分析領域,構建大規模實時位置服務和其他有意義的服務,所必不可少的一個步驟。