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

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

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

NVIDIA Jetson 系列針對(duì)CSI攝像頭提供Camera SubSystem提高效率

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來(lái)源:NVIDIA英偉達(dá)企業(yè)解決方案 ? 作者:NVIDIA英偉達(dá)企業(yè)解 ? 2021-12-24 09:01 ? 次閱讀

在最開(kāi)始介紹 Jetbot 的時(shí)候有提到,這套智能小車只使用一個(gè) CSI 攝像頭作為全部輸入的設(shè)備,因?yàn)檫@種設(shè)備的體積輕巧、功耗較低,并且 NVIDIA Jetson 系列針對(duì) CSI 攝像頭提供了一組 Camera SubSystem 來(lái)提高效率,非常適合用在智能車方案上的視頻圖像輸入。下表是各種攝像頭的簡(jiǎn)單比較表,這樣就能一目了然地理解 Jetbot 為何挑選 CSI 攝像頭作為輸入設(shè)備。

eb6d7494-61b2-11ec-b2e9-dac502259ad0.png

首先要提示的,Jetson Nano(含2GB)所支持的是 CSI-2 版本接口,早期用在樹(shù)莓派上 50 元以下的 CSI 接口攝像頭是不能使用的,主要以 IMX219 芯片的攝像頭為主,價(jià)格大約在 100 元以上,因此請(qǐng)勿選購(gòu)錯(cuò)誤。

本文并不花時(shí)間去說(shuō)明 CSI 攝像頭的工作原理,主要配合 Jetbot 的安裝,以及執(zhí)行最簡(jiǎn)單指令去確認(rèn)您手上的攝像頭是否良好可用,否則等整機(jī)都裝好之后再進(jìn)行測(cè)試,如果遇到不良的攝像頭還得再拆卸下來(lái),是一件頗為浪費(fèi)時(shí)間的事情。

將CSI攝像頭裝到Jetson Nano(含2GB)上

這種接口并不支持即插即用(PnP, Plug and Play)功能,不能像 USB 攝像頭可以隨時(shí)插入 Jetson Nano(含2GB),必須在開(kāi)機(jī)之前就先裝好。如果開(kāi)機(jī)后測(cè)試發(fā)現(xiàn)不成功,就得關(guān)機(jī)后再檢查是否有什么地方安裝不正確?或者接觸不良的問(wèn)題,就便利性而言不如 USB 攝像頭那么順手。

安裝 CSI 攝像頭的接口如下圖左方的卡座,要拔取卡筍進(jìn)行安裝時(shí)千萬(wàn)小心力度,這個(gè)塑料件比較脆弱,一不小心弄斷了,不僅無(wú)法再安裝 CSI 攝像頭,也嚴(yán)重影響 Jetson Nano(含2GB)的質(zhì)保,需要非常小心處理!

卡座上透過(guò)一根專屬的軟排線(如上圖右)與 CSI 攝像頭進(jìn)行連接,這個(gè)軟排線是有方向性的,如上圖右所顯示,軟排線有金屬針腳的一面要朝內(nèi)(核心模塊)方向,將排線完整塞進(jìn)卡座之后,再將卡筍往下壓,確保完全壓倒底,否則攝像頭可能因?yàn)榕啪€接觸不良而無(wú)法正常工作。

請(qǐng)參考“菜鳥(niǎo)手冊(cè)(2):給 Jetson Nano 安裝 CSI 攝像頭”(https://cloud.tencent.com/developer/article/1421907)一文,有非常詳盡的步驟與動(dòng)態(tài)簡(jiǎn)圖能完整表達(dá)過(guò)程??偠灾?,這個(gè)攝像頭的安裝有些細(xì)微之處,需要細(xì)心處理。一旦安裝測(cè)試好之后,也盡量不要拆卸。

測(cè)試CSI攝像頭的運(yùn)行

由于 Jetbot 會(huì)關(guān)閉 Ubuntu 圖形桌面,因此過(guò)去所學(xué)到調(diào)用 nvarguscamera 指令,去啟動(dòng) CSI 攝像頭并在圖形桌面上顯示的方法,在這里都不能適用,但是 v4l2-ctl 工具還是能做最基本的檢測(cè)。

下面的測(cè)試都在 Jetbot 上的 Jupyter 環(huán)境上進(jìn)行,也順便講解一下 Jupyter 上調(diào)用攝像頭與顯示內(nèi)容的方法,先熟悉一下這方面的使用是很重要,因?yàn)楹竺嫠袑?shí)驗(yàn)都要用到 CSI 攝像頭。

