本文來源電子發(fā)燒友社區(qū),作者:xusiwei1236, 帖子地址:https://bbs.elecfans.com/jishu_2289346_1_1.html
一、TFLM簡介
TFLM是TensorFlow Lite for Microcontrollers項(xiàng)目的簡稱,全稱翻譯過來就是“適用于微控制器的TensorFlow Lite”。它是一個(gè)來自谷歌的邊緣AI框架,能夠運(yùn)行在單片機(jī)上。
來自官方的介紹:
TFLM代碼倉鏈接:https://github.com/tensorflow/tflite-micro
二、準(zhǔn)備工作2.1 燒錄系統(tǒng)
開始本篇之前,需要先下載、燒錄支持NVDLA驅(qū)動(dòng)的系統(tǒng)鏡像。
這里使用了社區(qū)**Houge_Langley**大佬制作的帶有NVDLA驅(qū)動(dòng)的Debian鏡像,下載連接:
http://ubuntu-riscv.litterhougelangley.club/ubuntu-impish/img/
Debian系統(tǒng)鏡像下載完成后,將Debian系統(tǒng)鏡像燒錄到SD卡上的操作和Fedora操作類似,這里不再贅述。
啟動(dòng)后,neofetch輸出:
2.2 下載依賴
在PC的Linux系統(tǒng)上,運(yùn)行TFLM基準(zhǔn)測試之前,需要先安裝依賴的一些工具:
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編譯過程中會(huì)依賴python環(huán)境的pillow庫,對數(shù)據(jù)集的圖片進(jìn)行預(yù)處理。
執(zhí)行如下命令,安裝pillow庫: pip install pillow
安裝過程會(huì)編譯pillow包中的C/C++源代碼文件,速度較慢,耐心等待。
如果Pillow安裝過程報(bào)錯(cuò):The headers or library files could not be found for jpeg
需要先安裝libjpeg庫:apt-get install libjpeg-dev zlib1g-dev
三、在VisionFive上運(yùn)行TFLM3.1 下載TFLM源碼
下載tflite-micro源碼使用如下命令:
git clone <https://github.com/tensorflow/tflite-micro.git>
3.2 TFLM基準(zhǔn)測試說明
TFLM代碼倉的頂層的README.md中給出了benchmarks鏈接:
https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/benchmarks/README.md
該文檔篇幅不長:
通過這個(gè)目錄我們可以知道,TFLM實(shí)際上提供了兩個(gè)基準(zhǔn)測試(實(shí)際有三個(gè)),分別是:
3.3 TFLM基準(zhǔn)測試命令
參考”Run on x86”,在x86 PC上運(yùn)行關(guān)鍵詞基準(zhǔn)測試的命令是:
make -f tensorflow/lite/micro/tools/make/Makefile run_keyword_benchmark
在PC上運(yùn)行人體檢測基準(zhǔn)測試的命令是:
make -f tensorflow/lite/micro/tools/make/Makefile run_person_detection_benchmark
執(zhí)行這兩個(gè)命令,會(huì)依次執(zhí)行如下步驟:
flatbuffers_download.sh和kissfft_download.sh腳本第一次執(zhí)行時(shí),會(huì)將相應(yīng)的壓縮包下載到本地,并解壓,具體細(xì)節(jié)參見代碼內(nèi)容;
pigweed_download.sh腳本會(huì)克隆一個(gè)代碼倉,再檢出一個(gè)特定版本:
這里需要注意的是,代碼倉https://pigweed.googlesource.com/pigweed/pigweed國內(nèi)一般無法訪問(因?yàn)橛蛎鹓ooglesource.com被禁了)。將此連接修改為我克隆好的代碼倉:https://github.com/xusiwei/pigweed.git可以解決因?yàn)閲鴥?nèi)無法訪問googlesource.com而無法下載pigweed測試數(shù)據(jù)的問題。
3. 4 Keyword基準(zhǔn)測試
關(guān)鍵詞基準(zhǔn)測試使用的模型較小,比較適合在STM32F3/F4這類主頻低于100MHz的MCU。
這個(gè)基準(zhǔn)測試的模型比較小,計(jì)算量也不大,所以在PC上運(yùn)行這個(gè)基準(zhǔn)測試的耗時(shí)非常短:
可以看到,在PC上運(yùn)行關(guān)鍵詞喚醒的速度非常快,10次時(shí)間才2毫秒。
模型文件路徑為:./tensorflow/lite/micro/models/keyword_scrambled.tflite
可以使用Netron軟件查看模型結(jié)構(gòu):
3. 5 Person detection基準(zhǔn)測試
人體檢測基準(zhǔn)測試的計(jì)算量相對要大一些,運(yùn)行的時(shí)間也要長一些:
可以看到,人像檢測模型運(yùn)行10次的時(shí)間是四千多毫秒,一次平均四十幾毫秒。
模型文件路徑為:./tensorflow/lite/micro/models/person_detect.tflite
同樣,可以使用Netron查看模型結(jié)構(gòu),模型結(jié)構(gòu)過于復(fù)雜,這里不再展示。
四、和樹莓派3B+結(jié)果對比
我手頭還有一塊吃灰很久的樹莓派3B+,拿出來做個(gè)對比。
4.1 在樹莓派3B+上運(yùn)行TFLM基準(zhǔn)測試
在樹莓派3B+上運(yùn)行TFLM基準(zhǔn)測試,所需的操作和VisionFive的完全一致。由于關(guān)鍵詞識別的模型計(jì)算量太小了,這里直接跑一下人像檢測的模型,最終結(jié)果為:
可以看到,在樹莓派3B+上的,對于有人臉的圖片,連續(xù)運(yùn)行10次人臉檢測模型,總體耗時(shí)4186毫秒,每次平均耗時(shí)418.6毫秒;對于無人臉的圖片,連續(xù)運(yùn)行10次人臉檢測模型,耗時(shí)4190毫秒,每次平均耗時(shí)419毫秒。
4.2 VisionFive和樹莓派3B+上TFLM基準(zhǔn)測試結(jié)果對比
結(jié)果匯總?cè)缦拢?br />
從上表可以看到,在TFLM人像檢測模型計(jì)算場景下,VisionFive和樹莓派3B+單次計(jì)算耗時(shí)基本相當(dāng)。樹莓派3B+的CPU頻率比VisionFive要高出40%,VisionFive能跑出這樣的成績說明U74 RISC-V CPU核和ARM Cortex A53的單核計(jì)算能力上差距不大(TFLM是單線程的)。但是,樹莓派3B+有4個(gè)Cortex A53核心,而VisionFive V1只有兩個(gè)U74 CPU核心,因此在多線程計(jì)算性能上必然存在較大差距。
一、TFLM簡介
TFLM是TensorFlow Lite for Microcontrollers項(xiàng)目的簡稱,全稱翻譯過來就是“適用于微控制器的TensorFlow Lite”。它是一個(gè)來自谷歌的邊緣AI框架,能夠運(yùn)行在單片機(jī)上。
來自官方的介紹:
TensorFlow Lite for Microcontrollers 是 TensorFlow Lite 的一個(gè)實(shí)驗(yàn)性移植版本,它適用于微控制器和其他一些僅有數(shù)千字節(jié)內(nèi)存的設(shè)備。它可以直接在“裸機(jī)”上運(yùn)行,不需要操作系統(tǒng)支持、任何標(biāo)準(zhǔn) C/C++ 庫和動(dòng)態(tài)內(nèi)存分配。核心運(yùn)行時(shí)(core runtime)在 Cortex M3 上運(yùn)行時(shí)僅需 16KB,加上足以用來運(yùn)行語音關(guān)鍵字檢測模型的操作,也只需 22KB 的空間。TFLM項(xiàng)目首頁:https://tensorflow.google.cn/lit ... s/overview?hl=zh-cn
TFLM代碼倉鏈接:https://github.com/tensorflow/tflite-micro
二、準(zhǔn)備工作2.1 燒錄系統(tǒng)
開始本篇之前,需要先下載、燒錄支持NVDLA驅(qū)動(dòng)的系統(tǒng)鏡像。
這里使用了社區(qū)**Houge_Langley**大佬制作的帶有NVDLA驅(qū)動(dòng)的Debian鏡像,下載連接:
http://ubuntu-riscv.litterhougelangley.club/ubuntu-impish/img/
Debian系統(tǒng)鏡像下載完成后,將Debian系統(tǒng)鏡像燒錄到SD卡上的操作和Fedora操作類似,這里不再贅述。
啟動(dòng)后,neofetch輸出:

