Livesness Detection & Face Anti-Spoofing Security Feature Available for FACEIO

The FACEIO development team is pleased to announce the immediate availability of our Liveness Detection, Presentation Attacks Mitigation (PAD) & Face Anti-Spoofing Security Option. A highly requested feature by our customers that is now deployed & fully operational on FACEIO thanks to a PixLab implementation.

FACEIO Landing Page

Liveness detection in biometrics is the ability for a system to detect if the target face is real from a live person present at the point of capture or fake from a spoof artifact or lifeless body part.

Face Anti-Spoofing on the other side, is the task of preventing false facial authentication when implementing fio.js, our facial recognition library on your web site or application using a smartphone picture, or printed image for an authorized person's face.

Face Anti-Spoofing Security Option

Presentation Attacks Mitigation

With this security option enabled, Smartphone & Print Attacks originating from a static image or video stream are easily deterred during Authentication & Enrollment when enabled for your FACEIO application.

The Face Anti-Spoofing Security Option is immediately available to trigger from the Application Manager (Security Tab) on the FACEIO Console.

Press Release & Model Roadmap

Our Press Release document including a general overview of the approach used to implement Face Anti-Spoofing for FACEIO is available to consult at: cdn.faceio.net/faceio_liveness_detection.pdf.

This implementation & further model enhancements, are pushed transparently, and no action or code changes are required on your side. Just an option to trigger from the Application Manager on the FACEIO CONSOLE.

Implementation Overview

Once a new user enroll or authenticate on your application, the Face Anti-Spoof engine shall be triggered to filter out spoof & presentation attacks. Upon an attack is detected, the fioErrCode.PAD_ATTACK error code is raised, and you should act accordingly such as banning the acting user depending on your policy.

Please note that Face Anti-Spoofing mitigation is a resource intensive operation, therefore it is available starting from the Business Plan, and up. Nevertheless, it takes less than 600 milliseconds to execute thanks to a heavily optimized implementation.

NPM Package Released for FACEIO

FACEIO NPM Package

We are pleased to announce the graduation of the FACEIO's NPPM Package from beta to general availability, so it's even easier to leverage the power of facial authentication to your Node based web application.

The fio.js NPM package supports Web developers using FACEIO by reducing friction when implementing fio.js, our facial recognition library on their web sites or apps regardless of the underlying JavaScript framework whether it is React, Angular, Vue, Next, React Native or even Vanilla JavaScript.

Getting Started

To help you get started using FACEIO' NPM Package, we've outlined some basic steps below. For more information, refer to the official integration guide:

Community Tutorials

The following, high-content, community contributed guides & tutorials should help you implement fio.js on your web application using your favorite JavaScript framework:

Share Your Feedback

Finally, if you’ve had a chance to use the new FACEIO' NPM Package, and have any feedback or suggestions you’d like to share, please do reach out to us on the GitHub repository or open a new support ticket via the FACEIO Console. We really look forward to hear back from you!

If you encounter any bugs or technical issues while using our new NPM Package, we want to know so we can make things right. Please be sure to file a report on our GitHub repository.

Webhooks Enhancements & Performance Improvements

FACEIO Landing Page

Starting with the major release of fio.js 1.9, FACEIO Webhooks have been rebuilt from the ground up to improve latency and provide new functionality like payload field inclusion which is available starting from the Business Plan, and up.

Webhooks allows you to receive data and get notified at real-time about the ongoing events during the interaction of the FACEIO Widget with your users (eg. New user enrollment or authentication) in-order to keep your application backend up-to-date & synchronized. FACEIO uses Webhooks to let your system know when such events happen. Events includes New User Enrollment, Facial Authentication Success, Facial ID Deletion, and many other events.

When an event occurs, FACEIO makes an HTTP POST request to the URL you configured for the Webhook. FACEIO’s request includes details of the ongoing event such as the Unique Facial ID of the user being enrolled or authenticated, its gender & age in case of new enrollment, timestamps, event type, IP information, linked payload, and many others details.

Enabling Webhooks

Registering your Webhook endpoint URL for receiving events for your FACEIO application is straightforward as shown in the detailed steps below:

  1. Connect to your account via the FACEIO Console first.
  2. From the console main view, visit the Application Manager.
  3. Select the target application for which you want to setup webhooks for.
  4. Navigate to the WEBHOOKS tab from the manager main view.
  5. Once the target application selected. Enter your Webhook Endpoint URL for receiving events and save your modification.
  6. You're all set. Upon an event is triggered, FACEIO shall make an HTTP POST request to the URL you configured for the Webhook with the appropriate fields.

Major Enhancements

Starting with the 1.9 release, here are the quick highlights, with more details in the Webhooks page dedicated documentation:

  • Faster notifications.
  • JSON Based POST Requests.
  • IPv6 Support.
  • Payload Field Inclusion.
  • HTTP1.1/2 Protocol Support.
  • Full Support for TLS 1.3 Requests.

fio.js V1.9 Released with Face Duplication Prevention

FACEIO Logo

The PixLab development team is pleased to announce the immediate availability of FACEIO's fio.js V 1.9. A major release which implements highly requested features from our customers including but not limited to:

  • Face Duplication (same user enrolling twice or more) Prevention.
  • Dynamic Session Reloading without Page Refreshing.
  • Faster facial features collection during enrollment.
  • Upto 1.3x faster facial authentication operation.
  • French, Japanese, Vietnamese & Dutch new language packs.

As usual, this update is transparent to our end users & fio.js implementers, and no action is required on your side if you link directly the library from the FACEIO CDN.

Face Duplication Prevention:

Face Duplication Prevention

When enabled, this option shall prevent the same user from enrolling twice or more on your application. That is, if the facial features of the user being enrolled are already recorded, the enroll operation is aborted, and the fioErrCode.FACE_DUPLICATION error code is raised to your host application instead. This option is immediately available to trigger from the FACEIO Console. Please refer to the updated boilerplate code to see this feature in action.

When this option is disabled (default case), it is considered, a no-error operation for the same user to enroll twice or more on your application. This will trigger a collision, and ask the user to confirm his PIN code whenever an authentication operation occurs with the user in question.

Session Reloading without Page Refreshing:

The introduced restartSession() method let you purge the current user session and request a new one. By default, sessions in FACEIO starts following the first call to the enroll() or authenticate() method whichever comes first, and are immutable. After successful call to this method, the old session is discarded, a new one is created, and you can perform another round of calls to enroll() or authenticate() for the same user without reloading (refreshing) the entire HTML page or relying on an external JavaScript function such as location.reload() to do so.

Please note that dynamic session generation via this method are available to the Premium Plans only. Think of upgrading your Freemium application from the FACEIO Console first before calling this method on your frontend

Finally, for additional information & to learn more about implementing FACEIO on your website or web application, please refer to the following documents:

  • Getting Started Tutorial: Learn the fundamentals about implementing facial authentication on a typical web application.
  • Integration Guide: Learn how to implement fio.js, our facial recognition library on your website.
  • Developer Center: Code samples, documentation, support channels, and all the resources yo need to implement FACEIO on your website.
  • Frequently Asked Questions: Get instant answers to the most common questions.
  • Trust Center: Learn how we handle your data securely and in compliance with privacy and legal requirements.

Press Release & New Languages Pack for FaceIO

We are pleased to share our Press Release launch document, as well as, new enhancement introduced to FaceIO, our Web based facial Recognition framework for Websites & Web applications with a set of new languages pack for a more than friendly user experience (UX).

New FaceIO language pack

Since its launch two months ago, FaceIO have been proven to be a rock solid product, with a slick & easy integration regardless of the underlying JavaScript framework whether it is React.js, Next.js, Vue.js, Angular or even Vanilla JavaScript. As of this announcement, Over 10K FaceIO Applications has been deployed, easing users authentication thanks to a passwordless experience powered by face recognition.

Available Language Pack

  • English (en Default, fallback language)
  • German (de)
  • Portuguese (pt)
  • Spanish (es)
  • Dutch (nl)
  • Japanese (ja)
  • French (fr)
  • Vietnamese (vi)
  • Indonesian (id)
  • Malay (ms)
  • Turkish (tr)

Upcoming Language Pack

  • Korean (kr)
  • Arabic (ar)
  • Italian (it)
  • Simplified Chinese (cz)
  • Polish (pl)
  • Russian (ru)
  • Czech (cs)

FaceIO Launch Press Release

Symisc Sytems Logo

Community Articles & Tutorials

FaceIO Logo

It’s super quick to implement FaceIO, and get it up & running on your website or web application. The following tutorials, and guides should help you roll facial recognition to your web users in a straightforward manner:

FACEIO - Facial Authentication Framework Officially Launched

PixLab is delighted to announce the immediate availability of FACEIO, our web-based, facial authentication framework developed from scratch here at PixLab in the past few years.

Introducing FACEIO - Facial Authentication for the Web

The TLDR;

FACEIO is a cross-browser, facial authentication framework that can be implemented on any website via simple JavaScript snippet to easily authenticate users via Face Recognition instead of the traditional login/password pair or OTP code.

You can start implementing FACEIO on your website or web-based application immediately by following our getting started guide here.

The Developer Intro

FACEIO is a cross-browser, Cloud & On-Premise deployable, facial authentication framework, with a client-side JavaScript library (fio.js) that integrates seamlessly with any website or web application desiring to offer secure facial recognition experience to their users.

Put it simply, FACEIO is the easiest way to add passwordless authentication to web based applications. Simply implement fio.js on your website, and you will be able to instantly authenticate your existing users, and enroll new ones via Face Recognition using their computer Webcam or smartphone frontal camera on their favorite browser.

Once fio.js implemented on your website, you'll be able to instantly recognize your existing users, on-board new members securely with maximum convenience, and at real-time thanks to passwordless experience powered by face recognition.

FACEIO works with regular Webcams or smartphones frontal camera on all modern browsers, does not require biometric sensors to be available on the client side, and works seemingly with all websites and web-based applications regardless of the underlying front-end JavaScript framework or server-side language or technology.

Features

  • Authenticates and confirms identity of users instantly without FIDO keys, OTP codes, or security questions.
  • Full cross-browser compatibility (Chrome, Firefox, Safari, Edge & Chromium derivatives).
  • Zero external dependency. Only standard technology implemented in plain JavaScript & CSS.
  • Defense grade accuracy with less than 100 milliseconds recognition speed powered by state-of-the-art facial recognition engines.
  • Highest security standards. Privacy by design with maximum user convenience. No requirements for biometric sensor.

Adding FACEIO to your website

Enroll New User

Implementing FACEIO on your website or webapp is straightforward. Before so, you need to create a new application first on the FACEIO Console, and link this resource to your website or web application. The checklist below highlights the steps to follow for a smooth integration of fio.js on your site:

  1. Create a new FACEIO application first: Follow the Application Wizard on the FACEIO Console to create your first application and link it to your website or web application.
  2. The Application Wizard should automate the creation process for you. Usually, this involve inputting an application name, selecting a facial recognition engine, cloud storage region, reviewing security options, customizing the Widget layout, and so forth... FACEIO Application Wizard
  3. Once your first FACEIO application created, simply implement fio.js, our facial recognition JavaScript library on your website, and initialize the library with your application Public ID.
  4. Congratulations 👏. You have FACEIO up & running! Now, it's time to enroll() and authenticate() your first user via face recognition. Refer to the HTML Integration Boilerplate on how to do so...

Some Links to Get Started

It’s super quick to implement FACEIO, and get it up & running on your website or web application. The following tutorials, and guides should help you get started with FACEIO:

PixLab’s Document Scanner now able to scan Driving License issued by any U.S. state

The PixLab Optical Character Recognition team is thrilled to announce that its document scanning API endpoint /DOCSCAN, is now able to scan U.S. Driver’s licenses and driving permits issued by jurisdictions from all the 50 U.S. states.

DOCSCAN API endpoint now supports scanning US driver’s license from all 5O states

The /DOCSCAN API endpoint now allows any Website that is presented with a U.S Driver’s License, International Passport or ID Card to verify that the inputted information by the end user matches those present on the submitted or uploaded ID document image.

Usage & Code Samples

Given an input U.S driver’s license image issued by any of the 50 U.S. states, crop the license holder face, and extract fields of interest as follow:

Input U.S driver’s license image Car Vectors by Vecteezy Input U.S driver’s license image

Extracted Fields Showcase extracted fields from the submitted driver's image

The extracted fields after successful call to the /DOCSCAN API endpoint are:

  • License holder cropped face. This image will be stored on an AWS S3 bucket of your choice if you connect your target bucket from the PixLab Console.
  • Issuing Country (USA obviously).
  • Issuing State Name.
  • Issuing State Two-Letter Code.
  • License Number.
  • License Holder’s Full Name.
  • License Holder’s Address.
  • License Holder’s Date of Birth (yyyy-mm-dd).
  • License Issuing Date (yyyy-mm-dd).
  • License Expiry Date (yyyy-mm-dd).
  • License Holder’s Gender.

The code samples that is used to achieve such results are available via the following Gists:

Algorithms Under the hood

  • Face extraction is automatically performed using the /FACEDETECT API endpoint.
  • /DOCSCAN already supports GET & POST HTTP methods so you can upload your document images directly from your application without relying on a foreign server. Refer to this Gist on how to do so.
  • Upon the image processed on our server, it is automatically deleted. We do not keep trace or any log of your input images.
  • Internally, we mainly rely on PP-OCR which is a practical ultra-lightweight OCR system that is mainly composed of three parts: Text Detection, Bounding Box Isolation, & Text Recognition. This combination produces highly accurate results in less than 5 seconds of processing.

Further Reading

  • The official endpoint documentation is available to consult here, and the reader is more than encouraged to take a look at our production ready, code samples, available in various programming languages on the PixLab Code Samples Page.

Announcing PixLab On-Premises

Symisc Systems is pleased to announce the immediate availability of PixLab On-Premises for the general public.

PixLab Logo

PixLab On-Premises allows organizations with restrictive IT policies or requirements for tighter integration to deploy portion or the entire PixLab stack on their own infrastructure, giving them complete control over their media assets. The on-premise version of PixLab contains exactly the same features as the cloud solution, and it will require minimal IT intervention to deploy and maintain.

Notable Features Of PixLab On-Premises

  • Complete control over your media assets. No assets leaves the deployment server.
  • Passports & ID Cards scanning capabilities similar to the DOCSCAN API endpoint.
  • Not Safe for Work (NSFW) content moderation similar to the cloud NSFW API endpoint.
  • Image & Video tagging similar to the cloud TAGIMG API endpoint.
  • Straightforward & Automated Installation.
  • Continuous Updates, Bugs & Security Fixes.
  • TLS Encrypted Transaction.
  • Completely Removed Telemetry.

Eligibility, Package Order & Delivery

PixLab On-Premises is designed to address critical privacy and security needs of Enterprise customers without sacrificing performance or the user experience. Find out more information about system requirements, eligibility, how to place an order, supported environments, etc. on the dedicated page at pixlab.io/on-premise.

Full Scan Support for United Arab Emirates (UAE) ID/Residence Cards

The PixLab Document Scanner, development team is pleased to announce that is now fully support scanning Emirates (UAE) ID & Residence Cards via the /DOCSCAN API endpoint at real-time using your favorite programming language.

When invoked, the /DOCSCAN HTTP API endpoint shall Extract (crop) any detected face and transform the raw UAE ID/Residence Card content such as holder name, nationality, ID number, etc. into a JSON object ready to be consumed by your app.

Below, a typical output result of the /DOCSCAN API endpoint for an Emiratis (UAE) ID card input sample:

Input Emirates (UAE) ID Card

UAE ID card specimen

Extracted UAE ID Card Fields

UAE extracted fields

The code samples used to achieve such result are available to consult via the following gists:

The same logic applies to scanning official travel documents like Visas, Passports, and ID Cards from many others countries in an unified manner, regardless of the underlying programming language used on your backend (Python, PHP, Ruby, JS, etc.) thanks to the DOCSCAN API endpoint as shown in previous blog posts:

Algorithm Details

Internally, PixLab's document scanner engine is based on PP-OCR which is a practical ultra-lightweight OCR system, mainly composed of three parts: DB text detection, detection frame correction, and CRNN text recognition. DB stands for Real-time Scene Text Detection.

PP-OCR: A Practical Ultra Lightweight OCR System - Algorithm Overview

PP-OCR Algorithm Overview

The system adopts 19 effective strategies from 8 aspects including backbone network selection and adjustment, prediction head design, data augmentation, learning rate transformation strategy, regularization parameter selection, pre-training model use, and automatic model tailoring and quantization to optimize and slim down the models of each module.

In PP-OCR, Differentiable Binarization (DB) is used as text detector which is based on a simple segmentation network. It integrates feature extraction and sequence modeling. It adopts the Connectionist Temporal Classification (CTC) loss to avoid the inconsistency between prediction and label.

The algorithm is further optimized in five aspect where the detection model adopts the CML (Collaborative Mutual Learning) knowledge distillation strategy and CopyPaste data expansion strategy. The recognition model adopts the LCNet lightweight backbone network, U-DML knowledge distillation strategy and enhanced CTC loss function improvement, which further improves the inference speed and prediction effect.

New Gender/Age Classification Model Deployed

Here at PixLab, we recently deployed on production, a brand new gender/age classification model available to our customers via the FACEMOTION API endpoint.

gender age detection

  • The new model implementation is based on the ResNet-50 convolutional neural network (CNN) that is 50 layers deep. The network can easily classify images into 1000 object categories, such as keyboard, mouse, pencil, and many animals.

  • The reference, implementation paper is from: Jiankang Deng, Jia Guo, Niannan Xue, Stefanos Zafeiriou: Additive angular margin loss for deep face recognition. In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (2019 (https://arxiv.org/abs/1801.07698).

  • The Python/PHP code samples listed below should be able to easily output the age estimation, gender, and emotion pattern by just looking at the facial shape of any present human face in a given picture or video frame using our new classifcation model.

Python Code


  • FACEMOTION is the sole endpoint needed to perform such a task. It should output the rectangle coordinates for each detected human face that you can pass verbatim if desired to other processing endpoints like CROP or MOGRIFY plus the age estimation, gender and emotion pattern of the target face based on its facial shape.
  • Finally, all of our production ready, code samples are available to consult at our samples page or the PixLab Gihtub repository.