針對特定用例的大規模合成數據在現實世界的計算機視覺和 AI 工作流程中變得越來越重要。這是因為數字孿生是一種強大的方式,可以為工廠、零售空間和其他資產創建基于物理性質的虛擬副本,從而實現真實環境的精確模擬。
NVIDIA Isaac Sim 基于 NVIDIA Omniverse 構建,是一款完全可擴展的參考應用,用于設計、模擬、測試和訓練支持 AI 的機器人。 Omni.Replicator.Agent (ORA) 是 Isaac Sim 中的一個擴展,用于生成合成數據,以便專門用于訓練計算機視覺模型,例如 TAO PeopleNet Transformer 和 TAO ReIdentificationNet Transformer.
本文是關于構建多攝像頭追蹤視覺 AI 應用的系列文章的第二篇。在第一篇文章中,我們提供了端到端多攝像頭追蹤工作流程的高級視圖,涵蓋模型的模擬、訓練和部署以及工作流程的其他組件。
現在,我們將深入探討模擬和訓練步驟,在這些步驟中,我們將生成高質量的合成數據,以針對特定用例微調基礎模型。在本文中,我們將向您介紹 TAO ReIdentificationNet (ReID), 這是一種常用于 Multi-Camera tracking (MTMC) 和 Real-time Location System (RTLS) 應用程序的網絡,用于跟蹤和識別不同攝像頭視圖中的物體,并展示如何使用從 ORA 收集的合成數據提高 ReID 的準確性。
具體來說,我們演示了如何使用從 Isaac Sim 中的 ORA 擴展程序中獲得的數據,使用 NVIDIA TAO API 訓練和微調 ReID 模型,以適應您的用例。這打開了使用合成數據以可擴展方式增強現有的真實數據集的大門,從而提高數據集的多樣性和模型的可靠性。

ReIdentificationNet 概述
ReIdentificationNet 是一個用于 MTMC 和 RTLS 工作流程的網絡,通過從檢測到的對象作物中提取嵌入來識別不同攝像頭中的對象。這些嵌入捕獲有關外觀、紋理、顏色和形狀的基本信息,從而增強跨攝像頭識別類似對象的能力。這意味著對象以相似的外觀在攝像頭中具有相似的嵌入。
ReID 模型用于區分獨特對象的準確性在多攝像頭追蹤中發揮著至關重要的作用。MTMC 和 RTLS 應用程序依賴于 ReIdentificationNet 的嵌入,以關聯跨攝像頭的對象并執行追蹤。

圖 2. 使用 ReIdentificationNet 在多個攝像頭中識別和追蹤多個對象 (來源)

模型架構
網絡的輸入是對象的 RGB 圖像裁剪,大小為 256 x 128。模型為每個圖像裁剪輸出一個大小為 256 的嵌入向量。
目前,ReIdentifcationNet 支持?ResNet-50?和?Swin Transformer?主干。ReIdentificationNet 的 Swin 變體是一種以人為中心的基礎模型,在大約 300 萬張圖像裁剪上預訓練,然后在各種監督的人員重新識別數據集上微調。

預訓練
在預訓練中,我們采用了一種名為 SOLIDER 的自監督學習技術:面向以人為本的視覺任務的語義可控自監督學習框架。
SOLIDER 基于 DINO (self-DIstillation with NO labels) 構建,并使用人類圖像作物的先前知識生成偽語義標簽,以使用語義信息訓練人類表征。SOLIDER 使用語義控制器調整人類表征的語義內容,以適應人員重新識別的下游任務。
如需了解更多信息,請參閱Beyond Appearance:a Semantic Controllable Self-Supervised Learning Framework for Human-Centric Visual Tasks。
用于預訓練的數據集包括 NVIDIA 專有數據集與Open Images V5。
微調
為進行微調,預訓練模型在各種監督人重新識別數據集上進行訓練,這些監督數據集包括合成和真實的 NVIDIA 專有數據集。
數據集類型 | #張圖像 | #個身份 |
合成 | 14392 | 151 |
真實 | 67563 | 4470 |
表 2 顯示了在 Swin-Tiny 主干上游重新識別任務的準確性。
Model type | Model parameters size | Precision | Embedding size | mAP (Mean Average Precision) |
Top-1 Accuracy |
---|---|---|---|---|---|
Resnet50 | 2410 萬 | FP16 | 256 | 93.0% | 94.7% |
Swin-Tiny | 2810 萬 | FP16 | 256 | 94.99% | 96.9% |
為什么需要微調?
ReID 網絡性能不佳可能會導致 ID 切換,即由于不同個體之間的高度視覺相似性或外觀隨著時間的推移而發生變化,系統錯誤地將 ID 關聯起來。
出現此問題的原因是,網絡可能無法很好地泛化到給定場景的特定條件,例如光照、背景和服裝變化。例如,在圖 4 中,由于嵌入質量不佳,發生了 ID 切換,導致 ID 4 轉換為 ID 9 和 ID 17,對象 ID 6 轉換為 ID 14。
為了減輕 ID 交換和提高準確性,使用 ORA 微調 ReID 網絡以特定場景中的數據至關重要。這可確保模型學習環境的獨特特征和細微差別,從而實現更可靠的識別和跟蹤。

模擬:使用 Isaac Sim 和 Omniverse Replicator Agent 擴展程序
以下視頻介紹了如何使用 Isaac Sim 和 ORA 擴展程序安裝、設置和運行模擬,以生成合成數據并提高 ReID 模型的準確性。
配置模擬的最佳實踐
要生成高質量的合成數據,需要考慮以下幾個關鍵方面:
- 字符數量
- 角色的獨特性
- 攝像頭位置
- 角色行為
字符數量
ReIdentificationNet 從唯一身份的數量中受益匪淺。在使用 ORA 設置數字孿生時,選擇正確數量的代理至關重要。
在 ORA 界面的 Character Settings 下,您可以設置字符數量。給定環境中的大小與 Isaac Sim 默認倉庫數字資產相似或更大時,則至少使用 10-12 個唯一字符。
角色的獨特性
您在 Isaac Sim 中選擇的角色應具有獨特的外觀。這通常包括穿不同服裝、鞋、配件、頭盔等的角色。為數字孿生選擇合適的資產也很重要。例如,選擇為倉庫環境穿安全背心的角色。
攝像頭位置
攝像頭的位置應確保其視野錐體的結合覆蓋預計會檢測和追蹤角色的整個地面區域為確保這一點,請將攝像頭放置在較高的高度,例如天花板并傾斜向地面。
攝像頭的定位方式還必須確保視錐體的結合能夠保持對所有追蹤對象的持續觀察,每個角色應始終從 3–4 個不同的攝像頭視角拍攝,以獲得最佳數據數量和質量。
通過從 Stage 窗格的 World 部分中選擇每個攝像頭、調整屬性并檢查其視野,可以驗證攝像頭的放置位置。
角色行為
可以在 Isaac Sim ORA 中自定義角色行為,可以手動輸入行為命令,也可以為每個角色隨機生成行為命令,從而為其動作提供靈活性和多樣性。
對于 ReID 數據采集,我們建議隨機生成行為,只要所需的攝像頭角度捕獲物體。

圖 6. Isaac Sim ORA 擴展程序通過不同攝像頭角度捕獲物體運動
訓練:微調 ReIdentificationNet
從 ORA 擴展程序中獲取數據后,準備并對其進行采樣,以訓練 TAO ReIdentificationNet 模型。使用Metropolis 微服務或TAO 工具套件中的 TAO 微調 notebook 執行微調過程。
數據采樣指南
在對 ReID 的訓練數據進行采樣時,以下幾點標準非常重要。
- 標識數量:ReIdentificationNet 大大受益于更多獨特的身份。Isaac Sim 場景中存在的所有身份都會自動成為訓練樣本的一部分。我們建議對 10-12 個對象進行微調,并逐步增加數量。
- 攝像頭數量:ReID 模型的性能也會受到攝像頭數量的極大影響。更多的攝像頭意味著場景和物體的覆蓋率更高。我們建議在小型到中型環境中放置 3–4 個攝像頭。
- 訓練圖像數量:我們建議從較小數量的樣本開始,每個 ID 大約 50 個樣本,共 500 個樣本。在觀察到準確度達到飽和后,可以添加更多樣本。
- 邊框寬高比:由于 ReID 是以人為中心的模型,因此邊框裁剪的高度必須高于其寬度。我們建議邊框寬高比小于 1。
- 數據格式:從 KITTI 格式的 ORA 擴展名獲取的數據必須轉換為 Market-1501 格式,以進行 TAO ReIdentificationNet 訓練。ReIdentificationNet 需要圖像位于三個文件夾中:
bounding_box_train
、bounding_box_test
和query
。每個文件夾由唯一字符的圖像組成,文件名格式如下:000x_cxsx_0x_00.jpg
。例如,圖像0001_c1s1_01_00.jpg
是相機c1
的第一個序列s1
,01
是序列c1s1
中的第一個幀,0001
是分配給對象的唯一 ID。有關更多信息,請參閱 Market-1501 Dataset 和 ReIdentificationNet。
圖 7 顯示了數據集樣本。

訓練技巧
準備好數據后,請使用 Bag of Tricks 和 A Strong Baseline for Deep Person Re-identification 中的以下訓練技巧,在微調過程中提高 ReID 模型的準確性。
- ID 損失 + triplet 損失 + center 損失: 重新識別任務是一個簡單的分類,其中每個類都是給定對象的 ID。雖然此 ID 損失有助于訓練 ReID,但不足以提高模型的準確性。為了進一步增強這一點,我們使用 triplet 和 center 損失支持 ID 損失。triplet 損失有助于推動正身份樣本的嵌入接近,并使負身份樣本相互遠離,而 center 損失有助于了解每個類的中心,并懲罰特征之間的距離以提高類內的緊湊性。
- 隨機擦除增強: 在跨攝像頭追蹤物體時,遮擋是常見場景。訓練過程的目標是模擬此類場景,以提高通用性,即在訓練數據中刪除圖像的隨機塊,以復制遮擋。
- 熱身學習率: 固定的學習率不足以收斂 ReIdentificationNet 的訓練,因此前 10 個 epoch 的學習率 (LR) 呈線性增長,從 3.5 x 10-5 增加到 3.5 x 10-6。然后,在第 40 個 epoch 和第 70 個 epoch 中,LR 分別減少到 3.5 × 10?5 和 3.5 × 10?6。
- 批量歸一化瓶頸 (BNNeck):由于 ID 損失優化的是余弦距離,而三元組損失優化的是歐幾里德距離,因此它們的損失具有不一致的含義,這會導致損失值波動為了減輕這種情況,在特征層之后使用 BNNeck 獲取歸一化特征。
- 標簽平滑: 訓練集中存在的標識可能不會出現在測試集中。為防止過擬合,可以使用標簽平滑作為此分類任務的訓練技巧。
訓練規范
借助 TAO,您可以通過調整規格文件中的 epochs、batch size 和 learning rates 等設置來自定義微調實驗。如需微調,請將 epochs 設置為 10。通過基于測試數據評估模型來監控過擬合或欠擬合。如果發生過擬合,可以生成其他樣本并恢復訓練,以確保模型在測試數據上表現良好。
有關訓練規范的更多信息,請參閱ReIdentificationNet Transformer。
評估
現在,您的 ReID 模型可以使用訓練技巧和采樣數據進行微調。評估腳本可以幫助您在微調前后驗證準確性。使用 rank-1 和 mAP 分數來評估 ReIdentificationNet 的準確性。
Rank-1 精度?用于測量網絡做出的頂部預測的正確頻率,對于每個查詢圖像,評估其第一個檢索到的結果是否屬于同一身份。
mAP 是一個更全面的指標,用于考慮 ReID 模型所做的完整預測列表。對于每個查詢,計算平均精度,該精度是指正確分類的正確陽性識別的比例。mAP 分數是所有查詢中所有這些計算出的 AP 分數的平均值。該指標更可靠,因為它考慮了檢索到的個人列表中每個 rank 的精度。
表 3 顯示了微調前后的結果。我們從使用 ORA 拍攝的 10 分鐘視頻中采樣了這些圖像,其中場景中有 10 個對象和四個攝像頭。
模型 | 骨干網絡 | mAP | 等級 1 |
默認 ReID | ResNet50 | 63.54% | 68.32% |
微調的 ReID (2000 個樣本訓練 30 次) |
78.4% | 87.59% | |
默認 ReID | 小旋轉 | 83.9% | 85.29% |
微調的 ReID (2000 個樣本訓練 30 次) |
91.3% | 93.80% |
以下結果表明,對采樣數據進行微調有助于提高準確度分數。您可以增加訓練 epochs 以提高準確度分數。評估 ReID 在其他現有公共數據集上,看看模型是否過擬合。
比較微調前后嵌入距離的分布(圖 8)。

