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

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

3天内不再提示

基于DPU-PYNQ来实现石头剪刀布的手势识别

454398 来源: PYNQ开源社区微信公众号 作者: PYNQ开源社区微信 2020-09-29 11:00 次阅读

简介

本案例主要基于DPU-PYNQ来实现一个常见的手势识别--石头剪刀布,目的是让大家了解如何使用DPU开发深度学习应用的整个流程。本案例分为三个部分:分别是PC模型训练、VitisAI模型编译、Edge模型部署三个部分。PC模型训练是通过tensorflow对数据集进行分析训练,得到需要的tf模型;VitisAI模型编译是通过vitis ai工具链,对tf模型进行量化、编译,转换成dpu可以运行的模型;Edge模型部署是在U96上调度使用编译好的模型。

Git仓库:https://github.com/linxiaobo110/rps_u96.git

在PC上训练NN模型

数据集

数据集使用的是谷歌发布的开源数据集:

https://www.tensorflow.org/datasets/catalog/rock_paper_scissors

训练环境说明

议在有显卡的环境下训练,本教程使用的python环境所需的库如下所示:

python 3.7

tensorflow 2.0

numpy

opencv

matplotlib

sklearn

在安装好的python环境下,使用spyder或者命令行运行train.py:

python train.py

正常运行时会有以下输出:

1、打印部分数据集图片(注意观察图片是否正常),以及各种标签的样本数量:

2、打印训练过程以及训练精度的变化

在Vitis AI里编译NN模型

把训练好的模型通过vitis AI编译后才可以在U96上运行。

1、把训练好的模型拷贝到DpuCarU96的vitisAI目录,同时需要把vitisAI/dataset_valid下的验证集换成用户自己的数据,至少50张图片。

2、启动vitis AI的docker,并把工程里的vitisAI目录拷贝到docker虚拟机里。

./docker_run.sh xilinx/vitis-ai

3、在vitisAI的dockder里,激活tensorflow的环境:

conda activate vitis-ai-tensorflow

4、在vitisAI的dockder里,运行权值固化、权值量化、模型编译等脚本可以得到以下输出:

编译完完的模型在./vitisAI/compile_results目录下,里面的.elf文件是下一阶段的教程所需要的。

在Utral96上调用NN模型

1、把仓库拷贝到U96的jupyter_notebook目录下,如果要使用用户的模型,请把里面的.elf文件换成vitisAI教程里生成的elf文件。

2、在U96的终端上,把elf模型编译程序共享库:

sudo ./1.compile.sh

3、在U96的终端上,查看IP地址:

sudo ifconfig

4、在用户PC上,打开浏览器,输入IP地址,即可进入jupyter Notebook。

5、在用户PC上,按照jupyterNotebook的提示逐步地运行程序,即可看到效果。

6、在用户PC上,使用USB摄像头的实时识别实验。USB摄像头需要连接在Ultral96上。

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

    关注

    8

    文章

    219

    浏览量

    47577
  • DPU
    DPU
    +关注

    关注

    0

    文章

    294

    浏览量

    23965
  • 深度学习
    +关注

    关注

    73

    文章

    5237

    浏览量

    119905
收藏 人收藏

    评论

    相关推荐

    基于ADUX1020的手势识别实现方案

    嘈声环境中持续稳定工作。该芯片有多种模式配置,以实现非接触式手势识别和控制,还能实现距离检测。 手势识别
    发表于 11-28 16:26 0次下载
    基于ADUX1020的<b class='flag-5'>手势</b><b class='flag-5'>识别</b><b class='flag-5'>实现</b>方案

    什么是DPU

    ,能以线速或网络中的可用速度解析、处理数据,并高效地将数据传输到GPU和CPU。 各种灵活和可编程的加速引擎,可以卸载AI、机器学习、安全、电信和存储等应用,并提升性能。 所有这些DPU功能对于实现
    发表于 11-03 10:55

    手势识别传感器的工作原理和常见技术实现

    手势识别传感器是一种设备,它可以通过感知和解释人类手势的动作和姿势来与用户进行交互。这种传感器通常通过使用各种不同的技术来实现手势
    的头像 发表于 10-05 16:01 3079次阅读

    HarmonyOS/OpenHarmony(Stage模型)应用开发组合手势(三)互斥识别

    互斥识别组合手势对应的GestureMode为Exclusive。互斥识别组合手势中注册的手势将同时进行
    发表于 09-11 15:01

    HarmonyOS/OpenHarmony(Stage模型)应用开发组合手势(二)并行识别

    并行识别组合手势对应的GestureMode为Parallel。并行识别组合手势中注册的手势将同时进行
    发表于 09-08 16:17

    HarmonyOS/OpenHarmony(Stage模型)应用开发组合手势(一)连续识别

    组合手势由多种单一手势组合而成,通过在GestureGroup中使用不同的GestureMode声明该组合手势的类型,支持连续识别、并行
    发表于 09-07 15:20

    LSM6DSOX FSM手势识别基础示例

    最新的A+G系列芯片支持通过内嵌的 FSM功能实现一系列手势识别本文档以LSM6DSOX 为例介绍了配置要求以及FSM的实现流程
    发表于 09-06 08:05

    石头剪刀逻辑设计(3)#应用开发

    应用开发
    未来加油dz
    发布于 :2023年07月12日 19:24:29

    石头剪刀逻辑设计(1)#应用开发

    应用开发
    未来加油dz
    发布于 :2023年07月12日 19:22:34

    石头剪刀界面设计(2)#应用开发

    应用开发
    未来加油dz
    发布于 :2023年07月12日 19:21:44

    石头剪刀界面设计(1)#应用开发

    应用开发
    未来加油dz
    发布于 :2023年07月12日 19:20:51

    车载手势识别技术的原理及其应用

    车载手势识别技术是一种利用计算机视觉和人工智能技术来识别和理解驾驶员手势的技术。该技术通过使用传感器、摄像头等设备捕捉驾驶员的手势动作,然后
    的头像 发表于 06-27 18:09 787次阅读

    使用PYNQ的Ultra96面部识别锁栓

    电子发烧友网站提供《使用PYNQ的Ultra96面部识别锁栓.zip》资料免费下载
    发表于 06-26 10:52 0次下载
    使用<b class='flag-5'>PYNQ</b>的Ultra96面部<b class='flag-5'>识别</b>锁栓

    手势识别技术的挑战和未来发展

    手势识别技术在实现过程中面临着一些挑战和问题。 首先,手势识别技术需要处理大量的手势信息,而这些
    的头像 发表于 06-14 18:27 624次阅读

    手势识别技术及其应用

    手势识别技术是一种通过计算机视觉和人工智能技术来分析和识别人类手势动作的技术。它主要利用传感器、摄像头等设备捕捉手势信息,然后通过算法对捕捉
    的头像 发表于 06-14 18:12 1220次阅读