在翻译《ROS Robotics Projects》的深度学习一章的过程中,顺手在电脑里敲了下相关的命令,发现还是有一些小问题的,详细的操作步骤在此记录如下:
《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设备。
然后用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
很简单是吧!
’效果图:
这个例子用的是别人已经训练好的模型。
如何自己编写识别程序,如何使用更多的机器学习方法,还是看书吧,哈哈!