女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

測評分享 | 首嘗HPM6750運(yùn)行邊緣AI框架(含TFLM基準(zhǔn)測試)

先楫半導(dǎo)體HPMicro ? 2022-10-10 09:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文內(nèi)容來自先楫開發(fā)者 @Xusiwei1236,介紹了如何在HPM6750上運(yùn)行邊緣AI框架,感興趣的小伙伴快點來看看

--------------- 以下為測評內(nèi)容---------------

TFLM是什么?

你或許都聽說過TensorFlow——由谷歌開發(fā)并開源的一個機(jī)器學(xué)習(xí)庫,它支持模型訓(xùn)練和模型推理。


今天介紹的TFLM,全稱是TensorFlow Lite for Microcontrollers,翻譯過來就是“針對微控制器的TensorFlow Lite”。那TensorFlow Lite又是什么呢?


TensorFlow Lite(通常簡稱TFLite)其實是TensorFlow團(tuán)隊為了將模型部署到移動設(shè)備而開發(fā)的一套解決方案,通俗的說就是手機(jī)版的TensorFlow。下面是TensorFlow官網(wǎng)上關(guān)于TFLite的一段介紹:

“TensorFlow Lite 是一組工具,可幫助開發(fā)者在移動設(shè)備、嵌入式設(shè)備和 loT 設(shè)備上運(yùn)行模型,以便實現(xiàn)設(shè)備端機(jī)器學(xué)習(xí)。”


而我們今天要介紹的TensorFlow Lite for Microcontrollers(TFLM)則是 TensorFlow Lite的微控制器版本。這里是官網(wǎng)上的一段介紹:

“ TensorFlow Lite for Microcontrollers (以下簡稱TFLM)是 TensorFlow Lite 的一個實驗性移植版本,它適用于微控制器和其他一些僅有數(shù)千字節(jié)內(nèi)存的設(shè)備。它可以直接在“裸機(jī)”上運(yùn)行,不需要操作系統(tǒng)支持、任何標(biāo)準(zhǔn) C/C++ 庫和動態(tài)內(nèi)存分配。核心運(yùn)行時(core runtime)在 Cortex M3 上運(yùn)行時僅需 16KB,加上足以用來運(yùn)行語音關(guān)鍵字檢測模型的操作,也只需 22KB 的空間。”


這三者一脈相承,都出自谷歌,區(qū)別是TensorFlow同時支持訓(xùn)練和推理,而后兩者只支持推理。TFLite主要用于支持手機(jī)、平板等移動設(shè)備,TFLM則可以支持單片機(jī)。從發(fā)展歷程上來說,后兩者都是TensorFlow項目的“支線項目”。或者說這三者是一個樹形的發(fā)展過程,具體來說,TFLite是從TensorFlow項目分裂出來的,TFLite-Micro是從TFLite分裂出來的,目前是三個并行發(fā)展的。在很長一段時間內(nèi),這三個項目的源碼都在一個代碼倉中維護(hù),從源碼目錄的包含關(guān)系上來說,TensorFlow包含后兩者,TFLite包含tflite-micro。


HPMSDK中的TFLM

  • TFLM中間件

HPM SDK中集成了TFLM中間件(類似庫,但是沒有單獨編譯為庫),位于hpm_sdk\middleware子目錄:

34b9a752-47b4-11ed-b116-dac502259ad0.png這個子目錄的代碼是由TFLM開源項目裁剪而來,刪除了很多不需要的文件。

TFLM示例

HPM SDK中也提供了TFLM示例,位于hpm_sdk\samples\tflm子目錄:

34d8d334-47b4-11ed-b116-dac502259ad0.png

示例代碼是從官方的persion_detection示例修改而來,添加了攝像頭采集圖像和LCD顯示結(jié)果。
由于我手里沒有配套的攝像頭和顯示屏,所以本篇沒有以這個示例作為實驗。

在HPM6750上運(yùn)行TFLM基準(zhǔn)測試

接下來以person detection benchmark為例,講解如何在HPM6750上運(yùn)行TFLM基準(zhǔn)測試。

將person detection benchmark源代碼添加到HPM SDK環(huán)境

按照如下步驟,在HPM SDK環(huán)境中添加person detection benchmark源代碼文件:

在HPM SDK的samples子目錄創(chuàng)建tflm_person_detect_benchmark目錄,并在其中創(chuàng)建src目錄;

從上文描述的已經(jīng)運(yùn)行過person detection benchmark的tflite-micro目錄中拷貝如下文件到src目錄:

tensorflow\lite\micro\benchmarks\person_detection_benchmark.cc

tensorflow\lite\micro\benchmarks\micro_benchmark.h

tensorflow\lite\micro\examples\person_detection\model_settings.h

tensorflow\lite\micro\examples\person_detection\model_settings.cc

在src目錄創(chuàng)建testdata子目錄,并將tflite-micro目錄下如下目錄中的文件拷貝全部到testdata中:

tensorflow\lite\micro\tools\make\gen\linux_x86_64_default\genfiles\tensorflow\lite\micro\examples\person_detection\testdata

修改person_detection_benchmark.cc、model_settings.cc、no_person_image_data.cc、person_image_data.cc 文件中部分#include預(yù)處理指令的文件路徑(根據(jù)拷貝后的相對路徑修改);

person_detection_benchmark.cc文件中,main函數(shù)的一開始添加一行board_init();、頂部添加一行#include "board.h”

添加CMakeLists.txt和app.yaml文件

在src平級創(chuàng)建CMakeLists.txt文件,內(nèi)容如下:

cmake_minimum_required(VERSION 3.13)

set(CONFIG_TFLM 1)

find_package(hpm-sdk REQUIRED HINTS $ENV{HPM_SDK_BASE})
project(tflm_person_detect_benchmark)
set(CMAKE_CXX_STANDARD 11)

sdk_app_src(src/model_settings.cc)
sdk_app_src(src/person_detection_benchmark.cc)
sdk_app_src(src/testdata/no_person_image_data.cc)
sdk_app_src(src/testdata/person_image_data.cc)

sdk_app_inc(src)
sdk_ld_options("-lm")
sdk_ld_options("--std=c++11")
sdk_compile_definitions(__HPMICRO__)
sdk_compile_definitions(-DINIT_EXT_RAM_FOR_DATA=1)
# sdk_compile_options("-mabi=ilp32f")
# sdk_compile_options("-march=rv32imafc")
sdk_compile_options("-O2")
# sdk_compile_options("-O3")
set(SEGGER_LEVEL_O3 1)
generate_ses_project()

在src平級創(chuàng)建app.yaml文件,內(nèi)容如下:

dependency:
  - tflm

  • 編譯和運(yùn)行TFLM基準(zhǔn)測試

接下來就是大家熟悉的——編譯運(yùn)行了。首先,使用generate_project生產(chǎn)項目:35187a16-47b4-11ed-b116-dac502259ad0.png接著,將HPM6750開發(fā)板連接到PC,在Embedded Studio中打卡剛剛生產(chǎn)的項目:354f7296-47b4-11ed-b116-dac502259ad0.png這個項目因為引入了TFLM的源碼,文件較多,所以右邊的源碼導(dǎo)航窗里面的Indexing要執(zhí)行很久才能結(jié)束。

然后,就可以使用F7編譯、F5調(diào)試項目了:

35bb5f10-47b4-11ed-b116-dac502259ad0.png

編譯完成后,先打卡串口終端連接到設(shè)備串口,波特率115200。啟動調(diào)試后,直接繼續(xù)運(yùn)行,就可以在串口終端中看到基準(zhǔn)測試的輸出了:

==============================
 hpm6750evkmini clock summary
==============================
cpu0:            816000000Hz
cpu1:            816000000Hz
axi0:            200000000Hz
axi1:            200000000Hz
axi2:            200000000Hz
ahb:             200000000Hz
mchtmr0:         24000000Hz
mchtmr1:         1000000Hz
xpi0:            133333333Hz
xpi1:            400000000Hz
dram:            166666666Hz
display:         74250000Hz
cam0:            59400000Hz
cam1:            59400000Hz
jpeg:            200000000Hz
pdma:            200000000Hz
==============================

----------------------------------------------------------------------
$$\   $$\ $$$$$$$\  $$\      $$\ $$\
$$ |  $$ |$$  __$$\ $$$\    $$$ |\__|
$$ |  $$ |$$ |  $$ |$$$$\  $$$$ |$$\  $$$$$$$\  $$$$$$\   $$$$$$\
$$$$$$$$ |$$$$$$$  |$$\$$\$$ $$ |$$ |$$  _____|$$  __$$\ $$  __$$\
$$  __$$ |$$  ____/ $$ \$$$  $$ |$$ |$$ /      $$ |  \__|$$ /  $$ |
$$ |  $$ |$$ |      $$ |\$  /$$ |$$ |$$ |      $$ |      $$ |  $$ |
$$ |  $$ |$$ |      $$ | \_/ $$ |$$ |\$$$$$$$\ $$ |      \$$$$$$  |
\__|  \__|\__|      \__|     \__|\__| \_______|\__|       \______/
----------------------------------------------------------------------
InitializeBenchmarkRunner took 114969 ticks (4 ms).

