一准备

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-* \ros-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
width: 131
height: 131
mask:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: ''
height: 0
width: 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
width: 291
height: 291
mask:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: ''
height: 0
width: 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后改改是极好的。

ROS之face recongination(cbo_peopel_detection)的更多相关文章

  1. 阿里云VPS服务器,ROS内网穿透

    Aliyun Windows Server 2008 R2中建立vpn服务器,ros中使用pptp拨号连接 2.在Aliyun服务器中,修改hosts,将内网分配的ip映射到指定的域名,在Aliyun ...

  2. QT下调试基于ros的catkin项目

    1.首先告诉qt ros的搜索路径,通过修改qt creator 桌面启动程序来实现 sudo    gedit ~/.local/share/applications/DigiaQtOpenSour ...

  3. ROS学习(三)—— ROS文件系统

    一.预备工作 使用ros0tutorials程序包,先下载: sudo apt-get install ros-<distro>-ros-tutorials 其中<distro> ...

  4. ROS学习(二)—— 配置ROS环境

    一.管理环境 p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 如果你在查找和使用ROS软件包方面遇到了问题,请确保你已经正确配置了脚 ...

  5. ROS学习(一)—— 环境搭建

    一.配置Ubuntu软件仓库且选择ROS正确版本 二.添加source.list sudo sh -c 'echo "deb http://packages.ros.org/ros/ubun ...

  6. [ROS] Studying Guidance

    Reference: https://www.zhihu.com/question/35788789 安装指南:http://wiki.ros.org/indigo/Installation/Ubun ...

  7. ros::spin() 和 ros::spinOnce() 区别及详解

    版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5925381.html 博主提示:本文基于ROS Kinetic Kame,如有更(g ...

  8. Learning Roadmap of Robotic Operating System (ROS)

    ROS Wiki: http://wiki.ros.org/ Robots Using ROS Textbooks: A Gentle Introduction to ROS Learning ROS ...

  9. k-develop 在ros上面的应用

    sudo apt-get install kdevelop 根据wiki上面的ros 章节中,关于kdevelop的介绍,配置好环境即可. 导入工程时,选中src/src下面的章节,不过,需要注意去掉 ...

随机推荐

  1. JAVA中价格金额的存储类型

    在java项目中,我们会遇到价格.金额的数据,这时候我们java中应该用BigDecimal类型,数据库用decimal类型, 长度可以自定义, 如18; 小数点我们项目中用的是2, 保留2位小数. ...

  2. 【LeetCode】8. String to Integer (atoi) 字符串转换整数

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 公众号:负雪明烛 本文关键词:字符串转整数,atoi,题解,Leetcode, 力扣,P ...

  3. 【LeetCode】217. Contains Duplicate 解题报告(Java & Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典统计词频 使用set 排序 日期 [LeetCo ...

  4. 【LeetCode】506. Relative Ranks 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 排序 argsort 堆 日期 题目地址:https ...

  5. 【LeetCode】697. Degree of an Array 解题报告

    [LeetCode]697. Degree of an Array 解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/degree- ...

  6. GCD - Extreme (II)(UVA11426)

    思路:欧拉函数: 欧拉函数,然后用下等差数列公式就行了. 1 #include<stdio.h> 2 #include<algorithm> 3 #include<ios ...

  7. Multiple(poj1465)

    Multiple Time Limit: 1000MS   Memory Limit: 32768K Total Submissions: 7183   Accepted: 1540 Descript ...

  8. 「算法笔记」数位 DP

    一.关于数位 dp 有时候我们会遇到某类问题,它所统计的对象具有某些性质,答案在限制/贡献上与统计对象的数位之间有着密切的关系,有可能是数位之间联系的形式,也有可能是数位之间相互独立的形式.(如求满足 ...

  9. 在Apache上用mod_wsgi部署Flask (python 3.8, Ubuntu)

    因为项目源码用了一些>python3.5的语法糖,但是Ubuntu的mod_wsgi包对应的是python3.5,所以采用从pip安装mod_wsgi的方法 参考: Flask教程 mod_ws ...

  10. vue使用自定义指令v-dialogDrag来控制element ui中el-dialog的拖动缩放,拉伸问题

    1 在vue的utils中新建一个dialogDrag.js import Vue from 'vue' Vue.directive('dialogDrag', { bind(el, binding, ...