2.2 下載依賴
在PC的Linux系統(tǒng)上,運(yùn)行TFLM基準(zhǔn)測試之前,需要先安裝依賴的一些工具:
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編譯過程中會(huì)依賴python環(huán)境的pillow庫,對數(shù)據(jù)集的圖片進(jìn)行預(yù)處理。
執(zhí)行如下命令,安裝pillow庫: pip install pillow
安裝過程會(huì)編譯pillow包中的C/C++源代碼文件,速度較慢,耐心等待。
如果Pillow安裝過程報(bào)錯(cuò):The headers or library files could not be found for jpeg
需要先安裝libjpeg庫:apt-get install libjpeg-dev zlib1g-dev
三、在VisionFive上運(yùn)行TFLM3.1 下載TFLM源碼
下載tflite-micro源碼使用如下命令:
git clone <https://github.com/tensorflow/tflite-micro.git>
3.2 TFLM基準(zhǔn)測試說明
TFLM代碼倉的頂層的README.md中給出了benchmarks鏈接:
https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/benchmarks/README.md
該文檔篇幅不長:

通過這個(gè)目錄我們可以知道,TFLM實(shí)際上提供了兩個(gè)基準(zhǔn)測試(實(shí)際有三個(gè)),分別是:
-
關(guān)鍵詞基準(zhǔn)測試
- 關(guān)鍵詞基準(zhǔn)測試使用的是程序運(yùn)行時(shí)生產(chǎn)的隨機(jī)數(shù)據(jù)作為輸入,所以它的輸出是沒有意義的
-
人體檢測基準(zhǔn)測試
- 人體檢測基準(zhǔn)測試使用了兩張bmp圖片作為輸入
- 具體位于tensorflowlitemicroexamplesperson_detectiontestdata子目錄
3.3 TFLM基準(zhǔn)測試命令
參考”Run on x86”,在x86 PC上運(yùn)行關(guān)鍵詞基準(zhǔn)測試的命令是:
make -f tensorflow/lite/micro/tools/make/Makefile run_keyword_benchmark
在PC上運(yùn)行人體檢測基準(zhǔn)測試的命令是:
make -f tensorflow/lite/micro/tools/make/Makefile run_person_detection_benchmark
執(zhí)行這兩個(gè)命令,會(huì)依次執(zhí)行如下步驟:
- 調(diào)用幾個(gè)下載腳本,下載依賴庫和數(shù)據(jù)集;
- 編譯測試程序;
- 運(yùn)行測試程序;

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

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

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

