Nvidia Jetson AGX Orin 初體驗(七)Hello AI World
在 https://developer.nvidia.com/embedded/learn/get-started-jetson-agx-orin-devkit 鏈接中:
提供了一個Nvidia AI示例的鏈接 HelloAI World:https://github.com/dusty-nv/jetson-inference
這里面提供了 圖像處理圖像識別Image Recognition 、目標檢測Object Detection 、語義分割Semantic Segmentation 、姿態(tài)估計Pose Estimation、 深度估計Monocular Depth等幾十個應用的案例:
我們看看能不能把 jetson-inference?玩轉(zhuǎn)起來吧。
根據(jù) https://github.com/dusty-nv/jetson-inference/blob/master/docs/aux-docker.md
先看看能不能用docker運行。
git clone --recursive https://github.com/dusty-nv/jetson-inference
執(zhí)行這個命令恐怕不行,一來,github本來就不容易連,這里面還需要循環(huán)連接項目中的子模塊,得到的只怕是這么一個結(jié)果:
那么我們只好借助于gitee過渡了:
這個時候,最好不要選公開的其他人的gittee倉庫,因為對項目工程我們還需要再加工。。。
打開克隆好的gitee上的jetson-inference工程:https://gitee.com/zhanghui_china/jetson-inference
如果直接git clone當然可以:
但是,別忘了,需要加上--recursive才行,結(jié)果加上參數(shù)還是出錯了。
因為 --recursive參數(shù)會看 .gitmodules里面的子模塊地址,然后循環(huán)的完成代碼clone:
而這里面的地址都是github的,依然難以連接。
那么,與前面一樣的,我們再把對應這些倉庫也都遷到自己的gitee上來:
并將.gitmodules文件改為自己的gitee地址:
[submodule "utils"] path = utils url = https://gitee.com/zhanghui_china/jetson-utils branch = master [submodule "tools/camera-capture"] path = tools/camera-capture url = https://gitee.com/zhanghui_china/camera-capture branch = master [submodule "python/training/classification"] path = python/training/classification url = https://gitee.com/zhanghui_china/pytorch-classification branch = master [submodule "python/training/detection"] path = python/training/detection url = https://gitee.com/zhanghui_china/pytorch-detection branch = master [submodule "python/training/segmentation"] path = python/training/segmentation url = https://gitee.com/zhanghui_china/pytorch-segmentation branch = master [submodule "plugins/pose"] path = plugins/pose url = https://gitee.com/zhanghui_china/trt_pose
提交代碼后,我們再來git clone.
這里需要注意,子模塊的子模塊的.gitmodules如果也涉及到github,也需要做相應的修改。
為了防止存儲不夠,特意轉(zhuǎn)移到 /home1的 1T大硬盤上做:
cd /home1/zhanghui
git clone --recursive https://gitee.com/zhanghui_china/jetson-inference
好了,代碼下載終于完成了,確實挺費勁的。
下面開始照著說明來試下docker怎么玩:
cd jetson-inference
docker/run.sh
不一會兒,系統(tǒng)會切換到Model Downloader的界面:
這個時候如果選擇下載:
不一會兒開始下載:
不過會出現(xiàn)以下錯誤:
仔細看下執(zhí)行的腳本 download-models.sh
它又到了一個中國人找不到的地方下載東西。
所以這個時候雖然錯了,你只有看著它繼續(xù)。
接著腳本會繼續(xù)下載 pytorch-ssd base model:
查看腳本,它依然是無法下載的:
我們手工下載下來:
系統(tǒng)等了半天,下載不下來,就只好開始下載鏡像:
繼續(xù)下載docker鏡像:
經(jīng)過不懈的下載:
終于可以下載完畢:
但是張小白甚至,沒有這些模型,是無法完成AI的推理任務的。
所以,你只有想辦法打開瀏覽器,把這些文件一一下載到手:
直到最后下載了4.5G大小的Model文件:
這邊是張小白整理過的:
然后如果要用的時候,將其傳到Orin上就行了。
唉,辦法總比困難多,是吧?
不過,這種docker的方式張小白還是沒搞清楚該怎么玩。。。
唉,那就先試下源碼編譯吧:
根據(jù) https://github.com/dusty-nv/jetson-inference/blob/master/docs/building-repo-2.md
依次來執(zhí)行試試,只是git clone已經(jīng)做過了。
sudo apt-get update
sudo apt-get install git cmake libpython3-dev python3-numpy
cd /home1/zhanghui/jetson-inference
mkdir build
cd build
cmake ../
咦,又切換到了Model Downloader頁面了:
這次依然啥也不選:
進入是否要安裝Pytorch的頁面:
這個就安裝吧:
可以看到安裝程序在下載torch和orchvision.
終于等到cmake結(jié)束:
然后make 12( nproc是12個)
正在張小白美滋滋地等待編譯結(jié)束時,突然出錯了:
度娘了一下:
是因為gcc版本不夠。當然了,張小白前面編譯MindSpore的時候,將gcc降級到了7.3.0版本。
那就只好將gcc版本改回來:
需要將/usr/bin/gcc放在 /usr/local/bin/gcc前面:
清理,重新編譯:
make clean
make -j12
成功了。
sudo make install
sudo ldconfig
所有操作都做完了。
下面來解決模型的問題,仔細看前面的鏈接說明:
在github上也有models下載:
https://github.com/dusty-nv/jetson-inference/releases
不過這個鏡像在github上,有跟沒有一樣。有種方法,就是將其放到公網(wǎng)其他什么地方下載。但是大家別忘了,張小白前面就下載過了。
將其傳到 /home1/zhanghui/jetson-models目錄下:
從download_models.sh可以看出,這些文件需要拷貝或者解壓到 /home/zhanghui1/jetson-inference/data/network目錄下:
對于AlexNet和GoogleNet的6個文件,使用download_file方法,看起來好像就是直接拷貝過去就行了。
而對于其他的gz文件,使用down_archive文件,其實是下載文件,解壓文件到 OUTPUT_DIR="../data/networks" 這個目錄,然后刪掉原gz文件。
那么我們就自己做一個extract.sh,解壓這些gz文件:
tar -zxvf Deep-Homography-COCO.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf DetectNet-COCO-Airplane.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf DetectNet-COCO-Bottle.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf DetectNet-COCO-Chair.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf DetectNet-COCO-Dog.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf facenet-120.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-Alexnet-Aerial-FPV-720p.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-Alexnet-Cityscapes-HD.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-Alexnet-Cityscapes-SD.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-Alexnet-Pascal-VOC.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-Alexnet-SYNTHIA-CVPR16.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-Alexnet-SYNTHIA-Summer-HD.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-Alexnet-SYNTHIA-Summer-SD.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-ResNet18-Cityscapes-1024x512.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-ResNet18-Cityscapes-2048x1024.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-ResNet18-Cityscapes-512x256.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-ResNet18-DeepScene-576x320.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-ResNet18-DeepScene-864x480.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-ResNet18-MHP-512x320.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-ResNet18-MHP-640x360.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-ResNet18-Pascal-VOC-320x320.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-ResNet18-Pascal-VOC-512x320.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-ResNet18-SUN-RGBD-512x400.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf FCN-ResNet18-SUN-RGBD-640x512.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf GoogleNet-ILSVRC12-subset.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf Inception-v4.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf MonoDepth-FCN-Mobilenet.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf MonoDepth-FCN-ResNet18.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf MonoDepth-FCN-ResNet50.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf multiped-500.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf ped-100.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf Pose-DenseNet121-Body.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf Pose-ResNet18-Body.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf Pose-ResNet18-Hand.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf ResNet-101.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf ResNet-152.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf ResNet-18.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf ResNet-50.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf SSD-Inception-v2.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf SSD-Mobilenet-v1.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf SSD-Mobilenet-v2.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf Super-Resolution-BSD500.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf VGG-16.tar.gz -C /home1/zhanghui/jetson-inference/data/networks tar -zxvf VGG-19.tar.gz -C /home1/zhanghui/jetson-inference/data/networks
那6個文件可以直接拷貝過去:
然后打開 https://github.com/dusty-nv/jetson-inference/blob/master/docs/imagenet-console-2.md
執(zhí)行以下命令:
先清空/home/zhanghui/jetson-inference/data/images/test/
rm -f /home/zhanghui/jetson-inference/data/images/test/*
cd /home1/zhanghui/jetson-inference/build/aarch64/bin
解析下orange:
./imagenet /home/zhanghui/jetson-inference/data/images/orange_0.jpg /home/zhanghui/jetson-inference/data/images/test/output_0.jpg
耐心等待代碼執(zhí)行完畢(時間貌似有點長。。)
看日志,好像報了一些error,但是查看文件好像生成了。
cd /home/zhanghui/jetson-inference/data/images/test/
cd /home1/zhanghui/jetson-inference/build/aarch64/bin
再解析下stawberry:
./imagenet /home/zhanghui/jetson-inference/data/images/strawberry_0.jpg /home/zhanghui/jetson-inference/data/images/test/output_1.jpg
...
cd /home/zhanghui/jetson-inference/data/images/test/
看下結(jié)果:
將這兩個文件下載到本地:
打開看看:
看來Orin對于桔子還不是很確定,但是對于草莓是非常肯定的。
也許是因為桔子還有親戚叫做橙子、臍橙、丑八怪。。。。
好了,我們這次僅僅是源碼編譯了jetson-inference,然后運行了一個簡單的imagenet代碼。還有50多個網(wǎng)絡要Hello,張小白好像哈不過來了。而且前面docker好像也沒跑成功。這個問題只能等著以后來解決了。
勞動節(jié),該休息了。
(未完待續(xù))
AI EI企業(yè)智能 pytorch 智能邊緣 深度學習
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。