【AI达人创造营三期】中国交通标志识别-JetsonNano部署

2023-10-24 04:20

本文主要是介绍【AI达人创造营三期】中国交通标志识别-JetsonNano部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【AI达人创造营三期】中国交通标志识别-JetsonNano部署

1. 项目简介

  • 本项目针对JetsonNano开发板进行项目部署落地,并完成真实场景的交通标志识别。
  • 本部署项目依托于【校园AI Day-AI workshop】中国交通标志图像分类项目,在该项目训练好的模型基础上进行开发板部署落地。
  • 对该项目训练好的PaddleDetection中的Picodet模型进行导出,进而完成开发板部署整体流程,包括开发板组装、系统烧入、磁盘空间扩充、分配虚拟内存、导入模型、安装摄像头、C++部署等几个主要步骤。
  • 下面将进行详细介绍。

2. 开发板组装

本项目主要用到的硬件包括:

  1. Jetson nano开发板主体
  2. 支持HDMI的显示器
  3. 鼠标
  4. 键盘
  5. 网线(用于给开发板联网导入训练好的模型等)
  6. CSI摄像头(用于实时检测)
  7. 32G的SD存储卡(用于烧录系统)

注意在脚针那一侧的侧盖可以先不用安装,因为后续要用到侧面脚针。组装完成的开发板如下图所示:

在这里插入图片描述

3. 系统烧录

系统烧录主要分两步骤,虚拟机烧录eMMC文件以及SD卡烧录系统,两步骤缺一不可,否则可能会导致开发板开不开机。

3.1 虚拟机烧录

首先要在自己的电脑上安装VMware虚拟机。注意:在设置虚拟机配置的时候要开启USB接口,也就是让虚拟机能够识别你电脑的物理USB接口接入的设备。

然后,因为开发板提供了系统优盘,我们可以导出U盘中提供的clb_jetson.vmx文件,然后在虚拟机窗口选择打开虚拟机,然后选择该文件代开,如下图所示:

在这里插入图片描述

然后使用跳线连接开发板侧面的第二脚针和第三脚针。如下图所示:

在这里插入图片描述

接下来,使用usb连接线连接电脑与开发板,并且连接电源线为开发板通电。

在这里插入图片描述

然后,电脑的虚拟机就可以识别到USB设备(开发板)了,进而就可以进行eMMC文件烧录,烧录具体步骤请参考系统烧录

3.2 烧录SD卡

在PC上安装U盘中提供的 Balena Etcher 烧录工具。

在这里插入图片描述

然后,将SD储存卡放入读卡器,并插入电脑。具体系统烧录过程请参考:安装系统。

最后,拔掉与电脑之间的usb连接线,拔掉跳线。保留电源线,使用hdmi线连接显示器,即可开机。

在这里插入图片描述

4. 扩充磁盘空间

使用如下命令安装磁盘工具:
sudo apt-get install gparted

然后打开磁盘工具,在右上角选择sda,然后右键sda磁盘条,选择resize,然后将磁盘条拖到最大空间,应用即可。

5. 释放虚拟内存

扩充内存空间是必要的,显存各个内存是共享受的,物理内存比较小只有4G,所以应该加上。Swap交换空间是在硬盘上,当物理内存RAM用完时,会开始使用。交换空间可以采用专用交换分区或交换文件的形式。在大多数情况下,不存在交换分区,因此唯一的选择是创建交换文件。具体扩充步骤请参考:增加交换空间大小

6. 摄像头安装

  • 注意:在安装摄像头的时候需要断电
  • 首先把Nano的这个CSI接口的这个销子轻轻拔起,注意要小心,千万别拔断
  • 然后插入CSI摄像头的排线线缆,注意方向和正反,别插反了
  • 接下来把刚才拔起来的销子压下去固定好
  • 别忘记把摄像头的保护贴膜去掉

在这里插入图片描述

安装摄像头以后使用如下命令查看是否有摄像头接入,能否被系统识别:

在确定有摄像头设备接入后,使用第二个命令开启视像头,进行摄像头测试:

ls /dev/vid*gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM),width=3820, height=2464, framerate=21/1, format=NV12' ! nvvidconv flip-method=0 ! 'video/x-raw,width=960, height=616' ! nvvidconv ! nvegltransform ! nveglglessink -e

7. C++部署

7.1 环境准备

