目录
人脸识别
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

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

被折叠的 条评论
为什么被折叠?



