JetsonTX2刷机jetpack4.6+安装pytorch+yolov5+TensorRT加速+调用海康威视摄像头/usb摄像头(超级详细版,实现FPS=40)

1、刷机jetpack4.6

2、搭建运行环境

3、yolov5部署

4、TensorRT加速+调用海康威视摄像头

5、调用多路摄像头


前言:小白的踩坑日记,期间报过的error数不胜数,好在最后跑通了,所有的步骤都是自己实际经历,也非常感谢很多不知名博主的帮助

1、刷机jetpack4.6

1.1安装Ubuntu18.04系统

先安装Ubuntu18.04系统,可以在电脑上装VM虚拟机,也可以通过装有Ubuntu系统的主机进行安装,本文采用虚拟机进行安装。

虚拟机VMware的下载与安装,参考文章VMware虚拟机中安装Ubuntu18.04(linux发行版)【超详细图文教程】

VMware下载地址:VMware

ubuntu18.04镜像源百度网盘下载
链接:https://pan.baidu.com/s/1bx3k4T-z_EcglbyAkIiv5A 提取码:kw9d

我是第一次刷机,并没有出现红框1,直接设置Username和password就继续了,刷机过程中要保证网络畅通,不然会出现网络错误,出现internet error解决不了时可以给TX2插上网线试试。

1.2下载jetpack4.6刷机

参考文章:jetson tx2刷机教程 (成功安装ubuntu18.04+Jetpack4.6.2+CUDA10.2+CUDNN8.2)

 按照文章步骤来就好,但是我jtop安装失败,后面的pytorch及torchvision也没有参考文章,只执行到STEP4刷机完成,然后开机tx2进行操作。

2、搭建运行环境

主要就是安装pytorch与torchversion

参考文章:Jetson Nano配置YOLOv5并实现FPS=25

Jetson nano + yolov5 + TensorRT加速+Deepstream调用多路摄像头

2.1 TX2风扇启动、修改内存

如果TX2开机后风扇没有启动,可以使用这个脚本

风扇自启脚本🔗:https://github.com/Pyrestone/jetson-fan-ctl.git

打开终端,输入以下命令:

git clone https://github.com/Pyrestone/jetson-fan-ctl.git # 克隆到本地
cd jetson-fan-ctl
sudo ./install.sh # 自动安装
sudo service automagic-fan restart # 设置开机自启

执行sudo ./install.sh 报错,command not found.解决方法:sudo: ./xxx.sh: command not found_sudo: ./.sh: command not found-CSDN博客

 修改TX2板显存:

1、打开终端输入:

sudo gedit /etc/systemd/nvzramconfig.sh

 2、修改nvzramconfig.sh文件,主要将"${totalmem}"/2改成"${totalmem}"*2可以扩大一倍显存,如果觉得不够可以*3或者*4

修改mem = $((("${totalmem}"/2/"${NRDEVICES}")*1024))
为mem = $((("${totalmem}"*2/"${NRDEVICES}")*1024))

 3、重启板子

4、输入以下代码可以查看修改后的显存

free -h

2.2配置CUDA

1、打开终端(ctrl+alt+t),输入以下命令:

sudo gedit ~/.bashrc

 在文档最下面,输入下面命令,然后按ctrl+s保存(主要是为了配置环境变量):

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

 验证CUDA是否安装配置成功 :

source ~/.bashrc
nvcc -V

出现 CUDA版本号就表示配置成功了

2.3 安装torch与torchvision

本文安装torch-1.8.0+torchvision0.9,安装依赖包时需要换源

1、换源:打开终端输入:

mkdir ~/.pip
sudo gedit ~/.pip/pip.conf

 在空白处输入如下镜像源之一保存并退出:

豆瓣源:

[global]
timeout=6000
index-url=https://pypi.doubanio.com/simple
trusted-host=pypi.doubanio.com

阿里源:

