Jetson系列开发版配置cuda.cv.ubuntu环境

yolov8 ROS

目录

yolov8 ROS

yolov5 ROS 可以CUDA

1.刷机

2.安装ros

3.先创建3.6的虚拟环境,然后按照版本要求先下载torch和torchvision

安装torch

安装torchvision

安装opencv

1.Jetson nx属于ubuntu系统,想要安装opencv,直接用pip install的方法安装的版本会是最新版,不适配,所以在open CV和opencv-contrib官网下载安装包后自己安装.注意ubuntu系统要用tar.gz的安装包,不要用zip

2.安装完成后,去解压那两个安装包,解压后将opencv_coutrib放在opencv下(将文件夹改名)

3.六线程编译

4.完成后进行安装

5.后续配置

6.安装cv_bridge

安装输入法: 


yolov8与ROS代码链接:

GitHub - qq44642754a/Yolov8_ros

1.创建虚拟环境:

conda create -n yolov8 python=3.8   

mkdir -p catkin_ws/src   # create workspeace  home

2.创建后在虚拟环境中安装yolov8依赖:

conda activate yolov8
pip install ultralytics
pip install rospkg

3.在虚拟环境中进入ROS工作空间 :

cd /catkin_ws/src

git clone https://github.com/qq44642754a/Yolov8_ros.git

cd ..

catkin_make

source ~/catkin_ws/devel/setup.bash

4.环境创建好后,要做的就是获取摄像头

把usb_cam包复制一份,运行包里launch文件,一直获取摄像头画面

roslaunch usb_cam usb_cam-test.launch    #recive camera 

rqt_image_view      #watch camera

在yolov8代码中,与usb_cam确认话题是否一致,接收到摄像头画面就能预测了

topic:usb_cam/image_raw     msg:sensor_msgs/Image

如果使用压缩图像,请更改topic,消息类型:msg:sensor_msgs/CompressedImage

记住更改消息类型

roslaunch yolov8_ros yolo_v8.launch
rostopic list
ls /dev/video*
rostopic info sensor_msgs/Image  #msg
rostopic info usb_cam/compressed   #topic
rostopic hz /usb_cam/compressed 

rostopic bw     显示主题使用的带宽
rostopic delay  显示带有 header 的主题延迟
rostopic echo   打印消息到屏幕
rostopic find   根据类型查找主题
rostopic hz     显示主题的发布频率
rostopic info   显示主题相关信息
rostopic list   显示所有活动状态下的主题
rostopic pub    将数据发布到主题
rostopic type   打印主题类型

Jetson nx/orin 配置环境

xavier nx: torch 1.10.0 torchvision 0.11.1 opencv 4.6.0 Ubuntu 18.04 ROS Melodic python 3.6

Orin nano:torch 1.14.0 torchvision 1.14.1 opencv 4.6.0 Ubuntu 20.04 ROS Noetic python3.8.10

1.刷机

下载SDKmanager,https://developer.nvidia.com/zh-cn/embedded/jetpack,点击这里下载

新板子第一步就是刷机,不要装输入法,不要改系统源

2.创建虚拟环境

先安装miniforge,再根据需求创建虚拟环境

conda create -n yolov5 python=3.6

3.软件安装

3.1安装torch

nvidia官方torch下载地址

在板子上,进入放torch下载包的文件夹,打开终端,进入你的conda虚机环境(这样就是安装在虚拟环境里),运行:

pip3 install torch-1.10.0-cp36-cp36m-linux_aarch64.whl


注意torch文件名换成自己对应版本的,安装完成后,会提示successful install torch1.10.0,就安装成功了

3.2安装torchvision

1.终端先直接下载安装包

git clone --branch v0.9.0 https://github.com/pytorch/vision torchvision

 最后那个torchvision是下载的文件夹名 ,如果显示重复,就把torchvision改一个文件名

2.进入文件夹,打开终端,进入虚拟环境安装依赖项

sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
export BUILD_VERSION=0.11.1   
python3 setup.py install --user
cd ..

3.测试

import torch
import torchvision
print('1')
print(torch.__version__)  # 查看torch版本
print('2')
print(torchvision.__version__)  # 查看torchvision版本
print('3')
print(torch.cuda.is_available())  # 查看torch下cuda是否可用
print('4')
print(torch.cuda.device_count())  # 查看#GPU驱动数量
print('5')
print(torch.cuda.get_device_name())  # 查看#GPU驱动动名称

3.3安装opencv

1.Jetson nx属于ubuntu系统,想要安装opencv,直接用pip install的方法安装的版本会是最新版,不适配,所以在open CV和opencv-contrib官网下载安装包后自己安装.注意ubuntu系统要用tar.gz的安装包,不要用zip

opencv:https://github.com/opencv/opencv/releases

opencv-contrib:https://github.com/opencv/opencv_contrib/releases

tar -zxvf opencv-4.6.0.tar.gz
tar -zxvf opencv_contrib-4.6.0.tar.gz

 下完安装包后,在终端中安装所有的依赖项:

sudo apt-get install build-essential 
sudo apt-get install git libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

 opencv  常见问题:无法定位 libjasper-dev,解决方法如下,换源

sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
sudo apt update
sudo apt install libjasper1 libjasper-dev

2.安装完成后,去解压那两个安装包,解压后将opencv_coutrib放在opencv下(将文件夹改名)

并在opencv下创建一个build文件夹

cd opencv-4.6.0
mkdir build
cd build

创建build文件夹后,后面要做工作就是cmake编译,然后安装

cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_PNG=OFF \
-DBUILD_TIFF=OFF \
-DBUILD_TBB=OFF \
-DBUILD_JPEG=OFF \
-DBUILD_JASPER=OFF \
-DBUILD_ZLIB=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_opencv_java=OFF \
-DBUILD_opencv_python2=OFF \
-DBUILD_opencv_python3=ON \
-DENABLE_PRECOMPILED_HEADERS=OFF \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DWITH_OPENCL=OFF \
-DWITH_OPENMP=OFF \
-DWITH_FFMPEG=ON \
-DWITH_GSTREAMER=OFF \
-DWITH_GSTREAMER_0_10=OFF \
-DWITH_CUDA=ON \
-DOPENCV_DNN_CUDA=ON \
-DWITH_GTK=ON \
-DWITH_VTK=OFF \
-DWITH_TBB=ON \
-DWITH_1394=OFF \
-DWITH_OPENEXR=OFF \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.4 \
-DCUDA_ARCH_BIN=7.2 \
-DCUDA_ARCH_PTX="" \
-DINSTALL_C_EXAMPLES=OFF \
-DOPENCV_ENABLE_NONFREE=ON \
-DINSTALL_TESTS=OFF \
-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
-DCMAKE_INSTALL_PREFIX=/usr/local ..

第一次安装的错误是因为选择的是Python2,所以装到了python2.6里面.记得在编译代码里看看是不是python3.

 1.DOPENCV_EXTRA_MODULES_PATH要改成opencv_contrib的对应地址
 2.DCUDA_ARCH_BIN要改成对应数值,查看方法如下: orin nano 8.7

cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

3. CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2  cuda版本换成自己的

3.六线程编译
sudo make -j6
4.完成后进行安装
sudo make install
5.后续配置
# 查看版本
opencv_version  # 4.6.0
# 后续配置
sudo apt-get install pkg-config
sudo gedit /etc/ld.so.conf.d/opencv.conf   
# 打开为空文件后加入下述内容,然后保存退出
/usr/local/lib
# 8.2 后续配置
sudo apt-get install vim-gtk
sudo vim /etc/bash.bashrc    
# 加入到最后:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source /etc/bash.bashrc
python
import cv2
cv2.__version__

 如果发现

>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'

看一看路径,可能是因为已经装好了,但是python没有cv路径

检查Python的模块搜索路径是否包含OpenCV库的安装目录:

import sys
print(sys.path)

我打印发现只有/usr/local/lib/python3.8/dist-packages,但实际看文件夹发现我的次v包在/usr/local/lib/python3.8/site-packages/cv2,于是:

sys.path.append('/usr/local/lib/python3.8/site-packages')

再运行就好了。

6.安装cv_bridge

OpenCV安装好以后,需要进一步编译CV-Bridge( cv_bridge是在ROS图像消息和OpenCV图像之间进行转换的一个功能包)。

首先,创建一个 ROS 的工作空间(如果自己有就不用,在自己要用到的工作空间进行)

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
catkin_init_workspace 
cd ..
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

然后,下载对应版本的源码,因为是 Ubuntu 20.04 因此下载 noetic 版本

https://github.com/ros-perception/vision_opencv/tree/noetic

下载完成后解压到 ~/catkin_ws/src 目录下,因为我们只需要 cv_bridge,所以只需保留 cv_bridge 文件夹,将其放在 ~/catkin_ws/src/,然后修改一下 cv_bridge 的配置文件。 

CMakeLists.txt 文件,在 set(_opencv_version 4) 前面添加你的 opencv 安装路径,大概在第 20 行

set(OpenCV_DIR /home/nvidia/opencv/opencv-4.6.0/build/)
set(_opencv_version 4)
find_package(OpenCV 4 QUIET)

然后编译这个功能包

cd ~/catkin_ws/src
catkin_make

如果编译成功,则 cv_bridge功能包制作就完成了,这也说明 opencv 4.6.0 已经正确安装了,并且这个cv_bridge功能包可以正确连接上自己安装的 opencv 版本,最后我们将这个功能包的路径添加到 ~/.bashrc 文件夹中,打开 ~/.bashrc文件夹,在最后加入如下命令

source ~/catkin_ws/devel/setup.bash

 最后在终端 source 一下当前该路径

source ~/.bashrc

如果是melocid

git clone -b melocid https://github.com/ros-perception/vision_opencv

