资料介绍
描述
几个月前,出于对教育的好奇心,我萌生了使用 Jetson Nano 构建人脸识别系统的想法。后来随着最初的想法被调整为激活滑动门。为了让它变得可行,我和我的伙伴 Mrugank 和 Suman 集思广益,用可动人偶实现了同样的效果。
但它只是一个想法,没有太多行动。多亏了由 Nvidia 和 Hackster.io 主办的“AI at the Edge Challenge”,我们组建了自己的团队 (Nerds United Alpha) 并努力将这个想法变为现实。
我们决定赋予它“复仇者联盟智能之家”的光环,只欢迎 Marvel 可动人偶,每个角色都有自定义语音欢迎信息。
创建数据集
在库存中,我们有一些可动人偶,但不幸的是,没有可用于可动人偶的数据集。因此,我们必须建造一个。由于这是一个需要深度学习的计算机视觉用例,因此大约10 -15k图像的数据集就足够了。
手动点击/收集这么多图像将是一个繁琐的过程。因此,为了拯救我们,我们想出了两个步骤来自动化创建深度学习图像数据集的过程:
1. 使用搜索查询收集图像:多亏了PyImageSearch 的有趣教程,我们才能够通过 Bing 搜索查询自动执行收集图像的过程。微软免费提供 Bing Search API,但有一定的限制(每天约 3000 次搜索查询)。您也可以使用它来填充您自己的数据集。我们为每个班级收集了大约 100 张图像。
2. 数据增强:当您缺乏足够的数据来完成您的任务时,执行一些数据增强技术来创建合成图像非常有效。随机旋转、裁剪、过滤器和水平翻转等技术可以解决问题。我们使用 skimage 库来执行相同的操作。
模型创建和训练
为了训练我们的模型,我们选择了 Google Collaboratory 提供的 Nvidia GPU 运行时。PyTorch 是我们选择的深度学习框架来构建和训练我们的模型。因此,我们参考了 PyTorch.org 的官方迁移学习教程。因此,您需要做的就是运行 Google Colab 实例并将您的数据集上传到谷歌驱动器。根据代码,确保将数据集文件夹分隔为“train”和“val”文件夹,并将各个类作为子目录。
使用 ResNet-18 进行迁移学习
ResNet-18 是最受欢迎的预训练神经网络之一。我们很乐意继续使用它进行迁移学习。
因为我们只是迁移学习,所以我们不需要在我们的神经网络中进行反向传播。因此,我们在获得预训练模型后的第一步停用它,并修改全连接层,使其变为线性并提供类数,即“8”,以及模型中的特征数,如下争论。
这是使用 GPU 进行更快训练的必要步骤,因此,模型需要传输到“设备”,这恰好是 Nvidia GPU。您可以自由选择您的标准。'CrossEntropyLoss' 和 'NLLLoss' 都是首选。
现在是时候用我们的模型训练和分类图像了。请参阅笔记本中的train_model方法以获得进一步的见解。
对我们来说,最佳验证准确率约为 0.99,这是一个相当不错的表现。预测结果也很惊人!现在,使用必要的 torch.save() 函数保存模型。
让我们开始使用 Jetson Nano 部署我们的推理模型吧!
设置 Jetson Nano 进行推理
Nvidia Jetson Nano 是一款带有板载 Tegra GPU 的嵌入式 SoC,针对“边缘人工智能”进行了优化和构建。要开始使用 Jetson Nano,您可以参考官方指南进行首次启动设置。简而言之,您只需要使用 Nvidia 最新的“Linux For Tegra (L4T)”映像刷入 UHS-I SD 卡。之后,确保您拥有为 Jetson Nano 供电和启动的先决条件硬件。
1.先决条件
我们建议您拥有:
- microSD 卡(32 - 64 GB UHS-1)
- USB 键盘和鼠标
- 电脑显示器(HDMI 或 DP)
- 电源适配器(5V=4A)【OnePlus、MiA1等手机适配器】
- USB 至 5V DC (2.1 mm) 桶形插孔电缆
该设备随JetPack一起提供,其中包含一套内置的 Nvidia 软件和必要的 CUDA 库。Nano 的最新 L4T (r32.1.1) 更新带有默认的 OpenCV 4 版本,这对计算机视觉社区来说是一个巨大的福音。
2.推理库
请注意,Jetson Nano 是一款非常适合AI 推理任务的边缘设备。请不要误会,您可以用它来训练您的模型。它会升温并繁荣!为了我们的深度学习推理目的,我们需要以下库和包。
- 火炬
- 火炬视觉
- Py2trt - 构建与 PyTorch 模型兼容的TensorRT推理引擎
要获得上面的先决条件列表,只需访问Nvidia 论坛链接,了解从源代码构建的分步过程。要安装 py2trt 模块,只需在终端中执行以下命令:
pip install torch2trt
3.加载和转换我们的模型(Py2TRT)
Nvidia 使得将在 PyTorch 中训练的模型移植到它的 TensorRT 对应模型变得非常容易,只需一行。请参阅下图了解必要的步骤。
- 初始化pytorch模型对象
- 加载模型状态字典
-
创建一个示例张量(确保它与您通常训练的 cv2 窗口捕获大小/图像大小的分辨率相匹配):我们提供 (480, 640) 以匹配 640x480 分辨率大小。准备好了!
请参阅此代码以进一步了解 GPIO 模式操作以设置电机运动。
这个旋转电机将帮助我们方便滑动门
3.选择滑动门机构
上图是齿条和小齿轮机构的参考图像,用于前后滑动我们的门。旋转的直流电机产生旋转齿轮所需的力。当齿轮连接到兼容的牙齿时,有助于连接的下颌沿相反方向滑动。
根据上图,您可以看到我们带推拉门的智能住宅的原型。Jetvengers House 已准备就绪。我们 3D 打印了滑动门的重要部件,即“架子”。
PS:我们用硬纸板建造了我们的房子,L2989N(其中一个带有红色 LED)由 UPS 电池供电 XD!
整合人工智能和物联网
现在是时候让我们的 Jetvengers HQ 智能功能付诸行动了。感谢JKJung 与自定义 tegra-cam 的合作,我们能够让GStreamer管道与 Jetson Nano 上的 OpenCV 一起工作。
请注意,为了在计算机视觉中更快地传输数据,您需要 gstreamer 插件管道,否则流会严重滞后,从而阻碍您的工作。
要了解如何创建 gstreamer 管道,您可以查看我们的代码,但我们不会深入探讨。我们的重点是如何通过简单的图像分类来识别可动人偶。
1.捕获帧进行预处理
此代码位于我们存储库中的gstreamer.py文件中。看一眼熟悉代码。
首先,确保导入这些必要的模块
read_cam() 捕捉帧提供一个计数器变量以捕获流中的每 48 帧(如果 framerate = 24 每秒,则每 2 秒捕获一次)。将捕获的帧传递给预处理。在所有过程之后增加计数器。确保为等待键和中断提供条件以继续/中断流。
2.图像预处理
检查传递给标准化变量的均值和标准差,我们将使用它当然,我们需要执行此步骤以匹配在训练过程中转换训练和验证图像时的状态。
确保执行这些步骤。不要忘记将图像转换为 RGB,因为 OpenCV 以 BGR 格式捕获每一帧。
我们附加了一个 softmax 层以获取可读格式的概率,否则我们将无法解释这些值以进行进一步处理。我们需要返回概率和顶级类别,以便我们可以在终端中打印它的值,并将其用于进一步的处理。
我们的模型处于早期阶段。类别正确预测为“蝙蝠侠”,置信度值为 85%4.是时候执行物联网操作了
由于识别(AI 部分)已完成,让我们自动执行其余操作:
i) 用语音消息问候人偶 ii) 打开/关闭门让我们的客人进来 iii) 如果角色来自 DC(比如蝙蝠侠),播放必要的消息音频并且不允许角色进入开门
我们执行验证步骤以确保该角色仅来自漫威宇宙。
- 使用Jetson Nano的CSI相机接口
- 玩转智能硬件(三)Jetson Nano深度学习环境搭建
- 基于LABVIEW的车牌识别系统资料 64次下载
- NVIDIA Jetson Nano 电源适配器 (供电)
- 基于身份证和人脸识别的智能门禁系统 38次下载
- 非理想环境下的改进人脸识别算法 3次下载
- 基于MATLAB的车牌识别系统 17次下载
- 近红外人脸识别系统设计 7次下载
- 基于FPGA的说话人识别系统设计 26次下载
- 汽车无线射频识别系统设计 1次下载
- 基于openCV的人脸检测识别系统的设计 477次下载
- 人脸识别技术在访客识别系统中的应用 46次下载
- 基于DSP的人脸图像识别系统
- 人脸识别系统中的特征提取Feature Extraction
- 用隐马尔可夫模型设计人脸表情识别系统
- 基于OpenCV的人脸识别系统设计 1.1w次阅读
- 一文看懂人脸识别技术 2605次阅读
- 简单易学的Jetson Nano问题排除小秘诀 7867次阅读
- 使用NVIDIA Jetson Orin Nano解决入门级边缘人工智能挑战 2175次阅读
- 人脸识别系统应用范围_选择人脸识别系统的关注点 1343次阅读
- 人脸识别系统怎么破解_人脸识别系统录入步骤 8.4w次阅读
- 微雪电子 IMX219-77摄像头介绍 3323次阅读
- 微雪电子 IMX219-160摄像头介绍 3244次阅读
- 微雪电子摄像头 IMX219-200介绍 5667次阅读
- 微雪电子NVIDIA Jetson Nano人工智能开发套件AI板介绍 5400次阅读
- 语音识别系统功能_语音识别系统的应用 5549次阅读
- 体育馆人脸识别系统的应用案例 2205次阅读
- 多伦多大学将反人脸识别系统识别成功率降至0.5% 3153次阅读
- 人脸识别算法遇到的困难和挑战 6670次阅读
- 划片机视觉识别系统设计原理分析 2947次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多