精品人妻无码一区二区三区不卡,天堂VA蜜桃一区二区三区,国产AV一区二区三区日韩,特级太黄A片免费播放一

NVIDIA Metropolis通過(guò)簡(jiǎn)化攝像頭校準(zhǔn) 增強(qiáng)AI驅(qū)動(dòng)的多攝像頭追蹤

NVIDIA Metropolis 是一個(gè)利用 AI 實(shí)現(xiàn)各個(gè)行業(yè)視覺(jué)數(shù)據(jù)分析的應(yīng)用框架和開發(fā)者工具套件。它所提供的多攝像頭追蹤參考 AI 工作流由云原生 NVIDIA Metropolis 微服務(wù)驅(qū)動(dòng),可實(shí)現(xiàn)跨多個(gè)攝像頭的高級(jí)物體追蹤和定位功能。本文將討論攝像頭校準(zhǔn)、如何使用 Metropolis 攝像頭校準(zhǔn)套件來(lái)校準(zhǔn)真實(shí)攝像頭,以及如何使用 NVIDIA Omniverse 擴(kuò)展校準(zhǔn)合成攝像頭。

本文是構(gòu)建多攝像頭追蹤視覺(jué)AI應(yīng)用系列文章的第三篇。在第一和第二篇文章中,我們介紹了提高系統(tǒng)準(zhǔn)確性的整個(gè)端到端工作流和微調(diào)過(guò)程。

NVIDIA Metropolis 是一個(gè)利用AI實(shí)現(xiàn)各個(gè)行業(yè)視覺(jué)數(shù)據(jù)分析的應(yīng)用框架和開發(fā)者工具套件。它所提供的多攝像頭追蹤參考 AI 工作流由云原生 NVIDIA Metropolis 微服務(wù)驅(qū)動(dòng),可實(shí)現(xiàn)跨多個(gè)攝像頭的高級(jí)物體追蹤和定位功能。本文將討論攝像頭校準(zhǔn)、如何使用 Metropolis 攝像頭校準(zhǔn)套件來(lái)校準(zhǔn)真實(shí)攝像頭,以及如何使用 NVIDIA Omniverse 擴(kuò)展校準(zhǔn)合成攝像頭。

攝像頭校準(zhǔn)

攝像頭校準(zhǔn)是確定特定攝像頭參數(shù)或估計(jì)攝像頭特性的過(guò)程。攝像頭校準(zhǔn)可將攝像頭在 2D 世界中看到的景象轉(zhuǎn)換成現(xiàn)實(shí)世界坐標(biāo)系,是許多基于視覺(jué)的應(yīng)用的基礎(chǔ)。例如在創(chuàng)建多攝像頭追蹤應(yīng)用時(shí),需要先進(jìn)行攝像頭校準(zhǔn),才能完成主要涉及坐標(biāo)轉(zhuǎn)換的特定操作。

攝像頭參數(shù)由外在參數(shù)和內(nèi)在參數(shù)兩部分組成。外在參數(shù)定義了攝像頭相對(duì)于指定世界坐標(biāo)系的平移和旋轉(zhuǎn),從而實(shí)現(xiàn)攝像頭坐標(biāo)和世界坐標(biāo)之間的映射。內(nèi)在參數(shù)則實(shí)現(xiàn)了攝像頭坐標(biāo)與像素坐標(biāo)之間的映射。

多攝像頭追蹤中的攝像頭校準(zhǔn)

NVIDIA Metropolis 多攝像頭 AI 參考工作流主要使用攝像頭作為傳感器,并對(duì)檢測(cè)到的移動(dòng)物體進(jìn)行大量時(shí)空方面的處理。由于物體最初在攝像頭視圖內(nèi)的像素域中檢測(cè)到,因此為了在下游進(jìn)行大量時(shí)空分析,一個(gè)必不可少的步驟就是將像素域與所需坐標(biāo)系相關(guān)聯(lián)。

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

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

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

