厚积薄发的一年---用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加速模型

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

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

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

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

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

    2024年01月19日
    浏览(44)
  • 【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日
    浏览(36)
  • Jetson nano系统安装和环境部署

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

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

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

    2024年02月05日
    浏览(35)
  • 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日
    浏览(46)
  • 自己制作智能语音机器人(基于jetson nano)

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

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

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

    2024年02月02日
    浏览(51)
  • Jetson nano裸机介绍及 Opencv的环境配置

    本人比较痴迷于硬件方向,最近得到老师的支持,从老师手里借到一块Nvidia Jetson nano 的板子(狂喜),下文简述nano。刚拿到板子经过已经完成点灯的操作,老师指示点完灯可以配置opencv的环境,前往图像处理的指示海洋。而配置opencv的过程曲折而痛苦,这里主要总结并分享

    2024年02月06日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包