現(xiàn)在從 PC 上的瀏覽器輸入 “:8888” 進(jìn)入 Jetbot 的 Jupyter 操作界面,然后開(kāi)啟一個(gè)命令終端(如下圖):

ec0a4e86-61b2-11ec-b2e9-dac502259ad0.png

現(xiàn)在先用 v4l2-ctl 工具檢查一下 CSI 攝像頭的狀況,請(qǐng)?jiān)诮K端輸入以下指令:

#如果是Docker版,請(qǐng)先安裝v4l-utils工具aptinstallv4l-utils#執(zhí)行檢測(cè)指令v4l2-ctl--list-devices#如果檢測(cè)到/dev/video0,繼續(xù)檢測(cè)這個(gè)設(shè)備的細(xì)部參數(shù)v4l2-ctl --device=/dev/video0 --all

細(xì)部參數(shù)就不花時(shí)間說(shuō)明,主要讓大家知道當(dāng)有需要的時(shí)候,就可以用 v4l2-ctl 這個(gè)工具查看細(xì)節(jié)。

接下去開(kāi)始用 Jupyter 的代碼,來(lái)測(cè)試 CSI 攝像頭的工作狀況。首先創(chuàng)建一個(gè)新的“Notebook”(如下圖步驟),這是 Jupyter 的工作區(qū)域。

ec4d9eac-61b2-11ec-b2e9-dac502259ad0.png

每次新開(kāi)的 Notebook 都是如下圖的狀況,會(huì)有一個(gè)[ ] 與一個(gè)方框:

ec91e404-61b2-11ec-b2e9-dac502259ad0.png

現(xiàn)在就將下面代碼復(fù)制到在 Notebook 的方框內(nèi)里,由于前面“v4l2-ctl”檢測(cè)到這個(gè)攝像頭的寬高為(1640, 1232),因此在代碼中將攝像頭與 widgets 的圖形尺寸都設(shè)為這兩個(gè)數(shù)字:

fromjetbotimportCamera,bgr8_to_jpegimportipywidgets.widgetsaswidgetsfromIPython.displayimportdisplayimporttraitletscamera=Camera.instance(width=1640,height=1232)image=widgets.Image(format='jpeg',width=1640,height=1232)camera_link=traitlets.dlink((camera,'value'),(image,'value'),transform=bgr8_to_jpeg)display(image)

然后按一下“Ctrl-Enter”組合鍵就能執(zhí)行,正常的話就能在下方看到一個(gè)方框顯示攝像頭所捕捉的動(dòng)態(tài)畫(huà)面,這樣就完成 CSI 攝像頭的測(cè)試。顯示有點(diǎn)小延遲是正常的,畢竟這里選擇的是(1640, 1232)尺寸,試試將尺寸都縮小到 1/2 之后,是不是就流暢的多?

如果要停止攝像頭播放,就用上面的“+”號(hào)添加一個(gè)“指令格”,然后在里面輸入:

camera_link.unlink()

然后用“Ctrl-Enter”執(zhí)行這個(gè)指令,這時(shí)候顯示畫(huà)面就處于凍結(jié)狀態(tài),不會(huì)播放顯示器所捕捉的內(nèi)容。

假如想要讓攝像頭再次執(zhí)行播放,就在下面再添加一個(gè)“指令格”,輸入:

camera_link.link()

按下“Ctrl-Enter”執(zhí)行,就會(huì)看到顯示框里的內(nèi)容又開(kāi)始執(zhí)行動(dòng)態(tài)播放了。

