-
Notifications
You must be signed in to change notification settings - Fork 20
RAPP Face Detection
#Methodology
In the RAPP case, the face detection functionality is implemented in the form of a C++ developed ROS node, interfaced by a Web service. The Web service is invoked using the RAPP API and gets an RGB image as input, in which faces must be detected. The second step is for the Web service to locally save the input image. At the same time, the Face Detection ROS node is executed in the background, waiting to server requests. The Web service calls the ROS service via the ROS Bridge, the ROS node makes the necessary computations and a response is delivered.
In the current implementation the fast
input variable exists. If fast = False
, the face detection algorithm searches for faces both profile and en face and then cross-checks the results, aiming to provide the most precise result.
On the other hand, if fast = True
only profile faces are checked without further checking, thus the response if faster but not that precise.
#ROS Services
##Face detection
Service URL: /rapp/rapp_face_detection/detect_faces
Service type:
# Contains info about time and reference
Header header
# The image's filename to perform face detection
string imageFilename
# Flag to define if a fast detection is desired
bool fast
---
# Container for detected face positions
geometry_msgs/PointStamped[] faces_up_left
geometry_msgs/PointStamped[] faces_down_right
string error
#Launchers
##Standard launcher
Launches the face detection node and can be launched using
roslaunch rapp_face_detection face_detection.launch
#Web services
localhost:9001/hop/face_detection
Input = {
"file": “THE_ACTUAL_IMAGE_DATA”
"fast": true
}
Output = {
“faces”: [
{
“up_left_point” : {x: 10, y: 30},
“down_right_point” : {x: 100, y: 200}
},
{
…
}
]
}
The full documentation exists here
RAPP Project, http://rapp-project.eu/