本文來源電子發燒友社區,作者:xusiwei1236, 帖子地址:https://bbs.elecfans.com/jishu_2289346_1_1.html
一、TFLM簡介
TFLM是TensorFlow Lite for Microcontrollers項目的簡稱,全稱翻譯過來就是“適用于微控制器的TensorFlow Lite”。它是一個來自谷歌的邊緣AI框架,能夠運行在單片機上。
來自官方的介紹:
TFLM代碼倉鏈接:https://github.com/tensorflow/tflite-micro
二、準備工作2.1 燒錄系統
開始本篇之前,需要先下載、燒錄支持NVDLA驅動的系統鏡像。
這里使用了社區**Houge_Langley**大佬制作的帶有NVDLA驅動的Debian鏡像,下載連接:
http://ubuntu-riscv.litterhougelangley.club/ubuntu-impish/img/
Debian系統鏡像下載完成后,將Debian系統鏡像燒錄到SD卡上的操作和Fedora操作類似,這里不再贅述。
啟動后,neofetch輸出:
2.2 下載依賴
在PC的Linux系統上,運行TFLM基準測試之前,需要先安裝依賴的一些工具:
sudo apt install git unzip wget python3 python3-pip
2.3 設置pip源
將pip源設置為國內源,可以加速pip包安裝,執行如下命令:
pip config set global.index-urlhttp://mirrors.aliyun.com/pypi/simple/
pip config set global.trusted-host mirrors.aliyun.com
pip config set global.timeout 120
2.4 安裝Pillow庫
tflite-micro的benchmark編譯過程中會依賴python環境的pillow庫,對數據集的圖片進行預處理。
執行如下命令,安裝pillow庫: pip install pillow
安裝過程會編譯pillow包中的C/C++源代碼文件,速度較慢,耐心等待。
如果Pillow安裝過程報錯:The headers or library files could not be found for jpeg
需要先安裝libjpeg庫:apt-get install libjpeg-dev zlib1g-dev
三、在VisionFive上運行TFLM3.1 下載TFLM源碼
下載tflite-micro源碼使用如下命令:
git clone <https://github.com/tensorflow/tflite-micro.git>
3.2 TFLM基準測試說明
TFLM代碼倉的頂層的README.md中給出了benchmarks鏈接:
https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/benchmarks/README.md
該文檔篇幅不長:
通過這個目錄我們可以知道,TFLM實際上提供了兩個基準測試(實際有三個),分別是:
3.3 TFLM基準測試命令
參考”Run on x86”,在x86 PC上運行關鍵詞基準測試的命令是:
make -f tensorflow/lite/micro/tools/make/Makefile run_keyword_benchmark
在PC上運行人體檢測基準測試的命令是:
make -f tensorflow/lite/micro/tools/make/Makefile run_person_detection_benchmark
執行這兩個命令,會依次執行如下步驟:
flatbuffers_download.sh和kissfft_download.sh腳本第一次執行時,會將相應的壓縮包下載到本地,并解壓,具體細節參見代碼內容;
pigweed_download.sh腳本會克隆一個代碼倉,再檢出一個特定版本:
這里需要注意的是,代碼倉https://pigweed.googlesource.com/pigweed/pigweed國內一般無法訪問(因為域名googlesource.com被禁了)。將此連接修改為我克隆好的代碼倉:https://github.com/xusiwei/pigweed.git可以解決因為國內無法訪問googlesource.com而無法下載pigweed測試數據的問題。
3. 4 Keyword基準測試
關鍵詞基準測試使用的模型較小,比較適合在STM32F3/F4這類主頻低于100MHz的MCU。
這個基準測試的模型比較小,計算量也不大,所以在PC上運行這個基準測試的耗時非常短:
可以看到,在PC上運行關鍵詞喚醒的速度非常快,10次時間才2毫秒。
模型文件路徑為:./tensorflow/lite/micro/models/keyword_scrambled.tflite
可以使用Netron軟件查看模型結構:
3. 5 Person detection基準測試
人體檢測基準測試的計算量相對要大一些,運行的時間也要長一些:
可以看到,人像檢測模型運行10次的時間是四千多毫秒,一次平均四十幾毫秒。
模型文件路徑為:./tensorflow/lite/micro/models/person_detect.tflite
同樣,可以使用Netron查看模型結構,模型結構過于復雜,這里不再展示。
四、和樹莓派3B+結果對比
我手頭還有一塊吃灰很久的樹莓派3B+,拿出來做個對比。
4.1 在樹莓派3B+上運行TFLM基準測試
在樹莓派3B+上運行TFLM基準測試,所需的操作和VisionFive的完全一致。由于關鍵詞識別的模型計算量太小了,這里直接跑一下人像檢測的模型,最終結果為:
可以看到,在樹莓派3B+上的,對于有人臉的圖片,連續運行10次人臉檢測模型,總體耗時4186毫秒,每次平均耗時418.6毫秒;對于無人臉的圖片,連續運行10次人臉檢測模型,耗時4190毫秒,每次平均耗時419毫秒。
4.2 VisionFive和樹莓派3B+上TFLM基準測試結果對比
結果匯總如下:
從上表可以看到,在TFLM人像檢測模型計算場景下,VisionFive和樹莓派3B+單次計算耗時基本相當。樹莓派3B+的CPU頻率比VisionFive要高出40%,VisionFive能跑出這樣的成績說明U74 RISC-V CPU核和ARM Cortex A53的單核計算能力上差距不大(TFLM是單線程的)。但是,樹莓派3B+有4個Cortex A53核心,而VisionFive V1只有兩個U74 CPU核心,因此在多線程計算性能上必然存在較大差距。
一、TFLM簡介
TFLM是TensorFlow Lite for Microcontrollers項目的簡稱,全稱翻譯過來就是“適用于微控制器的TensorFlow Lite”。它是一個來自谷歌的邊緣AI框架,能夠運行在單片機上。
來自官方的介紹:
TensorFlow Lite for Microcontrollers 是 TensorFlow Lite 的一個實驗性移植版本,它適用于微控制器和其他一些僅有數千字節內存的設備。它可以直接在“裸機”上運行,不需要操作系統支持、任何標準 C/C++ 庫和動態內存分配。核心運行時(core runtime)在 Cortex M3 上運行時僅需 16KB,加上足以用來運行語音關鍵字檢測模型的操作,也只需 22KB 的空間。TFLM項目首頁:https://tensorflow.google.cn/lit ... s/overview?hl=zh-cn
TFLM代碼倉鏈接:https://github.com/tensorflow/tflite-micro
二、準備工作2.1 燒錄系統
開始本篇之前,需要先下載、燒錄支持NVDLA驅動的系統鏡像。
這里使用了社區**Houge_Langley**大佬制作的帶有NVDLA驅動的Debian鏡像,下載連接:
http://ubuntu-riscv.litterhougelangley.club/ubuntu-impish/img/
Debian系統鏡像下載完成后,將Debian系統鏡像燒錄到SD卡上的操作和Fedora操作類似,這里不再贅述。
啟動后,neofetch輸出:
2.2 下載依賴
在PC的Linux系統上,運行TFLM基準測試之前,需要先安裝依賴的一些工具:
sudo apt install git unzip wget python3 python3-pip
2.3 設置pip源
將pip源設置為國內源,可以加速pip包安裝,執行如下命令:
pip config set global.index-urlhttp://mirrors.aliyun.com/pypi/simple/
pip config set global.trusted-host mirrors.aliyun.com
pip config set global.timeout 120
2.4 安裝Pillow庫
tflite-micro的benchmark編譯過程中會依賴python環境的pillow庫,對數據集的圖片進行預處理。
執行如下命令,安裝pillow庫: pip install pillow
安裝過程會編譯pillow包中的C/C++源代碼文件,速度較慢,耐心等待。
如果Pillow安裝過程報錯:The headers or library files could not be found for jpeg
需要先安裝libjpeg庫:apt-get install libjpeg-dev zlib1g-dev
三、在VisionFive上運行TFLM3.1 下載TFLM源碼
下載tflite-micro源碼使用如下命令:
git clone <https://github.com/tensorflow/tflite-micro.git>
3.2 TFLM基準測試說明
TFLM代碼倉的頂層的README.md中給出了benchmarks鏈接:
https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/benchmarks/README.md
該文檔篇幅不長:
通過這個目錄我們可以知道,TFLM實際上提供了兩個基準測試(實際有三個),分別是:
-
關鍵詞基準測試
- 關鍵詞基準測試使用的是程序運行時生產的隨機數據作為輸入,所以它的輸出是沒有意義的
-
人體檢測基準測試
- 人體檢測基準測試使用了兩張bmp圖片作為輸入
- 具體位于tensorflowlitemicroexamplesperson_detectiontestdata子目錄
3.3 TFLM基準測試命令
參考”Run on x86”,在x86 PC上運行關鍵詞基準測試的命令是:
make -f tensorflow/lite/micro/tools/make/Makefile run_keyword_benchmark
在PC上運行人體檢測基準測試的命令是:
make -f tensorflow/lite/micro/tools/make/Makefile run_person_detection_benchmark
執行這兩個命令,會依次執行如下步驟:
- 調用幾個下載腳本,下載依賴庫和數據集;
- 編譯測試程序;
- 運行測試程序;
flatbuffers_download.sh和kissfft_download.sh腳本第一次執行時,會將相應的壓縮包下載到本地,并解壓,具體細節參見代碼內容;
pigweed_download.sh腳本會克隆一個代碼倉,再檢出一個特定版本:
這里需要注意的是,代碼倉https://pigweed.googlesource.com/pigweed/pigweed國內一般無法訪問(因為域名googlesource.com被禁了)。將此連接修改為我克隆好的代碼倉:https://github.com/xusiwei/pigweed.git可以解決因為國內無法訪問googlesource.com而無法下載pigweed測試數據的問題。
3. 4 Keyword基準測試
關鍵詞基準測試使用的模型較小,比較適合在STM32F3/F4這類主頻低于100MHz的MCU。
這個基準測試的模型比較小,計算量也不大,所以在PC上運行這個基準測試的耗時非常短:
可以看到,在PC上運行關鍵詞喚醒的速度非常快,10次時間才2毫秒。
模型文件路徑為:./tensorflow/lite/micro/models/keyword_scrambled.tflite
可以使用Netron軟件查看模型結構:
3. 5 Person detection基準測試
人體檢測基準測試的計算量相對要大一些,運行的時間也要長一些:
可以看到,人像檢測模型運行10次的時間是四千多毫秒,一次平均四十幾毫秒。
模型文件路徑為:./tensorflow/lite/micro/models/person_detect.tflite
同樣,可以使用Netron查看模型結構,模型結構過于復雜,這里不再展示。
四、和樹莓派3B+結果對比
我手頭還有一塊吃灰很久的樹莓派3B+,拿出來做個對比。
4.1 在樹莓派3B+上運行TFLM基準測試
在樹莓派3B+上運行TFLM基準測試,所需的操作和VisionFive的完全一致。由于關鍵詞識別的模型計算量太小了,這里直接跑一下人像檢測的模型,最終結果為:
可以看到,在樹莓派3B+上的,對于有人臉的圖片,連續運行10次人臉檢測模型,總體耗時4186毫秒,每次平均耗時418.6毫秒;對于無人臉的圖片,連續運行10次人臉檢測模型,耗時4190毫秒,每次平均耗時419毫秒。
4.2 VisionFive和樹莓派3B+上TFLM基準測試結果對比
結果匯總如下:
VisionFive V1 | 樹莓派3B+ | |
有人臉平均耗時(ms) | 477.6 | 418.6 |
無人臉平均耗時(ms) | 476.9 | 419 |
CPU最高主頻(Hz) | 1.0GHz | 1.4G |
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
RISC-V
+關注
關注
45文章
2292瀏覽量
46211 -
賽昉科技
+關注
關注
3文章
154瀏覽量
14305
發布評論請先 登錄
相關推薦
Ubuntu現已適配RISC-V單板計算機Milk-V Mars
近期,Canonical宣布優化的Ubuntu24.04鏡像已可用于RISC-V單板計算機Milk-VMars。Milk-VMars由深圳市群芯閃耀科技有限公司(Milk-V)設計并推出,搭載
信用卡大小的 RISC-V 單板計算機介紹
信用卡大小的 RISC-V 單板計算機 —— Mars
Mars 由深圳市群芯閃耀科技有限公司(Milk-V)設計并推出,搭載賽昉科技
發表于 04-12 16:39
賽昉科技VisionFive 2生態進展雙周報(2.1-2.29)
Image for VisionFive 2)
社區開發者發布4篇【昉·星光 2高性能RISC-V單板計算機體驗】系列文章,內容包括:為Ubuntu安裝Docker及常用軟件;以容器
發表于 02-29 15:45
【昉·星光 2 高性能RISC-V單板計算機體驗】以容器的方式安裝 HomeAssistant
【昉·星光 2 高性能RISC-V單板計算機體驗】以容器的方式安裝 HomeAssistant
下載并啟動容器
HomeAssisatant 官方并沒有提供基于
發表于 02-21 18:07
【昉·星光 2 高性能RISC-V單板計算機體驗】為 Ubuntu 安裝 Docker 及常用軟件
【昉·星光 2 高性能RISC-V單板計算機體驗】為 Ubuntu 安裝 Docker 及常用軟件
目的
為了更好的利用星光2,決定使用容器
發表于 02-21 17:54
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
前言
很感謝賽
發表于 02-21 17:49
昉·星光2 RISC-V單板計算機體驗(三) - SSH連接
昉·星光2 RISC-V單板計算機體驗(三) - SSH連接 一、官方資料 RISC-V官網: [https://rvspace.org]
評論