3. 5 Person detection基準(zhǔn)測試
人體檢測基準(zhǔn)測試的計(jì)算量相對要大一些,運(yùn)行的時(shí)間也要長一些:


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

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

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

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

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

賽昉科技亮相ICCAD-Expo 2024,共探RISC-V技術(shù)最新發(fā)展
與會(huì)觀眾共探RISC-V技術(shù)的最新發(fā)展和行業(yè)應(yīng)用。RISC-V架構(gòu)的開放性和靈活性使其成為中國芯片行業(yè)的重要機(jī)遇。賽昉科技資深銷售總監(jiān)周杰在“IP與IC設(shè)計(jì)服務(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)用與高效計(jì)算
2024年12月10日,中國RISC-V軟硬件生態(tài)領(lǐng)導(dǎo)者賽昉科技正式推出全新RISC-V處理器內(nèi)核——昉·天樞-83(Dubhe-83),賦

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

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

預(yù)售啟動(dòng)!昉·星光 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)新中心,雙方達(dá)成戰(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中國峰會(huì),圓桌論壇的主題格外引人注目——如何讓RISC-V企業(yè)賺錢?賽昉科技給出的答案是“應(yīng)用”。如果把RISC-V浪潮比

Ubuntu現(xiàn)已適配RISC-V單板計(jì)算機(jī)Milk-V Mars
近期,Canonical宣布優(yōu)化的Ubuntu24.04鏡像已可用于RISC-V單板計(jì)算機(jī)Milk-VMars。Milk-VMars由深圳市群芯閃耀科技有限公司(Milk-V)設(shè)計(jì)并推出,搭載

評論