代碼解說(shuō)

由于 Jupyter 并不支持 OpenGL 功能,無(wú)法像圖形桌面那樣直接播放視頻,因此在這里需要使用一些固定的技巧,將視頻轉(zhuǎn)成圖形方式去顯示,上面這段代碼可以說(shuō)是 Jetbot 所有實(shí)驗(yàn)啟動(dòng) CSI 攝像頭的標(biāo)準(zhǔn)內(nèi)容。

這個(gè)代碼中有幾個(gè)關(guān)鍵的部分:

1. jetbot的Camera模塊:

早期 Jetbot 的攝像頭是基于 NVIDIA 的 JetCam 項(xiàng)目,提供對(duì) CSI 與 USB 兩類攝像頭的支持,不過(guò)最新版本中仿佛只對(duì) CSI 攝像頭提供支持,并且將底層的代碼放在 jetbot/camera 下面的幾只 .py 里面。

這使得調(diào)用方式變得非常簡(jiǎn)單,只要將寬與高提供給 Camera.instance (寬,高)就可以,不需要再指定攝像頭的編號(hào)。

2. ipywidgets:

這個(gè)模塊為 jupyter 提供非常好用的“互動(dòng)式小部件”,為原本只提供靜態(tài)顯示的教學(xué)環(huán)境,注入非常生動(dòng)與多樣化互動(dòng)的功能。

熟悉圖形化開(kāi)發(fā)工具的朋友就應(yīng)該知道,很多這類工具會(huì)提供下拉式選項(xiàng)、滑塊調(diào)整、復(fù)選框、文字框這類的小部件,可以組建較為復(fù)雜的儀表盤。

在后面控制 Jetbot 車輪的實(shí)驗(yàn)中會(huì)使用到多種這類小部件,這里只是用到比較簡(jiǎn)單的 widgets.image 功能,設(shè)定輸出為“jpeg”格式圖像。

3. iPython.display:

這是一個(gè) python 互動(dòng)式界面里的顯示功能,這里就是將 widget.image 輸出的 jpeg 圖像顯示在 Jupyter。

4. traitlets:

如果從整個(gè)英文字去翻譯,這個(gè)庫(kù)就被稱為“叛徒庫(kù)”,其實(shí)是蠻奇怪的東西。但如果將這個(gè)字切割成“trait”與“-let”組合,就能解釋成“小特征”的含義,例如 booklet 是小冊(cè)子、eaglet 是小老鷹的意思。

這個(gè)庫(kù)的功能非常強(qiáng)大,除了能為我們處理“類型檢查”之外,還能為動(dòng)態(tài)計(jì)算提供預(yù)設(shè)值、修改屬性之后發(fā)出更改的事件信號(hào)、處理屬性值之間的交互影響,為我們簡(jiǎn)化很多復(fù)雜的交錯(cuò)關(guān)系。

在上述代碼中“camera_link=traitlets.dlink((camera, 'value'), (image, 'value'), transform=bgr8_to_jpeg)”,將攝像頭讀取的圖像與 widgets.image 所創(chuàng)建的 image 對(duì)象產(chǎn)生動(dòng)態(tài)關(guān)聯(lián),并將攝像頭圖形執(zhí)行“bgr8_to_jpeg”轉(zhuǎn)換,存放到 image 里,最后再由 display(image)顯示出來(lái)。

至于 camera_link 物件就能在后面透過(guò).link()與.unlink()執(zhí)行開(kāi)關(guān)人任務(wù),以實(shí)現(xiàn)“暫?!迸c“再啟動(dòng)”的功能。

這樣我們對(duì) Jetbot 攝像頭的調(diào)用與使用,就有個(gè)初步的了解,在后面實(shí)驗(yàn)中就能更清楚的感受到這些功能的使用。

原文標(biāo)題:NVIDIA Jetson Nano 2GB 系列文章(43):CSI攝像頭安裝與測(cè)試

