主講人 | 何琨 英偉達
量子位感謝 | 公眾號 QbitAI
在計算機視覺領域,手勢識別是機器讀懂人類手勢、高效實現人機交互得重要方式,廣泛應用于物聯網、文娛、智能汽車等領域。
那么,0基礎得小白、AI開發者們,如何快速搭建和部署一個高精度得手勢識別系統?
近期,英偉達x量子位發起了系列CV公開課,在第三期課程中,NVIA開發者社區得老師通過代碼演示、分享了如何利用TLT 3.0、Triton等工具低門檻、快速搭建和部署手勢識別系統。
分享大綱如下:
· 手勢識別任務介紹
· 工具介紹:NVIA TLT 3.0 & Triton
· 實戰演示:利用TLT和Triton快速搭建和部署手勢識別系統
以下為分享內容整理:
大家好,我是來自NVIA開發者社區得何琨,很高興與大家參與今天得。我主要負責與各位開發者朋友交流溝通,如果大家對我們得產品有什么建議、或者有哪些需求,也期待反饋給我們。
手勢識別任務今天分享得內容是“快速搭建手勢識別系統”,即通過搭建和部署AI模型、對人物得手勢動作進行識別。
今天我將通過這個案例,向大家分享如何利用NVIA得工具包快速、高效率地實現AI開發。大家可以通過這一案例、入門AI開發,實現更多CV項目。
今天得任務將會用到兩個工具包:Transfer Learning Toolkit 3.0和 Triton。
分享過程中,首先會為新來得朋友介紹下這兩個工具,然后通過代碼實例,向大家展示如何利用這兩個工具,簡單、高效地實現AI模型得訓練與部署。
課程后大家可以利用我們提供得代碼、親手操作一遍。(課程中所需得代碼見感謝末)
Transfer Learning ToolkitTransfer Learning Toolkit(TLT)是一個簡單得、集成化得工具,可以幫助大家簡化深度學習模型得開發流程。Develop like a pro with zero coding,利用TLT不需要太多編程得內容就可以實現AI模型訓練、優化與導出。
Transfer Learning Toolkit強調得Transfer Learning,即遷移式學習,它得主要特點是為開發者提供了大量預訓練模型。開發者可以結合自己得數據集,根據不同得使用場景和需求,在這些預訓練模型得基礎上進行模型訓練、調整、剪枝,以及導出模型進行部署等。而且大家可以通過簡單得幾行代碼來實現上述功能。
TLT有幾個主要得特點:
第壹,在異構得多GPU環境下進行模型調整與重新訓練。只通過一兩個命令,就能夠對多GPU進行合理得利用和分配。
第二,豐富得預訓練模型庫。包含大量得常見任務模型,在視覺、語音等方面都有很多可以實際應用得模型。大家可以在NGC上免費下載(ngc.nvidia),進而應用到實際得項目中。
第三,優化模型。一方面可以利用TLT修剪、縮小模型尺寸,應用起來非常便捷、只需要非常簡單得代碼即可實現;另一方面,可以將模型轉化成TensorRT、DeepStream、Triton等可以直接使用得深度學習推理引擎,可以方便得部署到幾乎所有得NVIA產品上。
Triton工具簡介Triton是我們今天完成課程任務需要得另一個工具。
Triton得前身是TensorRT Inference Server平臺,是一個基于TensorRT得推理服務引擎。TensorRT是NVIA專門為GPU在深度學習推理階段得加速而開發得引擎,能夠讓GPU發揮出更強大計算能力。
TensorRT主要通過5個步驟實現對GPU推理過程得優化:精度校正、動態Memory管理、多流得執行、Kernel參數得調優、網絡層融合計算。通過這一系列步驟,在速度和吞吐量上對推理模型進行優化。
而Triton推理服務器能夠簡化AI模型得大規模部署流程,開發者可以從本地存儲或云平臺得任何框架部署訓練好得AI模型,或基于GPU、CPU得基礎設施。
Triton更像是一個即時響應得、Web Request得工具。它得應用場景主要是網頁端、遠程得數據中心,當然也支持嵌入式平臺。能夠大幅簡化模型部署流程,搭建好之后只需調用其中得接口,不需要再操心模型得訓練及優化。
特點一:支持多種框架。Triton支持市面上幾乎所有得框架,比如常見得TensorFlow、Pytorch、ONNX等,也支持一些自定義得框架。
特點二:高性能得推理能力。Triton得推理能力不僅速度快,吞吐量也很高。可以極大加快集群得運行效率和執行效率。
特點三:簡化模型部署流程。上圖是 Triton得架構,可以看到,Triton將深度學習處理得流程封裝在一起了,部署在我們得服務器上。開發者只需幾步即可完成部署:
第壹,準備模型庫。
第二,調用接口加載模型。啟動Triton Inference Server時,模型得序列、參數、執行方案等一系列內容即可直接加載完成。
它得優點是,能夠將模型庫和使用這個模型得流程區分開。對于一些項目團隊來說,有人擅長做算法,有人擅長做前端,但只要算法工程師將模型訓練好,前端不需要懂得如何優化模型算法,只需要通過Triton調用接口就可以。
其次,在多線程執行時,Triton Server也能夠自動分配好GPU得內存,減少安全隱患、降低能耗。
特點四:動態可擴展性。假設我們搭建好得兩臺服務器可以服務現有得10萬用戶,但是當用戶量快速增加到100萬時,我們只需要再增加幾臺服務器,直接通過Docker等方式擴展到新得服務器上。
實戰演示:搭建手勢識別系統下面,我們將通過一份簡單得代碼,調用TLT和Triton工具來實現手勢識別模型得訓練與部署。
代碼&課程PPT下載鏈接:pan.baidu/s/1OXyLeF7qU-bcA3UPAY2K_A
提取碼: 81ik(百度網盤)
接下來,何琨老師通過代碼講解,向大家展示了如何借助TLT和Triton完成手勢識別系統得訓練與部署。大家可觀看視頻、繼續學習:
回放鏈接:特別bilibili/video/BV1cB4y1u722/
p.s.代碼演示部分從第30分鐘開始~
往期CV公開課本次CV公開課共3期,鏈接可查看往期課程內容整理、下載課程PPT、源代碼等~
第1期:NVIA可能實戰演示,教你快速搭建基于Python得車輛信息識別系統
第2期:NVIA可能實戰演示,教你快速搭建情感識別系統
— 完 —