將攝像頭用作傳感器的位置服務(wù):檢測(cè)攝像頭內(nèi)的物體,并通過(guò)校準(zhǔn)后的攝像頭參數(shù),計(jì)算出其在具有現(xiàn)實(shí)意義的坐標(biāo)系上的位置。例如,零售店可以在平面圖上定位攝像頭看到的店內(nèi)顧客。

多個(gè)攝像頭之間的活動(dòng)關(guān)聯(lián):當(dāng)根據(jù)同一坐標(biāo)系校準(zhǔn)多個(gè)攝像頭后,就可以關(guān)聯(lián)各個(gè)攝像頭并進(jìn)行推理,從而提供綜合洞察。例如,共享坐標(biāo)系中的移動(dòng)歷史記錄可以幫助確定攝像頭_1 檢測(cè)到的人_A 和攝像頭_2 檢測(cè)到的人_B 是否是同一個(gè)人;可以通過(guò)覆蓋不同區(qū)域的多個(gè)攝像頭,無(wú)縫追蹤一個(gè)人在倉(cāng)庫(kù)中的行走軌跡等。

基于距離的度量計(jì)算:鑒于攝像頭的特性,直接在像素域進(jìn)行距離計(jì)算并不可靠。例如 X 個(gè)像素覆蓋的實(shí)際距離(以米為單位)會(huì)因幀內(nèi)位置的不同而產(chǎn)生很大差異。根據(jù)直角坐標(biāo)系來(lái)校準(zhǔn)攝像頭可以使距離計(jì)算更加方便。

圖 1 是一個(gè)實(shí)時(shí)位置系統(tǒng)示例。在一個(gè) 100 個(gè)攝像頭覆蓋的 10 萬(wàn)平方英尺倉(cāng)庫(kù)空間內(nèi),每個(gè)人的位置都可以在倉(cāng)庫(kù)平面圖上進(jìn)行追蹤。這樣的系統(tǒng)建立在上述通過(guò)正確攝像頭校準(zhǔn)來(lái)實(shí)現(xiàn)的核心能力基礎(chǔ)上。

圖 1. 通過(guò)多個(gè)攝像頭追蹤多個(gè)物體的實(shí)時(shí)位置系統(tǒng)

當(dāng)前的 Metropolis 參考AI工作流假定攝像頭沒(méi)有失真或失真很小,這樣就能確保像素坐標(biāo)系與指定的世界坐標(biāo)系之間的映射是線性的。這需要從兩個(gè)坐標(biāo)系中選擇參考點(diǎn)進(jìn)行計(jì)算。

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

在這個(gè)意義上,世界坐標(biāo)(X, Y, Z)變成了(X, Y),2D 轉(zhuǎn) 3D 的映射問(wèn)題實(shí)際上變成了 2D 轉(zhuǎn) 3D 的透視變換問(wèn)題。而作為該校準(zhǔn)過(guò)程的輸出結(jié)果,根據(jù)地標(biāo)計(jì)算出的 3 x 3 同構(gòu)矩陣可用于以后的位置變換。

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

圖 2. 來(lái)自攝像頭視圖和平面圖的參考點(diǎn)

現(xiàn)在,解決像素轉(zhuǎn)世界的映射問(wèn)題,可以歸結(jié)為選擇參考點(diǎn)并獲取其在攝像頭畫面和平面圖中的像素值。這項(xiàng)工作看似簡(jiǎn)單,實(shí)則不易。設(shè)計(jì)得當(dāng)?shù)墓ぞ呖梢源蟠鬁p少工作量,簡(jiǎn)化任務(wù)。

使用 Metropolis攝像頭校準(zhǔn)套件

簡(jiǎn)化現(xiàn)實(shí)世界的校準(zhǔn)工作

您可以使用 Metropolis 攝像頭校準(zhǔn)套件來(lái)執(zhí)行攝像頭校準(zhǔn)任務(wù),并以適當(dāng)?shù)母袷捷敵鑫募?,以便與其他 Metropolis 服務(wù)無(wú)縫對(duì)接。

視頻 1. 通過(guò)簡(jiǎn)化攝像頭校準(zhǔn),增強(qiáng)AI驅(qū)動(dòng)的多攝像頭追蹤

