日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號(hào)
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

利用 YOLOv8 和 NVIDIA JetPack 6.0 生成交通洞察

2024-07-12 16:03:15·  來源:NVIDIA英偉達(dá)企業(yè)解決方案  
 


智能交通系統(tǒng) (ITS) 在現(xiàn)代城市環(huán)境中的應(yīng)用正變得越來越有價(jià)值和普遍。使用 ITS 應(yīng)用的優(yōu)點(diǎn)包括:


提高交通效率:通過分析實(shí)時(shí)交通數(shù)據(jù),ITS 可以優(yōu)化交通流、緩解擁堵并縮短行車時(shí)間。

提高安全性:ITS 可以檢測潛在危險(xiǎn)、監(jiān)視交通違法行為,并更有效地管理突發(fā)事件,從而使道路變得更加安全。

提高環(huán)境可持續(xù)性:高效的交通管理可減少燃油消耗與尾氣排放,促進(jìn)環(huán)境的可持續(xù)發(fā)展。


重要的是,這些系統(tǒng)需要在邊緣處理信息,以實(shí)現(xiàn)可靠的帶寬、保護(hù)隱私、進(jìn)行實(shí)時(shí)分析等更多功能。


本文將介紹如何使用 NVIDIA JetPack 6.0 中的全新 Jetson 平臺(tái)服務(wù),來構(gòu)建一個(gè)適用于邊緣的端到端交通分析解決方案。該系統(tǒng)集成了多個(gè)功能:使用視頻存儲(chǔ)工具包 (VST) 服務(wù)進(jìn)行視頻數(shù)據(jù)的接收與存儲(chǔ);借助 YOLOv8 和 DeepStream AI 感知服務(wù)實(shí)現(xiàn)實(shí)時(shí)目標(biāo)檢測和車輛追蹤;車輛移動(dòng)的時(shí)空分析。在構(gòu)建好這一流程后,將利用 API 生成分析報(bào)告。


Jetson 平臺(tái)服務(wù)的優(yōu)勢


利用 Jetson 平臺(tái)服務(wù)與 NVIDIA Jetpack 構(gòu)建和部署的 AI 應(yīng)用具有以下優(yōu)勢:


快速、高效這一豐富且經(jīng)過優(yōu)化的 API 驅(qū)動(dòng)的微服務(wù)集合,可以顯著縮短解決問題的時(shí)間。

可擴(kuò)展該微服務(wù)架構(gòu)實(shí)現(xiàn)了各種組件的獨(dú)立擴(kuò)展,根據(jù)需求優(yōu)化資源利用率。

模塊化將應(yīng)用拆分為更小、更易管理的服務(wù),簡化了更新、維護(hù)和故障排除的過程。

靈活性這些服務(wù)能以多種方式進(jìn)行配置和部署,為智能交通系統(tǒng) (ITS) 提供定制化解決方案,針對交通監(jiān)控、交叉路口管理以及行人安全保障等方面。


應(yīng)用概述


ITS 應(yīng)用主要采用了三項(xiàng)核心服務(wù):視頻存儲(chǔ)工具包 (VST)、AI 感知和 AI 分析。此外,它還運(yùn)用 Redis 消息總線、API 網(wǎng)關(guān)、IoT 網(wǎng)關(guān)等幾項(xiàng)基礎(chǔ)服務(wù)。


圖片

圖 1. ITS 應(yīng)用的服務(wù)和連接


VST 是視頻數(shù)據(jù)的入口。它能在基于 Jetson 的平臺(tái)上高效地管理攝像頭和視頻流,提供從多個(gè)視頻源進(jìn)行的硬件加速視頻解碼、流式傳輸和存儲(chǔ)。在該設(shè)置中,視頻輸入文件通過 RTSP 協(xié)議流式傳輸?shù)?VST。有關(guān)使用 VST 和添加 RTSP 流的更多信息,請參見 VST 文檔:

https://docs.nvidia.com/moj/VST_Toc.html


