Welcome to Transbot SE repository
6.HD camera face tracking
6、Face Tracking
6、Face Tracking6.1、Face detection Introduction6.2. Operation steps6.2.1. Start6.2.2. PID adjustment6.2.3. Face tracking
6.1、Face detection Introduction
In OpenCV, face detection in video only reads each frame of image from the camera, and then uses the static image detection method for detection. Face detection requires the classifier:
@ Face detector(default): haarcascade_frontalface_default.xml
@ Face detector(fast Harr): haarcascade_frontalface_alt2.xml
@ Face detector(Side view): haarcascade_profileface.xml
@ Eye detector(left eye): haarcascade_lefteye_2splits.xml
@ Eye detector(right eye): haarcascade_righteye_2splits.xml
@ Mouth detector: haarcascade_mcs_mouth.xml
@ Nose detector: haarcascade_mcs_nose.xml
@ Body detector: haarcascade_fullbody.xml
@ Face detector(fast LBP): lbpcascade_frontalface.xml
@ Only open eyes can be detected: haarcascade_eye.xml
@ Only person with glasses can be detected: haarcascade_eye_tree_eyeglasses.xml
@ https://github.com/opencv/opencv/tree/master/data Download classifier file link
haarcascade_profileface.xml is the cascading data of Haar. This xml can be obtained from this link https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_profileface.xml
Next, we can start face detection by face_cascade.detectMultiScale (). We need to convert the image into a grayscale, then, transfer each frame of the image obtained by the camera into .detectMultiScale ().
(Note: we need to ensure enter the correct location of haarcascade_profileface.xml correctly.)
OpenCV API function:
detectMultiScale(const Mat& image, vector& objects, double scaleFactor=1.1,int minNeighbors, int flag,cvSize)
Parameter analysis:
image --- Input grayscale image
objects --- The rectangular box vector set of the detected object
scaleFactor --- Each scale parameter in the image scale, the default value is 1.1.
minNeighbors --- Default is 3.
minNeighbors --- The default value of 3 indicates that there are at least 3 overlap detections, so we think that the face is exist.
minSize --- Target minimum size
maxSize --- Target maximum size
6.2. Operation steps
6.2.1. Start
jetson motherboard/Raspberry Pi 4B
Start the face recognition tutorial (robot side)
roslaunch transbot_bringup bringup.launchrosrun transbot_facetracker face_follow.pyRaspberry Pi 5
Before running, please confirm that the large program has been permanently closed
Enter docker
Note: If there is a terminal that automatically starts docker, or there is a docker terminal that has been opened, you can directly enter the docker terminal to run the command, and there is no need to manually start docker
Start docker manually
xxxxxxxxxx./run_docker.sh

xxxxxxxxxxroslaunch transbot_bringup bringup.launch
Enter the same docker from multiple terminals
Keep the program of the previous docker terminal running and open a new terminal
Enter the following command
xxxxxxxxxxdocker ps
Enter the same docker and use the following 18870bc3dc00 to modify the ID displayed on the actual terminal.
xxxxxxxxxxdocker exec -it 18870bc3dc00 /bin/bash

xxxxxxxxxxrosrun transbot_facetracker face_follow.py
6.2.2. PID adjustment
Dynamic parameter tuning
jetson motherboard/Raspberry Pi 4B
xxxxxxxxxxrosrun rqt_reconfigure rqt_reconfigure
Raspberry Pi 5
Enter the same docker from multiple terminals
Keep the program of the previous docker terminal running and open a new terminal
Enter the following command
xxxxxxxxxxdocker ps