该实验需分为三步来完成1.在Jetson Xavier NX上搭建Yolov5。2.安装Intel Realsense D435i的SDK。3.配合YOLOV5实现实时目标检测。
主要操作步骤:
获取Yolov5包,并搭建环境。
(文档链接:https://drive.google.com/drive/folders/18jvzxaEqZV3ZGqWRLPvgIambimrQJ-eN)
根据官方提供ReadMe可直接使用pip install -r requirements.txt来搭建环境。但该做法在jetson xavier nx上不可取,因此需手动搭建环境。
- git clone GitHub - ultralytics/yolov5: YOLOv5 in PyTorch > ONNX > CoreML > TFLite ##若下载上述文档链接则不需要重复下载
- pip3 install -U PyYAML==5.3.1
- pip3 install tqdm
- pip3 install cython
在安装numpy的时候版本很重要,最终推荐安装1.22.4,否则会有报错
- pip3 install -U numpy==1.19.5 ##finally version 1.22.4 pip3 install --upgrade numpy
- sudo apt install build-essential libssl-dev libffi-dev python3-dev
- pip3 install cycler==0.10
- pip3 install kiwisolver==1.3.1
- pip3 install pyparsing==2.4.7
- pip3 install python-dateutil==2.8.2
- sudo apt install libfreetype6-dev
- pip3 install --no-deps matplotlib==3.2.2
- sudo apt install gfortran
- sudo apt install libopenblas-dev
- sudo apt install liblapack-dev
- pip3 install scipy==1.4.1 ##long time to wait
- sudo apt install libjpeg-dev
- pip3 install pillow==8.3.2
接下来是torch的安装本实验采用的是Torch 1.11.0,Torchvision: 0.12.0。一定要注意搭配相应版本,下面提供两种下载方案有助于准确下载版本
- 首先是参考Nvidia官方提供的下载方案,网址如下:
https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-11-now-available/72048
下载命令:
Wget https://nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl -O torch-1.11.0-cp38-cp38-linux_aarch64.whl
- 采用torch官方网站提供的下载方案: (参考链接:https://pytorch.org/get-started/locally/)
- pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
至此可以python3 然后import torch 查看是否可以正常使用。若出现upsampling.py文件的报错 则需修改该文件中的forward函数,参考链接:
https://github.com/openal/DALL-E/issues/54
- pip3 install --no-deps seaborn==0.11.0
成功运行detect.py ,其--source支持多种格式
- python3 detect.py --source data/images --weights yolov5s.pt --img 640
安装IntelRealsense D435i驱动,注意该过程中不能接入摄像头:
- git clone https://github.com/jetsonhacks/installRealSenseSDK.git
- cd installRealSenseSDK
这里可以选择安装版本,默认为V2.5.0
- ./buildLibrealsense.sh
- ### 一些可以参考的链接:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md
Setting up an Intel® RealSense™ Camera on an NVIDIA Jetson Xavier NX
若出现cmake python路径相关的报错就修改./buildLibrealsense.sh脚本,找到/usr/bin/cmake ../这一行,修改为
- /usr/bin/cmake ../ -DBUILD_EXAMPLES=true -DFORCE_LIBUVC=ON -DBUILD_WITH_CUDA="$USE_CUDA" -DCMAKE_BUILD_TYPE=release -DBUILD_PYTHON_BINDINGS=bool:true -DFORCE_RSUSB_BACKEND=ON -DPYTHON_EXECUTABLE=/usr/bin/python3
等待一个小时左右脚本才会运行结束,连接摄像头,先运行realsense-viewer查看摄像头能否正常使用。然后可以python3 然后import pyrealsense as rs查看是否安装正确。如果出现nomodule的报错则需要找到~/librealsense/build/wrappers/python该路径下的六个gnu文件,复制到 /usr/local/lib/python3.8中
- then find the pyrealsense2 in ~/librealsense/build/wrappers/python copy the six file use following command
- sudo mv ~/pyrealsense2/ /usr/local/lib/python3.8
该步骤结束后再编辑bashrc修改环境变量
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.8/pyrealsense2
添加这一行至bashrc中再source ~/.bashrc即可再import pyrealsense as rs查看是否安装正确
最后运行recognition_with_realsense.py文件实现实时目标检测。