刷机步骤不详细列举,这个有很多博客都可以找到。附上连接:
Nvidia Jetson TX2刷机
由于Jetson tx2是aarch64架构,在aconda官网上下载的不能使用。这里分享一下在tx2上使用的conda包。
网盘链接:
链接:https://pan.baidu.com/s/1Na-ipbFQR8uGSDDPkGLimg
提取码:1111
然后运行以下指令
chmod +x Archiconda3-0.2.3-Linux-aarch64.sh
sudo ./Archiconda3-0.2.3-Linux-aarch64.sh
安装完成后使用conda create -n XXXXX python=3.6 //以python3.6创建环境
注意:此处一定要用python=3.6,因为gpu版本的torch和touchvision最新版本只支持python3.6。
使用conda activate XXXXX //激活创建的环境
使用conda deactivate //退出环境
创建的环境保存在archiconda/envs/目录下
***提示:以后的所有操作一定要都要在虚拟环境下!!!***
提示:这里只分享GPU版本的环境安装,因为CPU训练和推理太慢了。GPU版本的资料不太好找。
我的Jetson TX2环境:
Ubantu:18.04
JetPack:4.5.1
CUDA:10.02
我用的torch版本为1.8.0,torchvision版本为0.9.0。
***提示:安装Yolov5环境依赖包(requirements.txt)之前,一定要先安装torch和torchvison,因为自动下载的包不支持aarch64架构!***
网盘链接:
链接:https://pan.baidu.com/s/1f7MzdNx1ui54Z3k9LtryhQ
提取码:1111
下载之后运行:
pip install torch-1.8.0-cp36-cp36m-linux_aarch64.whl
pip install torchvision-0.9.0a0+01dfa8e-cp36-cp36m-linux_aarch64.whl
安装过程中提示:No module named ‘wheel’
运行:
python -m pip install wheel setuptools
然后再次运行安装。
Yolov5源码需要去github下载,我这里只下载了v4.0、v5.0、master版本。
(如果用tensorrtx的话推荐使用v4.0或v5.0,我用master版本会提示模型不匹配,我没有解决这个问题)
***提示:如果需要tensorrtx加速的话,在这里一定要选择好版本,因为tensorrtx和yolov5版本要对应。***
Yolov5下载地址(需要科学上网)
网盘链接:
链接:https://pan.baidu.com/s/1uqzKBoGCEqxVdRbDa-t6Xg
提取码:1111
解压之后,文件夹下有个requirements.txt文件,首先将torch和torchvision注释了,之前已经安装过了。
然后执行:
pip install -r requirements.txt
参考这篇博客:
YOLOv5的详细使用教程,以及使用yolov5训练自己的数据集
注意一点:
这篇博客在训练自己的模型时,GPU用的是--device 1
,这个不尽相同,我的用的是--device 0
,有报错不要慌,看看是不是命令行有空格或者错误。
1、在conda环境下使用pip命令出现“Illegal instruction (core dumped)”,中文“非法指令(核心转储)“。
很可能是numpy库的问题,如果conda环境下没有numpy库的话,那就是base基础环境下numpy的问题。
卸载numpy库,然后安装低于1.20版本。
pip uninstall numpy
pip install numpy==1.19.3
如果都试过了,还是没办法解决的话,推荐刷机,我的问题就是这样解决的。
tx2本身会自带python2环境,这个一定不要卸载,它有tx2运行的依赖库。
安装archconda环境之后还会安装python3.7。
一些库文件容易将环境打乱。推荐最好刷机,刷一下环境。
2、安装matplotlib报错,系统自动安装很多版本都不行。
可以用安装包自己安装,我这个是3.3.4版本的:
网盘链接:
链接:https://pan.baidu.com/s/1iIGbN3uec-rY6bzlkCHYXQ
提取码:1111
然后运行:
pip install matplotlib-3.3.4-cp36-cp36m-linux_aarch64.whl
如果其他库有问题也可以这样下载安装包安装。
tensorrtx源码需要去github下载,我这里只下载了v4.0、v5.0、master版本。
(如果用tensorrtx的话推荐使用v4.0或v5.0,我用master版本会提示模型不匹配,解决不了)
***提示:tensorrtx和yolov5版本要对应。***
tensorrtx下载地址(需要科学上网)
网盘链接:
链接:https://pan.baidu.com/s/1YO5N6ebIEn5LhLqfp3ljZw
提取码:1111
参考这篇博客:
Jetson AGX Xavier实现TensorRT加速YOLOv5进行实时检测
1、运行sudo ./yolov5 -d yolov5s.engine ../samples
出现read_files_in_dir failed
问题。
解决:一定要先修改yolov5.cpp文件,然后make一下再去运行此语句,不然.cpp文件会认为你是在生成.engine文件。
2、调用摄像头出现延迟。
上文中使用opencv调用摄像头,在我使用的板子上,不管是USB摄像头,或者是网络摄像头,都会出现一定的延迟。
造成这个现象的原因,是opencv把视频的每一帧都送去处理,处理速度跟不上送进来的速度,会造成堵塞卡顿。
借用这篇博客所介绍的办法,成功解决了这个问题:
opencv读取视频有延迟解决方法
如果文中所介绍的方法如果还是有一定延迟的话,可以尝试多加几行,我的程序就是加了3行基本实时处理。
注意:加这行语句一定要适中,有延迟多加一点,但是加多容易使画面变成PPT。
示例:
capture >> frame
capture >> frame
capture >> frame
后边还有Deepstream和yolov5_in_deepstream部署,我没有部署成功。