本例程基于JetsonNano完成,但由于其内存空间较小建议可以跟换其他更好性能的计算平台由于本身Tinymal尺寸较小可以选择如RK Rock-Pi5这样高性能但仍然以树莓派标准尺寸设计的主板。YoloV5是目前最主流的深度识别项目,其可以实现对多种目标、小样本的识别,本项目仅实现对原始YoloV5项目进行尝试,版本为5.0,需要下载对应版本的tensorRtx,另外由于YoloV5整个按照较为麻烦,实际很多步骤并不是一定要进行,只是在当时安装中以该方法最终实现了算法运行,这里也附上相关参考的资料可以对比参考:
- 首先激活CUDA功能
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
查看Cuba信息:
nvcc -V
相关资料(请不要安装conda):
- 按照pip3由于我本地系统python为3.6仅使用YoloV5的5.0版本完成后续安装,首先完成相关依赖按照:
sudo apt install python3-pip
pip3 install Cython
- (2)下载pytorch:
windows后续训练模型用无cuda或GPU的虚拟机可以安装:
pip3 install torch==1.8.0+cpu torchvision==0.9.0+cpu torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html
否则下载:
https://pan.baidu.com/s/1134QgCsZyoDL3E6O14i__w
提取码: g5mq
参考教程:https://download.csdn.net/download/qq_45029596/18518759
下载到JetsonNano目标机,进行安装:
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
pip3 install pillow==8.4.0
- 安装torchvision
git clone --branch v0.9.0 https://github.com/pytorch/vision torchvision
cd torchvision
进入到这个文件夹,右键打开终端
export BUILD_VERSION=0.9.0
python3 setup.py install --user
时间较久建议退出远程桌面,采用SSH方式编译,如相关错误可以安装如下功能:
pip3 install python-utils
sudo apt-get install gfortran
pip3 install rospkg
pip3 install pycuda
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-build
- 最后我们还是安装下默认可以安装到的pip3 install yolov5,如无误可以在控制台在python3中import yolov5测试
上面流程中如果出现相关问题可以查看: https://blog.csdn.net/d1486395282/article/details/126828134 https://blog.csdn.net/qq_38664794/article/details/124769425?ops_request_misc=&request_id=&biz_id=102&utm_term=ros%20yolov5&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-124769425.nonecase&spm=1018.2226.3001.4187 https://blog.csdn.net/happylearnerjsy/article/details/128484752
- 采用相机进行简单简单测试
在安装完后,下载我们对应的程序代码资料,运行未加速的原始版本YoloV5识别例子,这里采用RealSenseD435i相机:
roslaunch robot_vslam camera.launch
roslaunch yolov5_ros yolo_v5.launch
roslaunch robot_navigation multi_navigation.launch
可以看到其完成了对目标的识别,但是由于JetsonNano性能不行只能实现低于7~8帧的识别,下面需要采用相关方法实现加速完成实时的识别;