WithPersonDataIterations(1) took 10694521 ticks (445 ms)
DEPTHWISE_CONV_2D took 275798 ticks (11 ms).
DEPTHWISE_CONV_2D took 280579 ticks (11 ms).
CONV_2D took 516051 ticks (21 ms).
DEPTHWISE_CONV_2D took 139000 ticks (5 ms).
CONV_2D took 459646 ticks (19 ms).
DEPTHWISE_CONV_2D took 274903 ticks (11 ms).
CONV_2D took 868518 ticks (36 ms).
DEPTHWISE_CONV_2D took 68180 ticks (2 ms).
CONV_2D took 434392 ticks (18 ms).
DEPTHWISE_CONV_2D took 132918 ticks (5 ms).
CONV_2D took 843014 ticks (35 ms).
DEPTHWISE_CONV_2D took 33228 ticks (1 ms).
CONV_2D took 423288 ticks (17 ms).
DEPTHWISE_CONV_2D took 62040 ticks (2 ms).
CONV_2D took 833033 ticks (34 ms).
DEPTHWISE_CONV_2D took 62198 ticks (2 ms).
CONV_2D took 834644 ticks (34 ms).
DEPTHWISE_CONV_2D took 62176 ticks (2 ms).
CONV_2D took 838212 ticks (34 ms).
DEPTHWISE_CONV_2D took 62206 ticks (2 ms).
CONV_2D took 832857 ticks (34 ms).
DEPTHWISE_CONV_2D took 62194 ticks (2 ms).
CONV_2D took 832882 ticks (34 ms).
DEPTHWISE_CONV_2D took 16050 ticks (0 ms).
CONV_2D took 438774 ticks (18 ms).
DEPTHWISE_CONV_2D took 27494 ticks (1 ms).
CONV_2D took 974362 ticks (40 ms).
AVERAGE_POOL_2D took 2323 ticks (0 ms).
CONV_2D took 1128 ticks (0 ms).
RESHAPE took 184 ticks (0 ms).
SOFTMAX took 2249 ticks (0 ms).

NoPersonDataIterations(1) took 10694160 ticks (445 ms)
DEPTHWISE_CONV_2D took 274922 ticks (11 ms).
DEPTHWISE_CONV_2D took 281095 ticks (11 ms).
CONV_2D took 515380 ticks (21 ms).
DEPTHWISE_CONV_2D took 139428 ticks (5 ms).
CONV_2D took 460039 ticks (19 ms).
DEPTHWISE_CONV_2D took 275255 ticks (11 ms).
CONV_2D took 868787 ticks (36 ms).
DEPTHWISE_CONV_2D took 68384 ticks (2 ms).
CONV_2D took 434537 ticks (18 ms).
DEPTHWISE_CONV_2D took 133071 ticks (5 ms).
CONV_2D took 843202 ticks (35 ms).
DEPTHWISE_CONV_2D took 33291 ticks (1 ms).
CONV_2D took 423388 ticks (17 ms).
DEPTHWISE_CONV_2D took 62190 ticks (2 ms).
CONV_2D took 832978 ticks (34 ms).
DEPTHWISE_CONV_2D took 62205 ticks (2 ms).
CONV_2D took 834636 ticks (34 ms).
DEPTHWISE_CONV_2D took 62213 ticks (2 ms).
CONV_2D took 838212 ticks (34 ms).
DEPTHWISE_CONV_2D took 62239 ticks (2 ms).
CONV_2D took 832850 ticks (34 ms).
DEPTHWISE_CONV_2D took 62217 ticks (2 ms).
CONV_2D took 832856 ticks (34 ms).
DEPTHWISE_CONV_2D took 16040 ticks (0 ms).
CONV_2D took 438779 ticks (18 ms).
DEPTHWISE_CONV_2D took 27481 ticks (1 ms).
CONV_2D took 974354 ticks (40 ms).
AVERAGE_POOL_2D took 1812 ticks (0 ms).
CONV_2D took 1077 ticks (0 ms).
RESHAPE took 341 ticks (0 ms).
SOFTMAX took 901 ticks (0 ms).

WithPersonDataIterations(10) took 106960312 ticks (4456 ms)

NoPersonDataIterations(10) took 106964554 ticks (4456 ms)

可以看到,在HPM6750EVKMINI開發(fā)板上,連續(xù)運(yùn)行10次人像檢測模型,總體耗時4456毫秒,每次平均耗時445.6毫秒。

樹莓派3B+上運(yùn)行TFLM基準(zhǔn)測試

在樹莓派上運(yùn)行TFLM基準(zhǔn)測試

樹莓派3B+上可以和PC上類似,直接運(yùn)行PC端的測試命令,得到基準(zhǔn)測試結(jié)果:

35f1d50e-47b4-11ed-b116-dac502259ad0.png

可以看到,在樹莓派3B+上的,對于有人臉的圖片,連續(xù)運(yùn)行10次人臉檢測模型,總體耗時4186毫秒,每次平均耗時418.6毫秒;對于無人臉的圖片,連續(xù)運(yùn)行10次人臉檢測模型,耗時4190毫秒,每次平均耗時419毫秒。


HPM6750和樹莓派3B+、AMD R7 4800H上的基準(zhǔn)測試結(jié)果對比

這里將HPM6750EVKMINI開發(fā)板、樹莓派3B+和AMD R7 4800H上運(yùn)行人臉檢測模型的平均耗時結(jié)果匯總?cè)缦拢?/span>

36209c90-47b4-11ed-b116-dac502259ad0.png

可以看到,在TFLM人臉檢測模型計算場景下,HPM6750EVKMINI和樹莓派3B+成績相當(dāng)。雖然HPM6750的816MHz CPU頻率比樹莓派3B+搭載的BCM2837 Cortex-A53 1.4GHz的主頻低,但是在單核心計算能力上沒有相差太多。

這里樹莓派3B+上的TFLM基準(zhǔn)測試程序是運(yùn)行在64位Debian Linux發(fā)行版上的,而HPM6750上的測試程序是直接運(yùn)行在裸機(jī)上的。由于操作系統(tǒng)內(nèi)核中任務(wù)調(diào)度器的存在,會對CPU的計算能力帶來一定損耗。所以,這里進(jìn)行的并不是一個嚴(yán)格意義上的對比測試,測試結(jié)果僅供參考。

(本文參考鏈接:http://m.eeworld.com.cn/bbs_thread-1208270-1-1.html)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    88

    文章

    34990

    瀏覽量

    278651
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Nordic收購 Neuton.AI 關(guān)于產(chǎn)品技術(shù)的分析

    與 Nordic 的 nRF54 系列超低功耗無線 SoC 結(jié)合,使得即使是資源極為有限的設(shè)備也能高效運(yùn)行邊緣 AI。Nordic 目前正在將 Neuton 深度集成到自身開發(fā)生態(tài)中,未來會提供更多工具、固件
    發(fā)表于 06-28 14:18

    STM32F769是否可以部署邊緣AI

    STM32F769是否可以部署邊緣AI
    發(fā)表于 06-17 06:44

    Deepseek海思SD3403邊緣計算AI產(chǎn)品系統(tǒng)

    海思SD3403邊緣計算AI框架,提供了一套開放式AI訓(xùn)練產(chǎn)品工具包,解決客戶低成本AI系統(tǒng),針對差異化
    發(fā)表于 04-28 11:05

    重磅更新 | 先楫半導(dǎo)體HPM_SDK v1.9.0 發(fā)布

    版本更新概況[New]增加HPM6P00系列MCU以及hpm6p00evk支持[New]增加了開發(fā)板已知問題說明[Update]將全系列開發(fā)板VCore電壓調(diào)節(jié)至1.275V,HPM6750系列開發(fā)板主頻設(shè)成816MHz,
    的頭像 發(fā)表于 04-02 08:31 ?410次閱讀
    重磅更新 | 先楫半導(dǎo)體<b class='flag-5'>HPM</b>_SDK v1.9.0 發(fā)布

    AI賦能邊緣網(wǎng)關(guān):開啟智能時代的新藍(lán)海

    在數(shù)字化轉(zhuǎn)型的浪潮中,AI邊緣計算的結(jié)合正掀起一場深刻的產(chǎn)業(yè)變革。邊緣網(wǎng)關(guān)作為連接物理世界與數(shù)字世界的橋梁,在AI技術(shù)的加持下,正從簡單的數(shù)據(jù)采集傳輸節(jié)點,進(jìn)化為具備智能決策能力的
    發(fā)表于 02-15 11:41

    高速鏈路設(shè)計難?利用HPM6750雙千兆以太網(wǎng)透傳實現(xiàn)LED大屏實時控制

    HPM6750雙千兆以太網(wǎng)透傳方案演示LED大屏顯示系統(tǒng)利用發(fā)光二極管構(gòu)成的點陣模塊或像素單元組成大面積顯示屏顯示字符、圖像等信息,具有低功耗、低成本、高亮度、長壽命、寬視角等優(yōu)點,近年來隨著
    的頭像 發(fā)表于 02-08 13:45 ?961次閱讀
    高速鏈路設(shè)計難?利用<b class='flag-5'>HPM6750</b>雙千兆以太網(wǎng)透傳實現(xiàn)LED大屏實時控制

    SPEC ML基準(zhǔn)測試新增模算效率指標(biāo)

    近日,國際標(biāo)準(zhǔn)性能評估組織SPEC宣布了AI基準(zhǔn)測試SPEC ML的最新進(jìn)展。此次更新標(biāo)志著SPEC ML基準(zhǔn)測試在面向不同
    的頭像 發(fā)表于 01-15 14:28 ?485次閱讀

    AI開發(fā)框架集成介紹

    隨著AI應(yīng)用的廣泛深入,單一框架往往難以滿足多樣化的需求,因此,AI開發(fā)框架的集成成為了提升開發(fā)效率、促進(jìn)技術(shù)創(chuàng)新的關(guān)鍵路徑。以下,是對AI
    的頭像 發(fā)表于 01-07 15:58 ?543次閱讀

    MLCommons推出AI基準(zhǔn)測試0.5版

    開放式機(jī)器學(xué)習(xí)工程聯(lián)盟 MLCommons 在美國加州當(dāng)?shù)貢r間公布推出適用于消費(fèi)類 PC 的 AI 性能的 MLPerf Client 基準(zhǔn)測試的 0.5 版,這是該測試的第一個公開版
    的頭像 發(fā)表于 12-12 16:47 ?820次閱讀

    Arm推出GitHub平臺AI工具,簡化開發(fā)者AI應(yīng)用開發(fā)部署流程

    專為 GitHub Copilot 設(shè)計的 Arm 擴(kuò)展程序,可加速從云到邊緣側(cè)基于 Arm 平臺的開發(fā)。 Arm 原生運(yùn)行器為部署云原生、Windows on Arm 以及云到邊緣側(cè)的
    的頭像 發(fā)表于 10-31 18:51 ?3309次閱讀

    如何做一個hpm6750evk2的bootloader?

    我正在做一個hpm6750evk2的bootloader。設(shè)計很簡單,boot工程代碼只做跳轉(zhuǎn)到1M后的APP工程代碼處,APP工程就是做的一個點燈的程序而已,boot、APP工程都是跑
    發(fā)表于 10-23 19:01

    HPM6750 Bootloader設(shè)計

    我正在做一個hpm6750evk2的bootloader。設(shè)計很簡單,boot工程代碼只做跳轉(zhuǎn)到1M后的APP工程代碼處,APP工程就是做的一個點燈的程序而已,boot、APP工程都是跑
    發(fā)表于 10-23 18:59

    HPM6750evkmini如何實現(xiàn)可信的執(zhí)行環(huán)境?

    HPM6700的datasheet中的1.2.15 信息安全系統(tǒng)有提到“基于BOOT ROM 的安全啟動機(jī)制,支持加密啟動,支持可信的執(zhí)行環(huán)境”,請問可信的執(zhí)行環(huán)境如何實現(xiàn)的?有相關(guān)的Demo或者資料嗎?是類似于TFM這樣的嗎?
    發(fā)表于 09-25 09:27

    TDA4 Edge AI處理器的性能和效率基準(zhǔn)測試

    電子發(fā)燒友網(wǎng)站提供《TDA4 Edge AI處理器的性能和效率基準(zhǔn)測試.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 09:21 ?0次下載
    TDA4 Edge <b class='flag-5'>AI</b>處理器的性能和效率<b class='flag-5'>基準(zhǔn)</b><b class='flag-5'>測試</b>

    hpm_manufacturing_tool linux 版本 選擇 hidraw 連接等待超時

    _manufacturing_tool_gui linux 版本 選擇 hidraw 連接 HPM6750 芯片,能識別到 hidraw 設(shè)備,單擊連接是提示重啟芯片這個時候會等待超時然后軟件報錯,此時查看 lsusb 設(shè)備是檢測不到 hpm6750
    發(fā)表于 08-07 16:43