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

人脸识别在机器人应用当中算是一个热门的应用,在网上找了一些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 



评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder加油!

感谢您的认可和支持!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值