精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

Jetson Orin Nano納米刷機介紹

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

Jetson Orin Nano 介紹

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

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

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

JetPack5.1鏡像制作

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

必須NVIDIA的賬號登錄之后才可以下載。JetPack5.1已經預安裝好了

- 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開發板的風扇下方的卡槽中

安裝pytorch與torchvision

安裝好了Jetpack5.1之后,我才發現英偉達官方還沒有正式發布適配的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;
國內安裝經常會有網絡無法連接發生各種錯誤,沒事多執行幾次命令行肯定可以安裝成功的(我的個人經驗)。 安裝好pytorch相關依賴之后,安裝pytorch就很簡單:
pip3 install torch-1.14.0a0+44dac51c.nv23.02-cp38-cp38-linux_aarch64.whl
安裝好pytorch之后,使用下面的命令行從源碼安裝torchvision 0.15.1版本,先安裝依賴,然后下載安裝包,最后從源碼編譯安裝,大概十分鐘左右就好,相關命令行如下:
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
同樣不行就執行幾次,肯定會成功安裝的,我安裝與運行的截圖如下:

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

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

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

最終驗證測試如下:

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

說明一切準備工作就緒了。

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

ONNX2ENGINE

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

cd /usr/src/tensorrt/bin
./trtexec --onnx= --saveEngine=
相關截圖如下:

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

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

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

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

YOLOv8對象檢測演示

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

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

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

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

  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()

總結:

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





審核編輯:劉清

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

    關注

    21

    文章

    4944

    瀏覽量

    139818
  • HDMI
    +關注

    關注

    32

    文章

    1662

    瀏覽量

    151650
  • 智能機器人
    +關注

    關注

    17

    文章

    863

    瀏覽量

    82207
  • USB供電
    +關注

    關注

    0

    文章

    29

    瀏覽量

    14855

原文標題:Jetson Orin Nano刷機與YOLOv8部署演示

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

    可適配NVIDIA Jetson Orin NX和Orin Nano的工業級準系統,研華EPC-R7300助力產品開發

    2023 年, 工業嵌入式AI解決方案供應商研華科技發布工業準系統 EPC-R7300,該產品適用于NVIDIA?Jetson Orin?NX及JetsonOrin?Nano模塊。利用強大
    發表于 04-26 16:47 ?991次閱讀
    可適配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>的工業級準系統,研華EPC-R7300助力產品開發

    jetson nano開發板

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

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

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

    Jetson Nano簡介

    目錄1.Jetson Nano簡介2. Jetson Nano環境配置2.1 開箱配件介紹2.2 燒錄系統2.3 開機和基本設置2.4 開發
    發表于 07-26 07:44

    Jetson Nano具有哪些優勢?Jetson Nano怎么安裝?

    Jetson Nano具有哪些優勢?Jetson Nano怎么安裝?
    發表于 09-28 06:29

    Jetson Nano是什么?有何作用

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

    如何在Jetson Nano上編譯部署Anbox

      Anbox運行依賴于bander和ashmem兩個驅動,Jetson Nano 2GB目前最新的內核版本是4.9.201,這兩個驅動已經在Jetson Nano的內核里了只是默認沒
    的頭像 發表于 04-21 10:38 ?2352次閱讀

    NVIDIA推出全新Jetson Orin Nano系統級模組

    NVIDIA 推出全新Jetson Orin Nano 系統級模組,擴充了NVIDIA Jetson產品陣容。全新Jetson
    的頭像 發表于 09-22 09:54 ?1208次閱讀

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

    采用NVIDIA Jetson Orin Nano系統模塊的BOXER-8621AI (臺北,中國臺灣,2022年9月22日)專業物聯網及人工智能邊緣運算平臺研發制造大廠—研揚科技,今日
    的頭像 發表于 09-27 11:34 ?1549次閱讀
    研揚同步在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開發者套件轉化為任何Jetson Orin模塊

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

    使用NVIDIA Jetson Orin Nano解決入門級邊緣人工智能挑戰

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

    利用開發工具包為所有六個NVIDIA Jetson Orin模塊開發

      Orin Nano 模塊擁有多達 40 個 AI 性能 TOPS ,為入門級 AI 設定了新標準,正如 Jetson AGX Orin 已經通過 275 個服務器級計算 TOPS
    的頭像 發表于 10-12 09:16 ?1614次閱讀
    利用開發工具包為所有六個NVIDIA <b class='flag-5'>Jetson</b> <b class='flag-5'>Orin</b>模塊開發

    NVIDIA Jetson Orin Nano的性能基準

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

    GTC23 | 使用 NVIDIA Jetson Orin Nano 開發套件開發 AI 機器人及智能視覺系統

    NVIDIA Jetson Orin Nano Developer Kit? 為創建入門級 AI 機器人、智能無人機和智能視覺系統設定了一個新標準,同時簡化了? NVIDIA Jetson
    的頭像 發表于 03-29 03:40 ?1470次閱讀