NVIDIA Nano运行YOLO

该文介绍了在NVIDIANano上部署YOLO对象检测模型的流程,包括CUDA配置、Archiconda的安装、Pytorch和torchvision的版本选择与验证,以及相关Python包的安装。作者强调了一些关键点,如使用Python3.6,YOLO源码下载和环境配置,并提供了运行检测的命令。
部署运行你感兴趣的模型镜像

前言

小记:nano部署YOLO流程,相似文章有许多许多,供自己以后回忆流程(虽然也没什么好回忆的,略~)


提示:这里提供的方案并不一定适用于你所遇到的情况,仅供参考哈~

一、系统配置

很多文章都写过系统、源……配置了,这里就省略了~

二、环境

1.CUDA

#打开终端,输入命令
vi .bashrc

#添加在最后
export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_ROOT=/usr/local/cuda

#应用&刷新
source ~/.bashrc

#查看是否配置成功
nvcc -V

在这里插入图片描述

2.安装Archiconda

为何不使用miniconda、anaconda自行搜索哈
Archiconda是用于64位ARM平台的Conda发行版,下载地址:

https://github.com/Archiconda/build-tools/releases

在这里插入图片描述
conda调用出现问题,添加环境变量:

vim ~/.bashrc 
 
export PATH=~/archiconda3/bin:$PATH

conda配置环境:

conda create -n XXX python=3.6  #XXX:你所希望的环境命名

突然想起件重要的事:python=3.6、python=3.6、python=3.6(原因自行搜索哈)

conda activate XXX              #激活环境
pip list                        #查看环境安装包
conda deactivate                #退出环境
conda remove -n XXX --all       #删除环境

3.Pytorch、torchvision安装

PyTorch 1.8版   #https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048

torchvision 0.9.0

在这里插入图片描述
验证是否安装成功(环境下逐行进行):

1):python                     #并不一定需要python32):
import torch
import torchvision
print(torch.cuda.is_available()) # 这一步如果输出为True
exit()	                         # 最后退出python编译

在这里插入图片描述

4.YOLO源码下载

下载调试这里忽略哈(可以在win上调试好通过VNC上传到nano)

5.所创建环境下包的安装

pip install matplotlib==3.2.2
pip install numpy==1.19.4
pip install scipy==1.4.1.	# 这个包安装搜索py36版aarch64版本scipy-1.4.1本地安装
pip install tqdm==4.61.2
pip install seaborn==0.11.1
pip install scikit-build==0.11.1   #opencv依赖
pip install opencv-python==4.5.3.56
pip install tensorboard==2.5.0
pip install pillow==0.8.0   #重要的事情打3个“***”
pip install thop

其他对应源码文件中的requirements.txt安装,注意下版本要求哈

6.运行检测

进入到对应检测文件目录下

python detect.py

其他的参数需要传入自行设置,也可在detect.py中进行修改后运行

总结

希望有所帮助,如有错误,望批评指正!!!

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 如何在 Jetson Nano 上部署 YOLO 模型 #### 准备工作 为了成功地在Jetson Nano上部署YOLO模型,需要先完成一系列准备工作。这包括但不限于安装必要的软件包和库,确保开发环境已经正确设置。 对于Jetson Nano来说,推荐使用Anaconda来管理Python环境及其依赖项[^2]。通过Anaconda可以更方便地创建隔离的工作空间并安装所需的机器学习框架和其他工具。 #### 安装TensorRT 由于Jetson Nano硬件资源有限,在其上面运行深度神经网络可能面临性能挑战。因此建议采用TensorRT来进行推理优化。TensorRT是一个高性能的深度学习推理库,它能够显著提升计算效率,使实时处理成为可能。具体操作步骤如下: - 下载适用于Jetson平台的TensorRT SDK; - 配置编译选项以适应特定的应用场景需求; - 将训练好的YOLO权重转换为INT8精度或FP16格式,并导出至`.engine`文件用于后续加载执行[^3]。 #### 转换模型 为了让YOLO能够在Jetson Nano上高效运作,通常会将原始PyTorch或其他框架下的预训练模型转化为ONNX通用表示形式,然后再进一步加工成适合TensorRT使用的引擎文件(.engine)。此过程中需要注意保持不同版本之间的兼容性问题[^4]。 ```bash python export.py --weights yolov5s.pt --include engine ``` 上述命令展示了如何调用脚本将YOLOv5的小规模版本(`yolov5s`)从.pth格式转变为可以直接被TensorRT读取的形式。 #### 实现目标检测应用 最后一步是编写应用程序逻辑实现视频流中的物体识别功能。这里可以通过OpenCV捕获摄像头输入帧数据作为待测样本传递给已准备完毕的目标分类器实例;接着解析返回的结果集绘制边界框标注感兴趣区域的位置坐标信息显示出来供用户查看分析。 ```python import cv2 from models.experimental import attempt_load from utils.general import non_max_suppression, scale_coords from utils.datasets import letterbox def detect_objects(image_path): model = attempt_load('yolov5.engine', map_location='cuda') # 加载模型 img0 = cv2.imread(image_path) img = letterbox(img0)[0] img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, hwc to chw img = np.ascontiguousarray(img) pred = model(torch.from_numpy(img).to(device), augment=False)[0] det = non_max_suppression(pred, conf_thres=0.25, iou_thres=0.45, classes=None, agnostic=False) if len(det): for *xyxy, conf, cls in reversed(det[0]): label = f'{names[int(cls)]} {conf:.2f}' plot_one_box(xyxy, im0, label=label, color=colors(c), line_thickness=3) if __name__ == '__main__': device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') names = ['person', ... ] # 类别名称列表 colors = [[random.randint(0, 255) for _ in range(3)] for _ in names] with torch.no_grad(): detect_objects('data/images/bus.jpg') ``` 这段代码片段提供了一个简单的例子说明怎样基于先前构建好的YOLO模型去定位图片内的实体对象,并标记它们所属类别标签以及相应的概率得分值。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值