LIPSFace™ SDK Overview
Last updated
Last updated
LIPSFace™ HW Series On-Device 3D Facial Recognition Camera Kit is designed for facial recognition applications. The camera kit supports both facial recogntion and liveness detection to deliver accurate and anti-spoofing 3D facial recognition. With depth accuracy of 0.3% @100cm, the camera kit effectively blocks spoofing attacks and makes user authentication more secure. Equipped with 940nm VCSEL, LIPSFace™ HW Series **** is suitable for the deployment in both indoor and outdoor environments with harsh light conditions.
LIPSFace™ HW Series enables you to build a facial authentication solution that prevents unauthorized access with a less than 0.001% Spoof Acceptance Rate, 99.00% True Acceptance Rate and a one in one million False Acceptance Rate.
With a fast and easy enrollment, only registered users are authenticated — and Face Recognition speed takes less than a second. On-device 3D facial recognition & anti-spoofing authentication could store up to 1000 IDs.
Notice: The sample codes as below are based on HW120/125 SDK v1.0.3.0 “LIPS_Samples/Ni2FaceRecognition-gl/Source/main.cpp”
Windows 10 (tested on windows 10, msvc 2017)
Linux Ubuntu 18.04/20.04 LTS (tested on ubuntu 18, gcc 7.5+)
Use CMake version 3.1 or above:
$ cd C:\Program Files\OpenNI2\LIPS_Samples\Ni2FaceRecognition-gl
$ mkdir Build
$ cd Build
$ cmake ..
5.
LIPSFace™SDK APIName
Language
Description
OS
Extra Cmake flag needed
Get serial number
C++
Get camera serial number.
Windows, Linux
None
Get firmware version
C++
Get camera firmware version
Windows, Linux
None
Get driver version
C++
Get camera driver version
Windows, Linux
None
Get supported video modes
C++
Provides a list of video modes that this camera can support
Windows, Linux
None
Get laser status
C++
Get the status of the laser
Windows, Linux
None
Set laser status
C++
Set the status of the laser
Windows, Linux
None
Face recognition
C++
Connect to device and perform face recognition
Windows, Linux
None
Face registration
C++
Enroll one face id for a new user.
Windows, Linux
None
Delete faces in face database
C++
Delete a registered user's face id from the database on device
Windows, Linux
None
Camera start/stop
C++
Start/stop data generation from this video stream
Windows, Linux
None
Get video mode
C++
Get the video mode the camera was configured to when the frame was produced and can be used
to determine the pixel format and resolution of the data. It will also provide the frame rate
that the camera was running at when it recorded this frame.
Windows, Linux
None
Set video mode
C++
Setter function for the resolution of this VideoMode
Windows, Linux
None
Query frame
C++
Read the next frame from this video stream
Windows, Linux
None
Mirror
C++
Enable or disable mirroring for this stream
Windows, Linux
None
The sample code shows how to get important device information from the library.
5.2
FaceRecognitionThe sample code shows basic usage of the library. It shows how to register a new user, how to recognize a user, and how to delete faces in database.
If you use LIPSFace SDK v1.0.3.0
unsigned short face_id = 0x0000;
devDevice.setProperty( LIPS_DEVICE_FACE_RECOGNITION, &face_id, sizeof( unsigned short ) );
unsigned short int result;
devDevice.getProperty( LIPS_DEVICE_FACE_RECOGNITION, &result );
If you use LIPSFace SDK v1.0.3.1 or later
devDevice.setProperty( LIPS_DEVICE_FACE_RECOGNITION, NULL, NULL );
unsigned short int result;
devDevice.getProperty( LIPS_DEVICE_FACE_RECOGNITION, &result );
2. Face registration - Enroll one face id for a new user
If you use LIPSFace SDK v1.0.3.0
unsigned short int face_id = 0x0000;
devDevice.setProperty( LIPS_DEVICE_FACE_REGISTRATION, &face_id, sizeof( unsigned short ) );
unsigned short int result;
devDevice.getProperty( LIPS_DEVICE_FACE_REGISTRATION, &result );
If you use v1.0.3.1 or later
devDevice.setProperty( LIPS_DEVICE_FACE_REGISTRATION, NULL, NULL );
unsigned short int result;
devDevice.getProperty( LIPS_DEVICE_FACE_REGISTRATION, &result );
``
3.
Face Deletion - Delete a registered user's face id from the database on deviceunsigned short face_id = 0xFFFF;
devDevice.setProperty( LIPS_DEVICE_FACE_DELETE_DATABASE, &face_id, sizeof( unsigned short ) );
unsigned short int result;
devDevice.getProperty( LIPS_DEVICE_FACE_DELETE_DATABASE, &result );
6.1
SDK Error Code (Facial Recognition/Face Registration)The list below is a partial list, please refer to most recent documents for updated material, including User Manual and Updates on each section on our documentation.
0xE001
Face Not Recognize
0xE002
No Face Detect
0xE003
Liveness Fail
0xE004
Mask Fail
0xE005
Liveness Fail
0xE006
Get Feature Fail
0xE00C
Has Shielding Fail
0xE00D
Eye Unclear
0xE00E
Low Confidence Landmark
6.2
SDK Warning Code (Facial Recognition/Face Registration)The list below is a partial list, please refer to most recent documents for updated material, including User Manual and Updates on each section on our documentation.
0xF001
Face distance too close
0xF002
Face distance too far
0xF003
Face angle too large (yaw/pitch/roll > angle threshold)
0xF004
Mask judge fail
0xF005
Face beyond the top edge
0xF006
Face beyond the bottom edge
0xF007
Face beyond the left edge
0xF008
Face beyond the right edge
0xF009
Face at the top left corner
0xF00A
Face at the bottom left corner
0xF00B
Face at the top right corner
0xF00C
Face at the bottom right corner
6.3
Function Map to Realsense F455