【AI达人创造营第二期】基于jetsonnano部署的手势乐器--模型部署
该项目利用Jetson Nano结合PaddleDetection训练的模型,经Tensorrt加速实现手势检测,通过Arduino控制外设输出音阶。8种手势对应14种音阶(含八度抬高),文中详述了设备连接、环境配置、模型部署及相关代码。

0.简介
首先感谢百度Paddle为我提供的硬件设备,为每一个梦想插上了翅膀
一枚热爱技术的菜鸡,今天想做一个目标检测和嵌入式的结合体,做一个jetson nano乐器

方案:
使用paddledetection训练模型并使用paddleInference在jetson nano上部署目标检测网络,
使用Tensorrt进行Jetsonnano的加速,
达到一个令人满意的FPS,检测简单手势,
然后再通过nano控制beep等外设,来达到beep的变频输出
使用7种手势代表7种音阶
do、re、mi、fa、sol、la、si
且为了使得音调更加丰富,我使用了第八种手势,当第八种手势出现在画面中的时候,音阶就会上抬一个八度,于是我们获得了十四个音阶
do、re、mi、fa、sol、la、si、ddo、dre、dmi、dfa、dsol、dla、dsi
从左向右从上往下依次是12 .....最后一个是音阶抬高记号

视频演示
配料表:
Jetson nano x1 Arduino x1 摄像头 x1
电源、无线网卡、网线、风扇
如有外接显示器可以直接用外接显示器而不需要网线连SSH

1.JetsonNano的部署
我这里有一块上好的JetsonNano板,打算在同一局域网下使用ssh连接下面详述
1.Jetson nano的连接
首先如果你有屏幕可以直接用屏幕本条就可以直接忽略
但是如果你是像我一样没有屏幕的玩家,可以通过serial串口进行连接、ssh进行连接、或者VNC远程桌面连接
我是没有显示屏的,我采用的是先使用串口进行连接,使用笔记本电脑开启移动热点,然后使用nano命令行连接wifi,再查询ip地址,知道了ip地址就可以使用ssh连接或使用VNC远程桌面了
使用串口连接,连接
下面是jetson nano的引脚图

按照此引脚图进行连接

使用putty,采用对应的COM口,使用波特率115200

首先使用命令进行网络设备扫描
sudo nmcli dev登录后复制

可以看见我有wlan0 作为wifi设备,这里我已经连接过了,所以显示connected
使用命令
sudo nmcli dev wifi connect "wifi名称" password "wifi密码" ifname wlan0登录后复制
进行wifi的连接
然后我们可以使用ping命令检测网络的连通性,这里我直接ping百度了,可以看见是连通的

使用命令
ifconfig登录后复制
命令查看ip地址,在wlan0后,显示了ip地址:划红线的地方

2.查看CUDA版本与jetpack版本以选择预测库
nvcc -V
来查看cuda版本

这里可以看到我的cuda是10.2的
使用命令
sudo apt-cache show nvidia-jetpack登录后复制

由Filename可以看出
Filename: pool/main/n/nvidia-jetpack/nvidia-jetpack_4.4-b144_arm64.deb登录后复制
我的jetpack版本为jetpack_4.4
3.部署安装paddle
这里我直接使用whl包安装对应的linux的预测库
预测库地址
按照上述的对应版本最终我选用了 Jetpack4.5(4.4): nv_jetson-cuda10.2-trt7-nano
4.部署paddledet
如同aistudio上部署一样,我们依然需要先git clone以下paddledetection的库这里不再赘述
git clone https://gitee.com/paddlepaddle/PaddleDetection.git
依然是
#进入文件夹cd PaddleDetection/#安装其他依赖pip3 install -r requirements.txt#编译安装paddledetcd PaddleDetectionpython3 setup.py install登录后复制
当命令行最后一行执行出现
Finished processing dependencies for paddledet==2.3.0
完成安装
通过后可以通过
python ppdet/modeling/tests/test_architectures.py
检测一下是否成功
出现下图时即可判定成功
按照最新给的教程来即可,或者好像可以直接pip安装包,连编译都不要

这里可以看见报了个Warning,不过不用担心,只要不是Error就可以当作看不见
相关攻略
team是Linux内核3 3引入的一种链路聚合驱动,它的功能和bonding类似,但是更灵活、可扩展性更强。 team是Linux内核3 3引入的一种链路聚合驱动,它的功能和bonding类似,但
在docker容器化平台安装过程中,我们遇到一个典型问题:容器启动过程中,访问镜像仓库服务失败,重试40次依然无果。 在docker容器化平台安装过程中,我们遇到一个典型问题:容器启动过程中,访问镜
一提到服务,大家最先想到的一定是服务器,假设客户端是浏览器,浏览器发送http请求,服务器接收到请求后进行解析然后调用相应的hander,从本质上讲就是客户端触发了服务器端的某个函数的运行,这时我们
Linux 内核中的完全公平调度器中每个逻辑核都有一个调度队列 struct cfs_rq。每个调度队列中都是用红黑树来组织的。红黑树的节点是 struct sched_entity, sched_
10 月 26 日消息,Fedora 项目团队宣布 Fedora Linux 43 最终版本已于 10 月 23 日通过评审,正式进入发行阶段,预计将于当地时间 10 月 28 日正式发布。若出现
热门专题
热门推荐
10月30日消息,iQOO Neo11今晚正式发布,首发限时优惠,起售价只要2599元。具体配置如下:屏幕:6 78英寸2K 144Hz珠峰屏,联合研发BOE最新Q10+发光材料,支持硬件级圆偏振光
Bitget是一个全球知名的加密资产交易平台,提供现货、合约、复制交易等服务。以下内容将为你说明如何访问Bitget 官方手机App 获取入口,并提供其安卓最新版下载安装步骤与注册流程。
这个去中心化交易协议的治理凭证 每次打开电脑查看行情,那个小独角兽图标总能让我想起最早接触去中心化金融的场景。说实话,最初我对这种
王者荣耀三星堆皮肤怎么样?近期,王者荣耀与三星堆的联动消息在玩家中引发了广泛关注。这次合作不仅是文化与科技的碰撞,更是游戏内容的一次重磅升级。作为一次重量级联动,最新自然不会只停留
账户抽象通过融合EOA与合约账户,实现可编程验证、模块化功能和Gas代付,显著简化Web3操作,提升安全与用户体验,推动钱苞向主流应用迈进。





