基于深度学习的ROS(机器人操作系统)的目标检测

一.环境搭建

硬件主机:i7八代,GPU1660
软件环境:Ubuntu16.04,ROS(kinetic)

1.安装英伟达驱动

1.1 在英伟达官网驱动页面下寻找自己显卡的驱动(型号一定要查询清楚)https://www.geforce.cn/drivers

以GTX1660为例:
基于深度学习的ROS(机器人操作系统)的目标检测_第1张图片
点击搜索后任意下载其中一个即可:
基于深度学习的ROS(机器人操作系统)的目标检测_第2张图片

1.2 下载完成后,首先卸载卸载所有系统自己安装的 nvidia 驱动和第三方的GPU驱动
sudo apt-get remove --purge nvidia*

编辑blacklist.conf文件

sudo vim /etc/modprobe.d/blacklist.conf

添加以下内容

blacklist amd76x_edac
blacklist vga16fb
blacklist nouveau
blacklist nvidiafb
blacklist rivatv

然后执行

sudo update-initramfs -u

重启后

lsmod | grep nouveau

查看是否为空。

1.3 开始安装

首先关闭图形界面
(不然会报错:You appear to be running an X server; please exit X before…)
进入ubuntu后Ctrl+Alt+F1进入命令行界面 ,同时 su root 进入管理员模式进行安装,进入到安装包所在的目录后执行以下操作:

sudo service lightdm stop
#关闭图形界面

sudo chmod a+x NVIDIA-Linux-x86_64-390.77.run
#后面的驱动要改为你自己的驱动,可在输入NVIDIA后按下Tab键自动补全

$sudo ./NVIDIA-Linux-x86_64-390.77.run 
#开始安装

注意:如果安装N卡驱动后系统卡在登陆界面或开机黑屏,可尝试添加–no-opengl-libs参数重新安装驱动。(sudo ./NVIDIA-Linux-x86_64-390.77.run --no-opengl-libs )。不是N卡输出显示的话一定要加–no-opengl-libs 。
在安装驱动的时候,有一布问你”Would you like to run the nvidia-xconfig utility to automatically update your X configuration file…”什么的,选择 No。
然后顺序安装就可以了,安装完成后重启。
如果遇到循环登陆问题 http://www.cnblogs.com/talugirl/p/5870875.html
重启后输入命令:

nvidia-smi

出现
基于深度学习的ROS(机器人操作系统)的目标检测_第3张图片
安装成功(注:没有安装CUDA则左上角没有 CDUA Version:10.1)

2.安装CUDA

2.1 下载cuda

在英伟达官网 https://developer.nvidia.com/cuda-toolkit-archive 选择合适的版本进行下载

基于深度学习的ROS(机器人操作系统)的目标检测_第4张图片
下载完成后,进入到文件所在的目录:

sudo sh cuda_10.0.130_410.48_linux.run

注意:选择安装列表时把显卡驱动选项去掉
在这里插入图片描述
然后忽略一切警告,一路安装即可。

2.2 添加环境变量

打开bash

sudo vim ~/.bashrc

在最后添加下面语句(版本不同修改相应版本即可,下面是添加10.0的):

export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存退出后

source ~/.bashrc
2.3 测试

依次运行以下语句

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

出现下面结果运行成功:
基于深度学习的ROS(机器人操作系统)的目标检测_第5张图片

3.安装cudnn

在英伟达官网下载对应CUDA版本的cudnn,下载需要注册登陆:https://developer.nvidia.com/cudnn
不要下载DEB版本的文件下载后缀为 .solitairetheme8的文件:
基于深度学习的ROS(机器人操作系统)的目标检测_第6张图片
下载完成后进入到文家所在目录,把文件后缀改为.tgz格式:

mv cudnn-10.0-linux-x64-v7.3.0.29.solitairetheme8 cudnn-10.0-linux-x64-v7.3.0.29.tgz

然后解压

tar -zvxf cudnn-10.0-linux-x64-v7.3.0.29.tgz

进入到解压后的文件(是cudnn解压后的):
进入到include目录下(可能只有cudnn.h一个文件)

sudo cp *.h /usr/local/cuda/include/

进入到lib64目录下

sudo co ./* /usr/local/cuda/lib64/

然后提升权限:

   sudo chmod a+r /usr/local/cuda/include/cudnn.h

全部配置完成!

4.安装Tensorflow(GPU版本)

4.1 更换PIP的源,不然安装太慢

根目录创建.pip文件:

mkdir ~/.pip

创建文件pip.conf:

vim .pip/pip.conf

复制信息:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
4.2 安装Tensorflow

输入以下命令默认安装最新版本Tensorflow

pip install tensorflow-gpu

安装完成后在python脚本下:

import tensorflow

没有任何提示则安装成功。

5(选做) 安装google-cloud-sdk

sudo snap install google-cloud-sdk --classic

安装Google Vision API(需要谷歌账号才能使用)

pip install --upgrade google-cloud-vision

在谷歌 https://console.cloud.google.com/projectselector/apis/credentials?folder&organizationId=0&supportedpurview=project生成个人密钥
基于深度学习的ROS(机器人操作系统)的目标检测_第7张图片
随便创建一个项目,选择这个项目。
基于深度学习的ROS(机器人操作系统)的目标检测_第8张图片
下载JSON文件到本地。
然后在用之前使用以下命令,在验证身份时找到JSON文件:

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json"

二.简单例程

在简单实用yolo模型进行识别,在ros框架用电脑自带的摄像头进行识别下,首先创建简单的ros功能包,调用yolo模型后,结果如下:
(其他原因代码不公开,需要的话私聊)

基于深度学习的ROS(机器人操作系统)的目标检测_第9张图片

你可能感兴趣的:(ROS)