資料介紹
描述
幾個月前,出于對教育的好奇心,我萌生了使用 Jetson Nano 構建人臉識別系統的想法。后來隨著最初的想法被調整為激活滑動門。為了讓它變得可行,我和我的伙伴 Mrugank 和 Suman 集思廣益,用可動人偶實現了同樣的效果。
但它只是一個想法,沒有太多行動。多虧了由 Nvidia 和 Hackster.io 主辦的“AI at the Edge Challenge”,我們組建了自己的團隊 (Nerds United Alpha) 并努力將這個想法變為現實。
我們決定賦予它“復仇者聯盟智能之家”的光環,只歡迎 Marvel 可動人偶,每個角色都有自定義語音歡迎信息。
創建數據集
在庫存中,我們有一些可動人偶,但不幸的是,沒有可用于可動人偶的數據集。因此,我們必須建造一個。由于這是一個需要深度學習的計算機視覺用例,因此大約10 -15k圖像的數據集就足夠了。
手動點擊/收集這么多圖像將是一個繁瑣的過程。因此,為了拯救我們,我們想出了兩個步驟來自動化創建深度學習圖像數據集的過程:
1. 使用搜索查詢收集圖像:多虧了PyImageSearch 的有趣教程,我們才能夠通過 Bing 搜索查詢自動執行收集圖像的過程。微軟免費提供 Bing Search API,但有一定的限制(每天約 3000 次搜索查詢)。您也可以使用它來填充您自己的數據集。我們為每個班級收集了大約 100 張圖像。
2. 數據增強:當您缺乏足夠的數據來完成您的任務時,執行一些數據增強技術來創建合成圖像非常有效。隨機旋轉、裁剪、過濾器和水平翻轉等技術可以解決問題。我們使用 skimage 庫來執行相同的操作。

模型創建和訓練
為了訓練我們的模型,我們選擇了 Google Collaboratory 提供的 Nvidia GPU 運行時。PyTorch 是我們選擇的深度學習框架來構建和訓練我們的模型。因此,我們參考了 PyTorch.org 的官方遷移學習教程。因此,您需要做的就是運行 Google Colab 實例并將您的數據集上傳到谷歌驅動器。根據代碼,確保將數據集文件夾分隔為“train”和“val”文件夾,并將各個類作為子目錄。


使用 ResNet-18 進行遷移學習
ResNet-18 是最受歡迎的預訓練神經網絡之一。我們很樂意繼續使用它進行遷移學習。

因為我們只是遷移學習,所以我們不需要在我們的神經網絡中進行反向傳播。因此,我們在獲得預訓練模型后的第一步停用它,并修改全連接層,使其變為線性并提供類數,即“8”,以及模型中的特征數,如下爭論。
這是使用 GPU 進行更快訓練的必要步驟,因此,模型需要傳輸到“設備”,這恰好是 Nvidia GPU。您可以自由選擇您的標準。'CrossEntropyLoss' 和 'NLLLoss' 都是首選。
現在是時候用我們的模型訓練和分類圖像了。請參閱筆記本中的train_model方法以獲得進一步的見解。

對我們來說,最佳驗證準確率約為 0.99,這是一個相當不錯的表現。預測結果也很驚人!現在,使用必要的 torch.save() 函數保存模型。
讓我們開始使用 Jetson Nano 部署我們的推理模型吧!

設置 Jetson Nano 進行推理
Nvidia Jetson Nano 是一款帶有板載 Tegra GPU 的嵌入式 SoC,針對“邊緣人工智能”進行了優化和構建。要開始使用 Jetson Nano,您可以參考官方指南進行首次啟動設置。簡而言之,您只需要使用 Nvidia 最新的“Linux For Tegra (L4T)”映像刷入 UHS-I SD 卡。之后,確保您擁有為 Jetson Nano 供電和啟動的先決條件硬件。
1.先決條件
我們建議您擁有:
- microSD 卡(32 - 64 GB UHS-1)
- USB 鍵盤和鼠標
- 電腦顯示器(HDMI 或 DP)
- 電源適配器(5V=4A)【OnePlus、MiA1等手機適配器】
- USB 至 5V DC (2.1 mm) 桶形插孔電纜
該設備隨JetPack一起提供,其中包含一套內置的 Nvidia 軟件和必要的 CUDA 庫。Nano 的最新 L4T (r32.1.1) 更新帶有默認的 OpenCV 4 版本,這對計算機視覺社區來說是一個巨大的福音。
2.推理庫
請注意,Jetson Nano 是一款非常適合AI 推理任務的邊緣設備。請不要誤會,您可以用它來訓練您的模型。它會升溫并繁榮!為了我們的深度學習推理目的,我們需要以下庫和包。
- 火炬
- 火炬視覺
- Py2trt - 構建與 PyTorch 模型兼容的TensorRT推理引擎
要獲得上面的先決條件列表,只需訪問Nvidia 論壇鏈接,了解從源代碼構建的分步過程。要安裝 py2trt 模塊,只需在終端中執行以下命令:
pip install torch2trt
3.加載和轉換我們的模型(Py2TRT)
Nvidia 使得將在 PyTorch 中訓練的模型移植到它的 TensorRT 對應模型變得非常容易,只需一行。請參閱下圖了解必要的步驟。

