Jetson的配置教程很多,方法也不少,但有很多坑,文章本意让读者少走弯路。
文章目录
烧录
拿到开发板后,首先进行烧录,要求一台电脑作为主机,通过套件自带的micro-USB连接;此外板子还需外接HDMI显示器,鼠标键盘。详细流程有:
1. 进入Force Recovery Mode
参考Jetson Developer Kit user guides
Put Developer Kit into Force Recovery ModeThe developer kit must be in Force Recovery mode (RCM) to enable the installer to transfer system software to the Jetson module.
- Connect the developer kit as described above. It must be powered off.
- Press and hold down the Force Recovery button.
- Press and hold down the Power button.
- Release the Power button, then release the Force Recovery button.
2. 安装Jetpack
安装Jetpack的方法有多种,直接使用主机端NVIDIA SDK manager进行烧录即可,通过SDK manager下载最新的Jetpack,注意不同版本的Jetpack对应不同的Ubuntu版本
https://docs.nvidia.com/jetson/jetpack/install-jetpack/index.html#sdk-manager
具体安装步骤可参考:
最后一步如果没连网线可能成功不了,那就在已经烧录好的Ubuntu系统中再安一遍jetpack:
Install JetPack Components on Jetson Linux
sudo apt install nvidia-jetpack
3. Cuda
上述操作完成后验证Cuda:
nvcc -V
如果不行,在.bashrc中添加:
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.2
记得检查相应目录是否有cuda或者版本不同作修改。
Pytorch环境
可以自己下载对应的包进行环境配置,但是由于架构不同,对于python和包的版本也有许多限制,折腾过程中,还能看到“非法指令(核心已转储)”这种令人崩溃的问题,建议直接安装docker镜像。在烧录完成后,进入Ubuntu系统,可以看到桌面上的Jetson Zoo,选择合适的版本下载run即可,这边给出一个示例:
sudo docker pull nvcr.io/nvidia/l4t-pytorch:r32.6.1-pth1.9-py3
sudo docker run -it --rm --runtime nvidia --network host nvcr.io/nvidia/l4t-pytorch:r32.6.1-pth1.9-py3
这里给出的run命令包含-rm(用完销毁),可以在确认配置无误后保存,示例:
sudo docker commit $container_id torch:ssd
sudo docker save -o torch-openmv-ssd.tar torch:ssd
为了方便使用,还可以挂载目录,示例:
sudo docker run -it --rm -v /home/jetson/Downloads:/Downloads --runtime nvidia --network host nvcr.io/nvidia/l4t-pytorch:r32.6.1-pth1.9-py3
意思是将/home/jetson(用户名)/Downloads挂载到容器/Downloads下。
OpenCV配置
接下来基于给出的镜像安装OpenCV以方便进行图像处理和推理。
1. 安装OpenCV
Jetson的OpenCV不需要自己配置make,有现成的bash可用:install_opencv4.x.0_Jetson.sh,在此GitHub链接中选择一个OpenCV版本,保存下来bash运行,等待漫长的build结束即可。
在官方给的镜像容器中安装时,注意把脚本中的sudo去掉。
2. 安装opencv-python
安装完OpenCV之后,使用pip3安装opencv-python,保守起见,安装了一个较低版本的:
pip3 install --upgrade pip
pip3 install opencv-python=4.4.046
简单跑个SSD
git clone https://github.com/lufficc/SSD.git
pip3 install vizer
python3 demo.py --config-file configs/vgg_ssd300_voc0712.yaml --images_dir demo --ckpt https://github.com/lufficc/SSD/releases/download/1.2/vgg_ssd300_voc0712.pth
使用GitHub库:lufficc/SSD,只需要再安装vizer即可,然后运行demo,记得运行前先把ssd/utils/nms.py里的version降低一下:
import torch
import torchvision
if torchvision.__version__ >= '0.0.0':
_nms = torchvision.ops.nms
else:
warnings.warn('No NMS is available. Please upgrade torchvision to 0.3.0+')
sys.exit(-1)
链接分享
几个不错的论坛和文章: