博客 / 詳情

返回

《ESP32-S3使用指南—IDF版 V1.6》第五十七章 樂鑫AI庫簡介

第五十七章 樂鑫AI庫簡介

樂鑫的ESP-WHO庫是一個基於樂鑫芯片的圖像處理開發平台,其中包括了實際應用中可能出現的開發示例,如人臉檢測、人臉識別、貓臉檢測和手勢識別等。開發者可以根據這些示例衍生出豐富的實際應用。ESP-WHO庫的運行基於ESP-IDF,而ESP-DL則為ESP-WHO庫提供了豐富的深度學習相關接口,配合各種外設可以實現許多有趣的應用。
本章分為如下幾個部分:
57.1 AI處理過程
57.2 樂鑫ESP-WHO庫下載
57.3 移植ESP-WHO源碼庫

57.1 AI處理過程

在樂鑫的ESP-WHO庫中,AI處理原理可能還包括其他的技術和方法,如特徵提取、分類器設計、模型訓練和優化等。這些技術結合在一起,使得ESP-WHO庫能夠提供高效、準確的人臉檢測和識別功能。AI處理過程通常包括三個主要步驟:輸入、處理和輸出。
①:輸入是AI系統的第一步,這一步就是把要處理的圖像數據傳輸到AI庫當中處理。
②:處理是AI系統的核心,它包括一系列的計算和推理過程。處理階段利用各種算法和模型對輸入數據進行處理,從中提取有意義的信息或模式。這一步驟可能涉及數據清洗、特徵提取、分類、迴歸分析、聚類等多種數據處理技術。
③:輸出是AI系統的最後一步,它根據處理結果得出結論或預測。例如,如果AI系統用於人臉識別,輸出可能是識別出的人臉標籤或身份信息。
下圖是人臉檢測處理過程。

圖57.1.1 AI處理過程
上圖中,我們完成了攝像頭的圖像數據獲取後,將這些數據傳遞給AI處理庫(ESP32-WHO)。該庫利用卷積神經網絡模型等算法對圖像進行深入處理。經過處理,我們獲得了AI庫處理後的圖像數據。

57.2 樂鑫ESP-WHO庫下載

ESP-WHO 是樂鑫專為 AIoT 領域推出的軟件開發框架,可幫助用户實現嵌入式領域的人臉檢測與識別功能,可配合 ESP-EYE 開發板、ESP-WROVER-KIT(亞馬遜 AWS 認證設備)及其他搭載 ESP32 芯片的開發板,結合各類攝像頭、顯示屏等硬件,形成完整應用。我們可在樂鑫官方網站下的方案/人臉檢測(ESP-WHO)路徑找到ESP-WHO軟件庫,如下圖所示。

圖57.2.1 ESP-WHO下載網頁
上圖中,“Github下載”鏈接可引導讀者進入遠程倉庫下載ESP-WHO源碼庫,方便獲取相關代碼資源。而右側的“進入BBS”則提供了ESP-WHO中文討論區的入口。對於在使用ESP-WHO過程中遇到的問題或疑問,讀者可以在討論區發帖尋求幫助。樂鑫官方或經驗豐富的博主會定期查看並回復,幫助解決相關問題。

57.3 移植ESP-WHO源碼庫

在上文中,我們介紹瞭如何從遠程倉庫下載樂鑫ESP-WHO源碼庫。接下來,本文將重點介紹如何將該AI庫移植到實際工程中。為了便於説明,我們將以攝像頭例程作為移植模板。以下是詳細的移植流程:

一、克隆ESP-WHO源碼庫
首先在本地找到一個合適的位置,利用git命令克隆Github的ESP-WHO源碼庫,克隆命令如下:

圖57.3.1 克隆ESP-WHO源碼庫
克隆完成後,使用cd命令進入ESP-WHO源碼庫,命令如下:

圖57.3.2 進入ESP-WHO源碼庫
接着,在此目錄下輸入更新子模塊命令,命令如下:

圖57.3.3 更新子模塊
到了這裏,我們已經把樂鑫AI庫下載完成,下面作者來介紹這個源碼庫的子文件的描述,如下表所示:

表57.3.1 AI庫子文件夾描述
上表,我們需要的文件夾包括components和examples。其中,components文件夾中的文件用於移植到工程中,而examples文件夾中的案例則可以作為參考。

二、移植ESP-WHO到工程當中
首先,把esp-who-master\components路徑下的esp-code-scanner、esp-dl、fb_gfx和modules文件夾複製到攝像頭例程中的components文件夾目錄下,如下圖所示。

圖57.3.4 AI庫移植到工程當中
然後,打開上圖modules文件夾,並刪除其他文件夾和文件,只保留ai文件夾、CMakeLists.txt和Kconfig文件。刪除後的modules文件夾結構如下。

圖57.3.5 刪除後的modules文件夾結構
接着,打開上圖的ai文件夾,刪除除了who_ai_utils.cpp/hpp文件之外的文件。刪除後的ai文件架構如下:

圖57.3.6 刪除後的ai文件架構
最後,修改CMakeLists.txt文件,因為剛剛我們已經刪除了某些文件夾,所以這個CMakeLists.txt文件的內容也相應修改。修改後的內容如下:

set(src_dirs
                ai)

set(include_dirs
                ai)

set(requires    esp32-camera
                esp-dl
                fb_gfx)

idf_component_register(SRC_DIRS ${src_dirs} 
INCLUDE_DIRS ${include_dirs} REQUIRES ${requires})

component_compile_options(-ffast-math -O3 -Wno-error=format=-Wno-format)

至此,我們已經完成了移植過程。以後的章節,我們將深入探討如何實現人臉識別和人臉檢測等相關應用。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.