使用uTensor進行手寫數字辨識

uTensor是一套基於mbed和TensorFlow的AI推論程式庫,本文將說明以DISCO-F413ZH開發板搭配觸控螢幕進行手寫數字辨識。專案為MNIST Touch Screen,實作前可先看一下官方提供的展示影片:

本次實作開發環境為macOS Mojave 10.14.5(with Xcode 10.2.1),首先安裝Anaconda for macOS Python 3.7 version,安裝檔由此下載:https://www.anaconda.com/distribution/ 。接著建立虛擬環境,並於完成後進入該虛擬環境:

conda create -n uTensor python=2.7

conda activate uTensor

以下是模型訓練、模型轉換與軔體編譯的環境建置:

# 安裝Mercurial SCM

conda install -c anaconda mercurial

# 下載GCC for ARM

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads

# 解壓縮GCC for ARM

tar jxvf ~/Downloads/gcc-arm-none-eabi-8-2018-q4-major-mac.tar.bz2 -C ~/

# 安裝與設定Mbed CLI

pip install mbed-cli

mbed --version

mbed config -G GCC_ARM_PATH /Users/tungyilin/gcc-arm-none-eabi-8-2018-q4-major/bin

mbed config --list

# 安裝TensorFlow

pip install tensorflow==1.6.0

# 安裝uTensor-cli

pip install utensor-cgen==0.3.1

# 安裝Jupyter Notebook

pip install jupyter

# 安裝CA元件(下載資料集時可能會用到)

conda install -c conda-forge ca-certificates

接下來導入專案:

mbed import https://github.com/uTensor/utensor-mnist-demo/

cd utensor-mnist-demo

完成後啟動Jupyter Notebook,進行模型訓練:

jupyter notebook

開啟程式碼 tensorflow-models/deep_mlp.ipynb ,由選單:[Kernel] – [Restart & Run All] 執行程式;如下圖所示:

用以下命令,將模型轉換為嵌入式C++程式碼:

utensor-cli convert tensorflow-models/mnist_model/deep_mlp.pb --output-nodes=y_pred

接著建置mbed專案:

mbed deploy

mbed compile -m DISCO_F413ZH -t GCC_ARM --profile=uTensor/build_profile/release.json

建置成功後,將DISCO-F413ZH開發板連接至電腦,用以下命令更新軔體:

 cp ./BUILD/DISCO_F413ZH/GCC_ARM-RELEASE/utensor-mnist-demo.bin /Volumes/DIS_F413ZH/

手寫數字:

辨識結果:

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *