0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【赛昉科技昉·星光RISC-V单板计算机试用体验】运行边缘AI框架——TFLM

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-14 14:32 次阅读
本文来源电子发烧友社区,作者:xusiwei1236, 帖子地址:https://bbs.elecfans.com/jishu_2289346_1_1.html

一、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输出:
pYYBAGK3zMyAAQBAAABlHq01nEU752.png


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
该文档篇幅不长:
poYBAGK4ZAmAJeaZAACdbjT9aZU774.png

通过这个目录我们可以知道,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
执行这两个命令,会依次执行如下步骤:
  • 调用几个下载脚本,下载依赖库和数据集;
  • 编译测试程序;
  • 运行测试程序;
tensorflow/lite/micro/tools/make/Makefile代码片段中,可以看到调用了几个下载脚本:
pYYBAGK4ZB6AM6v-AADEv5gswUA578.png

flatbuffers_download.sh和kissfft_download.sh脚本第一次执行时,会将相应的压缩包下载到本地,并解压,具体细节参见代码内容;
pigweed_download.sh脚本会克隆一个代码仓,再检出一个特定版本:
pYYBAGK4ZCuABD3CAAEYCKnfU8k965.png

这里需要注意的是,代码仓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上运行这个基准测试的耗时非常短:
poYBAGK4ZD2AYyq5AAGS36-5Bko417.png

可以看到,在PC上运行关键词唤醒的速度非常快,10次时间才2毫秒。
模型文件路径为:./tensorflow/lite/micro/models/keyword_scrambled.tflite
可以使用Netron软件查看模型结构:
poYBAGK4ZEyAdPNkAAB7aF50xgw363.png


3. 5 Person detection基准测试
人体检测基准测试的计算量相对要大一些,运行的时间也要长一些:
pYYBAGK4ZF6AYQQOAAGczPpTyzE269.png

pYYBAGK4ZGmAY4a5AAFpf5byb70838.png

可以看到,人像检测模型运行10次的时间是四千多毫秒,一次平均四十几毫秒。
模型文件路径为:./tensorflow/lite/micro/models/person_detect.tflite
同样,可以使用Netron查看模型结构,模型结构过于复杂,这里不再展示。

四、和树莓派3B+结果对比
我手头还有一块吃灰很久的树莓派3B+,拿出来做个对比。

4.1 在树莓派3B+上运行TFLM基准测试
在树莓派3B+上运行TFLM基准测试,所需的操作和VisionFive的完全一致。由于关键词识别的模型计算量太小了,这里直接跑一下人像检测的模型,最终结果为:
poYBAGK4ZJ-AQr60AADk7MTySFk534.png

可以看到,在树莓派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
从上表可以看到,在TFLM人像检测模型计算场景下,VisionFive和树莓派3B+单次计算耗时基本相当。树莓派3B+的CPU频率比VisionFive要高出40%,VisionFive能跑出这样的成绩说明U74 RISC-V CPU核和ARM Cortex A53的单核计算能力上差距不大(TFLM是单线程的)。但是,树莓派3B+有4个Cortex A53核心,而VisionFive V1只有两个U74 CPU核心,因此在多线程计算性能上必然存在较大差距。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RISC-V
    +关注

    关注

    45

    文章

    2270

    浏览量

    46119
  • 赛昉科技
    +关注

    关注

    3

    文章

    152

    浏览量

    14273
