使用ROS和TensorFlow进行深度学习

时间:2024-05-20 15:28:41

在翻译《ROS Robotics Projects》的深度学习一章的过程中,顺手在电脑里敲了下相关的命令,发现还是有一些小问题的,详细的操作步骤在此记录如下:

使用ROS和TensorFlow进行深度学习

《ROS Robotics Projects》由易科机器人实验室翻译,预计2017.10出版。

1 安装TensorFlow

可以在以下链接获取最新的Linux安装向导; https://www.tensorflow.org/install/install_linux 以下是在Ubuntu上安装pip的命令:

sudo apt-get install python-pip python-dev

安装pip后,必须执行以下命令来设置一个名为TF_BINARY_URL的BASH变量。这是为了安装正确的二进制文件进行配置。以下变量是针对Ubuntu 64位,Python 2.7,仅CPU 版本:

export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0-cp27-none-linux_x86_64.whl

定义BASH变量后,使用以下命令安装Python 2的二进制文件:

sudo pip install --upgrade $TF_BINARY_URL

2 安装摄像头驱动

如果你使用虚拟机,首先要在虚拟机设置里勾选USB设备。

使用ROS和TensorFlow进行深度学习

然后用v4l2-ctl查看一下摄像头属性:

v4l2-ctl --list-formats

查一下支持的Size

v4l2-ctl --list-formats-ext

在 ROS 系统中,想要使用 USB 摄像头需要安装相应的驱动程序。这里以常用的 usb_cam 为例来说明如何安装给 ROS 安装 USB 摄像头。如果是USB camera已安装好的话可以直接按照书中的步骤进行试验。

下面是安装命令:

具体介绍可参考:[ROS] 安装 USB Camera 驱动并调用

cd ~/ws/src
mkdir -p usb_cam
cd usb_cam
git clone https://github.com/bosch-ros-pkg/usb_cam.git cd ..
catkin_make
source ~/ws/devel/setup.bash roscd usb_cam

运行并测试图像:

rosrun usb_cam usb_cam_node

rosrun image_view image_view image:=/usb_cam/image_raw

3 使用ROS和TensorFlow进行图像识别

以下是ROS识别包的地址: https://github.com/qboticslabs/rostensorflow

此软件包是https://github.com/OTL/rostensorflow的一个分支。该包主要包含一个ROS Python节点,用于订阅ROS网络摄像头驱动节点的图像,并使用TensorFlow API执 行图像识别,节点将打印检测到的对象及其概率。

运行程序:

python image_recognition.py image:=/usb_cam/image_raw

显示识别的物体名称:

rostopic echo /result

很简单是吧!

’效果图:

这个例子用的是别人已经训练好的模型。

如何自己编写识别程序,如何使用更多的机器学习方法,还是看书吧,哈哈!