Jetson AGX Xavier 安装配置深度学习环境并部署 yolo 进行检测识别
Jetson AGX Xavier 安装配置深度学习环境并部署 yolo 进行检测识别
一. Jetson 开发板系统相关
1. jetson AGX Xavier 系统烧录
相关步骤:https://blog.csdn.net/tracy_baker/article/details/113741443
注意事项:
- 虚拟机必须为 ubuntu16.04 或 ubuntu18.04
- 虚拟机分配的空间必须大于100G
- 使用虚拟机安装 jetson SdkManager 时必须按照步骤进行换源,否则会有安装失败可能
- Jetson 开发板及后续使用的 python 版本必须为 python3.6
- jetson 系统中 python 虚拟环境不能使用 anaconda 进行管理,anaconda 会有无法安装 python3.6 虚拟环境的情况
- SdkManager 默认安装的 CUDA 的版本为 10.2
- jetson 中 CPU 为 ARMv8 架构,安装软件时必须选择 带有 ARMv8 或 aarch64 的安装包,一般的安装包无法安装
2. jetson AGX Xavier 系统信息查看
- 使用 jtop 命令查看系统 CPU、GPU、内存等的占用
- 安装:
sudo pip install jetson-stats
- 使用:
jtop
或sudo jtop
jinru - 介绍: 使用
jtop
可以图形化查看系统相关资源占用情况,并修改相关系统参数(具体可自行搜索)
二、jetson 安装深度学习环境
1. CUDA 与 opencv
- CUDA10.2 与 opencv 4.1 在系统刷入中会被自动安装
2. pytorch 与 torchvision
- pytorch for Jetson 安装教程:Nvidia 官方教程
- 注意事项:
-
python (虚拟)环境必须为 python3.6,Nvidai 提供的所有安装包都是基于 python3.6 版本的
-
pytorch 选择 PyTorch v1.10.0 (根据需要执行选择)
-
torchVision 选择与 torch 相对应版本(torch v1.10.0对应 torchVision v0.11.1)
-
Nvidia Jetson 开源插件包与框架合集:https://elinux.org/Jetson_Zoo
三、jetson 运行 yolo 相关程序
1. 下载 yolov5 默认程序
- 执行
pip install -r requirements.txt
安装 yolov5 需要的环境 - 默认下载的是 yolov5_t6 版,运行
python detect.py --weights yolov5s.py --source 0 --img 640
调用本地摄像头实时进行检测
2. 选择下载 yolov5_t5 第五版程序,因为本实验室的相关权重训练都是在 yolov5 第五版中进行的
- 执行
pip install -r requirements.txt
安装 yolov5 需要的环境 - 运行
python detect.py --weights yolov5s.py --source 0 --img 640
调用本地摄像头实时进行检测时会报错
注意事项;
- 默认下载的 yolov5 为第六版程序,本实验需要第五版,需要进行调整
- yolov5_t5 默认使用
--source 0
调用本地摄像头会出错,解决方法在 Issues 2875- yolov5_t5 使用本地视频进行检测时,默认不会 imshow,需要修改代码
四、jetson 运行 yolov5 猪脸相关程序
1. 本地运行yolov5原版并实时展示
# --weights 相关权重
# --source 0:表示使用本地摄像头 rtmp://xxx 表示使用网络直播源 xxx.mp4 表示使用本地视频
# --img-size 表示识别的图片大小
python detect.py --weights yolov5s.pt --source 0 --img-size 640
2. 本地运行猪脸识别并实时展示
# --weights 相关权重
# --source 0:表示使用本地摄像头 rtmp://xxx 表示使用网络直播源 xxx.mp4 表示使用本地视频
# --img-size 表示识别的图片大小
# 使用一头猪的权重实时检测一头猪的视频
python detect001.py --weights try/pig_1/best.pt --source try/pig_1/pig_1.mp4 --img-size 640
3. 本地运行猪脸识别并使用RTMP协议推流到 jetlinks-big-screen 页面进行实时展示
# --weights 相关权重
# --source 0:表示使用本地摄像头 rtmp://xxx 表示使用网络直播源 xxx.mp4 表示使用本地视频
# --img-size 表示识别的图片大小
# 使用一头猪的权重实时检测一头猪的视频
# detect002.py 中修改增加了RTMP推流的部分代码
python detect002.py --weights try/pig_1/best.pt --source try/pig_1/pig_1.mp4 --img-size 640
4. 程序接受 nanopc-T4 开发板采集 RTMP 视频流并调用猪脸识别再使用 RTMP协 议推流到 jetlinks-big-screen 页面进行实时展示
# --weights 相关权重
# --source 0:表示使用本地摄像头 rtmp://xxx 表示使用网络直播源 xxx.mp4 表示使用本地视频
# --img-size 表示识别的图片大小
# 使用一头猪的权重实时检测一头猪的视频
# detect004_rtmp2rtmp.py 中修改增加了RTMP推流的部分代码
# 运行本代码前需要先在 nanopc-T4 开发板中运行实时视频采集与推流程序,之后本程序才能接收到 RTMP 视频流
# nanopc-T4中程序:https://gitee.com/qiaoyukeji/nanopc2jetlinks4mqtt/blob/master/test_007_rtmp2jetson/rtmp001.py
python detect004_rtmp2rtmp.py --weights try/pig_1/best.pt --source rtmp://42.192.123.52/live/jetson --img-size 640