参考
Ubuntu 18.04 YOLOv5 ros_yolo 环境配置 数据集标注
NVIDIA Jetson Xavier NX入门(3)——安装miniforge和Pytorch
NVIDIA Jetson Xavier NX 安yolo v5 环境,必成功(miniforge管理环境)
配置所用的文件
源码git_yolo
英伟达 torch-1.7.0-cp36-cp36m-linux_aarch64
torchvision_v0.8
NVIDIA Jetson Xavier是arm架构的,anaconda及其精简版miniconda并不支持arm64架构。
在ARM64上的anaconda替代品是miniforge,miniforge与miniconda的区别在于miniforge的下载通道是conda-forge,其他基本没什么不同。
使用 minicond安装不成功,问题我也不清楚,换了miniforge成功了。
(1)miniforge的官方下载地址下载对应的sh文件:https://github.com/conda-forge/miniforge/releases(ARM64对应32位和64位分为arrch32和arrch64)
(2)进入miniforge的sh文件所在目录,打开Terminal,输入命令安装:
sh Miniforge-pypy3-4.10.3-3-Linux-aarch64.sh
(3)安装完毕后,可能会出错,需要添加环境变量等。这次我并没有出现。
(4)conda更换下载源为清华源
conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
(5)更换pip源
创建并进入pip.conf文件
mkdir ~/.pip
cd ~/.pip
vim pip.conf
在pip.conf 文件中添加
[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple/
conda配置安装完毕。
打开yolov5文件中的requirements.txt,注释torch和torchvision。
opencv-python这个库xavier自带,但是虚拟环境里没有装。
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install -U future psutil dataclasses typing-extensions pyyaml tqdm seaborn
(1) PyTorch的NVIDIA官方网址
pip3 install torch-1.7.0-cp36-cp36m-linux_aarch64.whl
(2) 安装完毕后,检验PyTorch是否正确安装:
python3 -c 'import torch; print(torch.cuda.is_available())'
正常会返回True
如果出现Illegal instruction (core dumped)的错误
pip3 install -U "numpy==1.19.4"
Pytorch除了torch包之外还需要安装对应的torchvision才能运行,两者的版本对应关系如下图
以下命令完成安装
sudo apt install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
pip3 install --upgrade pillow
git clone --branch v0.8.0 https://github.com/pytorch/vision torchvision
cd torchvision
export BUILD_VERSION=0.8.0
python3 setup.py install --user
cd .. # running torch from torchvision/ will fail
将下载好的权重文件放在yolov5-master/weights/文件夹中,下述命令使用yolov5m.pt去检测./data/image文件夹中的所有图片和视频,并设置置信度为0.5:
python3 detect.py --source 0 # 本机默认摄像头
file.jpg # 图片
file.mp4 # 视频
path/ # 文件夹下所有媒体
path/*.jpg # 文件夹下某类型媒体
rtsp:// # rtsp视频流
http:// # http视频流
检测本地文件
python3 detect.py --source ./data/images/ --weights ./weights/yolov5m.pt --conf 0.5
使用rtsp摄像头
python3 detect.py --source rtsp://admin:@192.168.1.112:554/ch0 --weights weights/yolov5s.pt --classes 0
detect命令中可使用的参数及其含义如下:
--source 指定检测来源
--weights 指定权重,不指定的话会使用yolov5s.pt预训练权重
--img-size 指定推理图片分辨率,默认640,也可使用--img
--conf-thres 指定置信度阈值,默认0.4,也可使用--conf
--iou-thres 指定NMS(非极大值抑制)的IOU阈值,默认0.5
--device 指定设备,如--device 0 --device 0,1,2,3 --device cpu
--classes 只检测特定的类,如--classes 0 2 4 6 8
--project 指定结果存放路径,默认./runs/detect/
--name 指定结果存放名,默认exp
--view-img 以图片形式显示结果
--save-txt 输出标签结果(yolo格式)
--save-conf 在输出标签结果txt中同样写入每个目标的置信度
--agnostic-nms 使用agnostic NMS
--augment 增强识别
--update 更新所有模型
--exist-ok 若重名不覆盖
conda activate yolov5_1 #环境叫yolov5_1
#环境已激活(yolov5_1) zh@zh-System:~/software/yolov50$