文章出處:【微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:彭菁

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

    關(guān)注

    14

    文章

    4793

    瀏覽量

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

    關(guān)注

    59

    文章

    4752

    瀏覽量

    94394
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1007

    瀏覽量

    34975

原文標(biāo)題:NVIDIA Jetson Nano 2GB 系列文章(43):CSI攝像頭安裝與測(cè)試

文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    D類放大器中用于提高效率的 Y 橋應(yīng)用說(shuō)明

    電子發(fā)燒友網(wǎng)站提供《D類放大器中用于提高效率的 Y 橋應(yīng)用說(shuō)明.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 11:03 ?0次下載
    D類放大器中用于<b class='flag-5'>提高效率</b>的 Y 橋應(yīng)用說(shuō)明

    NVIDIA攝像頭追蹤工作流的應(yīng)用架構(gòu)

    提高安全性并優(yōu)化運(yùn)營(yíng),倉(cāng)庫(kù)、工廠、體育場(chǎng)、機(jī)場(chǎng)等大型區(qū)域通常會(huì)有數(shù)百個(gè)攝像頭進(jìn)行監(jiān)控。多攝像頭追蹤指的是通過(guò)這些攝像頭追蹤對(duì)象,并精確測(cè)量其活動(dòng),以此實(shí)現(xiàn)對(duì)空間的有效監(jiān)控和管理。
    的頭像 發(fā)表于 09-06 14:23 ?129次閱讀
    <b class='flag-5'>NVIDIA</b>多<b class='flag-5'>攝像頭</b>追蹤工作流的應(yīng)用架構(gòu)

    取得平衡:可提高效率并控制EMI的汽車設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《取得平衡:可提高效率并控制EMI的汽車設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 08-28 11:58 ?0次下載
    取得平衡:可<b class='flag-5'>提高效率</b>并控制EMI的汽車設(shè)計(jì)

    提高效率的DC電源模塊設(shè)計(jì)技巧

    BOSHIDA ?提高效率的DC電源模塊設(shè)計(jì)技巧 設(shè)計(jì)高效率的BOSHIDA ?DC電源模塊可以幫助減少能源浪費(fèi)和提高系統(tǒng)功耗,以下是一些設(shè)計(jì)技巧: 1. 選擇高效率的功率轉(zhuǎn)換器:選擇
    的頭像 發(fā)表于 02-26 14:27 ?378次閱讀
    <b class='flag-5'>提高效率</b>的DC電源模塊設(shè)計(jì)技巧

    什么是電源模塊效率 如何計(jì)算 提高效率的方法

    什么是電源模塊效率 如何計(jì)算 提高效率的方法 BOSHIDA博士達(dá) 電源模塊效率是指輸入電能轉(zhuǎn)換為輸出電能的比例,通常以百分比表示。高效率的電源模塊能夠最大限度地將輸入電能轉(zhuǎn)化為有用的
    的頭像 發(fā)表于 02-02 09:44 ?804次閱讀

    搬運(yùn)機(jī)器人已經(jīng)成為提高效率、降低成本的關(guān)鍵技術(shù)

    物流、制造業(yè)和倉(cāng)儲(chǔ)等領(lǐng)域,搬運(yùn)機(jī)器人已經(jīng)成為提高效率、降低成本的關(guān)鍵技術(shù)。近年來(lái),隨著技術(shù)的不斷突破,搬運(yùn)機(jī)器人正朝著更加智能、高效和可靠的方向發(fā)展。
    的頭像 發(fā)表于 01-22 12:00 ?402次閱讀
    搬運(yùn)機(jī)器人已經(jīng)成為<b class='flag-5'>提高效率</b>、降低成本的關(guān)鍵技術(shù)

    NVIDIA Jetson 的嵌入式系統(tǒng)AI應(yīng)用

    在這個(gè)平臺(tái)上可以使用多個(gè)不同的芯片 ,案例的主角是AIMobile AIM Edge Ncox,一款基于NVIDIA Jetson Orin NX的小型被動(dòng)冷卻嵌入式系統(tǒng)。該系統(tǒng)具有6-8個(gè)Arm內(nèi)核和NVIDIA Ampere
    發(fā)表于 12-11 17:37 ?423次閱讀

    帶有快速體二極管的MOSFET器件通過(guò)LLC拓?fù)浜虵REDFET來(lái)提高效率

    帶有快速體二極管的MOSFET器件通過(guò)LLC拓?fù)浜虵REDFET來(lái)提高效率
    的頭像 發(fā)表于 12-08 17:35 ?572次閱讀
    帶有快速體二極管的MOSFET器件通過(guò)LLC拓?fù)浜虵REDFET來(lái)<b class='flag-5'>提高效率</b>

    如何使用自增自減運(yùn)算提高效率

    使用自增自減運(yùn)算提高效率 在使用到加一和減一操作時(shí)盡量使用增量和減量操作符,因?yàn)樵隽糠Z(yǔ)句比賦值語(yǔ)句更快,原因在于對(duì)大多數(shù)CPU來(lái)說(shuō),對(duì)內(nèi)存字的增、減量操作不必明顯地使用取內(nèi)存和寫(xiě)內(nèi)存的指令,比如
    的頭像 發(fā)表于 11-21 11:29 ?412次閱讀

    又一款ESP32攝像頭Camera-1

    提供5V與3.3V各500mA電源輸出,以驅(qū)動(dòng)更多外部模塊。Camera-1內(nèi)置了USB串口,SD卡槽和充電管理等基礎(chǔ)功能,通過(guò)短接跳線可實(shí)現(xiàn)電池檢測(cè)及攝像頭電源控制。 Camera
    發(fā)表于 11-14 05:07

    ArmSom--攝像頭開(kāi)發(fā)指南(二)

    Rockchip平臺(tái)下Camera相關(guān)測(cè)試命令二.攝像頭連接ArmSoM-W3開(kāi)發(fā)板與imx415連接圖如下:w3-camera-hardware注意排線的金屬引腳朝向板
    的頭像 發(fā)表于 11-06 10:30 ?1411次閱讀
    ArmSom--<b class='flag-5'>攝像頭</b>開(kāi)發(fā)指南(二)

    ArmSom--攝像頭開(kāi)發(fā)指南(一)

    解析名詞解釋:CSI(CameraSerialInterface):主機(jī)處理器與攝像頭模塊之間的高速串行接口DSI(DisplaySerialInterface)
    的頭像 發(fā)表于 11-03 14:56 ?1216次閱讀
    ArmSom--<b class='flag-5'>攝像頭</b>開(kāi)發(fā)指南(一)

    單片機(jī)驅(qū)動(dòng)LCD如果提高效率?

    單片機(jī)驅(qū)動(dòng)LCD如果提高效率
    發(fā)表于 10-23 07:44

    使用 NVIDIA Jetson 優(yōu)化功率

    配有高效率的功率管理集成電路(PMIC)、穩(wěn)壓器和電源樹(shù)來(lái)進(jìn)行功率效率優(yōu)化。NVIDIA 提供多種工具和資源,幫助您充分利用功率架構(gòu)并優(yōu)化資源使用: 各種功率模式 功率、散熱和電氣管理
    的頭像 發(fā)表于 10-19 11:10 ?556次閱讀
    使用 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Jetson</b> 優(yōu)化功率

    NVIDIA Jetson 計(jì)算平臺(tái)賦能森云智能推出 GMSL3 攝像頭開(kāi)發(fā)套件

    的 GMSL3 攝像頭產(chǎn)品,能有效解決攝像頭高速率傳輸和無(wú)損無(wú)延時(shí)的需求。同時(shí)依托 NVIDIA Jetson 上的軟件驅(qū)動(dòng)技術(shù),將 GMSL3
    的頭像 發(fā)表于 09-26 18:35 ?633次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Jetson</b> 計(jì)算平臺(tái)賦能森云智能推出 GMSL3 <b class='flag-5'>攝像頭</b>開(kāi)發(fā)套件