ROS+OpenCV 人脸识别,物体识别

本文详细介绍如何在ROS环境中搭建人脸识别及物体追踪系统,包括环境准备、功能包创建、程序编写、launch文件配置及执行步骤。通过具体代码示例,展示如何使用OpenCV进行人脸检测与追踪,并提供物体追踪的实现方法。

目录

人脸识别

1.环境准备

2.创建工作空间与功能包

3.人脸识别程序

4.launch文件

5.执行

物体追踪 


人脸识别

1.环境准备

首先准备ROS系统,基于ros的软件支持opencv,usbcam

apt install ros-kinetic-desktop-full

apt install ros-kinetic-opencv3

apt install ros-kinetic-usb-cam

2.创建工作空间与功能包

在创建功能包时导入依赖库

$ source /opt/ros/kinetic/setup.zsh
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ cd ~/catkin_ws
$ catkin_make 
$ souce ~/catkiin_ws/devel/setup.zsh
$ cd ~/catkin_ws/src
$ catkin_create_pkg test1 rospy roscpp std_msgs sensor_msgs cv_bridge image_transport 
$ cd ~/catkin_ws
$ catkin_make
$ source devel/setup.zsh

创建文件目录结构

scripts存放代码,launch存放启动文件

$cd test1
$mkdir launch scripts

3.人脸识别程序

$cd test1/scripts

$touch face_detector.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import rospy
import cv2
import numpy as np
from sensor_msgs.msg import Image, RegionOfInterest
from cv_bridge import CvBridge, CvBridgeError

class faceDetector:
    def __init__(self):
        rospy.on_shutdown(self.cleanup);

        # 创建cv_bridge
        self.bridge = CvBridge()
        self.image_pub = rospy.Publisher("cv_bridge_image", Image, queue_size=1)

        # 获取haar特征的级联表的XML文件,文件路径在launch文件中传入
        cascade_1 = rospy.get_param("~cascade_1", "")
        cascade_2 = rospy.get_param("~cascade_2", "")

        # 使用级联表初始化haar特征检测器
        self.cascade_1 = cv2.CascadeClassifier(cascade_1)
        self.cascade_2 = cv2.CascadeClassifier(cascade_2)

        # 设置级联表的参数,优化人脸识别,可以在launch文件中重新配置
        self.haar_scaleFactor  = rospy.get_param("~haar_scaleFactor", 1.2)
        self.haar_minNeighbors = rospy.get_param("~haar_minNeighbors", 2)
        self.haar_minSize      = rospy.get_param("~haar_minSize", 40)
        self.haar_maxSize      = ros
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值