Welcome to the age of advanced technology! Among the cutting-edge solutions capturing attention is Computer Vision, and at the forefront is our platform — Sertis CV API Platform. Allow us to present a game-changer that seamlessly integrates your system/application with computer vision capabilities, currently focusing on FaceAPI.
In response to the escalating demand for robust and efficient face recognition solutions, our CV API Platform simplifies Face Detection, Face Verification, and incorporates Liveness checking.
The CV API Platform is presently emphasizing its face recognition solutions, incorporating face quality assessments. These assessments involve checks for blur, facial features, PAD (Presentation Attack Detection), and pose. Explore this article for more information to delve deeper into the algorithms. The following are the supported endpoints:
- Face Detection: detect all faces in an image
- Face Verification: verify if the persons in two images are the same individual
- Liveness PAD: verify if the image contains a real person
- Liveness Blink: verify if a video contains a real person blinking
- Blink Verification: verify if the person in the video blinks and is the same person in the image
Infrastructure and Technology
The components of the CV API Platform consist of APIs and model servings, implemented as asynchronous REST APIs and gRPC servings hosted within a Kubernetes cluster. The cluster is configured with auto-scaling capabilities to ensure the system’s reliability and its ability to efficiently manage varying user loads.
The API serves as a pipeline orchestrator and aggregator, particularly when dealing with multiple tasks for a single call. In the context of face verification, for instance, if the FaceAPI has to perform quality checks for both images, it will handle these tasks concurrently.
Additionally, we’ve integrated several tools for logging and metrics in order to monitor the system, ensuring that all components operate smoothly and remain operational.
As mentioned earlier, the API will be hosted as REST API. The input and output will be JSON format. The image, and video will be transferred using base64 format
This endpoint provides face detection for an image.
- Input: an image
- Output: detected faces (each face contains a bounding box, 5 landmark points, and face pose), and message
This endpoint provides face verification between two individuals from two images.
- Input: 2 images
- Output: same person flag, distance, 2 faces, and message
This endpoint performs a face liveness check for an image.
- Input: an image
- Output: liveness flag, score, and message
This endpoint conducts a face liveness check for a video.
- Input: a video
- Output: liveness flag, score, number of blinks, best frame, and message
This endpoint combines Liveness Blink and Face Verification between a person in the video and the image.
- Input: an image and a video
- Output: same person flag, distance, number of blinks, best frame, and message
Real Use Cases
Liveness check for face registration
Liveness PAD and Liveness Blink can be executed using any device by simply sending an image or video to the API.
Face Verification for Banking and Security service
Comparing the facial features of an image extracted from a Thai ID card with an image or video captured from a camera for face verification.
Security and Privacy
In terms of API security, all services are securely hosted within a Kubernetes cluster. The APIs and model servings are interconnected through a private network. Clients are required to possess an API key for accessing the API.
Concerning data privacy, Sertis ensures that no images or videos sent to the API are collected. All data undergoes processing within the API and model servings without any storage or reuse elsewhere.
Performance and Reliability
Sertis conducted load testing on each endpoint, employing 100 concurrent users with a spawn rate of one user per second, facilitated by the Locust tool. The spawn rate denotes the incremental addition of users, starting from one user. Consequently, the load test initiates with a single concurrent user, escalating by one user every second, reaching a total of 100 users at the 100-second mark. Following the attainment of 100 concurrent users, a minimum waiting period of 10 minutes is observed to ensure the absence of server downtime or errors, and response time is acceptable.
Post the completion of load testing, a comprehensive evaluation affirms the effective functioning of our configuration, demonstrating proficiency in both horizontal and vertical scaling.
Moreover, our Site Reliability Engineering Team has implemented monitoring incident alerts to promptly address any issues. Notifications are disseminated to our Slack Channel, and through phone calls if the identified issues persist unresolved.
Future of CV API Platform
Additional APIs are almost accessible, and further APIs are planned for the future:
- Face API (1:N): Facilitates face registration and search functionalities.
- Thai ID API: Thai ID Card detection, and information extraction using OCR e.g. name, ID, address, birthdate, expiry date, etc. See this for more information about the pipeline
- ALPR API: Car detection, Car type detection, License Plate detection, License Plate OCR
Stay tuned for more upcoming APIs. 😄
Sertis CV API Platform introduces cutting-edge Computer Vision capabilities, emphasizing face recognition solutions with robust features. The platform ensures reliability and scalability while core functionalities currently include Face Detection, Verification, and Liveness checks. Security measures prioritize client privacy, ensuring no data collection. Performance is validated through load testing, demonstrating horizontal and vertical scaling proficiency. The future holds promises of additional APIs, expanding functionalities for face registration, Thai ID detection, and ALPR capabilities. Stay tuned for upcoming developments.