那曲檬骨新材料有限公司

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

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

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

Jetson Orin Nano納米刷機介紹

OpenCV學(xué)堂 ? 來源:OpenCV學(xué)院 ? 作者:憂郁的魚 ? 2023-04-01 09:55 ? 次閱讀

Jetson Orin Nano 介紹

NVIDIA Jetson Orin Nano 系列模組以最小的 Jetson 外形提供高達 40 TOPS 的 AI 算力,功耗在 7W 至 15W 之間,算力相當(dāng)于是 NVIDIA Jetson Nano 的 80 倍。Jetson Orin Nano 提供 8GB 和 4GB兩個版本,其中開發(fā)套件是8GB版本。

可以廣泛應(yīng)用于智能機器人開發(fā)、智能無人機開發(fā)、智能相機開發(fā)。從Jetson Orin Nano 到最高性能的 Jetson AGX Orin,有六個基于相同架構(gòu)的不同模塊,是端側(cè)與邊緣智能的理想開發(fā)載板。

顯示器接口是DP的,必須買個DP轉(zhuǎn)HDMI轉(zhuǎn)接頭才可以接到HDMI支持的顯示器,最重要的這款支持WIFI了。以前的Jetson Nano是USB供電就可以了,這個是配有專門的電源線,19V電源輸入,沒辦法算力強悍肯定得多耗電,相對來說還是低功耗。

JetPack5.1鏡像制作

安裝JetPack5.1之前先準(zhǔn)備好一個microSD卡,最少是64G推薦128G的,因為Jetpack5.1安裝程序燒錄完成已經(jīng)是20G,再安裝一些其它第三方庫比如pytorch、torchvision、pyqt5或者QT什么的,就沒有多少應(yīng)用程序開發(fā)與部署可用空間了。準(zhǔn)備好microSD卡之后,就先下載鏡像文件

必須NVIDIA的賬號登錄之后才可以下載。JetPack5.1已經(jīng)預(yù)安裝好了

- CUDA11.4.19
- cuDNN8.6.0
- TensorRT8.5.2
- OpenCV4.5.4
還有其他的一些支持工具軟件。下載好Jetpack5.1鏡像包之后,先下載SD卡格式化軟件,格式化SD卡。截圖如下:

0785c386-cfe7-11ed-bfe3-dac502259ad0.png

然后下載鏡像制作軟件

安裝好之后選擇鏡像文件與SD卡,然后開始制作,顯示如下:

07a3b558-cfe7-11ed-bfe3-dac502259ad0.png

07df39ca-cfe7-11ed-bfe3-dac502259ad0.png

燒錄完成以后插到Jetson Orin Nano開發(fā)板的風(fēng)扇下方的卡槽中

安裝pytorch與torchvision

安裝好了Jetpack5.1之后,我才發(fā)現(xiàn)英偉達官方還沒有正式發(fā)布適配的pytorch版本跟torchvision版本,

意思是用pytorch1.14版本,以此類推torchvision選擇0.15.1版本。然后從這里直接下載1.14適配jetpack的版本文件,

下載好之后,別著急安裝pytroch,先通過下面的命令行安裝好依賴:

sudo apt-get -y install autoconf bc build-essential g++-8 gcc-8 clang-8 lld-8 gettext-base gfortran-8 iputils-ping libbz2-dev libc++-dev libcgal-dev libffi-dev libfreetype6-dev libhdf5-dev libjpeg-dev liblzma-dev libncurses5-dev libncursesw5-dev libpng-dev libreadline-dev libssl-dev libsqlite3-dev libxml2-dev libxslt-dev locales moreutils openssl python-openssl rsync scons python3-pip libopenblas-dev;
國內(nèi)安裝經(jīng)常會有網(wǎng)絡(luò)無法連接發(fā)生各種錯誤,沒事多執(zhí)行幾次命令行肯定可以安裝成功的(我的個人經(jīng)驗)。 安裝好pytorch相關(guān)依賴之后,安裝pytorch就很簡單:
pip3 install torch-1.14.0a0+44dac51c.nv23.02-cp38-cp38-linux_aarch64.whl
安裝好pytorch之后,使用下面的命令行從源碼安裝torchvision 0.15.1版本,先安裝依賴,然后下載安裝包,最后從源碼編譯安裝,大概十分鐘左右就好,相關(guān)命令行如下:
sudo apt install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
pip3 install --upgrade pillow
wget https://github.com/pytorch/vision/archive/refs/tags/v0.15.1.zip
unzip v0.15.1.zip
cd vision-0.15.1
export BUILD_VERSION=0.15.1
python3 setup.py install --user
同樣不行就執(zhí)行幾次,肯定會成功安裝的,我安裝與運行的截圖如下:

082588e4-cfe7-11ed-bfe3-dac502259ad0.png

都安裝好了用pip3 list查一下,然后我發(fā)現(xiàn)pip list顯示沒有TensorRT,但是我查一下已經(jīng)有了,只是缺少python包支持,我記得jetpack4.x刷機之后就自動有了,這個怎么沒有了,我暈!不過沒關(guān)系,執(zhí)行下面的命令行安裝python TensorRT支持,執(zhí)行完之后肯定有了!

084cbdb0-cfe7-11ed-bfe3-dac502259ad0.png

最終驗證測試如下:

08704b54-cfe7-11ed-bfe3-dac502259ad0.png

說明一切準(zhǔn)備工作就緒了。

說明一下,安裝過程中要求輸入提示的都輸入 y

ONNX2ENGINE

我發(fā)現(xiàn)我在TensorRT8.4上面轉(zhuǎn)換的engine文件無法在TensorRT8.5上面成功加載,所以我直接把YOLOv8n的ONNX格式模型文件直接拷貝到Jetson Orin Nano上,然后通過命令行重新生成engine文件:

cd /usr/src/tensorrt/bin
./trtexec --onnx= --saveEngine=
相關(guān)截圖如下:

088a4234-cfe7-11ed-bfe3-dac502259ad0.png

089e8334-cfe7-11ed-bfe3-dac502259ad0.png

08ad26dc-cfe7-11ed-bfe3-dac502259ad0.png

這個時間大概在五分鐘左右,需要等一下才可以轉(zhuǎn)換好。

YOLOv8對象檢測演示

在此之前,我已經(jīng)寫好了YOLOv8 + TensorRT的測試程序,所以我直接把程序拷貝過來,然后用新生成的yolov8n.engine開啟YOLOv8對象檢測推理,測試視頻運行如下:

08c11016-cfe7-11ed-bfe3-dac502259ad0.png

09065f36-cfe7-11ed-bfe3-dac502259ad0.png