在圖 8 中,x 軸表示嵌入之間的余弦距離,而 y 軸表示密度。在這兩個圖中,綠色分布對應 ID 匹配(正分布),紅色分布對應 ID 不匹配(負分布)。
- 微調前,ID 匹配(綠色)范圍從 0 到 1,ID 不匹配(綠色)范圍從 0.09 到 1。
- 經過微調后,ID 匹配將集中在較低的距離 (0 到 0.61),不匹配的范圍從 (0.3 到 1) 更分散,這表明嵌入質量有所提高。
這兩個分布之間的最小重疊也表明身份可分離性更好。
預期訓練時間
10-12 個字符的預期訓練時間應盡可能最小,但隨著字符、攝像頭和訓練樣本數量的增加,訓練時間可能會增加。
我們提供此類場景的總訓練時間的估計值。對于單個 NVIDIA A100 GPU,約 2000 個圖像樣本在 30 個 epochs 的預期訓練時間約為 30 分鐘。
部署:將微調后的模型導出到 ONNX,并提高 MTMC 和 RTLS 的準確性
這種經過微調的 ReID 模型現在可以導出為 ONNX 格式,以便在 MTMC 或 RTLS 應用程序中進行部署。有關更多信息,請參閱使用多攝像頭跟蹤工作流程優化大空間流程以及NVIDIA Metropolis 微服務指南中的 Re-Identification主題。
模型部署后,使用這個新 ReID 模型可視化追蹤結果(圖 9)。

結束語
本文重點介紹的工作流程使您能夠在合成數據上微調 ReID 模型。ORA 擴展程序提供了一種靈活的方式來記錄角色移動,而 TAO API 則提供了一種開發者友好的方式來訓練、推理、評估和導出經過微調的 ReID 模型,從而無需任何標記即可提高模型的準確性。
要使用 NVIDIA 工具自定義工作流程并在其基礎上進一步構建,涵蓋從模擬到微調和部署的整個視覺 AI 生命周期,請參閱 Metropolis Multi-Camera AI 快速入門指南;有關技術問題,請訪問 NVIDIA TAO 論壇 或 Isaac Sim 論壇。
有關更多信息,請參閱以下資源:
- 利用多攝像頭追蹤工作流程優化大型空間中的流程
- 借助 NVIDIA Metropolis 微服務和 NVIDIA Isaac Sim 實現從數字孿生到云原生部署的實時視覺 AI
- AI 驅動的多攝像頭追蹤
?