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
    +关注

    关注

    41

    文章

    1908

    浏览量

    45078
  • 赛昉科技
    +关注

    关注

    3

    文章

    126

    浏览量

    14146
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    ·星光 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单板计算机试用体验】开箱及装载Debian系统

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

    ·星光 2 高性能RISC-V单板计算机体验】在·星光2上安装配置新编译的OpenWRT

    本文是《【·星光 2 高性能RISC-V单板计算机体验】在·星光2上编译OpenWRT》的下
    发表于 11-18 11:22

    ·星光 2 高性能RISC-V单板计算机体验】+6手把手实战Linux控制小车

    感谢 电子发烧友论坛网 感谢 上海科技有限公司 ·星光 2 高性能RISC-V单板计算机
    发表于 10-12 10:05

    ·星光 2 高性能RISC-V单板计算机体验】星光 2 功耗测评

    星光 2是迄今最高性能单板机。 搭载高性能·惊鸿7110搭载64位高性能四核RISC-V CPU,2MB的二级缓存,工作频率最高可达1.5 GHz。
    发表于 09-28 10:34

    VisionFive 2单板计算机成功支持Docker容器解决方案

    科技进一步获取。 关于 VisionFive 2 VisionFive 2 是全球第一款集成 3D GPU 的高性能量产 RISC-V 单板计算机,它优越的性能与合理的价格使其成为
    发表于 09-08 11:45

    RISC-V + OpenCV 计算机视觉】用 VisionFive 2 ·星光 2 进行物体识别

    广泛应用于视频监控、自动驾驶等领域。 基于Debain操作系统和OpenCV框架科技在VisionFive 2(·星光 2)
    发表于 09-08 11:42

    ·星光 2 高性能RISC-V单板计算机体验】原创3 控制螺旋桨电路的升力大小

    控制螺旋桨电路的升力大小,·星光 2 高性能RISC-V单板计算机反应敏捷,控制到位,值得上手! GPIO接口也非常多,非常全。如下图: 谢谢!
    发表于 08-31 16:45

    ·星光 2 高性能RISC-V单板计算机体验】2更换Debian操作系统

    接上两篇:【·星光 2 高性能RISC-V单板计算机体验】1初识科技StarFive -
    发表于 08-31 00:03

    ·星光 2 高性能RISC-V单板计算机体验】+1控制小车前进后退

    感谢 电子发烧友论坛网 感谢 上海科技有限公司 下面用GPIO方式控制小车前进与后退,如视频所示。 GPIO接口控制效果不错,接下来再用这款“单板计算机”做一些项目。
    发表于 08-30 20:15

    ·星光 2 高性能RISC-V单板计算机体验】使用之一:星光 2开箱之硬件分析

    ·星光 2 是全球首款集成了GPU的高性能RISC-V单板计算机。与·星光1 相比( J
    发表于 07-28 15:02

    RISC-V专题】·星光 2(VisionFive 2)RISC-V单板计算机免费试用

    VisionFive 2是全球首款集成3D GPU的高性能量产RISC-V 单板计算机 。与上一代相比,VisionFive 2全面升级,在处理器工作频率、多媒体处理能力、可扩展性等方面都有显着提升
    发表于 05-16 11:26