- 初始化pytorch模型對象
- 加載模型狀態字典
-
創建一個示例張量(確保它與您通常訓練的 cv2 窗口捕獲大小/圖像大小的分辨率相匹配):我們提供 (480, 640) 以匹配 640x480 分辨率大小。準備好了!
?
請參閱此代碼以進一步了解 GPIO 模式操作以設置電機運動。
?這個旋轉電機將幫助我們方便滑動門
3.選擇滑動門機構
?上圖是齒條和小齒輪機構的參考圖像,用于前后滑動我們的門。旋轉的直流電機產生旋轉齒輪所需的力。當齒輪連接到兼容的牙齒時,有助于連接的下頜沿相反方向滑動。
?根據上圖,您可以看到我們帶推拉門的智能住宅的原型。Jetvengers House 已準備就緒。我們 3D 打印了滑動門的重要部件,即“架子”。
PS:我們用硬紙板建造了我們的房子,L2989N(其中一個帶有紅色 LED)由 UPS 電池供電 XD!
整合人工智能和物聯網
現在是時候讓我們的 Jetvengers HQ 智能功能付諸行動了。感謝JKJung 與自定義 tegra-cam 的合作,我們能夠讓GStreamer管道與 Jetson Nano 上的 OpenCV 一起工作。
請注意,為了在計算機視覺中更快地傳輸數據,您需要 gstreamer 插件管道,否則流會嚴重滯后,從而阻礙您的工作。
要了解如何創建 gstreamer 管道,您可以查看我們的代碼,但我們不會深入探討。我們的重點是如何通過簡單的圖像分類來識別可動人偶。
1.捕獲幀進行預處理
此代碼位于我們存儲庫中的gstreamer.py文件中。看一眼熟悉代碼。
首先,確保導入這些必要的模塊
?read_cam() 捕捉幀?提供一個計數器變量以捕獲流中的每 48 幀(如果 framerate = 24 每秒,則每 2 秒捕獲一次)。將捕獲的幀傳遞給預處理。在所有過程之后增加計數器。確保為等待鍵和中斷提供條件以繼續/中斷流。
2.圖像預處理
檢查傳遞給標準化變量的均值和標準差,我們將使用它?當然,我們需要執行此步驟以匹配在訓練過程中轉換訓練和驗證圖像時的狀態。
?確保執行這些步驟。不要忘記將圖像轉換為 RGB,因為 OpenCV 以 BGR 格式捕獲每一幀。
?我們附加了一個 softmax 層以獲取可讀格式的概率,否則我們將無法解釋這些值以進行進一步處理。我們需要返回概率和頂級類別,以便我們可以在終端中打印它的值,并將其用于進一步的處理。
我們的模型處于早期階段。類別正確預測為“蝙蝠俠”,置信度值為 85%?4.是時候執行物聯網操作了
由于識別(AI 部分)已完成,讓我們自動執行其余操作:
i) 用語音消息問候人偶 ii) 打開/關閉門讓我們的客人進來 iii) 如果角色來自 DC(比如蝙蝠俠),播放必要的消息音頻并且不允許角色進入開門
?我們執行驗證步驟以確保該角色僅來自漫威宇宙。
??
- 使用Jetson Nano的CSI相機接口
- 玩轉智能硬件(三)Jetson Nano深度學習環境搭建
- 基于LABVIEW的車牌識別系統資料 64次下載
- NVIDIA Jetson Nano 電源適配器 (供電)
- 基于身份證和人臉識別的智能門禁系統 38次下載
- 非理想環境下的改進人臉識別算法 3次下載
- 基于MATLAB的車牌識別系統 18次下載
- 近紅外人臉識別系統設計 7次下載
- 基于FPGA的說話人識別系統設計 26次下載
- 汽車無線射頻識別系統設計 1次下載
- 基于openCV的人臉檢測識別系統的設計 477次下載
- 人臉識別技術在訪客識別系統中的應用 46次下載
- 基于DSP的人臉圖像識別系統
- 人臉識別系統中的特征提取Feature Extraction
- 用隱馬爾可夫模型設計人臉表情識別系統
- 基于OpenCV的人臉識別系統設計 1.2w次閱讀
- 一文看懂人臉識別技術 3167次閱讀
- 簡單易學的Jetson Nano問題排除小秘訣 8846次閱讀
- 使用NVIDIA Jetson Orin Nano解決入門級邊緣人工智能挑戰 2567次閱讀
- 人臉識別系統應用范圍_選擇人臉識別系統的關注點 1421次閱讀
- 人臉識別系統怎么破解_人臉識別系統錄入步驟 8.5w次閱讀
- 微雪電子 IMX219-77攝像頭介紹 3501次閱讀
- 微雪電子 IMX219-160攝像頭介紹 3512次閱讀
- 微雪電子攝像頭 IMX219-200介紹 5905次閱讀
- 微雪電子NVIDIA Jetson Nano人工智能開發套件AI板介紹 5597次閱讀
- 語音識別系統功能_語音識別系統的應用 5694次閱讀
- 體育館人臉識別系統的應用案例 2312次閱讀
- 多倫多大學將反人臉識別系統識別成功率降至0.5% 3264次閱讀
- 人臉識別算法遇到的困難和挑戰 6808次閱讀
- 劃片機視覺識別系統設計原理分析 3016次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論