6、Face Tracking6.1、Face detection Introduction6.2、Operating steps6.2.1、Start up6.2.2、PID tuning6.2.3、Face tracking
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
Start the face tracking.(Jetson nano side)
roslaunch transbot_bringup bringup.launch
rosrun transbot_facetracker face_follow.py
Dynamic parameter debugging
xxxxxxxxxx
rosrun rqt_reconfigure rqt_reconfigure
Select the 【faceTracker】 node to adjust 【Kp】,【Ki】,【Kd】 and【scale】. When the slider is in the dragging state, the data will not be passed into the system, only after release; You can also select a row and then scroll the mouse wheel.
After running the program, when the face is displayed in the picture, when a square surrounds the face, the Yuntai camera will move with the movement of the face.