国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在NVIDIA Jetson平臺創建多攝像頭管道

星星科技指導員 ? 來源:NVIDIA ? 作者:Tomasz Lewicki ? 2022-04-28 09:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

多攝像頭應用越來越流行;它們對于實現自主機器人、智能視頻分析( IVA )和 AR / VR 應用至關重要。無論具體的用例如何,都必須始終執行一些常見任務:

俘虜

預處理

編碼

陳列

在許多情況下,您還希望在攝像頭流上部署 DNN ,并在檢測上運行自定義邏輯。圖 1 顯示了應用程序的一般流程。

pipeline-flow.png

圖 1 本項目實施的管道流程

在本文中,我將展示如何在 NVIDIA Jetson 平臺上高效地實現這些常見任務。具體來說,我介紹了 jetmulticam ,一個易于使用的 Python 軟件包,用于創建多攝像頭管道。我在一個帶有環繞攝像頭系統的機器人上演示了一個特定的用例。

多攝像頭硬件

選擇相機時要考慮的參數有很多:分辨率、幀速率、光學、全局/滾動快門、界面、像素大小等。

在這個特定的多攝像頭設置中,可以使用以下硬件:

NVIDIA Jetson Xavier NX 單元

Leopard Imaging 提供的支持 GMSL2 的 carrier board

Leopard Imaging 的 3 × IMX185 GMSL2 cameras

IMX185 攝像頭的視野約為 90 °。如圖 2 所示,以 270 °的總視場相互垂直安裝。

cameras-mounted-maximize-horizontal-fov.png

圖 2 安裝攝像頭是為了最大限度地提高水平視野

攝像頭使用 GMSL 接口,該接口在距離 Jetson 模塊幾米遠的位置提供了很大的靈活性。在這種情況下,可以將攝像頭升高約 0.5 米,以獲得更大的垂直視野。

gmsl-interface.png

圖 3 GMSL 接口可以靈活地將攝像頭定位在遠離 Jetson 模塊的位置

開始使用 Jetmulticam

首先,在 Jetson 板上下載并安裝 NVIDIA Jetpack SDK 。然后,安裝jetmulticam軟件包:

$ git clone https://github.com/NVIDIA-AI-IOT/jetson-multicamera-pipelines.git $ cd jetson-multicamera-pipelines
$ bash scripts/install_dependencies.sh
$ pip3 install Cython
$ pip3 install .

基本多攝像機流水線

安裝完成后,可以使用CameraPipeline類創建基本管道。通過 initializer 參數傳遞要包含在管道中的攝影機列表。在下面的示例中,元素[0, 1, 2]對應于設備節點/dev/video0/dev/video1/dev/video2

from jetmulticam import CameraPipeline
p = CameraPipeline([0, 1, 2])

就這樣,管道已經初始化并啟動。現在,您可以從管道中的每個攝像頭讀取圖像,并以numpy陣列的形式訪問它們。

img0 = p.read(0) # img0 is a np.array
img1 = p.read(1)
img2 = p.read(2)

通常,在一個循環中讀取相機是很方便的,如下面的代碼示例所示。管道從主線程異步運行,read始終獲取最新的緩沖區。

while True:
 img0 = p.read(0)
 print(img0.shape) # >> (1920, 1080, 3)
 time.sleep(1/10)

更復雜的人工智能管道

現在,您可以構建更復雜的管道。這一次,使用CameraPipelineDNN類組成更復雜的管道,以及NGC目錄PeopleNetDashCamNet中的兩個預訓練模型。

import time
from jetmulticam import CameraPipelineDNN
from jetmulticam.models import PeopleNet, DashCamNet

if __name__ == "__main__":

 pipeline = CameraPipelineDNN(
 cameras=[2, 5, 8],
 models=[
 PeopleNet.DLA1,
 DashCamNet.DLA0,
 # PeopleNet.GPU
 ],
 save_video=True,
 save_video_folder="/home/nx/logs/videos",
 display=True,
 )

 while pipeline.running():
 arr = pipeline.images[0] # np.array with shape (1080, 1920, 3)
 dets = pipeline.detections[0] # Detections from the DNNs
 time.sleep(1/30)

下面是管道初始化的分解:

  • 攝像機
  • 模型
  • 硬件加速
  • 保存視頻
  • 顯示視頻
  • 主回路

攝像機

