• ROS之face recongination(cbo_peopel_detection)


    一准备

    Ros的cbo_people_detection网站http://wiki.ros.org/cob_people_detection

    某网站来自Amir:http://edu.gaitech.hk/turtlebot/openKinect-turtlebot.html

    作者github:https://github.com/ipa320/cob_people_perception/tree/indigo_dev  可以问答并寻找关闭的问题

    二安装

    安装驱动

    注意最后一个才是我们的摄像机Kinect要用的!!!!

    sudo apt-get install ros-indigo-openni-*ros-indigo-openni2-* os-indigo-freenect-*

    安装cbo_people_detection包

    cd && mkdir -p catkin_ws/src&& cd catkin_ws/src && catkin_init_workspace && cd ..

    catkin_make && cd src

    git clonehttps://github.com/ipa-rmb/cob_people_perception.git

    git clonehttps://github.com/ipa-rmb/cob_perception_common.git

    cd .. && source devel/setup.bash
    rosdep install --from-path src/ -y -i
    catkin_make -DCMAKE_BUILD_TYPE="Release"


    rosdep install --from-path src/ -y –i这句出错没事

    catkin_make -DCMAKE_BUILD_TYPE="Release"改成catkin_make似乎也ok。

    三开始运行cbo_people_detection

    检测Kinect摄像头


    如果只有


    而没有Camera说明电流也许不够(也许大概是电流吧),反正下面的智障导致我好几天没有进度。下面的估计坏了。


    运行roscore


    (可以用rqt来检测图像了,看图形了,rqt是ros自带的一个模拟器)(有时候犯抽,看不到,机器人导航照样可以,过几天又可以了,扯淡,玄学玄学)

    运行Kinect驱动


    警告什么的不要管

    运行人脸识别主程序(包含服务器)


    会加载一大堆参数,以后想改可以改

    这是已加载的人脸模型。

    摄像机会延迟一会打开。



    四人脸识别训练

    rosrun cob_people_detectionpeople_detection_client

    参见官网


    l  1.添加人脸识别图片,没名就新建,重名就加入(自动或手动)

    l  2.更新人脸数据库条目(人脸的集合的名字)

    l  3.删除数据库

    l  4.加载人脸模型,会清零现有的人脸模型,要把更新的和要用人脸集合的加上(不知去不区分大小写??)

    l  5.打开传感器网关???

    l  6.得到人脸识别,会强制打开传感器网管,并打开一个topic来传结果

    执行的结果主程序那边会有反应,那边是服务器端,这边只是训练用的客户端。

    五得到人脸识别的值

    rostopic echo/detection_tracker/face_position_array




    没有符合的脸的返回值

    ---
    header: 
      seq: 9031
      stamp: 
        secs: 1494850302
        nsecs: 287560288
      frame_id: camera_rgb_optical_frame
    detections: []
    ---
    

    Face识别的返回值

    header: 
      seq: 525
      stamp: 
        secs: 1494753634
        nsecs: 666978723
      frame_id: camera_rgb_optical_frame
    detections: 
      - 
        header: 
          seq: 525
          stamp: 
            secs: 1494753634
            nsecs: 666978723
          frame_id: camera_rgb_optical_frame
        label: ssy
        id: 0
        detector: face
        score: 0.0
        mask: 
          roi: 
            x: 207
            y: 68
             131
            height: 131
          mask: 
            header: 
              seq: 0
              stamp: 
                secs: 0
                nsecs: 0
              frame_id: ''
            height: 0
             0
            encoding: ''
            is_bigendian: 0
            step: 0
            data: []
        pose: 
          header: 
            seq: 468
            stamp: 
              secs: 1494753621
              nsecs: 886631020
            frame_id: camera_rgb_optical_frame
          pose: 
            position: 
              x: -0.0529285743833
              y: -0.118671439588
              z: 0.585000038147
            orientation: 
              x: 0.0
              y: 0.0
              z: 0.0
              w: 1.0
        bounding_box_lwh: 
          x: 0.0
          y: 0.0
          z: 0.0
    ---
    

    Head识别的返回值



    ---
    header: 
      seq: 266
      stamp: 
        secs: 1494753576
        nsecs: 404708677
      frame_id: camera_rgb_optical_frame
    detections: 
      - 
        header: 
          seq: 266
          stamp: 
            secs: 1494753576
            nsecs: 404708677
          frame_id: camera_rgb_optical_frame
        label: ssy
        id: 0
        detector: head
        score: 0.0
        mask: 
          roi: 
            x: 145
            y: 46
             291
            height: 291
          mask: 
            header: 
              seq: 0
              stamp: 
                secs: 0
                nsecs: 0
              frame_id: ''
            height: 0
             0
            encoding: ''
            is_bigendian: 0
            step: 0
            data: []
        pose: 
          header: 
            seq: 7
            stamp: 
              secs: 1494753518
              nsecs: 708872874
            frame_id: camera_rgb_optical_frame
          pose: 
            position: 
              x: -0.0262971445918
              y: -0.0432342886925
              z: 0.468000024557
            orientation: 
              x: 0.0
              y: 0.0
              z: 0.0
              w: 1.0
        bounding_box_lwh: 
          x: 0.0
          y: 0.0
          z: 0.0
    ---
    

    六客户端出现找不到服务器的问题

    找不到,没开主程序服务器就开了客户端。
    人脸识别的模型库中没有或只有一个模型

    如果你有一个训练的人脸模型在ros/launch/face_recognizer_params.yaml文件中改为0或1,但如果你没有,只好复制一个了。为何会出现这样的尴尬情况我也不知道会这样。。。也许第一次启动时错过了初始化的机会。。。

    打开隐藏文件.ros

    Training文件就是训练了


    七更改识别精度

    主程序加载的识别文件配置


    官网的ros/launch/detection_tracker_params.yaml文件介绍


    这两项决定人脸识别的精度

    Rate越小精度越高,score越大精度越高

    八问题和ros交互

    arduinoROS包无法导出人脸消息

    可以检测出人脸消息,但无法取到里面的值

    估计和我的依赖有问题。用它做个人脸识别还可以。

    不过高精度会对人脸的位置要求很高。它总是试图识别出库中的一个人,而没给出相似度之类的。

    会opencv后改改是极好的。


  • 相关阅读:
    [洛谷P2523] HAOI2011 Problem c
    [CF156D] Clues
    [洛谷P4769] NOI2018 冒泡排序
    [CF605E] Intergalaxy Trips
    [洛谷P4492] HAOI2018 苹果树
    [洛谷P3349] ZJOI2016 小星星
    [洛谷P4336] SHOI2016 黑暗前的幻想乡
    [洛谷P5364] SNOI2017 礼物
    [洛谷P2606] ZJOI2010 排列计数
    [洛谷P6078] CEOI2004 candy
  • 原文地址:https://www.cnblogs.com/fengmao31/p/13881247.html
Copyright © 2020-2023  润新知