接下來,視頻數(shù)據(jù)流進(jìn)入利用 NVIDIA DeepStream SDK 的 AI 感知服務(wù),其先采用 YOLOv8 物體檢測模型實(shí)現(xiàn)高吞吐量,隨后使用 NvDCF 追蹤器進(jìn)行物體追蹤。該流程基于 NVIDIA Metropolis 架構(gòu)生成元數(shù)據(jù),捕獲場景中檢測到的各種物體的類別和坐標(biāo)信息。


緊接著生成的元數(shù)據(jù)和事件被發(fā)布到 Redis 消息總線,該總線是系統(tǒng)內(nèi)部消息傳遞的骨干。AI 分析服務(wù)訂閱了該總線,接收執(zhí)行詳細(xì)交通分析所需的信息。


這種基于服務(wù)的架構(gòu)確保從視頻輸入到分析的數(shù)據(jù)流暢且高效,充分利用了 NVIDIA Jetson 設(shè)備的處理能力。該方法提高了處理速度和響應(yīng)能力,非常適合需要實(shí)時(shí)數(shù)據(jù)解釋和即時(shí)行動(dòng)的 ITS 應(yīng)用。


用于物體檢測的 YOLOv8


YOLOv8 作為最先進(jìn)的物體檢測模型脫穎而出,以其無與倫比的速度和準(zhǔn)確性著稱。其輕量級(jí)架構(gòu)特別適合部署在 NVIDIA Jetson 等邊緣設(shè)備上。在 ITS 應(yīng)用中,YOLOv8 能夠?qū)崟r(shí)檢測和分類車輛、行人、交通標(biāo)志等對象。這為管理和優(yōu)化交通流量、加強(qiáng)道路安全以及支持自動(dòng)化交通系統(tǒng)提供關(guān)鍵數(shù)據(jù)。有關(guān)各種 YOLO 模型的更多信息,請參閱計(jì)算機(jī)視覺中的 YOLO 架構(gòu)綜述:


https://arxiv.org/abs/2304.00501


下載和準(zhǔn)備 YOLOv8


開始使用前,請先在 GitHub 的 ultralytics 資源庫下載 YOLOv8 模型。本文使用 YOLOv8 發(fā)布版本所訓(xùn)練的 COCO 數(shù)據(jù)集中轎車、公交車和卡車三類作為示例。請注意,用戶有責(zé)任驗(yàn)證每個(gè)數(shù)據(jù)集許可證是否符合預(yù)定用途。


接下來,需要將該模型轉(zhuǎn)換成 NVIDIA TensorRT 執(zhí)行引擎,以針對 NVIDIA Jetson 的硬件能力對其進(jìn)行優(yōu)化。DeepStream 微服務(wù)容器附帶的腳本可幫助簡化這一轉(zhuǎn)換過程。


要運(yùn)行 YOLOv8 安裝腳本,首先要確保您已按照 Jetson 平臺(tái)服務(wù)文檔中的“快速入門”部分所述的步驟安裝了微服務(wù)、參考應(yīng)用以及 NVStreamer。此時(shí),您還可以配置 NVStreamer 以通過 RTSP 傳輸以下文件,該文件將作為輸入使用。

opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4


要執(zhí)行腳本,請運(yùn)行針對您的硬件提供的以下命令。


Jetson AGX Orin:



Jetson Orin NX16:



設(shè)置腳本執(zhí)行的任務(wù)包括:

  1. 硬件特定配置:根據(jù) NVIDIA 硬件(AGX 或 NX16)調(diào)整諸如批量大小等參數(shù),以優(yōu)化性能。

  2. 依賴性管理:下載 YOLOv8 模型文件和 COCO 數(shù)據(jù)集,安裝所需庫,并準(zhǔn)備用于量化的校準(zhǔn)圖像。

  3. INT8 校準(zhǔn):將浮點(diǎn)模型量化為 INT8,以獲得最佳推理性能。

  4. 模型轉(zhuǎn)換:將模型從 PyTorch 轉(zhuǎn)換成 onNX 格式,并生成 TensorRT 引擎。