首先,與前面的示例類似,cameras參數是傳感器列表。在這種情況下,使用與設備節點關聯的攝像頭:

  • /dev/video2
  • /dev/video5
  • /dev/video8
cameras=[2, 5, 8]

模型

第二個參數 models 使您能夠定義要在管道中運行的預訓練模型。

 models=[
 PeopleNet.DLA1,
 DashCamNet.DLA0,
 # PeopleNet.GPU
 ],

在這里,您將從NGC部署兩個經過預訓練的模型:

  • PeopleNet:一種能夠識別人、臉和包的物體檢測模型。
  • DashCamNet:能夠識別四類對象的模型:汽車、人、路標和自行車。

有關更多信息,請參閱 NGC 中的model cards

硬件加速

模型使用NVIDIA 深度學習加速器( DLA )實時運行。具體來說,可以在 DLA0 ( DLA Core 0 )上部署 PeopleNet ,在 DLA1 上部署 DashCamNet 。

在兩個加速器之間分配模型有助于提高管道的總吞吐量。此外, DLA 甚至比 GPU 更節能。因此,在最高時鐘設置的滿載情況下,系統消耗的電量僅為~ 10W 。最后,在這種配置中, Jetson GPU 仍然可以使用 Jetson NX 上的 384 CUDA 內核自由加速更多任務。

下面的代碼示例顯示了當前支持的模型/加速器組合的列表。

pipeline = CameraPipelineDNN(
 # ...
 models=[
 models.PeopleNet.DLA0,
 models.PeopleNet.DLA1,
 models.PeopleNet.GPU,
 models.DashCamNet.DLA0,
 models.DashCamNet.DLA1,
 models.DashCamNet.GPU
 ]
 # ...
)

保存視頻

接下來的兩個參數指定是否存儲編碼的視頻,并定義用于存儲的文件夾。

save_video=True,
save_video_folder="/home/nx/logs/videos",

顯示視頻

作為最后的初始化步驟,將管道配置為在屏幕上顯示視頻輸出,以便進行調試。

display=True

主回路

最后,定義主循環。在運行期間,圖像在pipeline.images下可用,檢測結果在pipeline.detections下可用。

while pipeline.running():
 arr = pipeline.images[0] # np.array with shape (1080, 1920, 3)
 dets = pipeline.detections[0] # Detections from the DNNs
 time.sleep(1/30)

下面的代碼示例顯示了結果檢測。對于每次檢測,您都會得到一個包含以下內容的字典:

  • 對象類
  • 以像素坐標定義為[左、寬、頂、高]的對象位置
  • 檢測置信度
>>> pipeline.detections[0]
[
 # ...
 {
 "class": "person",
 "position": [1092.72 93.68 248.01 106.38], # L-W-T-H
 "confidence": 0.91
 },
 #...
]

用自定義邏輯擴展人工智能管道

作為最后一步,您可以使用 DNN 輸出擴展主循環以構建自定義邏輯。具體來說,您可以使用攝像頭的檢測輸出在機器人中實現基本的人員跟隨邏輯。源代碼可在 NVIDIA-AI-IOT/jetson-multicamera-pipelines GitHub repo 中找到。

要找到要跟蹤的人,請解析管道。檢測輸出。此邏輯在 find_closest_human 函數中實現。

根據 dets2steer 中邊界框的位置計算機器人的轉向角。

如果人在左圖中,最大限度地左轉。

如果人在正確的形象中,盡量向右轉。

如果人在中心圖像中,則按邊界框中心的 X 坐標成比例旋轉。

生成的視頻將保存到/home/nx/logs/videos,正如您在初始化過程中定義的那樣。

解決方案概述

下面簡要介紹一下在下面的示例中配置jetmulticam works. The package dynamically creates and launches a GStreamer pipeline with the number of cameras that your application requires. Figure 4 shows how the underlying GStreamer管道時的外觀。如您所見,系統中所有關鍵操作(由綠色方框表示)都受益于硬件加速。

圖 4 系統的內部組件 jetmulticam package

首先,使用多個攝像頭nvarguscamerasrc在視頻圖上捕獲。使用nvvidconv或nvvideoconvert重新縮放每個緩沖區并將其轉換為 RGBA 格式。接下來,使用服務器提供的component對幀進行批處理 DeepStream SDK 。默認情況下,批次大小等于系統中的攝像頭數量。

