- use python3-mediapipe-pip on non-PAL environments While here, add missing dep on cv_bridge
- Contributors: Séverin Lemaignan
- fixed quality of service camera-related subscribers
- Contributors: lorenzoferrini
- rename diagnostics msg to match documentation (and diagnostic_aggregator) categories
- Contributors: Séverin Lemaignan
- linting
- Contributors: Séverin Lemaignan
- launch: use get_pal_configuration from launch_pal
- expose the 'deterministic_ids' in the _with_args launch file
- Contributors: Séverin Lemaignan
- Removed quotes from topic values
- Contributors: Raquel Ros
- fix configuration node name
- fix get _pal_configuration
- Contributors: Luka Juricic
- [launch] impl logic to load overlaid parameters This commit: - add (and install) default parameters values in config/00-defaults.yml - rename (unchanged) launch/face_detect.launch.py to launch/face_detect_with_args.launch.py - add a new launch/face_detect.launch.py that implements the PAPS-007 logic to fetch possible parameters, remappings and node arguments via ament_index
- Contributors: Séverin Lemaignan
- add pal module
- Contributors: Luka Juricic
- fix image calibration K name to lowercase k. This caused the publication of TF frames to be broken.
- assign default score detection in case of mesh detection
- add usage example to README
- Contributors: Luka Juricic
- port to ROS 2 Humble
- change license to apache2
- change folder structure
- Contributors: Luka Juricic
- rework filtering frame validation Now, does not pre-validate the filtering frame: simply try to transform to the filtering frame if it is provided, and continue without using filtering frame if it is not available. Helps in the case hri_face_detect starts before the robot's TF is fully published -> the filtering will start in the correct frame as soon as it become available.
- Contributors: Séverin Lemaignan
- port facedetection external cmake to project one
- add tkinter dependency
- Contributors: Luka Juricic
- fix library external project dependency
- Contributors: Luka Juricic
- change detector to Yunet - large refactor - remove record node - use timer based logic to process the most recent image only - add Yunet detector as standalone C library - add Yunet python bindings - use Yunet as always on detector - use Mediapipe face mesh detector to refine near faces - update documentation
- Contributors: Luka Juricic
- change RoI message type to hri_msgs/NormalizedRegionOfInterest2D
- Contributors: Luka Juricic
- added filtering_frame parameter the user can now decide which frame to use to filter the faces position
- Contributors: lorenzoferrini
- face pose filtering using the one-euro filter
- Contributors: lorenzoferrini
- add diagnostics
- Migrate to new python3-mediapipe rosdep key
- Contributors: Séverin Lemaignan, lukajuricic, mathiasluedtke
- ensure mediapipe is not called from 2 threads in parallel This was causing mediapipe internal timestamp issues
- Contributors: Séverin Lemaignan
- fix FacialLandmark object initialisation When face_mesh=False, the arguments for the FacialLandmarks objects initialisation were not correctly disposed, as the first element in a FacialLandmarks message is supposed to be a Header.
- Contributors: lorenzoferrini
- more update to hri_msgs-0.8.0
- Contributors: Séverin Lemaignan
- update to hri_msgs-0.8.0
- Contributors: Séverin Lemaignan
- ensure face id are strings starting with a letter
- [cosmetic] code formatting
- pep8 code formatting
- add tool to record faces
- Contributors: Séverin Lemaignan
- large refactor of the code In particular: - added a Face class to maintain the state of a detected face - reworked how detection results are returned, to simplify code
- publish aligned versions of the face under /humans/faces/<id>/aligned (aligned faces are rotated such as the eyes are always horizontal)
- warn about faces height and width having to be equal
- store various face publishers as dict to ease future extension
- Delegated face estimation process to function.
- publish empty list of faces upon closing to clean up state
- update launch file to match hri_fullbody arguments names
- [doc] node suitable for production
- Contributors: Séverin Lemaignan, lorenzoferrini
- Use tf frame from source image
- Contributors: lorenzoferrini
- changing the frames name syntax from face<id> to face_<id> and gaze<id> to gaze_<id> for compliance with ROS4HRI spec
- [minor] adding default value for camera topics in launch
- Documentation update
- Fixed the default number of detectable faces to 10
- Facial Landmark msg implementation Fully implemented facial landmark msg publishing for both basic face detection and face mesh detection
- Contributors: lorenzoferrini
- mediapipe Face-mesh based face detection It is now possible to decide between two Mediapipe different solutions for face detection: face_detection and face_mesh. Since the overall performance (taking into account cpu, memory and detection results) appears to be better in the latter case, face_mesh detection will be the default option.
- add missing deps
- [minor] launch file modified according to new features available It is now possible to specify the solution to use (face_detection/face_mesh) and the maximum number of faces detectable by the face_mesh model as launch file parameters
- max_num_faces as initialization parameter for FaceDetector class
- [WiP] Correcting face orientation and introducing gaze frame Face and gaze frame orientation according to ROS4HRI convention.
- Facial landmarks publishing Now publishing the facial landmarks according to the ROS4HRI definition, on the topic /humans/faces/<body_id>/landmarks. Additionally, the face frame is published now as face_<body_id> and the debug code has been removed.
- first rough implementation of PnP head pose estimation
- Contributors: Séverin Lemaignan, lorenzoferrini
- publish cropped faces under subtopic /cropped
- add _preallocate_topics parameter (instead of hard-coded constant)
- code formatting
- RegionOfInterestStamped -> regionOfInterest to match changes in hri_msgs 0.2.1
- Contributors: Séverin Lemaignan
- Added the dependency on python-mediapipe
- Publish an Empty msg on /hri_detect_face/ready when ready to start This is eg required for automated testing, to ensure the node is fully ready before publishing the first frames.
- added minimal node setup
- Added basic readme
- Simple, rough node using Google Mediapipe to perform fast face detection
- Contributors: Séverin Lemaignan