# NVIDIA Deep Learning Institute ## 開發工具 - JETSON NANO DEVELOPER KIT - Jetson Nano 開發者套件 - 帶有 SD 卡端口的連網電腦 - microSD 記憶卡(最小規格为 32GB UHS-I) - 可兼容的 5V 4A 電源和 2.1 毫米直流桶式連接器 - 2 * 針跳線 - 兼容相機,例如 - Logitech C270 網路攝影機 - USB 線纜(Micro-B 至 Type-A) - 簡報連接 : https://drive.google.com/drive/folders/1hsEkwdhuN07bAQiHzchDxy-EWlK_KUAt ## NVIDIA Jetson AI深度學習課程 - 使用 NVDIA Jetson 系列DLI認證 - 註冊 NVIDIA 帳號 https://courses.nvidia.com/courses/course-v1:DLI+S-RX-02+V2-TW/about ## Image Classification - 內容清單 1. AI And Deep Learning 2. Convolutional Neural Networks (CNNs) 3. ResNet-18 4. Transfer Learning ### 1. AI and Deep Learning 機器學習跟傳統程式的差別  訓練機器學習的三大要素  - 人工智慧: - 透過不斷的累積經驗來進行學習 - 深度學習: - 使用具有「權重」的神經網路模型,輸入可能是數據或圖像,輸出是類別(可能是1000或2或不等);需要反覆訓練方法是給予帶有標籤的資料;訓練好之後拿它來預測新的資料這個動作叫「推論」( Inference )。 - 調整錯誤: - 輸入的數據是良好模型的關鍵之一,所以收集資料的時候,盡可能將圖像的背景,角度等方面做點變化,增加\泛化效果。 ### 2. CNN(Convolutional Neural Networks) - CNN 由來 -> ANN (Artificial Neural Networks) 模仿人類神經元而來,透過一層一層的資訊連貫,並透過非線性函數 ( 激勵函數 ) 將非線性的特徵給擷取學習出來 ( 邊緣、形狀 ) -  - CNN 特質: - 透過濾波器找到特徵圖,最後組合各種特徵圖來進行分類。這邊舉例CNN在辨識鳥類的時候最後會常以顏色來做區分,因為他自己學習到,某些鳥類體型類似但是顏色卻不盡相同。 - CNN 由多個卷積層(特徵擷取)與一組全連接層(分類)連結而成。前者用於找尋空間中的特徵,後者則根據前者的結果進行分類 ### 3. ResNet-18 - 網路層越多越容易導致資訊消失(猜謎接龍),最後使用 殘缺層(Residual block) 解決 - 使用AI框架為: PyTorch - 數據集: ImageNet - ResNet-18 架構包含17個卷積層和1個全連接層 -  ### 4. 轉移學習(Transfer Learning) - Resnet 已針對ImageNet 訓練可辨識 1000 個類別,輸出為 (1000, 1),假設要修改成三個類別,那就要從最後一層動手,原本最後一層為 (512 x 1000) 的話,就要改成 (512 x 3),這樣最後輸出就會是 (3 , 1)。 -  ## 圖像回歸 - 分類和回歸與圖像分類應用程序將圖像輸入映射到**離散**輸出(類)的方式不同,圖像回歸任務是將圖像輸入像素映射到**連續**輸出。 - 連續輸出 - 恰好定義了面部不同特徵(例如鼻子)的 X 和 Y 坐標。這種從圖像流到追蹤位置的映射也可應用到其他案例中,例如追蹤移動機器人身上的某個線條。 - 更改最後一層 - 對於預測坐標的回歸項目,每個類别均需要兩個值:X 和 Y 值。換言之,fc 層中需要的輸出量要比類别數高出一倍。例如,若有 3 個面部特徵(鼻子、左眼和右眼),且每個特徵均包括 X 和 Y 輸出,則 fc 層將需要 6 個輸出,即表示為 (512, 6)。 - 評估 - 分類和回歸項目的評估方式也不相同。分類項目的離散輸出可基於準確率進行評估,即計算“正確”答案的百分比。 ## 專題實作 1. Is my hand showing thumbs-up or thumbs-down? 按讚辨識器(Thumbs) 2. Does my face appear happy or sad? 情緒辨識器(emotions) 3. How many fingers am I holding up? 手指數字辨識器(fingers) 4. Where's my nose? 鼻子辨識器 ### Jetson NANO 安裝設定  - 下載MobaXterm_Portable_v22.0 - 遠端使用 MicroUSB to USB (方法1) - 1. 使用 micro USB 線對接到 Nano 與電腦連接 - 2. 使用 mobaXterm 輸入 192.168.55.1 進行遠端連接(SSH) - 帳號密碼: jetson - 遠端使用 網路線連接 (方法2) - 1. 使用網路線對接 Nano 與 電腦 - 2. 將WIFI共享給 [乙太網路N] (插上 NANO 會新增) - 3. 使用 Wireless Watcher 查看 [乙太網路N] Nano的IP - 帳號密碼: jetson  - 開啟 Docker - cd ~ - ./docker_dli_run.sh - 輸入密碼 - 測試 webcam (or pi camera V2) -  - 進行 Jupyter 操作 - http://192.168.55.1:8888 - 密碼:dlinano - Jetson Nano 專案 - [專案檢視](https://drive.google.com/drive/folders/1KljcXtYJFBnJpFVdyhZmZu1UN8uyW4nb?usp=share_link) - 1. (hello_camera) - 打開 /hello_camera/usb.camera.ipynb - 測試攝像頭能否使用 - 2. (classification_interactive) - 打開 /classification/classification_interactive.ipynb - 辨識拇指朝向 - 如果只判斷 拇指往上以及拇指往下 會常常造成判斷錯誤,因此我們需要新增一個反指標把絕對不是的答案丟到字典裡 - 如果發生判斷錯誤,可以增加誤判值分類的基數來增加準確率 - 3. (regression_interactive) - 打開 regression/regression.ipynb - 臉部追蹤系統 - 此項目使用了 ResNet-18 預訓練模型: - model = torchvision.models.resnet18(pretrained=True) - 除選擇模型之外,我們還要對模型的最後一層進行修改,使其僅接受我們所要訓練的類數量。在“人臉 XY 項目”中,由於每個類别都需要 X 和 Y 坐標(即鼻子 X、鼻子 Y、左眼 X、右眼 X 和右眼 Y),因此其數量要比類别數高出一倍(ex: 鼻子、左眼、右眼 * XY = 6)。 - output_dim = 2 * len(dataset.categories) - model.fc = torch.nn.Linear(512, output_dim)  - 最後結束程式時記得將 Kernal ShutDown - 補充說明: - [wnetwatcher](https://www.azofreeware.com/2011/08/wireless-network-watcher-120.html) ## 延伸學習 Jetson Nano 開發套件是一個可用於學習及開發的AI計算機。 - 獲得 Jetson AI 認證 - 作為Jetson AI 專家 or Jetson AI 大使完成認證. 在完成 Jetson AI 基礎知識學習後,在 Jeston 上構建和發布使用 AI 的開源項目。請了解更多有關 AI certifications的額外要求和益處的訊息。 - 查看 Jetson Projects Page 獲取以下資源: - [Hello AI World](https://developer.nvidia.com/embedded/twodaystoademo#hello_ai_world) - 使用預先訓練的模型進行圖像分類和物體檢測的計算機視覺深度學習推論入門。 - 使用TensorRT對即時影片流進行即時加速。 - 用C++編寫自己的圖像識別程序。 - 那些有興趣訓練自己的網路的人,可以參加一個兩天的課程,其中包括模型訓練和推論。 - [JetBot](https://github.com/NVIDIA-AI-IOT/jetbot) - 是一個開源碼的AI項目,面向對學習AI和構件有趣的應用程序感興趣的制造商,學生和愛好者。 - 易於設置和使用,並且與許多流行配件兼容。 - 幾個互動式教程向您展示了如何利用AI的力量來教導JetBot跟隨物體,避免碰撞等。 - JetBot是創建全新AI項目的絕佳的快速啟動板。 - [CAVEDU教育技術部落格](https://blog.cavedu.com/2021/07/21/nvidia-deepstream/) - [CAVE Education](https://www.rs-online.com/designspark/user/CAVE%20Education) - [Jetson Community Projects](https://developer.nvidia.com/embedded/community/jetson-projects) - [NVIDIA線上課程:深度影像串流-DeepStream實作解說,使用網路影像串流進行深度學習辨識](https://blog.cavedu.com/2021/07/21/nvidia-deepstream/)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up