這個(gè)過程大約需要 15 到 30 分鐘,并生成部署 YOLO 所需的以下文件:

  • ./yolov8s/calib.table

  • ./yolov8s/model_b4_gpu0_int8.engine 或 (依據(jù)設(shè)備類型的不同)

    ./yolov8s/model_b8_gpu0_int8.engine

  • ./yolov8s/yolov8s-dependencies/yolov8s.onnx


自定義 AI 感知服務(wù)


用于 AI 感知的 DeepStream 容器還集成了一個(gè)程序庫。該庫包含自定義函數(shù),用于從 YOLOv8 模型中創(chuàng)建優(yōu)化后的 NVIDIA TensorRT 引擎,并解析該模型輸出結(jié)果。這個(gè)轉(zhuǎn)換腳本和程序庫均來自 GitHub 上的 marcoslucianops/DeepStream-Yolo 資源庫(遵循 MIT 許可):

https://github.com/marcoslucianops/DeepStream-Yolo


這些自定義函數(shù)用于配置 DeepStream 推理插件:




運(yùn)行應(yīng)用程序


設(shè)置完成后,就可以運(yùn)行應(yīng)用了。AI-NVR 堆棧中包含了該應(yīng)用程序的 Docker Compose 配置。請使用下方提供的與您硬件配置相匹配的命令來運(yùn)行。


Jetson AGX Orin:



Jetson Orin NX16:



利用 AI 分析服務(wù)進(jìn)行車輛數(shù)據(jù)分析


利用 AI 分析服務(wù)的絆線(或越線)和軌跡功能進(jìn)行車流量分析。您可以通過 REST API 配置這些分析功能,包括:


1. 在給定的時(shí)間范圍內(nèi)統(tǒng)計(jì)穿越預(yù)設(shè)線段的車輛總數(shù)(包括轎車、公交車和卡車)。

2. 在給定時(shí)間范圍內(nèi)的車流量趨勢分析,可縮短時(shí)間窗口進(jìn)行深入研究。

3. 在給定時(shí)間范圍內(nèi)的車流量熱力圖展示。


概念


絆線(或越線)是指在攝像頭平面上繪制的虛擬線條,用于統(tǒng)計(jì)雙向穿越該線條的物體數(shù)量。


軌跡指車輛實(shí)際行駛的路徑,由系統(tǒng)逐幀追蹤并記錄。AI 感知服務(wù)會(huì)為每輛車分配一個(gè)唯一 ID。系統(tǒng)中的“軌跡”概念代表車輛行駛的總路徑。


API 規(guī)范


有關(guān)以下部分中提到的 API 詳細(xì)信息,請參閱 AI 分析服務(wù)規(guī)范:

https://docs.nvidia.com/jetson/jps/emdx_API/index.html


絆線配置


絆線分析可以針對給定的傳感器,通過以下 API 進(jìn)行配置。請注意,下面使用的值應(yīng)與通過 sensor/add API 向 VST 添加流時(shí)設(shè)置的 name 相同??梢允褂?cURL 或 Postman 等工具發(fā)出 HTTP post 請求。


HTTP POST 請求端點(diǎn):


http://{jetson-device-ip}:30080/api/emdx/api/config/tripwire?sensorId=


請注意,必須將 jetson-device-ip 替換為 Jetson 設(shè)備正確的 IP 地址。


請求:




生成絆線時(shí)間序列分析


可通過絆線計(jì)數(shù) API 檢索給定時(shí)間范圍內(nèi)不同車輛類型(由 YOLOv8 模型檢測)的總穿越次數(shù)。


一旦絆線創(chuàng)建完成,您可以使用以下示例查詢來檢索在 2024 年 5 月 15 日格林威治時(shí)間上午 11 點(diǎn)至中午 12 點(diǎn)期間,傳感器 ID ExpressWay 上配置的 ID 為 road-tw 的絆線處各類物體的總穿越次數(shù)。此外,該查詢還請求對轎車、公交車和卡車這三類對象的穿越次數(shù)進(jìn)行細(xì)分。


HTTP GET 查詢:




請注意,與前面一樣,必須將 jetson-device-ip 替換成 Jetson 設(shè)備正確的IP地址。


響應(yīng):




交通趨勢直方圖可視化


