实验二 ROS结合OpenCV示例——人脸识别

一、实验原理:

Opencv库是一个基于BSD许可发行的跨平台开源计算机视觉库,基于opencv库,可以很方便的入手机器视觉方面的应用,ros已经集成了opencv库和相关接口功能包;
人脸识别的目的是在输入图像中确定人脸的位置、大小、姿态。利用大量样本的Haar特征进行分类器训练,然后调用训练好的瀑布型级联分类器cascade进行模式匹配。进而获取二维包围框。

二、实验步骤:

<1> 安装opencv 以及串口功能包

$ sudo apt-get install ros-kinetic-vision-opencv libopencv-dev python-opencv

接口功能包的作用就是将ROS中的图像数据转换成opencv格式的图像,并且调用opencv库进行各种图像处理。

<2> 测试opencv串口是否安装成功

(使用usb摄像头示例,作业:使用orbbec实现同样功能)
打开USB摄像头:

$ roslaunch robot_vision usb_cam.launch    (usb摄像头)

启动rqt

$ rosrun rqt_image_view rqt_image_view

此时选择image_raw
在这里插入图片描述
然后使用test查看效果:

$ rosrun robot_vision cv_bridge_test.py

使用usb摄像头时候test.py中的数据:
在这里插入图片描述
如果用orbbec时候需要改动此处为:/amera/rgb/image_raw
在这里插入图片描述
该命令启动另一个视频窗口,如下所示:
在这里插入图片描述
此窗口显示一个红色圆点,是通过opencv转化之后,画上去的小红点。
<3> 调用usb摄像头驱动

$ roslaunch robot_vision usb_cam.launch    (usb摄像头)
$ roslaunch astra_launch astra.launch    (orbbec摄像头)

<4> 启动人脸功能

$ roslaunch robot_vision face_detector.launch 

<5> 启动rqt显示功能

$ rosrun rqt_image_view rqt_image_view

请添加图片描述

三、程序分析:

face_detector.launch文件里面主要程序是face_detector.py源程序,程序主要内容如下所示
初始化

#创建cv_bridge
#获取haar特征的级联表xml文件,文件路径在launch文件中传入
#使用级联表初始化haar特征检测器
#设置级联表参数,优化人脸识别,
#初始化订阅rgb格式图像数据订阅者
ROS 回调函数
#将ROS中的图像数据转换成opencv格式的图像
#创建灰度图像
#创建平衡直方图
#尝试检测人脸
#在opencv窗口框出人脸
#发布识别后的图像
人脸识别
#首先匹配正面人脸模型
#如果正面人脸模型匹配失败,尝试侧面人脸匹配

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值