要部署 DNN 模型,請利用 nvinfer 元素。在演示中,我在 Jetson Xavier NX 上提供的兩種不同加速器 DLA core 1 和 DLA core 2 上部署了兩種型號, PeopleNet 和 DashCamNet 。然而,如果需要的話,可以將更多的模型堆疊在彼此之上。

生成的邊界框被nvosd元素覆蓋后,使用nvoverlaysink將其顯示在 HDMI 顯示屏上,并使用硬件加速的 H264 編碼器對視頻流進行編碼。保存到。 mkv 文件。

Python 代碼中可用的圖像(例如pipeline.images[0])通過回調函數或 probe 解析為numpy數組,并在每個視頻轉換器元素上注冊。類似地,在最后一個nvinfer元素的 sinkpad 上注冊了另一個回調函數,該元素將元數據解析為用戶友好的檢測列表。有關源代碼或單個組件配置的更多信息,請參閱 create_pipeline 函數。

結論

NVIDIA Jetson 平臺上的硬件加速與 NVIDIA SDKS 結合,可以實現卓越的實時性能。例如,下面的示例在三個攝像頭流上實時運行兩個對象檢測神經網絡,同時保持 CPU 利用率 低于 20% 。

本文展示的Jetmulticam包使您能夠用 Python 構建自己的硬件加速管道,并在檢測之上包含自定義邏輯。

關于作者

Tomasz Lewicki 是 NVIDIA 的嵌入式工程實習生。他擁有圣何塞州立大學計算機工程碩士學位,華沙工業大學華沙工業大學機器人工程學學士學位。他的興趣集中在計算機視覺和機器人應用的深度學習上。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    5592

    瀏覽量

    109721
  • 攝像頭
    +關注

    關注

    61

    文章

    5091

    瀏覽量

    103110
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ESP32-S3在初始化攝像頭時檢測到攝像頭模組型號不被支持

    你現在遇到的核心問題是:ESP32-S3在初始化攝像頭時檢測到攝像頭模組型號不被支持(錯誤碼0x106(ESP_ERR_NOT_SUPPORTED)),導致攝像頭探測失敗并觸發設備重啟。這個錯誤
    發表于 02-11 06:38

    何在NVIDIA Jetson AGX Thor上部署1200億參數大模型

    上一期介紹了如何在 NVIDIA Jetson AGX Thor 上使用 Docker 部署 vLLM 推理服務,以及使用 Chatbox 作為前端調用 vLLM 運行的模型(上期文章鏈接)。本期
    的頭像 發表于 12-26 17:06 ?4818次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>NVIDIA</b> <b class='flag-5'>Jetson</b> AGX Thor上部署1200億參數大模型

    何在NVIDIA Jetson平臺上運行最新的開源AI模型

    在小型、低功耗的邊緣設備上運行先進的 AI 和計算機視覺工作流正變得越來越具有挑戰性。機器人、智能攝像頭和自主設備需要實時智能來感知、理解并做出反應,而無需依賴云端。NVIDIA Jetson
    的頭像 發表于 12-24 10:38 ?1564次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>NVIDIA</b> <b class='flag-5'>Jetson</b><b class='flag-5'>平臺</b>上運行最新的開源AI模型

    自動駕駛既然有雙目攝像頭了,為什么還要三目攝像頭

    [首發于智駕最前沿微信公眾號]在自動駕駛領域,純視覺方案一直受到不少人的認可。雙目攝像頭由于模擬了人眼的工作方式,能夠通過視差計算還原三維信息,在距離判斷和空間感知上具有天然優勢,因此被廣泛應用于純
    的頭像 發表于 12-09 08:59 ?974次閱讀
    自動駕駛既然有雙目<b class='flag-5'>攝像頭</b>了,為什么還要三目<b class='flag-5'>攝像頭</b>?

    實戰指南:用攝像頭模塊實現場景智能拍攝全流程!

    想通過攝像頭模塊實現場景智能拍攝?本指南為你提供全流程實戰指引。從前期準備、模塊集成,到場景拍攝測試與優化,每一步都結合實際操作細節展開,讓你清晰掌握攝像頭模塊在不同場景(如安防監
    的頭像 發表于 11-21 17:59 ?264次閱讀
    實戰指南:用<b class='flag-5'>攝像頭</b>模塊實現<b class='flag-5'>多</b>場景智能拍攝全流程!

    場景智能拍攝實戰:攝像頭模塊集成與調試指南!

    攝像頭模塊集成是實現場景智能拍攝的基礎,而調試則是保障系統穩定的關鍵。本指南聚焦實戰,詳細講解攝像頭模塊的硬件集成方法與場景調試技巧,包括常見故障排查、性能優化方案等,讓你在實戰中
    的頭像 發表于 11-21 17:58 ?414次閱讀
    <b class='flag-5'>多</b>場景智能拍攝實戰:<b class='flag-5'>攝像頭</b>模塊集成與調試指南!

    何在NVIDIA Jetson AGX Thor上通過Docker高效部署vLLM推理服務

    繼系統安裝與環境配置后,本期我們將繼續帶大家深入 NVIDIA Jetson AGX Thor 的開發教程之旅,了解如何在 Jetson AGX Thor 上,通過 Docker 高效
    的頭像 發表于 11-13 14:08 ?4112次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>NVIDIA</b> <b class='flag-5'>Jetson</b> AGX Thor上通過Docker高效部署vLLM推理服務

    創世SD NAND貼片卡:智能攝像頭存儲難題的完美解決方案 #人工智能 #智能攝像頭 #攝像頭

    攝像頭
    深圳市雷龍發展有限公司
    發布于 :2025年08月05日 11:17:13

    紅外攝像頭模組是什么?科技時代的眼睛

    在現代科技迅速發展的背景下,紅外攝像頭模組逐漸成為各類智能設備中的重要組成部分。無論是在安防監控、智能家居還是汽車領域,紅外攝像頭模組以其獨特的功能和優越的性能,正在改變我們的生活方式。本文將
    的頭像 發表于 07-31 10:07 ?1060次閱讀
    紅外<b class='flag-5'>攝像頭</b>模組是什么?科技時代的眼睛

    360環視技術推薦的硬件平臺:支持攝像頭與三屏異顯的理想選擇

    在智能車載系統中,還是機器人視覺平臺中,RK3576都能提供堅實的技術支撐。 米爾RK3576核心板資源框圖 它在360環視方案中的關鍵優勢包括:? 支持攝像頭接入l 板載8路攝像頭
    發表于 07-30 17:32

    Made with KiCad(126):Antmicro OV5640 雙攝像頭子板

    統一的 50 引腳 FFC 接口 用于驅動圖像傳感器的板載時鐘發生器 OV5640 雙攝像頭電路板與 Antmicro 開發的各種處理平臺電氣兼容。下面列出了其中幾種: 支持 NVIDIA
    發表于 05-12 18:13

    一拖四USB攝像頭同步采集方案:高效數據處理的革新突破

    在現代攝像頭應用場景中,高效的數據采集與實時處理是技術核心。基于USB接口的一拖四攝像頭系統,通過集成化設計實現四路攝像頭同步采集,結合
    的頭像 發表于 04-25 15:20 ?1399次閱讀
    一拖四USB<b class='flag-5'>多</b><b class='flag-5'>攝像頭</b>同步采集方案:高效數據處理的革新突破

    社區安裝IPC攝像頭,跟安裝一般安防監控攝像頭有什么區別?

    為了保護社區或其他公共場所的安全,往往需要安裝監控攝像頭。但隨著越來越多的公共安全事件發生,傳統只單純拍攝和記錄畫面的監控攝像頭已不能滿足社區安防的需求,需要更多功能的安防監控攝像頭來進行更智能化
    的頭像 發表于 04-03 10:00 ?2309次閱讀
    社區安裝IPC<b class='flag-5'>攝像頭</b>,跟安裝一般安防監控<b class='flag-5'>攝像頭</b>有什么區別?

    使用RTSP攝像頭執行攝像頭多目標Python演示,缺少輸出幀是怎么回事?

    使用 RTSP 攝像頭執行 攝像頭多目標 Python 演示 。 現場視頻每 5 秒出現一次啟動和抖動,但幀缺失。 輸出生產低 FPS (1 至 0.3 FPS)。 人員檢測發生在各種位置,因為實時視頻缺少幀。
    發表于 03-06 07:55

    如何使用攝像頭作為OpenVINO?推理的輸入?

    無法確定如何使用攝像頭作為OpenVINO?推理的輸入
    發表于 03-06 07:30