還可以使用絆線計(jì)數(shù)直方圖 API 將之前的總計(jì)數(shù)匯總到更小的時(shí)間窗口中。

使用以下示例查詢來檢索在格林威治標(biāo)準(zhǔn)時(shí)間 2024 年 5 月 15 日上午 11 點(diǎn)到中午 12 點(diǎn)之間,傳感器 ID 為 ExpressWay 上配置的 ID 為 road-tw 的絆線處物體(所有類型)穿越次數(shù)的直方圖,并將其細(xì)分到 1 分鐘的時(shí)間窗口。


HTTP GET 查詢:




這將轉(zhuǎn)儲(chǔ)每個(gè) 1 分鐘間隔的 JSON 輸出與 1 分鐘窗口中的匯總計(jì)數(shù)。您可以將這些信息繪制成堆疊直方圖,以表示計(jì)數(shù)隨時(shí)間變化的趨勢(圖 2)。


圖片

圖 2. 以 1 分鐘為間隔的交通流量計(jì)數(shù)直方圖


車輛軌跡熱力圖可視化


本部分將介紹如何使用 AI 分析服務(wù)中的行為 API 生成熱力圖。熱力圖是通過累積運(yùn)動(dòng)軌跡并將它們映射到區(qū)域空間中生成的,它提供了一種可視化方式幫助呈現(xiàn)交通流隨時(shí)間的變化趨勢。




圖 3. 移動(dòng)交通熱力圖


熱力圖生成邏輯


根據(jù)給定時(shí)間范圍內(nèi)所有物體的軌跡行為坐標(biāo) [x, y],通過  numpy.histogram2d. 計(jì)算出直方圖。然后應(yīng)用高斯濾波器對結(jié)果進(jìn)行平滑處理。請?jiān)L問 GitHub 上的 NVIDIA-AI-IOT/jetson-platform-services 資源庫,查看與此邏輯相關(guān)的函數(shù)筆記。使用 VST API 獲取傳感器圖像快照。在圖 3 中,平滑后的直方圖被可視化成熱力圖。


GitHub:

https://github.com/NVIDIA-AI-IOT/jetson-platform-services/tree/main/notebooks/traffic-analytics


VST API:

https://docs.nvidia.com/moj/vst_API/index.html#/v1/getLiveStreamPicture


使用下面的示例,查詢檢索傳感器 ID ExpressWay 在給定時(shí)間內(nèi)對象類型為轎車、公交車和卡車的軌跡行為。

HTTP GET 查詢:



響應(yīng):



響應(yīng)了一個(gè)給定對象隨時(shí)間變化的軌跡項(xiàng)數(shù)組,其中每個(gè)項(xiàng)都是由兩個(gè)元素構(gòu)成的。第一個(gè)元素是以毫秒為單位的視頻幀時(shí)間戳(1708598580297,Unix 時(shí)間),第二個(gè)元素是位置坐標(biāo)數(shù)組 [x,y],例如 [291, 590],表示該圖像平面上 x=291,y=590。


交通分析文件


請?jiān)L問 GitHub 上的 NVIDIA-AI-IOT/jetson-platform-services 資源庫,并下載文件在您的本地系統(tǒng)上運(yùn)行。請按照步驟說明嘗試使用您自己的視頻文件或攝像頭進(jìn)行操作。


總結(jié)


本文介紹了如何使用 NVIDIA JetPack 6.0 中的 Jetson 平臺(tái)服務(wù)和 YOLOv8 物體檢測模型來構(gòu)建智能交通應(yīng)用。Jetson 平臺(tái)服務(wù)是一組功能豐富的微服務(wù),可用于邊緣構(gòu)建 AI 應(yīng)用。開發(fā)者可以使用這些 API 快速、高效地開發(fā)應(yīng)用,并生成車輛計(jì)數(shù)、交通熱力圖等洞察。這些微服務(wù)具有可替換性,并且可以擴(kuò)展到多種邊緣 AI 應(yīng)用中。

分享到:
 
反對 0 舉報(bào) 0 收藏 0 評論 0
滬ICP備11026917號(hào)-25