NVIDIA Jetson Nano 如何執行深度學習範例?分類模型辨識北極熊與即時影像人臉辨識

開發者袁佑緣
時間包含燒錄系統70分鐘
難度***
電腦/筆記型電腦/SD讀卡機
外接螢幕(HDMI接頭/ VGA轉HDMI轉接線 ) X1
USB 鍵盤 / 滑鼠 X1
Jetson Nano™ Developer Kit (全配)X1
Nvidia JETSON NANO X1
5V3A變壓器 X1
64GB Samsung micro SD卡 X1
羅技C270 HD 網路攝影機 X1
USB Wi-Fi dongle + 90度轉接頭 / 有線網路 X1

小編感謝大家對JETSON NANO熱烈回應,這次與大家分享如何“執行”NVIDIA原廠為JETSON NANO準備的範例,範例為分類辨識、人臉偵測。

安裝作業系統的部分,請參考: NVIDIA Jetson Nano 實際使用難不難?從入手到安裝系統、開機與遠端連線

請注意!!執行本文章範例”目前”需要寫入Jetson Download Center的映像檔-映像檔連結,目前JETBOT專案的映像檔無法執行範例,已回報狀況給NVIDIA。此映像檔的作業系統需要自行設定使用者名稱與密碼,遠端連線時也會使用您設定的使用者名稱與密碼。

第一個範例是辨識圖片中的動物,下圖是執行範例後,將辨識結果印在圖片上,辨識圖片中的動物為"北極熊",辨識信心指數為100%

信心指數100%的北極熊辨識結果

本文章分為三個階段分享:

  1. 軟體環境安裝
  2. 執行深度學習範例-分類應用
  3. 物件偵測應用-人臉辨識

1、軟體環境安裝

Step1:JETSON NANO開機之後,點選左上角的圖示搜尋Terminal。

開啟後就會看一個終端機的介面,接下來的指令都會在這個介面裡面做操作。

Step2: 輸入以下的指令安裝git、cmake套件。

sudo apt-get install git cmake

Step3:下載jetson-inference專案程式

git clone https://github.com/dusty-nv/jetson-inference

由於在這個repo裡面會用到 jetson-utils 這個額外的submodule,所以要
一併把它載下來

cd jetson-inference
git submodule update --init

Step4: 使用CMake來準備編譯所需的相依套件

mkdir build && cd build
cmake ../

過程中會呼叫一個叫CMakePrebuild.sh的腳本,其中會需要超級使用者的權限(sudo), Jetson Nano中預設使用者就有sudo的權限,請直接輸入使用者的密碼即可。

接下來程式就會自動下載各種相依的函式庫跟一些訓練完的模型,如下圖(下載googlenet.caffemodel中)。

由於要下載的模型眾多,整個過程會花上不少時間, 所以在一步可以先讓機器跑一陣子再回來看。

Step5: 使用make編譯程式碼

make

編譯完成!

執行make install,最後完整的輸出檔案將會在 jetson-inference/build/aarch64 這個資料夾中, 接下來所有要執行的範例程式都能夠在 jetson-inference/build/aarch64/bin 資料夾中找到。

make install

執行深度學習範例

2、分類應用

我們先來試跑一些基本的分類問題。

Step1:我們先將工作目錄移到以下的資料夾中

cd ~/jetson-inference/build/aarch64/bin

Step2:呼叫imagenet的範例來做辨識

比如說我們想要辨識一張北極熊的圖片polar_bear.jpg, 然後辨識完的結果叫做 polar_bear_inferenced.jpg。

./imagenet-console polar_bear.jpg polar_bear_inferenced.jpg

第一次跑的話,您可能會發現畫面會卡在下面那張圖, 這是因為TensorRT會花上些許的時間來最佳化這個網路,請耐心等候,之後跑的話就會快很多了。

原圖

辨識結果:北極熊

3、物件偵測應用-人臉辨識

Step1:修改攝影機設置

Jetson Nano可以使用RaspberryPi的鏡頭, 範例預設連結內建的CSI Camera, 本次分享如何在範例中更改使用的鏡頭,本次使用為Logitech的C270, 需要對程式做一些小修改。

請輸入以下的指令將視訊的裝置指定為 /dev/video0, 也就是一般預設的USB Camera的裝置位置。

sed -i 's/DEFAULT_CAMERA\s* -1/DEFAULT_CAMERA 0/' ~/jetson-inference/detectnet-camera/detectnet-camera.cpp

Step2:編譯範例

接下來我們需要重新編譯一次程式, 先將工作目錄切換到 ~/jetson-inference/build , 然後重新編譯 detectnet-camera 一次。

cd ~/jetson-inference/build
make detectnet-camera

重新編譯完後,我們把工作目錄切換回 ~/jetson-inference/build/aarch64/bin , 然後跑facenet的模型來執行人臉辨識。

cd ~/jetson-inference/build/aarch64/bin
./detectnet-camera facenet

成功執行人臉辨識!

今天分享到這邊,感謝大家支持CAVEDU,如果您喜歡JETSON NANO的相關文章,請多多與我們反應。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *