图为盒子T906_Orin Jetpack刷机及配置yolo5环境

目录

一.图为盒子配置

二.配置CUDA环境变量

三.配置cudnn:

四.Pytorch安装

 五.安装torchvision:

六.下载YOLOv5包:


一.盒子配置

1.首先sudo apt update   (注意:此时先不要挂载ssd)

注:sudo apt update不成功的话就换源:

先备份原本的源,更改 source.list 文件的名字,以 备不时之需:

sudo  cp  /etc/apt/sources.list /etc/apt/sources.list.bak

sudo  gedit  /etc/apt/sources.list

然后删除所有内容,复制以下内容:

deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
deb https://mirror.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-proposed main restricted universe multiverse

再打开终端,输入下述命令进行更新:

sudo  apt-get  update

2.update成功的话,安装jetpack:

sudo  apt  install  nvidia-jetpack -y

 如果提示unable to locate package nvidia-jetpack:

那么原因就是之前的环境都是配置在SSD上面,在他上面不能update了,只能回到emmc上执行。

解决办法是最好是格式化SSD,重新挂载。但这样的话你之前在SSD上的东西 都会没有了

解决办法:依次执行以下命令:

sudo mount /dev/mmcblk0p1 /mnt
cd /mnt/etc/
sudo rm setssdroot.conf
sudo reboot

执行完之后重启,然后再执行:

sudo apt update(一定要连网)
sudo apt install nvidia-jetpack -y

然后就绝对可以安装jetpack了,静静等待一段时间。

二.配置CUDA环境变量

cuda已经默认安装在/usr/local/cuda下

sudo gedit ~/.bashrc

在bashrc文件最后添加:

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

完事后在终端:

source ~/.bashrc

然后就可以查看cuda版本了:

nvcc -V

三.配置cudnn:

cuDNN 的默认安装路径如下:

cudnn head (头文件): /usr/include/cudnn.h

cudnn lib(库文件): /usr/lib/aarch64-linux-gnu/libcudnn*

libcudnn* 表示所有以 libcudnn... 开头的文件。把这两部分文件复制到我们刚才操作的cuda路径 /usr/local/cuda

首先复制文件到cuda目录下:

cd /usr/include && sudo cp cudnn* /usr/local/cuda/include
cd /usr/lib/aarch64-linux-gnu && sudo cp libcudnn* /usr/local/cuda/lib64

修改文件权限,修改复制完的头文件与库文件的权限,所有用户都可读,可写,可执行:

sudo chmod 777 /usr/local/cuda/include/cudnn.h 
sudo chmod 777 /usr/local/cuda/lib64/libcudnn*

重新软链接,这里的8.4.1和8对应安装的cudnn版本号和首数字

cd /usr/local/cuda/lib64

sudo ln -sf libcudnn.so.8.4.1 libcudnn.so.8

sudo ln -sf libcudnn_ops_train.so.8.4.1 libcudnn_ops_train.so.8
sudo ln -sf libcudnn_ops_infer.so.8.4.1 libcudnn_ops_infer.so.8

sudo ln -sf libcudnn_adv_train.so.8.4.1 libcudnn_adv_train.so.8
sudo ln -sf libcudnn_adv_infer.so.8.4.1 libcudnn_adv_infer.so.8

sudo ln -sf libcudnn_cnn_train.so.8.4.1 libcudnn_cnn_train.so.8
sudo ln -sf libcudnn_cnn_infer.so.8.4.1 libcudnn_cnn_infer.so.8

sudo ldconfig

测试cudnn的demo:

sudo cp -r /usr/src/cudnn_samples_v8/ ~/
cd ~/cudnn_samples_v8/conv_sample
sudo make clean
sudo make
./conv_sample

cudnn_samples_v8 里面有七八个 demo,但是有个别跑不通,比如mnistCUDNN ,目前不清楚原因,不过有能跑通的就好。下面是 conv_sample demo 的输出结果:

 出现Test PASSED字样则说明成功。

四.Pytorch安装

jetson 的 pytorch不能像pc那样安装。不同的 JetPack 版本对应于不同的 python 和 pytorch 版本,请根据Jetson Zoo进行判断。我装的是 JetPack 5.0,因此匹配 python 3.8 + pytorch 1.12.0

查看jetpack版本命令:

sudo apt show nvidia-jetpack

jetpack版本与python版本与pytorch版本对应关系图:

直 接去官网下载: PyTorch for Jetson - Jetson Nano - NVIDIA Developer Forums

下载完后放到home路径下

然后开始安装:

安装步骤按照官网:

第一行不用执行,然后把方框中的版本换成下载的版本即可


sudo apt-get install python3-pip libopenblas-base libopenmpi-dev libomp-dev
pip3 install Cython
pip3 install numpy + 你安装的版本

如果提示pip找不到命令:

sudo apt-get install python3-pip

安装成功:

 五.安装torchvision:

首先去官网查看对应版本:https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048

我这里面装的是pytorch1.12,所以对应的torchvision0.13.0

安装命令:

第一步:


sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev

 

第二步:

就是下载安装包:

    有两种下载方式,第一种是使用命令:

git clone --branch v0.12.0 https://github.com/pytorch/vision torchvision(这里面的v0.12.0换成你自己要下载的版本,注意这里前面的字母v不要漏了)

 第二种下载方式是通过GitHub直接下载到home根目录下:首先在home根目录下打开终端创建文件夹:

mkdir torchvision

 然后进入GitHub网站进行下载:

GitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer VisionGitHub - pytorch/vision: Datasets, Transforms and Models specific to Computer Vision

  选择0.13.0版本后,在code中进行下载

 下载好了以后,文件就在download文件夹里面,解压,然后复制里面所有的文件,粘贴到刚才在home根目录下创建的torchvision文件夹下面。

第三步:

cd torchvision

第四步:

export BUILD_VERSION=0.13.0

注意后面的0.13.0换成你自己安装的版本,但这里前面没有字母v

第五步:

python3 setup.py install --user

注意:这里面如果报错:找不到usr/local/cuda/nvcc:

此时首先判断cuda安装好了没,打开终端输入:nvcc -V。如果有输出cuda版本信息,就说明安装好了。

   安装好了还出现找不到nvcc的错误的话,就在终端(新打开一个)输入:

export CUDA_HOME=/usr/local/cuda

然后再重新执行第三、四、五步就好了:

 安装成功后会提示:

安装完后验证pytorchtorchvision

 

如果出现版本信息说明安装完成。

 至此环境基本配置完毕,可以用命令看一下自己已经安装的东西:

JetPack: sudo apt show nvidia-jetpack
CUDA: nvcc -V
cuDNN :dpkg -l libcudnn8
openCV:dpkg -l libopencv
TensorRT: dpkg -l tensorrt

六.下载YOLOv5包:

(在github上下载:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLiteicon-default.png?t=N4P3https://github.com/ultralytics/yolov5

下载后复制到home根目录下(yolov5-master)

然后在yolov5-master下载权重文件:

Releases · ultralytics/yolov5 · GitHubYOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.https://github.com/ultralytics/yolov5/releases

然后在yolov5-master目录下打开终端进行测试:

python3 detect.py

如果报错缺什么就pip3安装什么,直到测试成功。例如:

 

补充:

如果下载慢:(后面加上阿里的镜像源),例如:

​
pip install -r requirements.txt -i Simple Index --trusted-host mirrors.aliyun.com

​

 

全部弄完之后在重新敲命令:python3 detect.py

就会在/yolov5-master/runs/detect/exp 中看到自带图像的识别结果:

外接usb摄像头进行图像识别:

    只需在source中修改摄像头(USB的摄像头)参数(具体的接口数字)

python3 detect.py --source 8 

(我当时测试出来图为盒子是8)

备注:

上面的内容都是yolov5-master版本

如果下载的是yolov5-5.0的版本,运行python3 detect.py后会出现一些问题:

问题1.关于upsample:

 解决办法:

按照路径:home/nvidia/.local/lib/python3.8.site-packages/torch/nn/modules/upsample.py

打开该文件:

第152行修改成和下面一样:

 

 问题2:argument of type 'int' is not iterable:

解决办法:

在/yolov5-5.5/utils/datasets.py文件下279行修改成如图:

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
class UNET(tf.keras.Model): def __init__(self, in_channel, out_channel): super(UNET, self).__init__() self.layer1 = conv_block(in_channel, out_channel) self.layer2 = Downsample(out_channel) self.layer3 = conv_block(out_channel, out_channel*2) self.layer4 = Downsample(out_channel*2) self.layer5 = conv_block(out_channel*2, out_channel*4) self.layer6 = Downsample(out_channel*4) self.layer7 = conv_block(out_channel*4, out_channel*8) self.layer8 = Downsample(out_channel*8) self.layer9 = conv_block(out_channel*8, out_channel*16) self.layer10 = Upsample(out_channel*16) self.layer11 = conv_block(out_channel*16, out_channel*8) self.layer12 = Upsample(out_channel*8) self.layer13 = conv_block(out_channel*8, out_channel*4) self.layer14 = Upsample(out_channel*4) self.layer15 = conv_block(out_channel*4, out_channel*2) self.layer16 = Upsample(out_channel*2) self.layer17 = conv_block(out_channel*2, out_channel) self.layer18 = tf.keras.layers.Conv2DTranspose(filters=in_channel, kernel_size=1, strides=1, activation=None) self.act = tf.keras.layers.Activation('sigmoid') #激活函数 def call(self, x): x = self.layer1(x) f1 = x x = self.layer2(x) x = self.layer3(x) f2 = x x = self.layer4(x) x = self.layer5(x) f3 = x x = self.layer6(x) x = self.layer7(x) f4 = x x = self.layer8(x) x = self.layer9(x) x = self.layer10(x, f4) x = self.layer11(x) x = self.layer12(x, f3) x = self.layer13(x) x = self.layer14(x, f2) x = self.layer15(x) x = self.layer16(x, f1) x = self.layer17(x) x = self.layer18(x) return self.act(x) x = tf.random.normal(shape=(2, 256, 256, 1)) y = tf.random.normal(shape=(2, 256, 256, 1)) model = UNET(in_channel=1, out_channel=64) loss_fn = tf.keras.losses.BinaryCrossentropy() optimizer = tf.keras.optimizers.Adam() TypeError: conv_block() missing 1 required positional argument: 'name'
06-10

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值