As of February 29th, 20240, realsense_id_ros is no longer maintained, and no further changes will be made to it (including security-related changes).
Since the Intel announcement of the end of life for the RealSense ID product, the official support for the RealSense ID SDK has been discontinued. As a result, the realsense_id_ros package is no longer maintained.
This package enables the use of Intel RealSense ID (F455 and F450) cameras with ROS. The Intel RealSense ID camera is a facial authentication on-device solution.
The package exposes the camera as a ROS node, allowing users to configure it for authentication and enrollment in either device mode (inside the camera) or server mode (using a faceprint database). Additionally, it publishes the preview image.
In both device and server modes, authentication and enrollment are available as ROS services. Other services that can be accessed include user removal and querying the list of IDs.
Furthermore, all camera parameters can be changed online using the device's onboard configuration.
Keywords: ROS2, Intel RealSense ID, face recognition
The source code is released under a Apache license 2.0.
Author: Alberto Tudela
The realsense_id_ros package has been tested under ROS2 Humble on Ubuntu 22.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
- Robot Operating System (ROS) 2 (middleware for robotics),
- Intel RealSense ID SDK v0.25
- face_msgs (Messages and services for face recognition)
Build the Intel RealSense ID SDK as follows:
$ cd $HOME
$ git clone https://github.com/grupo-avispa/RealSenseID.git
$ cd RealSenseID
$ mkdir build && cd build
$ cmake .. -DRSID_PREVIEW=1 -DRSID_DEBUG_CONSOLE=OFF -DRSID_INSTALL=ON
$ make -j
$ sudo make install
After, Intel RealsenseID permissions script from root directory:
./scripts/setup_udev_rules.sh
To build from source, clone the latest version from this repository into your colcon workspace and compile the package using
cd colcon_workspace/src
git clone https://github.com/ajtudela/realsense_id_ros.git -b humble
cd ../
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install
To start the camera node in ROS:
ros2 run realsense_id_ros realsense_id_ros_node
Camera node to perform facial recognition.
-
faces
(face_msgs/FaceArray)Array with the detected faces.
-
camera_info
(sensor_msgs/CameraInfo)Information about the camera intrinsic parameters.
-
image_raw
(sensor_msgs/Image)Image with the bounding boxes surrounding the detected faces.
-
authenticate
(face_msgs/Authenticate)Perform one authentication on the device or on the server. Returns an array of faces with users id and an image of the faces. For example, you can trigger the computation from the console with
ros2 interface call /realsense_id_ros_node/authenticate
-
device_info
(face_msgs/DeviceInfo)Get information of the device. on the server. For example, you can trigger the computation from the console with
ros2 interface call /realsense_id_ros_node/device_info
-
enroll
(face_msgs/Enroll)Perform one enrollment for one new user on the device or on the server. Returns a face with the bounding box and the name of the user. For example, you can trigger the computation from the console with
ros2 interface call /realsense_id_ros_node/enroll
-
remove_user
(face_msgs/RemoveUser)Remove an user from the device or from the server database. For example, you can trigger the computation from the console with
ros2 interface call /realsense_id_ros_node/remove_user
-
remove_all_users
(face_msgs/RemoveAllUsers)Remove all users from the device or from the server database. For example, you can trigger the computation from the console with
ros2 interface call /realsense_id_ros_node/remove_all
-
query_users_id
(face_msgs/QueryUsersId)Query the ids of the users. Returns the number of users and an array of ids. For example, you can trigger the computation from the console with
ros2 interface call /realsense_id_ros_node/query_users_id
-
serial_port
(string, default: "/dev/ttyACM0")Will attach to the device with the given serial port.
-
server_mode
(bool, default: "false")Option to manage a faceprints database on the host or the server.
-
database
(string, default: "")Path to the database folder.
-
camera_rotation
(int, default: "0")Enable the algorithm to work with a rotated device.
-
security_level
(string, default: "medium")Set security level to 'high' to allow no mask suport or to level 'medium' to support masks.
-
algo_flow
(string, default: "all")Algorithms which will be used during authentication: 'all', 'detection', 'recognition' and 'spoof'.
-
face_selection_policy
(string, default: "all")Face selection policy to run authentication on 'all' (up to 5) detected faces vs 'single' (closest) face.
-
dump_mode
(string, default: "none")Set mode for dump image: 'none', 'cropped' or 'fullframe'.
-
matcher_confidence_level
(string, default: "medium")Used in the matcher during authentication, each level means a different set of threshold is used.
- Use global dependencies.
- Preview snapshot of the faces.
- Multiple faces.
- Host mode.
- Load and backup of faceprints database in a JSON file.
- Pair device.
- Secure mode.
- Option to use authentication loop with published topics.
- Dynamic reconfigure server.
- Extract features from RGB image.
- Add mutex to the captured image.
- Convert nodes to LifeCycleNodes.