Resolving Liveness Detection with FACEIO's Advanced AI Models

Liveness detection is a critical component in biometric security systems, ensuring that the face being scanned is from a live person rather than a photograph, video, or mask. FACEIO, a leader in facial authentication technology, addresses these challenges with its advanced AI models. This blog post explores how FACEIO resolves liveness detection issues, leveraging sophisticated algorithms and security practices.

FACEIO Landing page

What is Liveness Detection?

Liveness detection is a security feature used in facial recognition systems to verify that the scanned face is from a live individual. It prevents spoofing attacks by detecting natural facial movements and responses. Various techniques employed in liveness detection include:

  • Motion Analysis: Detects natural movements such as blinking and head movements.
  • Texture Analysis: Differentiates between the texture of live skin and that of a photograph or screen.
  • Challenge-Response: Prompts the user to perform actions like blinking or smiling to prove liveness.

Implementing Liveness Detection with FACEIO

FACEIO provides an easy-to-integrate solution for facial authentication with built-in liveness detection. Here is a step-by-step guide to activate liveness detection on your FACEIO Application:

  1. Setting Up FACEIO:

  2. Integrating FACEIO SDK:

  3. Initializing FACEIO:

  4. Implementing Liveness Detection:

    • Activate Face Anti-Spoofing first by connecting to the FACEIO Console, then Navigate to the SECURITY tab from the manager main view. Once the target application selected. Activate the Protect Against Deep-Fakes & Face Spoof Attempts security option as shown below:

      async function performLivenessCheck() {
       try {
           const response = await faceio.authenticate({ action: "liveness-check" });
           if (response.livenessScore > 0.9) {
               console.log("User authenticated successfully");
           } else {
               console.warn("Liveness check failed");
           }
       } catch (error) {
           console.error("Liveness check failed", error);
       }
      }
      

Advanced Security Features of FACEIO

FACEIO's commitment to security extends beyond basic liveness detection. Here are some of the advanced features that enhance its security:

  • Multifactor Authentication (MFA): Combine facial recognition with other authentication methods for added security.
  • Customizable User Prompts: Tailor instructions and prompts shown to users during the liveness check.
  • Analytics and Reporting: Access detailed reports on authentication attempts to monitor and improve system performance.

Best Practices for Secure Implementation

FACEIO provides several security best practices to ensure robust protection against spoofing and other security threats:

  • Reject Weak PIN Codes: Ensure users create strong PIN codes during enrollment.
  • Prevent Duplicate Enrollment: Avoid multiple enrollments by the same user.
  • Protect Against Deepfakes: Use liveness detection to counteract spoofing attempts.
  • Forbid Minors: Prevent minors from enrolling in the application.
  • Always Ask for PIN Code: Require PIN code confirmation during authentication for added security.
  • Enforce PIN Code Uniqueness: Ensure each user's PIN code is unique.
  • Ignore Obscured Faces: Reject partially masked or poorly lit faces.
  • Reject Missing HTTP Headers: Prevent requests without proper origin or referer headers.
  • Restrict Domain and Country: Limit widget instantiation to specific domains and countries.
  • Enable Webhooks: Use webhooks for real-time updates on user interactions.

Conclusion

Integrating FACEIO for liveness detection and facial authentication in JavaScript significantly enhances digital security. Its robust API and user-friendly JavaScript library make it easy for developers to implement biometric authentication, preventing spoofing and unauthorized access. FACEIO's advanced features and best practices ensure both security and user experience are prioritized, making it a valuable addition to any web application's defense against modern threats.

For more information, visit the FACEIO website.


Published in: Level Up Coding

Launching FACEIO's New Age Verification Widget: Elevating Digital Experiences

PixLab is thrilled to announce the launch of FACEIO's pioneering Age Verification Widget, a remarkable addition to the FACEIO SDK suite, specifically designed for web and mobile platforms. This state-of-the-art widget provides real-time age verification, ensuring that users can access content suitable for their age group, thereby promoting a safer digital environment.

FACEIO Age Verification

Key Features and Benefits

  • Instant Verification: The FACEIO Widget verifies user age in milliseconds, using advanced facial analysis to swiftly differentiate minors from adults.
  • Enhanced Compliance: With precise age distinction, businesses can effortlessly adhere to regional and global age-related regulations, minimizing legal risks.
  • Seamless Integration: Developers can easily incorporate the widget into existing platforms with minimal effort, supported by comprehensive documentation available on our Integration Guide and Developer Guides.

A Tool for All Digital Arenas

Whether you're managing an online gaming site, a digital marketplace, or a content streaming service, the Age Verification Widget is your solution to maintaining age integrity online. It ensures that each user's experience is not only compliant with legal standards but also tailored to their age-specific needs.

Future-Proof Your Platform

As digital interactions become increasingly personalized and regulated, integrating robust age verification technology is more crucial than ever. The FACEIO Age Verification Widget is more than just a tool—it's an investment in your platform's future, safeguarding your operations and enhancing user trust.

For more details on how to get started, visit our detailed documentation provided in the Integration Guide and the Developer Guides.

fio.js V2.1 Released with Age Verification & Minors Access Restriction

