厚积薄发的一年---用Jetson Nano实现入侵检测的项目分享

这篇具有很好参考价值的文章主要介绍了厚积薄发的一年---用Jetson Nano实现入侵检测的项目分享。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

回顾2023,有为了一个BUG或知识熬过夜,也有为了项目连续几天三点一线,在这期间的积累的一砖一瓦中,除了直接获得专业知识,提高专业技能外,更多的是从项目中得到足以使我终生受益的其他收获。 下面就一今年收获最多的项目来总结我的2023
————————————————————————————————

偶然的发现

一次在刷短视频的时候,看到一个把区域框起来,有人进入区域的话就把会报警,如果人离开区域外就不会报警,精准的识别了需要看守的区域,而不是监控画面的全部。

开始行动

看完之后我就想自己能不能做一个这样的,于是我便开始上网查阅资料,根据自己对视觉的理解开始着手起来。

我想到的是用Opencv鼠标事件作为交互的手段,并且用OpenCV的混合高斯模型背景建模实现动态检测,这种方案原理就是对后一帧和前一帧进行比较,不一样的点视为动态点,可以检测到特定区域内的动态物体,总是实现较为简单。便开始编写程序上机测试。
厚积薄发的一年---用Jetson Nano实现入侵检测的项目分享,python,嵌入式硬件,ubuntu,深度学习
上机测试之后,缺点明显,不能缺定动态物体为人类,极易受其他的东西干扰,保护不了动态物体。

选择使用神经网络

在发现以上问题之后决定开始寻求解决办法于是就开始使用YOLOv5深度神经网络,来寻求更加精确的检验。具体思路是用把人类当做目标,转化为目标检测问题,目标检测当下流行方法是深度学习。深度学习可以准确的区分出人类,并且可以精准抓拍人类,避免其他的东西干扰,随着计算机的算力发展,深度学习由于其优秀的性能,在众多目标算法中脱颖而出,得到了广泛的应用。

学习Docker

由于神经网络需要训练,服务器上需要训练需要建立docker环境来避免干扰到其他项目同时也能独立的进行训练,于是开始学习docker的使用方法。
安装docker:

curl -fsSL https://test.docker.com -o test-docker.sh
 sudo sh test-docker.sh

拉取镜像

docker pull ubuntu

运行容器

docker run -it ubuntu /bin/bash

退出容器:
使用 exit 命令退出容器
主机内容传入 Docker 容器:

docker run -it -v /host/path:/container/path ubuntu /bin/bash

这会将主机上的 /host/path 映射到容器内的 /container/path。

Docker 内容传到主机:

要将容器内的文件或目录传递到主机上,可以使用 docker cp 命令。首先,确定容器的ID或名称,然后执行以下命令:

docker cp <container_id_or_name>:/container/path /host/path

这将从容器中复制 /container/path 到主机上的 /host/path。
学习这些基本思路之后我开始训练模型
厚积薄发的一年---用Jetson Nano实现入侵检测的项目分享,python,嵌入式硬件,ubuntu,深度学习
训练好了之后开始测试刚开始似乎结果不是那么好,于是开始修改网络,以及训练的方法。
开始查阅资料最终决定采用改进Mosaic9,增强小目标的检测。

受YOLOv5算法中Mosaic增强的启发,本设计进一步拓展了这一方法,采用了Mosaic9增强技术。在Mosaic9中,将9张图片随机裁剪并拼接成一张大图,以此来增强神经网络对小目标的区分能力和提升模型的泛化能力。
通过使用更多的图像样本进行拼接,Mosaic9增强技术可以提供更多的视觉上下文信息,使得模型在训练过程中能够更好地理解不同目标之间的相互关系。这对于小目标的检测和分类尤为重要,因为小目标往往具有更少的可见特征,需要依靠周围环境的上下文来进行准确的预测。[6]
此外,Mosaic9增强技术还可以帮助提升模型的泛化能力。通过将多个场景和不同角度的图像合并到一张训练图像中,模型可以学习到更多的变化和复杂性,从而更好地适应各种不同的测试数据。这有助于减少过拟合的风险,并提高模型在现实世界中的实际应用效果,Mosaic9增强技术是一种强大的数据增强方法,通过拼接多个随机裁剪的图像,为神经网络提供了更丰富的信息和更广泛的视野。这种增强方法可以改善模型对小目标的检测和分类能力,并提升模型的泛化能力,使其更适用于各种真实场景中的目标识别任务。
厚积薄发的一年---用Jetson Nano实现入侵检测的项目分享,python,嵌入式硬件,ubuntu,深度学习
增强之后效果有明显的提升。

具体方法

在utils/dataloaders.py,找到mosaic板块

mosaic = self.mosaic and random.random() < hyp['mosaic']
if mosaic:
	# Load mosaic
	img, labels = load_mosaic(self, index)  # use load_mosaic4
	
	shapes = None
	
	# MixUp augmentation
	if random.random() < hyp['mixup']:
	    img, labels = mixup(img, labels, *load_mosaic(self, random.randint(0, self.n - 1)))
	  

把:

img, labels = load_mosaic(self, index)

 img, labels = mixup(img, labels, *load_mosaic(self, random.randint(0, self.n - 1)))

改为:

img, labels = load_mosaic9(self, index)   

 img, labels = mixup(img, labels, *load_mosaic9(self, random.randint(0, self.n - 1)))

jetson Nano这块开发板进行部署

为了更加贴近实际,决定给这个小项目落地。于是我选择了jetson Nano这块开发板进行部署
考虑到行人检测的实际应用场景和需求,选择将模型部署于嵌入式开发平台,其中NVIDIA公司的jetson Nano是一个理想的选择。
jetson Nano是一款功能强大的小型计算机,它具备强大的计算能力,jetson Nano搭载了NVIDIA的GPU,拥有128个CUDA核心,可以提供高性能的计算能力,能够并行运行多个神经网络模型,实现实时的行人检测任务;jetson Nano广泛应用于图像分类、物体检测、图像分割、语音处理等各种应用场景。它适用于多个行业领域,如智能安防、无人驾驶、机器人技术等;jetson Nano提供了简单易用的开发环境和工具,使开发人员能够快速搭建和部署深度学习模型。它支持常用的深度学习框架,如TensorFlow、PyTorch等,开发人员可以选择他们熟悉的框架进行模型的开发和训练;jetson Nano的功耗仅为5瓦,具有出色的能效比。这使得它非常适合部署在资源有限的嵌入式设备中,如智能摄像头等,实现高效的行人检测任务。
Jetson Nano搭载的是Ubuntu系统,烧录的是英伟达的镜像。
从GitHub上下载源码文件夹,查看requiremen.txt安装YOLOv5所需要的运行环境,使用pip进行安装,值得注意的是pythorch和thorchvision版本要对应,
厚积薄发的一年---用Jetson Nano实现入侵检测的项目分享,python,嵌入式硬件,ubuntu,深度学习
命令行输入:

sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev
pip3 install Cython
pip3 install numpy torch-1.8.0-cp36-cp36m-linux_aarch64.whl

接着下载对应版本的torchvision,并输入命令:

sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
cd torchvision
export BUILD_VERSION=0.9.0  #python3 setup.py install --user
cd ../  
 pip install 'pillow<7' 

安装完成后其余的库用pip安装。运行代码缺谁装谁,在安装完成以后开始测试环境是否搭建成功,使用YOLO官方提供的权重和图片进行测试,测试结果如下,YOLOv5代码运行正常,表示部署成功。
接着把代码部署在上面即可。

具体实物图如下:厚积薄发的一年---用Jetson Nano实现入侵检测的项目分享,python,嵌入式硬件,ubuntu,深度学习

到这里这个项目就结束了,在这个项目中我学习到了docker的用法,进一步熟悉了Ubuntu系统的使用,同时也学会了改进YOLOv5使其提高精度,比项目本身更重要的是通过项目学习到的东西。

不忘初心,不念过往,不惧将来文章来源地址https://www.toymoban.com/news/detail-794778.html

到了这里,关于厚积薄发的一年---用Jetson Nano实现入侵检测的项目分享的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【jetson nano】jetson nano环境配置+yolov5部署+tensorRT加速模型

    【jetson nano】jetson nano环境配置+yolov5部署+tensorRT加速模型

    断断续续地前后花了一个多星期配置环境以及部署模型,期间也报了无数错误,参考了很多文档,求助了身边的朋友,因此尽可能详细的记录一下这个过程。 此处感谢Xnhyacinth在配置过程中对我的帮助哈哈哈꒰ঌ( ⌯’ \\\'⌯)໒꒱ 我主机上的环境是python3.9,cuda11.6 jetson nano环境

    2023年04月12日
    浏览(9)
  • jetson nano GPIO控制说明

    jetson nano GPIO控制说明

    GPIO(General Purpose Input Output)通用输入输出。有时候我们会简称为“IO口”。GPIO口在智能硬件开发中是一个比较重要的概念,用户可以通过GPIO口和硬件进行数据交互(如UART),控制硬件工作(如LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。Jetson TX1、TX2、AGX Xavier和

    2024年02月16日
    浏览(12)
  • 使用图传设备实现yolov5的远程监控与控制(YOLOv5检测+jetson nano+无人机+无线图传+vnc)

    使用图传设备实现yolov5的远程监控与控制(YOLOv5检测+jetson nano+无人机+无线图传+vnc)

    目前想把模型加速部署好的jetson nano,放在自制无人机上,飞至高空用于检测,而且地面可以监控检测效果。 我想的检测方案: 1、使用socket,手动建立一个发射端,一个接收端,这个配置只需要导入socket库,写好ip和端口号就可以了,再打开多线程,速度也应该挺快,但是需

    2024年01月19日
    浏览(13)
  • 【nano系列】jetson nano 迁移系统、制作SD卡启动扩展内存(二)

    【nano系列】jetson nano 迁移系统、制作SD卡启动扩展内存(二)

    我的SD卡在nano中显示的名称为 /dev/sda1 ,不同于其他文章 的 /dev/mmcblk1p1。 Micro SD卡是一种极细小的快闪存储器卡,其格式源自SanDisk创造,原本这种记忆卡称为T-Flash,及后改称为Trans Flash。TF卡是Micro SD卡的旧称呼,两者没有区别。 nano编辑器无需图形界面,操作比vim更方便 下

    2023年04月19日
    浏览(11)
  • Jetson nano系统安装和环境部署

    Jetson nano系统安装和环境部署

    使用sdk-manager安装CUDA,这个安装可前面安装JetPack系统操作类似,然后将板子上Micro USB通过数据线和电脑链接。如下图: 这一步就不用接跳线了!选中红框的所有文件,开始下载安装。 安装完成后会自动添加路径,这点不错,如果没有自动添加则要手动添加。手动添加方式:

    2024年02月15日
    浏览(13)
  • 对于jetson nano 的docker部署jetson-inference等模型

    对于jetson nano 的docker部署jetson-inference等模型

    对于Nvidia jetson nano来说是一款十分优秀的网络模型部署设备我对于nano来说也是学习了2个星期左右.这也是对我这一阶段做一个复习总结吧! 目录 烧录  下载jetson-inference dock镜像部署操作  跑个例程助助兴 找到函数接口进行调整 我用的是jetson nano a02 版本 是4GB内存大小的 首先

    2024年02月05日
    浏览(11)
  • jetson nano装opencv4.1.1

    jetson nano装opencv4.1.1

    一:下载opencv4.1.1及其相关的安装包,修改一下 可以去官网下载(opencv4和opencv-contrib的版本要对应): opencv4.1.1: https://github.com/opencv/opencv/tags?after=4.3.0 opencv-contrib-4.1.1: https://github.com/opencv/opencv_contrib/tags?after=3.4.12 也可以去这里下载:https://download.csdn.net/download/weixin_45235219/87

    2024年02月05日
    浏览(28)
  • 【适用于Jetson Orin Nano的录屏软件】

    适用于Jetson Orin Nano的录屏软件kazam,亲测好用!

    2024年02月02日
    浏览(17)
  • 在 Jetson Nano 上安装 ncnn 深度学习框架。

    在 Jetson Nano 上安装 ncnn 深度学习框架。

    本页面将指导您在 Jetson Nano 上安装腾讯的 ncnn 框架。由于 ncnn 框架面向移动设备(例如 Android 手机),因此它不支持 CUDA。然而,大多数 Android 手机使用 Vulkan API 对其 GPU 进行低级访问。 ncnn 框架可以使用 Vulkan 例程来加速深度学习模型的卷积。 Jetson Nano 具有 ncnn 将使用的

    2024年02月11日
    浏览(13)
  • 自己制作智能语音机器人(基于jetson nano)

    自己制作智能语音机器人(基于jetson nano)

    如上图,主要采用jetson上编写python代码实现,支持离线语音唤醒、在线语音识别、大模型智能文档、在线语音合成。 所需硬件如下: jetson nano:linux 科大讯飞麦克风硬件:AIUI R818麦克阵列开发套件+6麦阵列,支持离线语音唤醒 USB免驱声卡+喇叭 所需软件如下: 科大讯飞在线语

    2024年02月15日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包