本文來源電子發(fā)燒友社區(qū),作者: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 燒錄系統(tǒng)
開始本篇之前,需要先下載、燒錄支持NVDLA驅(qū)動的系統(tǒng)鏡像。
這里使用了社區(qū)**Houge_Langley**大佬制作的帶有NVDLA驅(qū)動的Debian鏡像,下載連接:
http://ubuntu-riscv.litterhougelangley.club/ubuntu-impish/img/
Debian系統(tǒng)鏡像下載完成后,將Debian系統(tǒng)鏡像燒錄到SD卡上的操作和Fedora操作類似,這里不再贅述。
啟動后,neofetch輸出:
2.2 下載依賴
在PC的Linux系統(tǒng)上,運行TFLM基準測試之前,需要先安裝依賴的一些工具:
sudo apt install git unzip wget python3 python3-pip
2.3 設(shè)置pip源
將pip源設(shè)置為國內(nèi)源,可以加速pip包安裝,執(zhí)行如下命令:
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環(huán)境的pillow庫,對數(shù)據(jù)集的圖片進行預(yù)處理。
執(zhí)行如下命令,安裝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上運行關(guān)鍵詞基準測試的命令是:
make -f tensorflow/lite/micro/tools/make/Makefile run_keyword_benchmark
在PC上運行人體檢測基準測試的命令是:
make -f tensorflow/lite/micro/tools/make/Makefile run_person_detection_benchmark
執(zhí)行這兩個命令,會依次執(zhí)行如下步驟:
flatbuffers_download.sh和kissfft_download.sh腳本第一次執(zhí)行時,會將相應(yīng)的壓縮包下載到本地,并解壓,具體細節(jié)參見代碼內(nèi)容;
pigweed_download.sh腳本會克隆一個代碼倉,再檢出一個特定版本:
這里需要注意的是,代碼倉https://pigweed.googlesource.com/pigweed/pigweed國內(nèi)一般無法訪問(因為域名googlesource.com被禁了)。將此連接修改為我克隆好的代碼倉:https://github.com/xusiwei/pigweed.git可以解決因為國內(nèi)無法訪問googlesource.com而無法下載pigweed測試數(shù)據(jù)的問題。
3. 4 Keyword基準測試
關(guān)鍵詞基準測試使用的模型較小,比較適合在STM32F3/F4這類主頻低于100MHz的MCU。
這個基準測試的模型比較小,計算量也不大,所以在PC上運行這個基準測試的耗時非常短:
可以看到,在PC上運行關(guān)鍵詞喚醒的速度非常快,10次時間才2毫秒。
模型文件路徑為:./tensorflow/lite/micro/models/keyword_scrambled.tflite
可以使用Netron軟件查看模型結(jié)構(gòu):
3. 5 Person detection基準測試
人體檢測基準測試的計算量相對要大一些,運行的時間也要長一些:
可以看到,人像檢測模型運行10次的時間是四千多毫秒,一次平均四十幾毫秒。
模型文件路徑為:./tensorflow/lite/micro/models/person_detect.tflite
同樣,可以使用Netron查看模型結(jié)構(gòu),模型結(jié)構(gòu)過于復(fù)雜,這里不再展示。
四、和樹莓派3B+結(jié)果對比
我手頭還有一塊吃灰很久的樹莓派3B+,拿出來做個對比。
4.1 在樹莓派3B+上運行TFLM基準測試
在樹莓派3B+上運行TFLM基準測試,所需的操作和VisionFive的完全一致。由于關(guān)鍵詞識別的模型計算量太小了,這里直接跑一下人像檢測的模型,最終結(jié)果為:
可以看到,在樹莓派3B+上的,對于有人臉的圖片,連續(xù)運行10次人臉檢測模型,總體耗時4186毫秒,每次平均耗時418.6毫秒;對于無人臉的圖片,連續(xù)運行10次人臉檢測模型,耗時4190毫秒,每次平均耗時419毫秒。
4.2 VisionFive和樹莓派3B+上TFLM基準測試結(jié)果對比
結(jié)果匯總?cè)缦拢?br />
從上表可以看到,在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 的一個實驗性移植版本,它適用于微控制器和其他一些僅有數(shù)千字節(jié)內(nèi)存的設(shè)備。它可以直接在“裸機”上運行,不需要操作系統(tǒng)支持、任何標準 C/C++ 庫和動態(tài)內(nèi)存分配。核心運行時(core runtime)在 Cortex M3 上運行時僅需 16KB,加上足以用來運行語音關(guān)鍵字檢測模型的操作,也只需 22KB 的空間。TFLM項目首頁:https://tensorflow.google.cn/lit ... s/overview?hl=zh-cn
TFLM代碼倉鏈接:https://github.com/tensorflow/tflite-micro
二、準備工作2.1 燒錄系統(tǒng)
開始本篇之前,需要先下載、燒錄支持NVDLA驅(qū)動的系統(tǒng)鏡像。
這里使用了社區(qū)**Houge_Langley**大佬制作的帶有NVDLA驅(qū)動的Debian鏡像,下載連接:
http://ubuntu-riscv.litterhougelangley.club/ubuntu-impish/img/
Debian系統(tǒng)鏡像下載完成后,將Debian系統(tǒng)鏡像燒錄到SD卡上的操作和Fedora操作類似,這里不再贅述。
啟動后,neofetch輸出:

2.2 下載依賴
在PC的Linux系統(tǒng)上,運行TFLM基準測試之前,需要先安裝依賴的一些工具:
sudo apt install git unzip wget python3 python3-pip
2.3 設(shè)置pip源
將pip源設(shè)置為國內(nèi)源,可以加速pip包安裝,執(zhí)行如下命令:
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環(huán)境的pillow庫,對數(shù)據(jù)集的圖片進行預(yù)處理。
執(zhí)行如下命令,安裝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實際上提供了兩個基準測試(實際有三個),分別是:
-
關(guān)鍵詞基準測試
- 關(guān)鍵詞基準測試使用的是程序運行時生產(chǎn)的隨機數(shù)據(jù)作為輸入,所以它的輸出是沒有意義的
-
人體檢測基準測試
- 人體檢測基準測試使用了兩張bmp圖片作為輸入
- 具體位于tensorflowlitemicroexamplesperson_detectiontestdata子目錄
3.3 TFLM基準測試命令
參考”Run on x86”,在x86 PC上運行關(guān)鍵詞基準測試的命令是:
make -f tensorflow/lite/micro/tools/make/Makefile run_keyword_benchmark
在PC上運行人體檢測基準測試的命令是:
make -f tensorflow/lite/micro/tools/make/Makefile run_person_detection_benchmark
執(zhí)行這兩個命令,會依次執(zhí)行如下步驟:
- 調(diào)用幾個下載腳本,下載依賴庫和數(shù)據(jù)集;
- 編譯測試程序;
- 運行測試程序;

flatbuffers_download.sh和kissfft_download.sh腳本第一次執(zhí)行時,會將相應(yīng)的壓縮包下載到本地,并解壓,具體細節(jié)參見代碼內(nèi)容;
pigweed_download.sh腳本會克隆一個代碼倉,再檢出一個特定版本:

這里需要注意的是,代碼倉https://pigweed.googlesource.com/pigweed/pigweed國內(nèi)一般無法訪問(因為域名googlesource.com被禁了)。將此連接修改為我克隆好的代碼倉:https://github.com/xusiwei/pigweed.git可以解決因為國內(nèi)無法訪問googlesource.com而無法下載pigweed測試數(shù)據(jù)的問題。
3. 4 Keyword基準測試
關(guān)鍵詞基準測試使用的模型較小,比較適合在STM32F3/F4這類主頻低于100MHz的MCU。
這個基準測試的模型比較小,計算量也不大,所以在PC上運行這個基準測試的耗時非常短:

可以看到,在PC上運行關(guān)鍵詞喚醒的速度非常快,10次時間才2毫秒。
模型文件路徑為:./tensorflow/lite/micro/models/keyword_scrambled.tflite
可以使用Netron軟件查看模型結(jié)構(gòu):

3. 5 Person detection基準測試
人體檢測基準測試的計算量相對要大一些,運行的時間也要長一些:


可以看到,人像檢測模型運行10次的時間是四千多毫秒,一次平均四十幾毫秒。
模型文件路徑為:./tensorflow/lite/micro/models/person_detect.tflite
同樣,可以使用Netron查看模型結(jié)構(gòu),模型結(jié)構(gòu)過于復(fù)雜,這里不再展示。
四、和樹莓派3B+結(jié)果對比
我手頭還有一塊吃灰很久的樹莓派3B+,拿出來做個對比。
4.1 在樹莓派3B+上運行TFLM基準測試
在樹莓派3B+上運行TFLM基準測試,所需的操作和VisionFive的完全一致。由于關(guān)鍵詞識別的模型計算量太小了,這里直接跑一下人像檢測的模型,最終結(jié)果為:

可以看到,在樹莓派3B+上的,對于有人臉的圖片,連續(xù)運行10次人臉檢測模型,總體耗時4186毫秒,每次平均耗時418.6毫秒;對于無人臉的圖片,連續(xù)運行10次人臉檢測模型,耗時4190毫秒,每次平均耗時419毫秒。
4.2 VisionFive和樹莓派3B+上TFLM基準測試結(jié)果對比
結(jié)果匯總?cè)缦拢?br />
VisionFive V1 | 樹莓派3B+ | |
有人臉平均耗時(ms) | 477.6 | 418.6 |
無人臉平均耗時(ms) | 476.9 | 419 |
CPU最高主頻(Hz) | 1.0GHz | 1.4G |
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
RISC-V
+關(guān)注
關(guān)注
46文章
2507瀏覽量
48347 -
賽昉科技
+關(guān)注
關(guān)注
3文章
165瀏覽量
14787
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
賽昉科技JH-7110 RISC-V工業(yè)網(wǎng)關(guān):多場景賦能工業(yè)智能化升級
靈活部署與自主可控的升級要求。賽昉科技JH-7110RISC-V工業(yè)網(wǎng)關(guān)(點擊跳轉(zhuǎn)“賽昉商城”)基于開源

共建生態(tài),賦能應(yīng)用 | 賽昉科技精彩亮相中國RISC-V生態(tài)大會
2025中國RISC-V生態(tài)大會于近日在北京圓滿落幕。大會以“共建生態(tài),共享未來”為主題,匯聚了中外產(chǎn)學(xué)研界各方代表,共同探討RISC-V的最新發(fā)展趨勢和產(chǎn)業(yè)機遇。作為中國RISC-V軟硬件生態(tài)

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

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

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

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

賽昉科技亮相世界互聯(lián)網(wǎng)大會,精彩呈現(xiàn)RISC-V創(chuàng)新成果
豐富的RISC-V創(chuàng)新成果,包括昉·驚鴻-7110(JH-7110)RISC-V應(yīng)用處理器,昉·星光2(VisionFive2)

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

預(yù)售啟動!昉·星光 2 AI套件正式發(fā)布,基于RISC-V構(gòu)建AI算力
10月24日,昉·星光2(VisionFive2)AI套件正式開啟預(yù)售。該套件由中國RISC-V軟硬件生態(tài)領(lǐng)導(dǎo)者賽

賽昉科技產(chǎn)品亮相RISC-V開源創(chuàng)新中心,雙方達成戰(zhàn)略合作
RISC-V開源創(chuàng)新中心:“我們非常高興能與賽昉科技公司建立戰(zhàn)略合作伙伴關(guān)系。賽昉科技的技術(shù)創(chuàng)新,結(jié)合中心的教育資源,將為雙方帶來巨大的協(xié)同效應(yīng)。”

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

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

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

評論