[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

清华源:

[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=https://pypi.tuna.tsinghua.edu.cn

 2.下载torch1.8

下载torch-1.8.0-cp36-cp36m-linux_aarch64.whl,建议U盘下载拷贝到板子上本地安装

官网下载地址:nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl

网盘链接(carrymingteng博主的): https://pan.baidu.com/s/1tS51E3a-a-w9_OdCNraoAg

 提取码:30qr

3.安装torch1.8,numpy版本1.19.3

打开终端输入:

sudo apt-get update

sudo apt-get install python3-pip libopenblas-base libopenmpi-dev

在torch-1.8.0-cp36-cp36m-linux_aarch64.whl所在文件夹内打开终端输入:

pip3 install --upgrade pip		#如果pip已是最新,可不执行
pip3 install Cython
pip3 install numpy==1.19.3
pip3 install torch-1.8.0-cp36-cp36m-linux_aarch64.whl
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev

 4.安装torchvision0.9

git clone --branch v0.9.0 https://github.com/pytorch/vision torchvisionpillow==8.4.0
cd torchvision
export BUILD_VERSION=0.9.0
python3 setup.py install --user #时间很长

如果报pillow错误

cd torchvision
pip3 install -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com pillow==8.4.0
export BUILD_VERSION=0.9.0
python3 setup.py install --user

 安装torchvision时如果无法通过git clone获取,或者安装一直报错,可以网站手动下载安装

torchvision的github地址:https://github.com/pytorch/vision

 建议不要下载太新的,pytorch与torchvision的版本是对应的

5.验证torch和torchvision这两个模块是否安装成功

python3
import torch
print(torch.__version__)
import torchvision
print(torchvision.__version__)

安装成功

3、yolov5部署

建议主机下载yolov5文件然后拷贝到tx2上,会方便一些

yolov5文件地址:https://github.com/ultralytics/yolov5.git

yolov5网盘链接(carrymingteng博主链接):百度网盘 请输入提取码
提取码:3ran

yolov5n.pt链接(carrymingteng博主链接):百度网盘 请输入提取码
提取码:oe0w

打开终端输入:

python3 -m pip install --upgrade pip #更新pip
cd yolov5 #进入下载的yolov5文件夹中
pip3 install -r requirements.txt #安装包
python3 -m pip list#查看安装的包

 安装过程中出现无法安装的库时,可手动下载对应包然后安装,一般是matplotlib安装不上

matplotlib whl 网盘地址(carrymingteng博主链接):百度网盘 请输入提取码
提取码:fp4i

pip3 install matplotlib.whl

 测试

python3 detect.py --source data/images/bus.jpg --weights yolov5n.pt --img 640	#图片测试
python3 detect.py --source video.mp4 --weights yolov5n.pt --img 640	#视频测试,需要自己准备视频
python3 detect.py --source 0 --weights yolov5n.pt --img 640	#摄像头测试

 我一开始使用opencv-python 4.8.1调用海康威视摄像头时会报下面错误,后面使用opencv-python4.1.1解决了,但是要将check_requirements(exclude=('tensorboard', 'thop'))这段代码注销掉,就可以正常调用海康威视摄像机

 

调用摄像头时掉帧卡顿,可将time.sleep(1 / self.fps[i])这段代码注销掉

def update(self, i, cap, stream):
        # Read stream `i` frames in daemon thread
        n, f, read = 0, self.frames[i], 1  # frame number, frame array, inference every 'read' frame
        while cap.isOpened() and n < f:
            n += 1
            # _, self.imgs[index] = cap.read()
            cap.grab()
            if n % read == 0:
                success, im = cap.retrieve()
                if success:
                    self.imgs[i] = im
                else:
                    LOGGER.warning('WARNING: Video stream unresponsive, please check your IP camera connection.')
                    self.imgs[i] = np.zeros_like(self.imgs[i])
                    cap.open(stream)  # re-open stream if signal was lost
            #time.sleep(1 / self.fps[i])  # wait time

4、TensorrRT加速,调用海康威视摄像头/USB摄像头

参考文章:Jetson Nano配置YOLOv5并实现FPS=25-CSDN博客

在调用海康威视摄像头时需要先知道摄像头的ip地址和账户密码

通过设备网络搜索工具查找摄像头ip,要保证主机,摄像头在一个局域网内

下载链接:https://www.hikvision.com/cn/support/tools/hitools/clea8b3e4ea7da90a9/

 对yolov5.cpp文件修改时主要修改12行和342行,12行为自己模型的类别参数,342行为自己要检测的视频或者图片,注意要写全路径。如果调用usb摄像头,则括号内的参数设为0或1。调用海康威视则填入摄像头ip。

342行调用本地图片视频、usb摄像头、海康威视摄像头方法

cv::VideoCapture capture("/home/cao-yolox/yolov5/tensorrtx-master/yolov5/samples/1.mp4");	#修改为自己要检测的视频或者图片,注意要写全路径
cv::VideoCapture capture(0); #调用usb摄像头
cv::VideoCapture capture("rtsp://admin:qwertyuiop123@192.168.31.103/Streaming/Channels/2"); #修改为自己海康威视的账号密码和ip地址
重新编译

进入到buid下重新make。注意只要修改了yolov5.cpp就要重新make。
执行

sudo apt-get install libcanberra-gtk-module

效果

5、调用多路摄像头

参考资料

https://blog.csdn.net/u010414589/article/details/115338399
https://blog.csdn.net/lk007cx/article/details/110228243 
https://blog.csdn.net/W1995S/article/details/119858078
https://zhuanlan.zhihu.com/p/296314513
https://github.com/marcoslucianops/DeepStream-Yolo
https://blog.csdn.net/qq122716072/article/details/114156647
https://blog.csdn.net/djj199301111/article/details/123628292

  • 9
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值