一、例程體驗
MAX78000FTHR性能非常強(qiáng)大,今天小結(jié)一下使用此板實現(xiàn)圖片本地智能分析判斷其相似度。雖然官方提供了參考的“cats-dogs”參考例程,但自動動手去完成DIY模型創(chuàng)建,過程還是比較繁瑣,尤其是網(wǎng)絡(luò)必須流暢,很多數(shù)據(jù)都必須通過聯(lián)網(wǎng)拉取相關(guān)組件,其次電腦的配置也得符合一定的要求,否則項目很難開展。
先說說官方提供的“cats-dogs”例程,實現(xiàn)了通過按下SW1則采集圖片,并于創(chuàng)建的模型進(jìn)行對比分析,判斷出圖片的類別。使用VS Code導(dǎo)入工程示例,然后點擊“小錘子”編譯整個工程,在燒錄、運行,打開串口調(diào)試工具,波特率設(shè)置115200,則Console對話框輸出如下信息:
將“USE_SAMPLEDATA”宏定義,然后再次編譯,即可使用用戶自定義的采樣圖片模板,攝像頭對準(zhǔn)被測圖片,按下SW1,則串口輸出AI分析判斷結(jié)果。串口輸出log如下:
二、前期回顧
在實施搭建AI大模型之前,讓我們再來鞏固一下關(guān)于該板卡的一些硬件知識。板卡的硬件框圖如下:
板上的引腳分布如下圖所示:
開發(fā)者可借助該板卡集成的MAX78000 Arm® Cortex® M4F處理器快速實施超低功耗、人工智能(AI)方案,器件集成卷積神經(jīng)網(wǎng)絡(luò)加速器。評估板包括MAX20303 PMIC,用于電池和電源管理。評估板規(guī)格為0.9in x 2.6in、雙排連接器,兼容Adafruit Feather Wing外設(shè)擴(kuò)展板。評估板包括各種外設(shè),例如CMOS VGA圖像傳感器、數(shù)字麥克風(fēng)、低功耗立體聲音頻CODEC、1MB QSPI SRAM、micro SD存儲卡連接器、RGB指示LED和按鍵。板卡正、背面布局:
要實現(xiàn)某方面圖片的AI判斷識別,因此需要我們?nèi)ニ鸭恍┩悇e的圖片,每種圖片最好在40~50張,并將這些圖片進(jìn)行同一大小的裁剪、篩選。比方說如果要做一個高速路上的標(biāo)志識別項目,可通過Chinese Traffic Sign Database獲取想要的圖片集,如果做動物識別,則搜集多種動物的圖片。
三、預(yù)訓(xùn)練環(huán)境搭建
在github上,官方有提供一些指導(dǎo)性文檔,MaximAI_Documentation有興趣的壇友可移步瀏覽。筆者使用的是Ubuntu 16.04 LTS版本的環(huán)境,首先需要在bash終端中安裝一些依賴庫。
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev \
libsndfile-dev portaudio19-dev
接著需要安裝pyenv,因為項目中用到Python,可通過以下方法安裝。
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
安裝完以后默認(rèn)目錄是: ~/.pyenv,如果通過此方式獲取失敗,還可以通過git的方式,本人就是通過git工具克隆下來,然后拷貝到Ubuntu中的。
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
~/.bashrc文件,在文件末尾加入以下內(nèi)容:
然后文件掛載共享,通過“/mnt/hgfs/MAX78000/”路徑拷貝,使用mkdir ~/.pyenv創(chuàng)建文件夾,并將zip文件通過unzip指令解壓到該文件夾下,使用vim打開export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"
保存、退出文件編輯,使用pyenv -v可查看pyenv版本。接著使用指令pyenv install 3.8.11完成python 3.8.11的安裝。
以上完成了Python環(huán)境的安裝,然后需要拉取訓(xùn)練倉庫源碼。
git clone --recursive https://github.com/MaximIntegratedAI/ai8x-training.git
拉取量化倉庫源碼,這個過程比較久,而且需要保證網(wǎng)速穩(wěn)定,否則需要多次嘗試?yán) ?/p>
git clone --recursive https://github.com/MaximIntegratedAI/ai8x-synthesis.git
這樣在~目錄下存有了“ai8x-training”與“ai8x-synthesis”兩個文件夾,正如上面截圖內(nèi)容,依次運行以下指令,可完成虛擬訓(xùn)練環(huán)境與虛擬量化環(huán)境的創(chuàng)建。
進(jìn)入到“ai8x-training”訓(xùn)練文件夾路徑下,依次逐一執(zhí)行以下指令:
#創(chuàng)建訓(xùn)練虛擬環(huán)境
python -m venv venv --prompt ai8x-training
# 激活訓(xùn)練虛擬環(huán)境
source venv/bin/activate
#安裝依賴安裝庫
pip3 install -U pip wheel setuptools
#安裝訓(xùn)練依賴庫
pip3 install -r requirements-cu11.txt
進(jìn)入到“ai8x-synthesis”量化文件夾路徑下,依次逐一執(zhí)行以下指令:
#創(chuàng)建量化虛擬環(huán)境
python -m venv venv --prompt ai8x-synthesis
#激活量化虛擬環(huán)境
source venv/bin/activate
#安裝依賴安裝庫
pip3 install -U pip wheel setuptools
#安裝量化依賴庫
pip3 install -r requirements.txt
至此已完成了訓(xùn)練與量化環(huán)境的搭建,接下來可以進(jìn)行示例程序的訓(xùn)練與量化。
四、后期實現(xiàn)步驟
預(yù)訓(xùn)練參考官方提供的“cats-dogs”例程搭建訓(xùn)練模型,以下步驟簡略如下:
①、素材準(zhǔn)備(拷貝搜羅到的圖片樣本)
②、訓(xùn)練(通過shell腳本)
③、量化(通過shell腳本)
④、評估(通過shell腳本)
⑤、生成代碼(評估腳本生成的樣本文件來生成代碼)
五、后記
根據(jù)官方提供的“cats-dogs_demo”工程示例來新建一個工程,也可以直接拷貝“cats-dogs_demo”工程。將上述生成的文件直接替換“cats-dogs_demo”工程里的相應(yīng)文件,即可執(zhí)行基本測試代碼。按下sw1按鈕,啟動板上的攝像頭圖片采集,經(jīng)過模型數(shù)據(jù)對比,最終通過顯示屏或串口輸出對比分析結(jié)果。此次分享到此結(jié)束,感謝電源網(wǎng)提供的此次機(jī)會,同時也感謝得捷電子對活動的大力支持。對于AI產(chǎn)品模型設(shè)計,后續(xù)還得繼續(xù)探索研究,理解每層模型參數(shù)的意義,以上的操作都是基于官方提供的網(wǎng)頁文檔來實現(xiàn),有些細(xì)節(jié)尚未明白,可能是基于Python語言開發(fā)的吧。嘻嘻,時間不早了,晚安!