Metropolis 攝像頭校準(zhǔn)套件提供以下功能:

項(xiàng)目組織、導(dǎo)入和導(dǎo)出

通過(guò) Metropolis 媒體服務(wù)輕松導(dǎo)入攝像頭

用于選定參考點(diǎn)的 GUI

用于自檢的即時(shí)重投影錯(cuò)誤

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

使用 API 插入文件

有三種校準(zhǔn)模式可供使用:

笛卡爾校準(zhǔn):一種在沒(méi)有參考建筑地圖的情況下創(chuàng)建外部校準(zhǔn)的方法。用戶可以創(chuàng)建自己的全局坐標(biāo)系。

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

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

最簡(jiǎn)單的方法是使用示例應(yīng)用中提供的資產(chǎn)來(lái)導(dǎo)入一個(gè)項(xiàng)目。通過(guò) calibration.json、imageMetadata.json 和 Images.zip,用戶可以導(dǎo)入一個(gè)已經(jīng)設(shè)置好的項(xiàng)目。

如要從頭開始創(chuàng)建一個(gè)多攝像頭追蹤項(xiàng)目,需要一個(gè)平面圖以及一項(xiàng)媒體服務(wù),或者多張來(lái)自攝像頭的圖像,還需要來(lái)自攝像頭的信息,來(lái)幫助 Metropolis UI 設(shè)置攝像頭。

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

接下來(lái),如果您使用的是媒體服務(wù),可以使用與部署案例最相關(guān)的 URL 導(dǎo)入傳感器。這是將傳感器導(dǎo)入套件的最簡(jiǎn)單方法,但并非唯一的方法。如果不使用媒體服務(wù),則需要設(shè)置傳感器。

首先為每個(gè)傳感器創(chuàng)建一個(gè)新傳感器,并添加攝像頭詳細(xì)信息。這些詳細(xì)信息對(duì)于將攝像頭導(dǎo)入 Metropolis 工作流非常必要。關(guān)閉該模態(tài)后,您會(huì)看到網(wǎng)格中顯示了一個(gè)傳感器,您可以單擊攝像頭圖標(biāo)上傳圖像。如果您在上一步中發(fā)現(xiàn)了傳感器,則表示圖像應(yīng)該已經(jīng)從媒體服務(wù)中提取。對(duì)每個(gè)傳感器重復(fù)此步驟。

校準(zhǔn)時(shí),在攝像頭圖像上為每個(gè)傳感器創(chuàng)建一個(gè)多邊形,并在平面圖上創(chuàng)建相應(yīng)的多邊形。然后,在平面圖空間中選擇在攝像頭圖像中可見的點(diǎn)或地標(biāo)。通過(guò)這些相應(yīng)的對(duì),可以創(chuàng)建一個(gè)轉(zhuǎn)換矩陣,將攝像頭空間中的軌跡映射到平面圖上。

根據(jù)空間大小,最好選擇 8 到 15 個(gè)點(diǎn)。開始時(shí)至少需要 8 個(gè)點(diǎn)。圖 2 顯示了平面圖上已確認(rèn)的在攝像頭圖像中可見的地標(biāo)。如果在某一區(qū)域出現(xiàn)校準(zhǔn)偏差,可通過(guò)添加更多的點(diǎn)幫助改善軌跡。

創(chuàng)建兩個(gè)多邊形后,添加一個(gè) ROI 多邊形以及絆線和方向線。校準(zhǔn)階段的示例見圖 3。

圖 3. 經(jīng)過(guò) Metropolis 攝像頭校準(zhǔn)套件 的校準(zhǔn)階段后完全校準(zhǔn)的攝像頭示例

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

接下來(lái),設(shè)置平面圖并將攝像頭放置在平面圖上。這是在 Metropolis 工作流的用戶界面中顯示攝像頭所必不可少的一個(gè)步驟。有關(guān)如何放置傳感器的示例,請(qǐng)參見圖 4。

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

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

