在英伟达 jeason nano配置yolov5

一、jetson nano默认已经安装了CUDA10.0,但是没有配置,需要你把CUDA的路径写入环境变量中。打开.bashrc 文件,执行命令:

sudo gedit ~/.bashrc

在文件的最后添加如下:

export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.0/bin:$PATH

验证cuda安装是否成功:关闭当前命令行,并执行:

source ~/.bashrc
nvcc -V

在英伟达 jeason nano配置yolov5_第1张图片

 查看CUDNN版本:

dpkg -l |grep -i cudnn

# 版本8.0之前:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 

# 版本8.0之後(前提是确保此路径中有cudnn_version.h文件

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 

附,CUDA官网下载地址:CUDA Toolkit 10.1 original Archive | NVIDIA Developer 

cuDNN 官网下载连接:cuDNN Archive | NVIDIA Developer

 二、配置Anaconda

主要是解决 jetson nano 的conda 环境安装问题,但是jetson nano使用的aarch64架构是没法使用anaconda的,虽然可以自己编译,但是conda指令是没法编译到aarch64架构上运行的。

不过有替代品,miniforge。

miniforge与miniconda的区别在于miniforge的下载通道是conda-forge

miniforge的地址:https://github.com/conda-forge/miniforge

miniforge的.sh release 下载地址:https://github.com/conda-forge/miniforge/releases

安装完成后,就和anaconda的使用方式一样。
主要参考链接:
手把手教你如何在Ubuntu下安装Miniconda_Python进阶者的博客-CSDN博客

三、安装Pytorch、torchvison等

首先查看下,各个库文件需要对应的版本

进入到conda环境后,开始安装需要的库

torch网址链接:https://download.pytorch.org/whl/torch_stable.html

本人用的是清华镜像下载:Links for torch (tsinghua.edu.cn)

在清华镜像里,可以下载到所有东西,不过需要根据版本一个一个去选,比较麻烦,但是如果是批量化生产,可以一次下载完后,做成bin文件去安装,就方便很多。也可以利用如下指令一步安装到位,如果大文件安装失败建议还是先去下载whl后再安装

pip install -r requirements.txt

不想下载也可以单独pip安装,缺什么库就安装什么库就可以,一般会比较顺利的进行下去,

最后 ,利用 pip list  查看所有已安装的库及版本信息

四、修改部分源代码

1.修改yolov5文件夹下的common.py文件

添加如图所示位置,将代码复制进去(有的话就不用复制了),记得在上方 import warnings  

在英伟达 jeason nano配置yolov5_第2张图片


class SPPF(nn.Module):
    def __init__(self, c1, c2, k=5):
        super().__init__()
        c_ = c1 // 2
        self.cv1 = Conv(c1, c_, 1, 1)
        self.cv2 = Conv(c_ * 4, c2, 1, 1)
        self.m = nn.MaxPool2d(kernel_size=k, stride=1, padding=k // 2)
 
    def forward(self, x):
        x = self.cv1(x)
        with warnings.catch_warnings():
            warnings.simplefilter('ignore')
            y1 = self.m(x)
            y2 = self.m(y1)
            return self.cv2(torch.cat([x, y1, y2, self.m(y2)], 1))

 2.修改环境下site-packages/torch/nn/modules/upsamping.py文件,改为如图所示:

在英伟达 jeason nano配置yolov5_第3张图片

 五、运行程序测试

提前将yolov5s.pt文件下载好,可以选择不同版本,链接为:

 [YOLOv5s]https://github.com/ultralytics/yolov5/releases/download/v6.1/yolov5s.pt)

 [YOLOv5s]https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt)

如果是6.1版本不能用的话,就选择5.0的试试,本人在X86_64上用的是6.1的,在arm上用的5.0

1、打开笔记本电脑摄像头: python detect.py --source 0

2、打开海康摄像头 :python detect.py --source rtsp://admin:[email protected]:554/Streaming/Channels/101 --weights yolov5s.pt

3、打开大华摄像头:python detect.py --source 'rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0' --weights yolov5s.pt

4、显示多路视频,需要新建一个streams.txt ,放在yolov5文件夹下即可,里面每个视频流放一行,类似于这样:

rtsp://admin:[email protected]:554

rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0

rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0

r然后运行   python detect.py --source streams.txt  --weights  yolov5s.pt 即可显示多路视频识别

你可能感兴趣的:(深度学习,人工智能,pytorch)