The FACEIO Development Team is thrilled to announce the immediate availability of fio.js V2.1, our cutting-edge Facial Recognition Web Framework with groundbreaking new features with the goal of enhancing security and compliance for your applications.

Over the past few months, we have developed an innovative age verification security option that prevents minors from on-boarding on your application, ensuring your sensitive services remain accessible only to the appropriate age groups.

FACEIO Landing Page

Enhanced Security with Minors Access Prevention 🛡️

Prevent Minors From Enrolling

When activated, this powerful security feature diligently screens and identifies users' age during the on-boarding process, and thus will forbid minors less than 18 years old from enrolling on your application with the fioErrCode.MINORS_NOT_ALLOWED error code being raised if a minor try to on-board on your application, reinforcing your compliance and security measures. This highly requested security feature is immediately available to trigger from the FACEIO Console. Please refer to the updated boilerplate integration code to see this feature in action.

Comply with Jurisdictional Regulations 📜

If your application is offering sensitive services or operating in jurisdictions such as the UK and certain US states that strictly prohibit minors from accessing such services, this security feature is mandatory & invaluable tool for you. By activating it, you can seamlessly align with legal requirements and ensure that only eligible users gain access to your platform.

PAS 1296:2018 Compliance & Age Verification Check

We understand the criticality of meeting industry standards and regulations. That's why we are excited to inform you that PixLab Insight, the default Facial Recognition Engine for FACEIO, is ready to fulfill the PAS 1296:2018 code of practice for online age verification accredited by the UK's Age Check Certification Scheme (ACCS). Our technology guarantees robust age verification capabilities, bolstering your compliance efforts.

Experience the Future of Secure Facial Recognition ✨

At FACEIO, we are committed to providing you with state-of-the-art tools to safeguard your applications and users. The introduction of Minors Access Restriction adds an extra layer of security, giving you peace of mind and enabling you to cater to the right audience for your services.

To explore this exciting new feature and integrate it into your application, simply connect to the FACEIO Console, and activate this option from the Security Tab of your Application Manager. Our comprehensive documentation will guide you through the activation process and assist you in optimizing the functionality for your unique requirements.

24/7 Support & Integration Assistance

We would be thrilled to assist you in implementing the Minors Access Prevention Security Feature or answer any questions you may have. Reach out to our dedicated support team via the FACEIO Console or the Community Forum. Our experts are ready to provide you with top-notch assistance and help you unlock the full potential of FACEIO.

Embrace the power of age verification and elevate the security standards of your FACEIO application. Join us on this exciting journey as we revolutionize facial recognition technology together!

Stay secure, stay compliant, and stay ahead with FACEIO!

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.

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:

List of face detection & recognition endpoints

As requested by our users, the following are the list of endpoints that is provided by PixLab for all your face detection, recognition, generation & landmarks extraction tasks. These includes:

Here is two working Python code to illustrate this:

1.Detect all human faces present in a given image or video frame via facedetect and extract each one of them via crop:

import requests
import json
     
    # Target image: Feel free to change to whatever image holding as many human faces you want
    img = 'http://cf.broadsheet.ie/wp-content/uploads/2015/03/jeremy-clarkson_3090507b.jpg'
     
    req = requests.get('https://api.pixlab.io/facedetect',params={
        'img': img,
        'key':'My_Pix_Key',
    })
    reply = req.json()
    if reply['status'] != 200:
        print (reply['error'])
        exit();
     
    total = len(reply['faces']) # Total detected faces
    print(str(total)+" faces were detected")
     
    # Extract each face via crop now 
    for face in reply['faces']:
        req = requests.get('https://api.pixlab.io/crop',params={
            'img':img,
            'key':'My_Pix_Key',
            'width': face['width'],
            'height': face['height'],
            'x': face['left'],
            'y': face['top']
        })
        reply = req.json()
        if reply['status'] != 200:
            print (reply['error'])
        else:
            print ("Face #"+str(face['face_id'])+" location: "+ reply['link'])
  1. Detect all human faces in a given image via facedetect and apply a blur filter to each one of them via mogrify:

import requests
import json

img = 'http://anewscafe.com/wp-content/uploads/2012/05/Brave-Faces-Group-shot.jpg' 

# Detect all human faces in a given image via facedetect and blur all of them via mogrify.
req = requests.get('https://api.pixlab.io/facedetect',params={
    'img': img,
    'key':'Pix_Key',
})
reply = req.json()
if reply['status'] != 200:
    print (reply['error'])
    exit();

total = len(reply['faces']) # Total detected faces
print(str(total)+" faces were detected")
if total < 1:
    # No faces were detected, exit immediately
    exit()
# Pass the detected faces coordinates untouched to mogrify 
coordinates = reply['faces']
# Call mogrify & blur the faces
req = requests.post('https://api.pixlab.io/mogrify',headers={'Content-Type':'application/json'},data=json.dumps({
    'img': img,
    'key':'PIXLAB_API_KEY',
    'cord': coordinates #The field of interest
}))
reply = req.json()
if reply['status'] != 200:
    print (reply['error'])
else:
    print ("Blurred faces URL: "+ reply['link'])

Further code samples are available on the PixLab Github repository or refer to the PixLab Endpoints list for the official documentation.