收藏 人收藏

    评论

    相关推荐

    科技亮相世界互联网大会,精彩呈现RISC-V创新成果

    丰富的RISC-V创新成果,包括·惊鸿-7110(JH-7110)RISC-V应用处理器,·星光2(VisionFive2)
    的头像 发表于 11-28 15:14 322次阅读
    <b class='flag-5'>赛</b><b class='flag-5'>昉</b>科技亮相世界互联网大会,精彩呈现<b class='flag-5'>RISC-V</b>创新成果

    预售启动!·星光 2 AI套件正式发布,基于RISC-V构建AI算力

    10月24日,·星光2(VisionFive2)AI套件正式开启预售。该套件由中国RISC-V软硬件生态领导者
    的头像 发表于 10-25 08:05 201次阅读
    预售启动!<b class='flag-5'>昉</b>·<b class='flag-5'>星光</b> 2 <b class='flag-5'>AI</b>套件正式发布,基于<b class='flag-5'>RISC-V</b>构建<b class='flag-5'>AI</b>算力

    Ubuntu现已适配RISC-V单板计算机Milk-V Mars

    近期,Canonical宣布优化的Ubuntu24.04镜像已可用于RISC-V单板计算机Milk-VMars。Milk-VMars由深圳市群芯闪耀科技有限公司(Milk-V)设计并推出,搭载
    的头像 发表于 06-12 08:19 454次阅读
    Ubuntu现已适配<b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>Milk-<b class='flag-5'>V</b> Mars

    畅玩·星光 2|手把手教你搭建基于RISC-V的家用NAS

    方案。通过科技与开源社区的共同努力,·星光2(VisionFive2)RISC-V单板计算机
    的头像 发表于 06-04 08:19 914次阅读
    畅玩<b class='flag-5'>昉</b>·<b class='flag-5'>星光</b> 2|手把手教你搭建基于<b class='flag-5'>RISC-V</b>的家用NAS

    信用卡大小的 RISC-V 单板计算机介绍

    信用卡大小的 RISC-V 单板计算机 —— Mars Mars 由深圳市群芯闪耀科技有限公司(Milk-V)设计并推出,搭载科技
    发表于 04-12 16:39

    科技为RISC-V人才培育赋能

    中国RISC-V软硬件生态领导者,科技受邀在峰会发表主题演讲,并正式加入RISC-V国际人才培养认证中心。
    的头像 发表于 04-02 08:18 492次阅读
    <b class='flag-5'>赛</b><b class='flag-5'>昉</b>科技为<b class='flag-5'>RISC-V</b>人才培育赋能

    科技VisionFive 2生态进展双周报(2.1-2.29)

    Image for VisionFive 2) 社区开发者发布4篇【·星光 2高性能RISC-V单板计算机体验】系列文章,内容包括:为Ubuntu安装Docker及常用软件;以容器
    发表于 02-29 15:45

    RISC-V智能化网络解决方案|科技·星光 2成功运行OpenWrt

    。近期,科技在·星光2(VisionFive2)RISC-V单板计算机上成功
    的头像 发表于 02-23 08:18 664次阅读
    <b class='flag-5'>RISC-V</b>智能化网络解决方案|<b class='flag-5'>赛</b><b class='flag-5'>昉</b>科技<b class='flag-5'>昉</b>·<b class='flag-5'>星光</b> 2成功<b class='flag-5'>运行</b>OpenWrt

    ·星光 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]
    的头像 发表于 02-21 10:21 491次阅读
    <b class='flag-5'>昉</b>·<b class='flag-5'>星光</b>2 <b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>体验(三) - SSH连接

    ·星光2 RISC-V单板计算机体验(二) - 系统环境

    ·星光2 RISC-V单板计算机体验(二) - 系统环境 一、官方资料 RISC-V官网: [https://rvspace.org]
    的头像 发表于 02-21 10:15 648次阅读
    <b class='flag-5'>昉</b>·<b class='flag-5'>星光</b>2 <b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>体验(二) - 系统环境

    ·星光2 RISC-V单板计算机体验(一) - 开箱

    ·星光2 RISC-V单板计算机体验(一) - 开箱 一、开箱 ·星光2( VisionFi
    的头像 发表于 02-21 10:10 709次阅读
    <b class='flag-5'>昉</b>·<b class='flag-5'>星光</b>2 <b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>体验(一) - 开箱

    ·星光 2 高性能RISC-V单板计算机试用体验】开箱及装载Debian系统

    上周收到了·星光 2高性能RISC-V单板计算机开发板,在此非常感谢科技提供的
    发表于 01-24 00:32