ROS使用笔记本自带USB摄像头运行pi_face_tracker,进行人脸识别

原创 2012年12月24日 20:18:33

人脸识别在机器人应用当中算是一个热门的应用,在网上找了一些Haar算法的例子,在opencv下面跑都能正常识别,打算在ros中也跑一跑,在网上找了一下,找到了pi_face_tracker这个例子,它是Pi robot里的一个应用,Pi robot是以TurtleBot为基础做的一个带机器手的移动机器人,很适合我这种机器人爱好者(网站http://www.pirobot.org/)。

例子里提示可以安装uvc_cam或者kinect两种视频设备

安装uvc_cam package

$ git clone https://github.com/ericperko/uvc_cam.git
$ rosdep install uvc_cam
$ rosmake uvc_cam

$ svn co http://pi-robot-ros-pkg.googlecode.com/svn/trunk/pi_vision
4 rosdep install pi_vision
$ rosmake pi_vision

装完以后运行

$ roslaunch ros2opencv uvc_cam.launch
提示报错,说没有找到设备,我机器上没有安装uvc_cam,只有自带的USB摄像头,所以就只能用自带的摄像头了。重新在网上搜了一下,发现在ros里面驱动USB摄像头需要另外安装usb_cam的包,所以重新装了一下过程如下(http://pharos.ece.utexas.edu/wiki/index.php/How_to_Use_a_Webcam_in_ROS_with_the_usb_cam_Package)。

$ sudo apt-get install ros-electric-bosch-drivers
$ svn co https://bosch-ros-pkg.svn.sourceforge.net/svnroot/bosch-ros-pkg/trunk/stacks/bosch_drivers
$ rospack profile
$ roscd usb_cam
$ rosmake --rosdep-install

安装完成后,测试是否驱动

$ roscore
新开一个窗口,编辑usb_cam-test.launch,内容如下:
<launch>
  <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
    <param name="video_device" value="/dev/video0" />
    <param name="image_width" value="640" />
    <param name="image_height" value="480" />
    <param name="pixel_format" value="mjpeg" />
    <param name="camera_frame_id" value="usb_cam" />
    <param name="io_method" value="mmap"/>
  </node>
  <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
    <remap from="image" to="/usb_cam/image_raw"/>
    <param name="autosize" value="true" />
  </node>
</launch>

保存以后,运行

$ roslaunch usb_cam-test.launch

结果报错,发现是pixel_format的值不对,需要修改为yuyv

再次运行,就可以显示图像了。接下将usb摄像头作为输入到人脸识别人的uvc_cam.launch中,需要做如下修改

1、修改usb_cam-test.launch,删除"image_view" 这个节点。

2、修改face_tracker_uvc_cam.launch文件,修改<remap from="input_rgb_image" to="/camera/image_raw" />这一句为<remap from="input_rgb_image" to="/usb_cam/image_raw" />

3、运行roslaunch uvc_cam-test.launch

4、运行roslaunch pi_face_tracker face_tracker_uvc_cam.launch

好了,你可以看到你摄像头里的头像,你的脸被识别出来了。


第二种方法是用kinect作为输入设备。

这个比较简单,接好kinect 设备后,按步骤就可以完成。

$ roslaunch ros2opencv openni_node.launch

$ roslaunch pi_face_tracker face_tracker_kinect.launch 



ROS 教程之 vision : 用各种摄像头获取图像

可能有很多人想在ROS下学习视觉,先用摄像头获取图像,再用opencv做相应算法处理,可是ROS下图像的采集可不像平常的read一下那么简单,需要借助外部package的使用。而摄像头即可以用笔记本自...
  • heyijia0327
  • heyijia0327
  • 2014-12-27 18:46:50
  • 20538

ros中使用摄像头

How to Use a Webcam in ROS with the usb_cam Package wiki:http://pharos.ece.utexas.edu/wiki/index.php...
  • tianyi1991
  • tianyi1991
  • 2015-10-18 21:11:30
  • 641

用各种摄像头获取图像

可能有很多人想在ROS下学习视觉,先用摄像头获取图像,再用opencv做相应算法处理,可是ROS下图像的采集可不像平常的read一下那么简单,需要借助外部package的使用。而摄像头即可以用笔记本自...
  • jjq2324
  • jjq2324
  • 2017-11-02 20:36:18
  • 542

ros by example 人脸识别跟踪总结

《ros by example 人脸识别跟踪总结》
  • u012706484
  • u012706484
  • 2016-08-21 15:56:45
  • 551

在ROS中使用usb摄像头跑ORB SLAM2

摘要(假装这是论文):由于最近在做orb_slam2相关,将这几天的实验过程总结记录,本文主要为傻瓜式记录运行代码的过程,以及中间遇到的问题及解决方法,截止至发文前,只是把单目Mono的功能实现,暂时...
  • Goding_learning
  • Goding_learning
  • 2016-10-27 22:52:12
  • 5959

ROS学习笔记(一):在ROS中使用USB网络摄像头传输图像

在现实中,我们一般是使用摄像头来获取图像,这次要实现在ROS中使用摄像头传输图像,我使用的是usb网络摄像头(不需要驱动,我使用的是不需要驱动的usb摄像头),首先我们可以获取当前电脑连接的usb设备...
  • wufan88
  • wufan88
  • 2017-12-20 09:37:54
  • 71

使用自己笔记本摄像头运行orbslam2

首先你已经装了ros indigo (1)配置环境变量 下面我们开始创建一个catkin 工作空间:(在主文件夹下) $ mkdir -p ~/catkin_ws/src $ cd ~/...
  • qq_18661939
  • qq_18661939
  • 2016-07-05 10:13:00
  • 4882

ROS 使用自带和usb摄像头获取图像

也可以使用安装usb_cam package的流程和上面的uvc_cam几乎一样: $ cd ~/catkin_ws/src $ git clone https://github...
  • u010925447
  • u010925447
  • 2017-02-17 20:26:47
  • 836

ROS下使用摄像头

1 . 前言 在ROS下常用的主要有两种驱动包:usb_cam和uvc_cam。
  • wilylcyu
  • wilylcyu
  • 2016-06-22 10:58:36
  • 3716

ROS下调用USB摄像头

ROS包调用摄像头
  • qq_22637049
  • qq_22637049
  • 2017-06-21 09:39:34
  • 474
收藏助手
不良信息举报
您举报文章:ROS使用笔记本自带USB摄像头运行pi_face_tracker,进行人脸识别
举报原因:
原因补充:

(最多只允许输入30个字)