问题:安装之后python不能import cv2/只有特定版本可以/jtop与import cv2版本不一样,解决方法:

python与opencv没联系起来,新安装的cv文件python目录下没有
首先你要确定在configure时你正确地添加了PYTHON3_INCLUDE_DIR,也就是在cmake的信息栏中是有python3描述的;
进入'opencv-../build/lib/python3/'文件夹,会找到'cv2.cpython-3xx-aarch64-linux-gnu.so'文件,这个文件是对应一个python版本的,如果没有你需要的版本,说明configure的时候你没有添加它。

把.so文件复制到你python的lib文件夹中,以系统自带的python3.8为例:
#在.so文件所在文件夹中执行
sudo cp cv2.cpython-38-aarch64-linux-gnu.so /usr/local/lib/python3.8/
#进入目标文件夹
cd /usr/local/lib/python3.8/
#将.so文件重命名为cv2.so
sudo mv cv2.cpython-38-aarch64-linux-gnu.so cv2.so


 

安装输入法: 

https://zhuanlan.zhihu.com/p/529892064

安装tensorflow:

https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 首先,要手动安装Jetson TX2中的CUDA和CuDNN,需要按照以下步骤进行操作: 1. 下载CUDA Toolkit: - 首先,通过NVIDIA官方网站下载适用于Jetson TX2的CUDA Toolkit。 - 在下载页面上选择与您的Jetson TX2本相对应的CUDA Toolkit本,并下载该本的.run文件。 2. 安装CUDA Toolkit: - 将下载的CUDA Toolkit文件拷贝到Jetson TX2设备上。 - 打开终端,进入到CUDA Toolkit文件所在的目录。 - 运行以下命令,以设置安装选项并启动安装过程: ``` chmod +x cuda_<version>_linux.run sudo ./cuda_<version>_linux.run ``` - 按照安装向导的指示进行操作,接受许可协议并选择相应的安装选项。 - 完成安装后,根据提示将必要的环境变量添加到系统配置文件中(如~/.bashrc)。 3. 下载CuDNN库文件: - 访问NVIDIA官方网站并下载与安装的CUDA Toolkit本相对应的CuDNN库文件。 - 将下载的CuDNN库文件拷贝到Jetson TX2设备上。 4. 安装CuDNN库文件: - 将CuDNN库文件解压到一个指定目录中,例如'/usr/local/cuda/'。 - 打开终端,进入CuDNN库文件所在的目录。 - 运行以下命令以将CuDNN库文件拷贝到CUDA Toolkit的安装目录中: ``` sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* ``` 5. 配置环境变量: - 打开终端,编辑~/.bashrc文件: ``` nano ~/.bashrc ``` - 在文件末尾添加以下内容,并保存退出: ``` export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64 export CUDA_HOME=/usr/local/cuda ``` - 运行以下命令使环境变量配置生效: ``` source ~/.bashrc ``` 完成以上步骤后,您应该成功地手动安装了Jetson TX2中的CUDA和CuDNN。您可以通过在终端上运行`nvcc -V`来验证CUDA是否正确安装,并通过运行`cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2`来验证CuDNN是否正确安装。 ### 回答2: 首先,Jetson TX2是一款高性能边缘计算设备,用于深度学习、AI和计算机视觉等领域。CUDA和cuDNN是用于加速计算的关键软件,在Jetson TX2上手动安装这两个软件需要以下步骤: 1. 下载CUDA和cuDNN:首先,从NVIDIA官方网站下载适用于Jetson TX2的CUDA和cuDNN本。确保选择与Jetson TX2硬件兼容的本。 2. 安装CUDA:将下载的CUDA安装包复制到Jetson TX2上,并解压缩文件。然后,运行安装脚本来设置CUDA环境变量并安装CUDA。 3. 配置环境变量:为了正确地配置CUDA和cuDNN,需要设置环境变量。在终端中输入以下命令以打开.bashrc文件: ``` sudo nano ~/.bashrc ``` 然后,在文件的末尾添加以下行: ``` export CUDA_HOME=/usr/local/cuda export PATH=/usr/local/cuda/bin:${PATH} export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH} ``` 保存并关闭文件,然后运行以下命令以使更改生效: ``` source ~/.bashrc ``` 4. 安装cuDNN:将下载的cuDNN安装包复制到Jetson TX2上,并解压缩文件。然后,将cuDNN库文件复制到CUDA的安装目录中。使用以下命令完成此操作: ``` sudo cp cuda/include/cudnn.h /usr/local/cuda/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* ``` 5. 验证安装:在终端中运行以下命令以验证CUDA和cuDNN是否安装成功: ``` nvcc -V ``` 如果输出中显示了CUDA本信息,则说明CUDA安装成功。然后,可以使用深度学习框架(如TensorFlow,PyTorch等)来验证cuDNN的安装。 这些是手动安装CUDA和cuDNN的基本步骤。确保按照官方文档和说明进行操作,并根据自己的需求进行相应的配置和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值