chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在NVIDIA Jetson平臺(tái)創(chuàng)建多攝像頭管道

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

掃碼添加小助手

加入工程師交流群

多攝像頭應(yīng)用越來越流行;它們對(duì)于實(shí)現(xiàn)自主機(jī)器人、智能視頻分析( IVA )和 AR / VR 應(yīng)用至關(guān)重要。無論具體的用例如何,都必須始終執(zhí)行一些常見任務(wù):

俘虜

預(yù)處理

編碼

陳列

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

pipeline-flow.png

圖 1 本項(xiàng)目實(shí)施的管道流程

在本文中,我將展示如何在 NVIDIA Jetson 平臺(tái)上高效地實(shí)現(xiàn)這些常見任務(wù)。具體來說,我介紹了 jetmulticam ,一個(gè)易于使用的 Python 軟件包,用于創(chuàng)建多攝像頭管道。我在一個(gè)帶有環(huán)繞攝像頭系統(tǒng)的機(jī)器人上演示了一個(gè)特定的用例。

多攝像頭硬件

選擇相機(jī)時(shí)要考慮的參數(shù)有很多:分辨率、幀速率、光學(xué)、全局/滾動(dòng)快門、界面、像素大小等。

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

NVIDIA Jetson Xavier NX 單元

Leopard Imaging 提供的支持 GMSL2 的 carrier board

Leopard Imaging 的 3 × IMX185 GMSL2 cameras

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

cameras-mounted-maximize-horizontal-fov.png

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

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

gmsl-interface.png

圖 3 GMSL 接口可以靈活地將攝像頭定位在遠(yuǎn)離 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 .

基本多攝像機(jī)流水線

安裝完成后,可以使用CameraPipeline類創(chuàng)建基本管道。通過 initializer 參數(shù)傳遞要包含在管道中的攝影機(jī)列表。在下面的示例中,元素[0, 1, 2]對(duì)應(yīng)于設(shè)備節(jié)點(diǎn)/dev/video0/dev/video1/dev/video2。

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

就這樣,管道已經(jīng)初始化并啟動(dòng)?,F(xiàn)在,您可以從管道中的每個(gè)攝像頭讀取圖像,并以numpy陣列的形式訪問它們。

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

通常,在一個(gè)循環(huán)中讀取相機(jī)是很方便的,如下面的代碼示例所示。管道從主線程異步運(yùn)行,read始終獲取最新的緩沖區(qū)。

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

更復(fù)雜的人工智能管道

現(xiàn)在,您可以構(gòu)建更復(fù)雜的管道。這一次,使用CameraPipelineDNN類組成更復(fù)雜的管道,以及NGC目錄PeopleNetDashCamNet中的兩個(gè)預(yù)訓(xùn)練模型。

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)

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

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

攝像機(jī)

首先,與前面的示例類似,cameras參數(shù)是傳感器列表。在這種情況下,使用與設(shè)備節(jié)點(diǎn)關(guān)聯(lián)的攝像頭:

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

模型

第二個(gè)參數(shù) models 使您能夠定義要在管道中運(yùn)行的預(yù)訓(xùn)練模型。

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

在這里,您將從NGC部署兩個(gè)經(jīng)過預(yù)訓(xùn)練的模型:

  • PeopleNet:一種能夠識(shí)別人、臉和包的物體檢測(cè)模型。
  • DashCamNet:能夠識(shí)別四類對(duì)象的模型:汽車、人、路標(biāo)和自行車。

有關(guān)更多信息,請(qǐng)參閱 NGC 中的model cards

硬件加速

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

在兩個(gè)加速器之間分配模型有助于提高管道的總吞吐量。此外, DLA 甚至比 GPU 更節(jié)能。因此,在最高時(shí)鐘設(shè)置的滿載情況下,系統(tǒng)消耗的電量?jī)H為~ 10W 。最后,在這種配置中, Jetson GPU 仍然可以使用 Jetson NX 上的 384 CUDA 內(nèi)核自由加速更多任務(wù)。

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

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

保存視頻

接下來的兩個(gè)參數(shù)指定是否存儲(chǔ)編碼的視頻,并定義用于存儲(chǔ)的文件夾。

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

顯示視頻

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

display=True

主回路

最后,定義主循環(huán)。在運(yùn)行期間,圖像在pipeline.images下可用,檢測(cè)結(jié)果在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)

下面的代碼示例顯示了結(jié)果檢測(cè)。對(duì)于每次檢測(cè),您都會(huì)得到一個(gè)包含以下內(nèi)容的字典:

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

用自定義邏輯擴(kuò)展人工智能管道

作為最后一步,您可以使用 DNN 輸出擴(kuò)展主循環(huán)以構(gòu)建自定義邏輯。具體來說,您可以使用攝像頭的檢測(cè)輸出在機(jī)器人中實(shí)現(xiàn)基本的人員跟隨邏輯。源代碼可在 NVIDIA-AI-IOT/jetson-multicamera-pipelines GitHub repo 中找到。

要找到要跟蹤的人,請(qǐng)解析管道。檢測(cè)輸出。此邏輯在 find_closest_human 函數(shù)中實(shí)現(xiàn)。

根據(jù) dets2steer 中邊界框的位置計(jì)算機(jī)器人的轉(zhuǎn)向角。

如果人在左圖中,最大限度地左轉(zhuǎn)。

如果人在正確的形象中,盡量向右轉(zhuǎn)。

如果人在中心圖像中,則按邊界框中心的 X 坐標(biāo)成比例旋轉(zhuǎn)。

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

解決方案概述

下面簡(jiǎn)要介紹一下在下面的示例中配置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管道時(shí)的外觀。如您所見,系統(tǒng)中所有關(guān)鍵操作(由綠色方框表示)都受益于硬件加速。

圖 4 系統(tǒng)的內(nèi)部組件 jetmulticam package

首先,使用多個(gè)攝像頭nvarguscamerasrc在視頻圖上捕獲。使用nvvidconv或nvvideoconvert重新縮放每個(gè)緩沖區(qū)并將其轉(zhuǎn)換為 RGBA 格式。接下來,使用服務(wù)器提供的component對(duì)幀進(jìn)行批處理 DeepStream SDK 。默認(rèn)情況下,批次大小等于系統(tǒng)中的攝像頭數(shù)量。

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

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

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

結(jié)論

NVIDIA Jetson 平臺(tái)上的硬件加速與 NVIDIA SDKS 結(jié)合,可以實(shí)現(xiàn)卓越的實(shí)時(shí)性能。例如,下面的示例在三個(gè)攝像頭流上實(shí)時(shí)運(yùn)行兩個(gè)對(duì)象檢測(cè)神經(jīng)網(wǎng)絡(luò),同時(shí)保持 CPU 利用率 低于 20% 。

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

關(guān)于作者