借助 Metropolis 攝像頭校準(zhǔn)套件,您可以輕松簡(jiǎn)化真實(shí)攝像頭上的手動(dòng)攝像頭校準(zhǔn)流程。它所提供的格式化文件可供下游 Metropolis 服務(wù)無(wú)縫使用。

NVIDIA Omniverse 中的

合成攝像頭自動(dòng)校準(zhǔn)

Metropolis 參考應(yīng)用也可以使用合成數(shù)據(jù)。這些參考應(yīng)用提供在 NVIDIA Omniverse 平臺(tái)上創(chuàng)建的合成視頻數(shù)據(jù)。與現(xiàn)實(shí)世界中的攝像頭一樣,合成攝像頭也必須經(jīng)過(guò)校準(zhǔn)后,才能實(shí)現(xiàn)像素坐標(biāo)與平面圖之間的映射。

視頻 2. 通過(guò)簡(jiǎn)化攝像頭校準(zhǔn),增強(qiáng) AI 驅(qū)動(dòng)的多攝像頭追蹤

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

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

如要使用 omni.replicator.agent.camera_calibration,首先創(chuàng)建一個(gè)俯視攝像頭以及待校準(zhǔn)的攝像頭。俯視攝像頭的精確攝像頭視圖將被用作平面圖。擴(kuò)展將自動(dòng)從攝像頭視圖中為每個(gè)待校準(zhǔn)的攝像頭選擇平面圖上的點(diǎn),并計(jì)算它們?cè)诟┮晹z像頭中的對(duì)應(yīng)點(diǎn)。

使用 omni.replicator.agent.camera_calibration 擴(kuò)展的詳細(xì)情況如下:

通過(guò)從攝像頭視圖中隨機(jī)投射光線,來(lái)自動(dòng)選擇參考點(diǎn),記錄光線與平面圖相交的位置。

攝像頭的外在矩陣由攝像頭原型的變換矩陣導(dǎo)出,內(nèi)在矩陣則根據(jù)攝像頭原型的屬性計(jì)算得出。

將參考點(diǎn)的 3D 位置轉(zhuǎn)換為攝像頭圖像平面上的 2D 位置,并使用這些數(shù)據(jù)計(jì)算出攝像頭的投影矩陣。

計(jì)算參考點(diǎn) 3D 位置與俯視攝像頭圖像平面之間的平移參數(shù)和縮放因子,這能夠提供攝像頭視圖與平面圖之間的對(duì)應(yīng)關(guān)系。

通過(guò)向平面圖均勻投射光線來(lái)確定攝像頭的視野(FOV),收集命中點(diǎn)的數(shù)據(jù),然后根據(jù)這些命中點(diǎn)的坐標(biāo)生成視場(chǎng)多邊形。

最后,將攝像頭的內(nèi)在矩陣和外在矩陣以及投影矩陣和攝像頭視圖與平面圖之間的對(duì)應(yīng)關(guān)系導(dǎo)出到 JSON 文件,并在場(chǎng)景的俯視圖像上渲染 FOV 多邊形。

在 Omniverse 中創(chuàng)建合成攝像頭相對(duì)簡(jiǎn)單,是一個(gè)生成合成視頻數(shù)據(jù)的好方法,所生成的數(shù)據(jù)可用于模型訓(xùn)練和仿真等各種下游任務(wù)。omni.replicator.agent.camera_calibration 為用戶提供了一個(gè)方便創(chuàng)建格式化攝像頭校準(zhǔn)文件的工具,這樣,Omniverse 中的合成攝像頭就能輕松用于各種 Metropolis 參考工作流或應(yīng)用。

結(jié)論

通過(guò)攝像頭校準(zhǔn),NVIDIA Metropolis 參考應(yīng)用可以在提供的平面圖上定位檢測(cè)到的物體,并建立多個(gè)攝像頭之間的物體位置空間關(guān)聯(lián)。這是在智能視頻分析領(lǐng)域,構(gòu)建大規(guī)模實(shí)時(shí)位置服務(wù)和其他有意義的服務(wù),所必不可少的一個(gè)步驟。