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安装USB摄像头

ROS安装USB摄像头

基于OpenCV读取摄像头进行人脸检测和人脸识别

前段时间使用OpenCV的库函数实现了人脸检测和人脸识别,笔者的实验环境为VS2010+OpenCV2.4.4,OpenCV的环境配置网上有很多,不再赘述。检测的代码网上很多,记不清楚从哪儿copy的...

在ROS 使用摄像头 WebCam 完成图像处理(2) -- 初探OpenCV

在ROS 使用摄像头 WebCam 完成图像处理(2) -- 安装OpenCV库   在上一节,我们通过ros中 uvc_camera 包下的 uvc_camera_node 得到了摄像头的 rgb ...
  • sonictl
  • sonictl
  • 2015年09月28日 11:10
  • 1478

在ROS中使用USB网络摄像头传输图像

转自:http://blog.csdn.net/yake827/article/details/44983093 在上节已经实现了单张图片的ROS实现,而在现实中,我们一般是使用摄像头来获取...
  • mxgsgtc
  • mxgsgtc
  • 2017年05月15日 14:24
  • 589

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

刚刚实现了单张图片的ROS实现,而在现实中,我们一般是使用摄像头来获取图像,这次就来实现在ROS中使用摄像头传输图像,我使用的是罗技的usb网络摄像头,首先要安装摄像头驱动,...
  • yake827
  • yake827
  • 2015年04月10日 18:11
  • 6137

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

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

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

在上节已经实现了单张图片的ROS实现,而在现实中,我们一般是使用摄像头来获取图像,这次要实现在ROS中使用摄像头传输图像,我使用的是罗技的usb网络摄像头,首先我们需要获取摄像头的型号,如下所示: ...

开山第一篇笔记+教程(发给热爱ROS的童鞋)——ROS下读取摄像头图像 图像转换

写一个node节点,接收图像,并将处理后的图像发布出去。 关于(不注意Note 的童鞋在这上面浪费好多时间) http://wiki.ros.org/cv_bridge_redesign ...

在ROS 使用摄像头 WebCam 完成图像处理(1) -- 获取图像数据

在ROS 使用摄像头 WebCam 完成图像处理(1) -- 获取图像数据 我们要使用摄像头,先要能看到摄像头图像:(见附录) 然后我们这里是参考《ros_by_example》( volume1 ...
  • sonictl
  • sonictl
  • 2015年08月30日 16:58
  • 6097

ROS下使用摄像头

1 . 前言 在ROS下常用的主要有两种驱动包:usb_cam和uvc_cam。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ROS使用笔记本自带USB摄像头运行pi_face_tracker,进行人脸识别
举报原因:
原因补充:

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