Tomasz Lewicki 是 NVIDIA 的嵌入式工程實(shí)習(xí)生。他擁有圣何塞州立大學(xué)計(jì)算機(jī)工程碩士學(xué)位,華沙工業(yè)大學(xué)華沙工業(yè)大學(xué)機(jī)器人工程學(xué)學(xué)士學(xué)位。他的興趣集中在計(jì)算機(jī)視覺和機(jī)器人應(yīng)用的深度學(xué)習(xí)上。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5432

    瀏覽量

    108354
  • 攝像頭
    +關(guān)注

    關(guān)注

    61

    文章

    5027

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    創(chuàng)世SD NAND貼片卡:智能攝像頭存儲(chǔ)難題的完美解決方案 #人工智能 #智能攝像頭 #攝像頭

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

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

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

    360環(huán)視技術(shù)推薦的硬件平臺(tái):支持攝像頭與三屏異顯的理想選擇

    在智能車載系統(tǒng)中,還是機(jī)器人視覺平臺(tái)中,RK3576都能提供堅(jiān)實(shí)的技術(shù)支撐。 米爾RK3576核心板資源框圖 它在360環(huán)視方案中的關(guān)鍵優(yōu)勢(shì)包括:? 支持攝像頭接入l 板載8路攝像頭
    發(fā)表于 07-30 17:32

    廬山派K230可以直接使用usb攝像頭嗎,可以的話攝像頭有啥要求嗎?

    廬山派K230可以直接使用usb攝像頭嗎,可以的話攝像頭有啥要求嗎
    發(fā)表于 06-24 07:07

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

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

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

    在現(xiàn)代攝像頭應(yīng)用場(chǎng)景中,高效的數(shù)據(jù)采集與實(shí)時(shí)處理是技術(shù)核心?;赨SB接口的一拖四攝像頭系統(tǒng),通過集成化設(shè)計(jì)實(shí)現(xiàn)四路攝像頭同步采集,結(jié)合
    的頭像 發(fā)表于 04-25 15:20 ?689次閱讀
    一拖四USB<b class='flag-5'>多</b><b class='flag-5'>攝像頭</b>同步采集方案:高效數(shù)據(jù)處理的革新突破

    社區(qū)安裝IPC攝像頭,跟安裝一般安防監(jiān)控攝像頭有什么區(qū)別?

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

    使用RTSP攝像頭執(zhí)行攝像頭多目標(biāo)Python演示,缺少輸出幀是怎么回事?

    使用 RTSP 攝像頭執(zhí)行 攝像頭多目標(biāo) Python 演示 。 現(xiàn)場(chǎng)視頻每 5 秒出現(xiàn)一次啟動(dòng)和抖動(dòng),但幀缺失。 輸出生產(chǎn)低 FPS (1 至 0.3 FPS)。 人員檢測(cè)發(fā)生在各種位置,因?yàn)閷?shí)時(shí)視頻缺少幀。
    發(fā)表于 03-06 07:55

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

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

    兆易創(chuàng)新網(wǎng)絡(luò)攝像頭解決方案

    根據(jù)Omdia估計(jì),2023年全球安防攝像頭市場(chǎng)(高清模擬攝像頭、網(wǎng)絡(luò)攝像頭、防爆攝像頭和熱成像攝像頭)總體發(fā)貨量約為1.9億臺(tái),預(yù)計(jì)到20
    的頭像 發(fā)表于 02-27 15:39 ?1554次閱讀
    兆易創(chuàng)新網(wǎng)絡(luò)<b class='flag-5'>攝像頭</b>解決方案

    米爾瑞芯微RK3576實(shí)測(cè)輕松搞定三屏八攝像頭

    RK3576參數(shù)強(qiáng)勁RK3576是瑞芯微推出的一款高性能AIoT處理器,這款芯片以其卓越的計(jì)算能力、屏幕支持、強(qiáng)大的視頻編解碼能力和高效的協(xié)處理器而聞名。 三屏8攝像頭輕松搞定米爾基于他們
    發(fā)表于 01-17 11:33

    安防監(jiān)控攝像頭氣密性測(cè)試案例-連拓精密#攝像頭氣密檢測(cè)設(shè)備

    攝像頭
    連拓精密科技
    發(fā)布于 :2024年12月11日 15:00:21

    光譜火焰檢測(cè)攝像頭

    隨著工業(yè)化進(jìn)程的加快,火災(zāi)安全問題日益受到重視。傳統(tǒng)的火焰檢測(cè)技術(shù)主要依賴于溫度傳感器和煙霧探測(cè)器,但這些方法在某些情況下存在響應(yīng)慢、誤報(bào)率高等缺陷。為了解決這些問題,光譜火焰檢測(cè)攝像頭應(yīng)運(yùn)而生
    的頭像 發(fā)表于 12-11 10:50 ?971次閱讀
    <b class='flag-5'>多</b>光譜火焰檢測(cè)<b class='flag-5'>攝像頭</b>

    攝像頭及紅外成像的基本工作原理

    本文介紹了攝像頭及紅外成像的基本工作原理,攝像頭可以將看到的圖像真實(shí)的呈現(xiàn)出來,所見即所得! 攝像頭如何工作? 攝像頭可以將看到的圖像真實(shí)的呈現(xiàn)出來,所見即所得。 ? 比如人眼看到的一
    的頭像 發(fā)表于 11-25 09:28 ?3339次閱讀
    <b class='flag-5'>攝像頭</b>及紅外成像的基本工作原理