安装所需的包, c m a k e cmake cmake g + + g++ g++ p a t c h e l f patchelf patchelf(用于编译),在终端中使用如下命令进行安装。

  • 注意:使用如下命令安装的cmake版本过低,会导致后续部署失败,需要手动升级,或者是直接手动安装高版本cmake。
    步骤1:访问cmake官网,找到对应的版本。
  • 本项目使用的开发板需要选择Linux aarch64平台,然后选择合适版本的压缩包cmake-3.23.4-linux-aarch64.tar.gz进行手动下载

在这里插入图片描述

步骤2:解压安装
找到download目录下刚刚下好的安装包,打开终端使用如下命令进行解压缩:
tar -zxvf cmake-3.23.4-linux-aarch64.tar.gz
然后可以将解压好的文件夹移动到/opt/cmake3.23目录下(/cmake3.23可以根据需要可以自己命名成别的),使用如下命令查看是否安装成功:

cmake -version

若提示此错误:cmake :command not found,说明需要设置一下路径

解决办法:

  • 按照提示需要在终端执行命令:export PATH=/opt/cmake3.23/bin:$PATH
sudo apt-get install build-essential make cmakesudo apt-get install git g++ pkg-config curlsudo apt-get install patchelf

7.2 FastDeploy 的 C++ 部署

编译 FastDeploy 的 C++ SDK,使用如下命令先从官网克隆FastDeploy,然后进行编译:

/home/nvidia/FastDeploy/build/fastdeploy_cpp_sdk/目录下的即为编译产出的C++部署库。包括C++的实例代码也在里面。

git clone https://github.com/PaddlePaddle/FastDeploycd FastDeploymkdir build && cd buildcmake .. -DBUILD_ON_JETSON=ON -DENABLE_VISION=ON -DCMAKE_INSTALL_PREFIX=${PWD}/fastdeploy_cpp_sdkmake -j8make install

7.3 Picodet模型部署

步骤1:导入依赖库

注意:依赖库导入环境变量的脚本在/home/nvidia/FastDeploy/build/fastdeploy_cpp_sdk/fastdeploy_init.sh需要我们在终端中使用如下命令导入:

source /home/nvidia/FastDeploy/build/fastdeploy_cpp_sdk/fastdeploy_init.sh

步骤2:修改源码

FastDeploy 提供的示例代码在以下路径:

/home/nvidia/FastDeploy/build/fastdeploy_cpp_sdk/examples/vision/detection/paddledetection/cpp/infer_picodet.cc

  • 但是使以上路径中的infer_picodet.cc文件直接编译的话,不能调用摄像头,只能本地推理,因此需要将该infer_picodet.cc文件内容进行改动。
  • 修改好的infer_picodet.cc文件已经在本项目aistudio目录下了,可以将其下载下来,替换原来的infer_picodet.cc文件。
  • 这样,在接下来的编译后就能调用摄像头进行实时推理了。

在这里插入图片描述


步骤3:编译

需要我们进入到此目录下开启终端:/home/nvidia/FastDeploy/build/fastdeploy_cpp_sdk/examples/vision/detection/paddledetection/cpp/

然后使用如下命令进行编译:

mkdir build && cd buildcmake .. -DFASTDEPLOY_INSTALL_DIR=YourPathTo/fastdeploy_cpp_sdkcpp_sdkmake -j

步骤4:推理
  • 进入到/home/nvidia/FastDeploy/build/fastdeploy_cpp_sdk/examples/vision/detection/paddledetection/cpp/build目录,可找到编译后的可执行文件: infer_picodet_demo
  • 将我们之前训练好的 PicoDet 模型和测试图片拷贝到当前build目录下
  • 使用如下命令进行推理
  • infer_picodet_demo:代表使用的推理文件
  • ./picodet_s_320_coco_lcnet:表示要使用的训练好的推理模型
  • 036_1_0002_1_j.png:表示要推理的图片(因为源码中没改图片传入,所以实时推理的时候也需要给一张图片路径),但是不影响启动摄像头实时推理
  • 命令中最后那个0:代表使用CPU推理;也可选择2:代表GPU上TensorRT推理(TRT推理加载时间比较长,请耐心等待)。根据需要选择。
  • 使用如下命令进行推理:
./infer_picodet_demo ./picodet_s_320_coco_lcnet 036_1_0002_1_j.png 2

8. 实时推理效果展示

最终选择了GPU上TensorRT推理,推理效果如下图中所示,可以看出经过部署,能够将不同的交通标志进行识别与分类。


本地推理结果如下所示:

在这里插入图片描述

实时推理结果如下所示:

在这里插入图片描述

在这里插入图片描述

请点击此处查看本环境基本用法.

Please click here for more detailed instructions.

此文章为搬运
原项目链接

这篇关于【AI达人创造营三期】中国交通标志识别-JetsonNano部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/272660

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/