Tinymal-B感知教程4-基于YoloV5和TensorRT实现目标识别

本教程采用JetsonNano 4G默认烧录bingda系统镜像,python3.6版本进行。资料:链接:https://pan.baidu.com/s/1hnt_GokKYpPVOfPc-_Vldg 提取码:psby

本例程基于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帧的识别,下面需要采用相关方法实现加速完成实时的识别;

注:目前的代码中运行非优化版本可能会导致JetsonNano死机,可直接参考下一节TensorRT加速的代码进行测试!

2023-04-22