目录
1.使用电脑摄像头进行人脸识别
1.1 安装usb_cam
sudo apt-get install ros-kinetic-usb-cam
1.2 安装robot_vision
(1)下载robot_vision安装包
git clone https://github.com/1417265678/robot_vision
(2)将安装包解压后放进工作空间catkin_ws/src内,进行编译
(3)运行代码
$ roslaunch robot_vision usb_cam.launch
$ roslaunch robot_vision face_detector.launch
$ rqt_image_view
在rqt_image_view中选择/cv_bridge_image主题
注意:在运行的时候可能会出现以下的问题
ERROR: cannot launch node of type [robot_vision/face_detector.py]:
can't locate node [face_detector.py] in package [robot_vision]
解决方法:
(1)source一下工作空间
(2)给python文件权限
sudo chmod +x robot_vision/face_detector.py
如果出现问题:
ERROR: Could not load classifier cascade
OpenCV Error: Assertion failed (!empty()) in detectMultiScale, file /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/objdetect/src/cascadedetect.cpp, line 1698
terminate called after throwing an instance of 'cv::Exception'
what(): /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/objdetect/src/cascadedetect.cpp:1698: error: (-215) !empty() in function detectMultiScale
参考文章:https://blog.csdn.net/qq_41906592/article/details/114894380?spm=1001.2014.3001.5501
2.使用Kinect V2实现人脸识别
2.1 安装Kinect 驱动
按照我前面的一篇文章,安装KInect 的驱动。
https://blog.csdn.net/qq_41906592/article/details/112231524
2.2 运行kinect驱动程序
$ roslaunch kinect2_bridge kinect2_bridge.launch
$ rosrun kinect2_viewer kinect2_viewer
2.3 修改程序
打开robot_vision文件夹,位置:robot_vison/launch/face_detector.launch
<launch>
<node pkg="robot_vision" name="face_detector" type="face_detector.py" output="screen">
<remap from="input_rgb_image" to="/usb_cam/image_raw" />
<rosparam>
haar_scaleFactor: 1.2
haar_minNeighbors: 2
haar_minSize: 40
haar_maxSize: 60
</rosparam>
<param name="cascade_1" value="$(find robot_vision)/data/haar_detectors/haarcascade_frontalface_alt.xml" />
<param name="cascade_2" value="$(find robot_vision)/data/haar_detectors/haarcascade_profileface.xml" />
</node>
</launch>
将第三行修改为:
<remap from="input_rgb_image" to="/kinect2/qhd/image_color" />
2.4 运行程序
$ roslaunch robot_vision face_detector.launch
$ rqt_image_view
在rqt_image_view中选择/cv_bridge_image主题。如果操作无误,可现实如下内容