ros by example 人脸识别跟踪总结

发布时间:2024-11-02 19:01

《ros by example 人脸识别跟踪总结》

 最近一直在做人脸识别与跟踪这个方面的研究,想着几天下来接触过的知识几类容实在太多,时间一长有可能就会忘记,特别是编程时才犯的一些错误,等到下次在重新编译同一串代码时希望能提醒自己,节约时间,所以对这几天的工作做一些小的总结:
 此次主要针对《ros by example》这本书后面第十/十一/十二三章类容,因为后面三章主要讲述机器人在人脸检测/跟踪方面。
 首先在看之前要根据前面六章的类容把ros的基本环境给配置好,特别时rbx1这个包下载并编译好,书上有就不在说了。
 (1)安装openni,ros的相机驱动,所以直接在终端输入:
$ sudo apt-get install ros-indigo-openni-* ros-indigo-openni2-* \\ros-indigo-freenect-*
$ rospack profile 

下面测试你的camera,我是用的时xtion,所以输入:

$ roslaunch openni2_launch openni2.launch depth_registration:=true

接下来运行:$ rosrun image_view image_view image:=/camera/rgb/image_raw
你就可以看到一个小窗口图像了。
要是获取深度图像运行:$ rosrun image_view image_view
image:=/camera/ depth_registered /image_rect

然后Installing OpenCV on Ubuntu Linux:

$ sudo apt-get install ros-indigo-vision-opencv libopencv-dev \\python-opencv
$ rospack profile

检测一下安装是否正确:

$ python
>>> from cv2 import cv
>>> quit()

至此基本的相机方面的配置完成,可以看到成像,一般不会有什么错误。

(2)Face Detection

  1. 首先连接你的camera
    Kinect:$ roslaunch freenect_launch freenect registered-xyzrgb.launch
    xtion:$ roslaunch openni2_launch openni2.launch depth_registration:=true
  2. 运行人脸检测节点
$ roslaunch rbx1_vision face_detector.launch

这时出现的窗口就可以做简单的检测,效果挺差。。。
3. 使用光流法检测:roslaunch rbx1_vision lk_tracker.launch
效果要好点,但差强人意啊。
4. 建立人脸跟踪:$ roslaunch rbx1_vision face_tracker.launch
此时窗口中检测到的人脸框会随着你的移动二移动。
5. 针对4中的方法做了一个优化,对keypoint有一个增加和丢弃的选择过程:$ roslaunch rbx1_vision face_tracker2.launch
6. Color Blob Tracking (CamShift):$ roslaunch rbx1_vision camshift.launch

 注:***此过程中因为使用catkin_ws工作间中事先你导入的rbx1包,所以你每次打开一个新的终端运行其中的.launch文件时都要进行编译:$ catkin_make
   $ source devel/setup.bash***
 至此,书中的人脸检测基本结束,但是运行的效果真的是有点不太好,所以还在想这怎么改进,正在查阅相关资料,后续补充。。。

(2) 跟踪
1. 在虚拟环境中进行跟踪测试
首先一样,打开 xtion camera:$ roslaunch openni2_launch openni2.launch depth_registration:=true
依次打开新的终端,编译catkin_ws工作区间,然后输入
face_tracker2 node:$ roslaunch rbx1_vision face_tracker2.launch
object_tracker node:$ roslaunch rbx1_apps object_tracker.launch
turtlebot 模型:$ roslaunch rbx1_bringup fake_turtlebot.launch
rviz :$ rosrun rviz rviz -drospack find rbx1_nav/sim.rviz
这样基本上可以看到一个有光流法人脸检测跟踪的窗口了,这个效果还是可以的,基本检测到一个人时,一直到改人消失才会检测第二个人。
2. 测试对象跟随
打开camera:$ roslaunch openni2_launch openni2.launch depth_registration:=true
fake TurtleBot and RViz :
$ roslaunch rbx1_bringup fake_turtlebot.launch
$ rosrun rviz rviz -d
rospack find rbx1_nav/sim.rviz
face_tracker2 node:$ roslaunch rbx1_vision face_tracker2.launch
object_follower node:$ roslaunch rbx1_apps object_follower.launch
CamShift node:$ roslaunch rbx1_vision camshift.launch
依次运行即可。通过$ rostopic list 可以看到topic信息。

基本的情况就是这样了,后面还在看资料,有新的发现后续补充。。求有相关研究的大牛们能够给我一点指导和资料,加我也可以哦。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号