本文來源電子發燒友社區,作者: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
+關注
關注
46文章
2508瀏覽量
48362 -
賽昉科技
+關注
關注
3文章
165瀏覽量
14792
發布評論請先 登錄
相關推薦
熱點推薦
共建生態,賦能應用 | 賽昉科技精彩亮相中國RISC-V生態大會
2025中國RISC-V生態大會于近日在北京圓滿落幕。大會以“共建生態,共享未來”為主題,匯聚了中外產學研界各方代表,共同探討RISC-V的最新發展趨勢和產業機遇。作為中國RISC-V軟硬件生態

賽昉科技RISC-V家庭云解決方案:NAS存儲性能升級,隱私安全雙保障
(VisionFive2)單板計算機,推出全新RISC-V家庭云(NAS)解決方案,為用戶提供高性能、高安全性的私有云存儲服務,滿足家庭及輕量級企業場景需求。方案亮點01高性能硬件支持

首屆RISC-V產業發展大會成功舉辦,賽昉攜手產業伙伴共繪RISC-V新藍圖
12月28日,由中國電子工業標準化技術協會RISC-V工作委員會(以下簡稱“RISC-V工作委員會”)主辦的首屆“RISC-V產業發展大會”在北京成功舉辦。作為推動RISC-V生態發展

賽昉科技亮相ICCAD-Expo 2024,共探RISC-V技術最新發展
與會觀眾共探RISC-V技術的最新發展和行業應用。RISC-V架構的開放性和靈活性使其成為中國芯片行業的重要機遇。賽昉科技資深銷售總監周杰在“IP與IC設計服務”專

賽昉科技發布全新RISC-V處理器內核Dubhe-83
RISC-V軟硬件生態企業賽昉科技近日宣布,正式推出其全新RISC-V處理器內核——Dubhe-83(昉?天樞-83),該內核專為
賽昉科技發布全新RISC-V CPU IP,符合RVA23規范,賦能AI應用與高效計算
2024年12月10日,中國RISC-V軟硬件生態領導者賽昉科技正式推出全新RISC-V處理器內核——昉·天樞-83(Dubhe-83),賦

賽昉聯合國芯推出高性能AI MCU芯片,實現RISC-V+AI新應用
近日,賽昉科技與蘇州國芯科技有限公司(以下簡稱“國芯科技”)合作研發的高性能AIMCU芯片產品CCR7002已成功通過了內部性能和功能測試,實現了RISC-V+AI技術的新應用。賽

賽昉科技產品亮相RISC-V開源創新中心,雙方達成戰略合作
RISC-V開源創新中心:“我們非常高興能與賽昉科技公司建立戰略合作伙伴關系。賽昉科技的技術創新,結合中心的教育資源,將為雙方帶來巨大的協同效應。”

如何讓RISC-V企業賺錢?賽昉科技展現全場景RISC-V解決方案
今年的RISC-V中國峰會,圓桌論壇的主題格外引人注目——如何讓RISC-V企業賺錢?賽昉科技給出的答案是“應用”。如果把RISC-V浪潮比

賽昉科技RVspace生態社區雙周報(8月刊)
持續與各方伙伴攜手共建RISC-V生態社區,為RISC-V生態建設貢獻力量。rvspace.orgRVspace社區動態01將VisionFive2單板計算機改造為

報名開啟!賽昉科技全場景RISC-V解決方案交流會重磅來襲
%的市場份額。作為RISC-V應用落地的重要推動力量,賽昉科技基于自研的邊緣側高性能RISC-V芯片,聯合客戶及伙伴,積極打造豐富的解決方案

評論