這里程序中FPS計算包含了前后處理,因為兩個視頻的分辨率不同,導(dǎo)致前后處理的耗時不同,對象我之前在Jetson Nano上的推理速度,我只能說太厲害了,因為我之前Python版本tensorRT的推理這個程序在Jetson Nano一跑過一會就要卡死的感覺,特別慢!相關(guān)的測試源碼如下:

  1importtensorrtastrt
  2fromtorchvisionimporttransforms
  3importtorchast
  4fromcollectionsimportOrderedDict,namedtuple
  5importcv2ascv
  6importtime
  7importnumpyasnp
  8
  9img_transform=transforms.Compose([transforms.ToTensor(),
 10transforms.Resize((640,640))
 11])
 12
 13defload_classes():
 14withopen("classes.txt","r")asf:
 15class_list=[cname.strip()forcnameinf.readlines()]
 16returnclass_list
 17
 18
 19defformat_yolov8(frame):
 20row,col,_=frame.shape
 21_max=max(col,row)
 22result=np.zeros((_max,_max,3),np.uint8)
 23result[0:row,0:col]=frame
 24result=cv.cvtColor(result,cv.COLOR_BGR2RGB)
 25returnresult
 26
 27defwrap_detection(input_image,output_data):
 28class_ids=[]
 29confidences=[]
 30boxes=[]
 31out_data=output_data.T
 32rows=out_data.shape[0]
 33
 34image_width,image_height,_=input_image.shape
 35
 36x_factor=image_width/640.0
 37y_factor=image_height/640.0
 38
 39forrinrange(rows):
 40row=out_data[r]
 41classes_scores=row[4:]
 42class_id=np.argmax(classes_scores)
 43if(classes_scores[class_id]>.25):
 44class_ids.append(class_id)
 45confidences.append(classes_scores[class_id])
 46x,y,w,h=row[0].item(),row[1].item(),row[2].item(),row[3].item()
 47left=int((x-0.5*w)*x_factor)
 48top=int((y-0.5*h)*y_factor)
 49width=int(w*x_factor)
 50height=int(h*y_factor)
 51box=np.array([left,top,width,height])
 52boxes.append(box)
 53
 54indexes=cv.dnn.NMSBoxes(boxes,confidences,0.25,0.25)
 55
 56result_class_ids=[]
 57result_confidences=[]
 58result_boxes=[]
 59
 60foriinindexes:
 61result_confidences.append(confidences[i])
 62result_class_ids.append(class_ids[i])
 63result_boxes.append(boxes[i])
 64
 65returnresult_class_ids,result_confidences,result_boxes
 66defgpu_trt_demo():
 67class_list=load_classes()
 68device=t.device('cuda:0')
 69Binding=namedtuple('Binding',('name','dtype','shape','data','ptr'))
 70logger=trt.Logger(trt.Logger.INFO)
 71withopen("yolov8n.engine",'rb')asf,trt.Runtime(logger)asruntime:
 72model=runtime.deserialize_cuda_engine(f.read())
 73bindings=OrderedDict()
 74forindexinrange(model.num_bindings):
 75name=model.get_binding_name(index)
 76dtype=trt.nptype(model.get_binding_dtype(index))
 77shape=model.get_binding_shape(index)
 78data=t.from_numpy(np.empty(shape,dtype=np.dtype(dtype))).to(device)
 79bindings[name]=Binding(name,dtype,shape,data,int(data.data_ptr()))
 80binding_addrs=OrderedDict((n,d.ptr)forn,dinbindings.items())
 81context=model.create_execution_context()
 82
 83capture=cv.VideoCapture("test.mp4")
 84colors=[(255,255,0),(0,255,0),(0,255,255),(255,0,0)]
 85whileTrue:
 86_,frame=capture.read()
 87ifframeisNone:
 88print("Endofstream")
 89break
 90fh,fw,fc=frame.shape
 91start=time.time()
 92image=format_yolov8(frame)
 93x_input=img_transform(image).view(1,3,640,640).to(device)
 94binding_addrs['images']=int(x_input.data_ptr())
 95context.execute_v2(list(binding_addrs.values()))
 96out_prob=bindings['output0'].data.cpu().numpy()
 97end=time.time()
 98
 99class_ids,confidences,boxes=wrap_detection(image,np.squeeze(out_prob,0))
100for(classid,confidence,box)inzip(class_ids,confidences,boxes):
101ifbox[2]>fw*0.67:
102continue
103color=colors[int(classid)%len(colors)]
104cv.rectangle(frame,box,color,2)
105cv.rectangle(frame,(box[0],box[1]-20),(box[0]+box[2],box[1]),color,-1)
106cv.putText(frame,class_list[classid]+""+("%.2f"%confidence),(box[0],box[1]-10),cv.FONT_HERSHEY_SIMPLEX,.5,(0,0,0))
107
108inf_end=end-start
109fps=1/inf_end
110fps_label="FPS:%.2f"%fps
111cv.putText(frame,fps_label,(10,25),cv.FONT_HERSHEY_SIMPLEX,1,(0,0,255),2)
112cv.imshow("YOLOv8+TensorRT8.5.xObjectDetection",frame)
113cc=cv.waitKey(1)
114ifcc==27:
115break
116cv.waitKey(0)
117cv.destroyAllWindows()
118
119
120if__name__=="__main__":
121gpu_trt_demo()

總結(jié):

Jetson Orin Nano從系統(tǒng)燒錄到安裝好pytorch、torchvision、部署運行YOLOv8推理演示程序基本沒有什么坑,唯一需要注意的是numpy別用1.24的最新版本。Jetson Orin Nano算力相比Jetson Nano感覺是一個天上一個地下。





審核編輯:劉清

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

    關(guān)注

    21

    文章

    5010

    瀏覽量

    140401
  • HDMI
    +關(guān)注

    關(guān)注

    32

    文章

    1734

    瀏覽量

    152387
  • 智能機器人
    +關(guān)注

    關(guān)注

    17

    文章

    872

    瀏覽量

    82537
  • USB供電
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    14926

原文標(biāo)題:Jetson Orin Nano刷機與YOLOv8部署演示

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    英偉達推出Jetson Orin Nano模組最高40TOPS性能,為機器人和邊緣AI提供強動力

    基于Orin的生產(chǎn)模組,可以支持各種邊緣AI和機器人應(yīng)用。 ? 據(jù)NVIDIA嵌入式與邊緣計算副總裁Deepu Talla介紹,全新的Jetson Orin
    的頭像 發(fā)表于 09-21 09:44 ?7897次閱讀

    可適配NVIDIA Jetson Orin NX和Orin Nano的工業(yè)級準(zhǔn)系統(tǒng),研華EPC-R7300助力產(chǎn)品開發(fā)

    2023 年, 工業(yè)嵌入式AI解決方案供應(yīng)商研華科技發(fā)布工業(yè)準(zhǔn)系統(tǒng) EPC-R7300,該產(chǎn)品適用于NVIDIA?Jetson Orin?NX及JetsonOrin?Nano模塊。利用強大
    發(fā)表于 04-26 16:47 ?1104次閱讀
    可適配NVIDIA <b class='flag-5'>Jetson</b> <b class='flag-5'>Orin</b> NX和<b class='flag-5'>Orin</b> <b class='flag-5'>Nano</b>的工業(yè)級準(zhǔn)系統(tǒng),研華EPC-R7300助力產(chǎn)品開發(fā)

    jetson nano開發(fā)板

    有大俠使用過jetson nano開發(fā)板嗎?做了一塊擴展板,有些問題,請教下。
    發(fā)表于 08-20 10:54

    Jetson Nano B01 從零入門筆記系列(一)基本組裝與啟動問題 精選資料推薦

    Jetson Nano B01 從零入門筆記系列(一)基本組裝與啟動問題1、基本組件構(gòu)成與補充2、組裝過程3、TF卡及啟動教程要點原專業(yè)離板子類型的東西差的比較遠(yuǎn),參加個四軸避障比
    發(fā)表于 07-20 08:07

    Jetson Nano簡介

    目錄1.Jetson Nano簡介2. Jetson Nano環(huán)境配置2.1 開箱配件介紹2.2 燒錄系統(tǒng)2.3 開機和基本設(shè)置2.4 開發(fā)
    發(fā)表于 07-26 07:44

    Jetson Nano具有哪些優(yōu)勢?Jetson Nano怎么安裝?

    Jetson Nano具有哪些優(yōu)勢?Jetson Nano怎么安裝?
    發(fā)表于 09-28 06:29

    Jetson Nano是什么?有何作用

    Jetson Nano是一款小型,功能強大的計算機,適用于嵌入式應(yīng)用程序和AI IoT這幾天開始第一次使用Jetson Nano,也踩了一些坑,下面給大家分享一下,少走彎路如果您沒有用
    發(fā)表于 01-12 06:43

    如何在Jetson Nano上編譯部署Anbox

      Anbox運行依賴于bander和ashmem兩個驅(qū)動,Jetson Nano 2GB目前最新的內(nèi)核版本是4.9.201,這兩個驅(qū)動已經(jīng)在Jetson Nano的內(nèi)核里了只是默認(rèn)沒
    的頭像 發(fā)表于 04-21 10:38 ?2432次閱讀

    NVIDIA推出全新Jetson Orin Nano系統(tǒng)級模組

    NVIDIA 推出全新Jetson Orin Nano 系統(tǒng)級模組,擴充了NVIDIA Jetson產(chǎn)品陣容。全新Jetson
    的頭像 發(fā)表于 09-22 09:54 ?1296次閱讀

    研揚同步在GTC中宣布NVIDIA Jetson Orin Nano 邊緣計算AI平臺BOXER-8621AI上市

    采用NVIDIA Jetson Orin Nano系統(tǒng)模塊的BOXER-8621AI (臺北,中國臺灣,2022年9月22日)專業(yè)物聯(lián)網(wǎng)及人工智能邊緣運算平臺研發(fā)制造大廠—研揚科技,今日
    的頭像 發(fā)表于 09-27 11:34 ?1654次閱讀
    研揚同步在GTC中宣布NVIDIA <b class='flag-5'>Jetson</b> <b class='flag-5'>Orin</b> <b class='flag-5'>Nano</b> 邊緣計算AI平臺BOXER-8621AI上市

    Jetson AGX Orin開發(fā)者套件轉(zhuǎn)化為任何Jetson Orin模塊

    隨著 Jetson Orin Nano 在本次 GTC 大會的發(fā)布,整個 Jetson Orin 模塊陣容現(xiàn)已揭曉。憑借高達 40 TOPS
    的頭像 發(fā)表于 09-30 11:03 ?2153次閱讀

    使用NVIDIA Jetson Orin Nano解決入門級邊緣人工智能挑戰(zhàn)

    2022 年 GTC , NVIDIA 宣布 Jetson Orin Nano 系列系統(tǒng)模塊( SoM )。它們的 AI 性能是 NVIDIA Jetson
    的頭像 發(fā)表于 10-11 14:47 ?2625次閱讀
    使用NVIDIA <b class='flag-5'>Jetson</b> <b class='flag-5'>Orin</b> <b class='flag-5'>Nano</b>解決入門級邊緣人工智能挑戰(zhàn)

    NVIDIA Jetson Orin Nano的性能基準(zhǔn)

    在本次 GTC 大會上,NVIDIA 發(fā)布了Jetson Orin Nano系列的系統(tǒng)級模組(SoM)。其 AI 性能是 NVIDIA Jetson
    的頭像 發(fā)表于 10-12 09:55 ?3045次閱讀

    GTC23 | 使用 NVIDIA Jetson Orin Nano 開發(fā)套件開發(fā) AI 機器人及智能視覺系統(tǒng)

    NVIDIA Jetson Orin Nano Developer Kit? 為創(chuàng)建入門級 AI 機器人、智能無人機和智能視覺系統(tǒng)設(shè)定了一個新標(biāo)準(zhǔn),同時簡化了? NVIDIA Jetson
    的頭像 發(fā)表于 03-29 03:40 ?1656次閱讀

    NVIDIA發(fā)布小巧高性價比的Jetson Orin Nano Super開發(fā)者套件

    NVIDIA近期推出了一款全新的生成式AI超級計算機——Jetson Orin Nano Super開發(fā)者套件。這款開發(fā)者套件以其小巧的尺寸和高性價比吸引了廣泛關(guān)注。 Jetson
    的頭像 發(fā)表于 12-19 11:28 ?594次閱讀
    广州百家乐酒店用品制造有限公司| 威尼斯人| 百家乐官网视频下载| 网上百家乐新利| 535棋牌游戏| 八大胜百家乐官网的玩法技巧和规则| 大发888卡| 百家乐官网送18元彩金| 大发888娱乐总代理qq| 百家乐官网娱乐平台真钱游戏| 老虎机上分器原理图| 电子百家乐官网打法| 大发888屡败屡战| 百家乐官网园太阳| 博威娱乐在线| 百家乐揽子打法| 百家乐官网游戏公司| 真人百家乐娱乐场开户注册| 百家乐官网娱乐城赌场| 金域百家乐的玩法技巧和规则| 百家乐官网游戏接口| 大发888国际赌场娱乐网规则| 新濠百家乐官网娱乐场| 格尔木市| 百家乐买闲打法| 百家乐官网园游戏77sonci...| 大发888为什么进不去| 黄梅县| 尊龙百家乐娱乐| 百家乐官网打水套利| 八大胜官网| 乐天堂百家乐娱乐场| 百家乐官网国际娱乐场| 金宝博娱乐城返水| 百家乐平注常赢法| 百家乐官网去哪里玩最好| 大发888网页登陆| 百家乐网络视频游戏| 波音百家乐官网自动投注| 大发888娱乐城官网下载| 百家乐的方法和公式|