| import sys |
| import os |
| import io |
| import base64 |
| import json |
| import gradio as gr |
| import requests |
|
|
|
|
| def face_recognition_on_file(file1, file2): |
| |
| backend_url = os.getenv('BACKEND_URL') |
| url = f"{backend_url}/face_recognition" |
| try: |
| files = {'file1': open(file1, 'rb'), 'file2': open(file2, 'rb')} |
|
|
| r = requests.post(url=url, files=files) |
| r.raise_for_status() |
| except requests.RequestException as e: |
| raise gr.Error(f"Error occurred: {str(e)}") |
| except IOError: |
| raise gr.Error("Please select valid image files!") |
|
|
| try: |
| response = r.json() |
| print(response) |
| return response |
| except json.JSONDecodeError: |
| raise gr.Error("Invalid response from server") |
|
|
|
|
| def liveness_detection_on_file(file): |
|
|
| backend_url = os.getenv('BACKEND_URL') |
| url = f"{backend_url}/check_liveness" |
| try: |
| files = {'file': open(file, 'rb')} |
| r = requests.post(url=url, files=files) |
| r.raise_for_status() |
| except requests.RequestException as e: |
| raise gr.Error(f"Error occurred: {str(e)}") |
| |
| try: |
| response = r.json() |
| print(response) |
| return response |
| except json.JSONDecodeError: |
| raise gr.Error("Invalid response from server") |
|
|
|
|
| with gr.Blocks() as demo: |
| gr.Markdown( |
| """ |
| <a href="https://faceplugin.com" style="display: flex; align-items: center;"> |
| <img src="https://faceplugin.com/wp-content/uploads/2024/02/Square-png-file_2-1.png" style="width: 8%; margin-right: 15px;"/> |
| <div> |
| <p style="font-size: 24px; font-weight: bold; margin: 0;">FacePlugIn Ltd</p> |
| </div> |
| </a> |
| |
| ## Company Overview |
| |
| FacePlugin Ltd is a pioneering company at the forefront of innovative solutions in the realm of facial recognition technology and computer vision. Established with a commitment to revolutionize security and authentication processes, FacePlugin specializes in cutting-edge solutions including face liveness detection, ID card recognition, face recognition, biometric authentication, and e-KYC (Electronic Know Your Customer) solutions. |
| |
| |
| <h2>List of our Products</h2> |
| |
| * **[FaceRecognition-LivenessDetection-Android](https://github.com/Faceplugin-ltd/FaceRecognition-LivenessDetection-Android)** |
| * **[FaceRecognition-LivenessDetection-iOS](https://github.com/Faceplugin-ltd/FaceRecognition-LivenessDetection-iOS)** |
| * **[FaceRecognition-LivenessDetection-Javascript](https://github.com/Faceplugin-ltd/FaceRecognition-LivenessDetection-Javascript)** |
| * **[FaceLivenessDetection-Docker](https://github.com/Faceplugin-ltd/FaceLivenessDetection-Docker)** |
| |
| |
| ## Contact |
| <div style="display: flex; align-items: center;"> |
| <a target="_blank" href="mailto:info@faceplugin.com"><img src="https://img.shields.io/badge/email-info@faceplugin.com-blue.svg?logo=gmail " alt="faceplugin.com"></a> |
| <a target="_blank" href="https://t.me/faceplugin"><img src="https://img.shields.io/badge/telegram-@faceplugin-blue.svg?logo=telegram " alt="faceplugin.com"></a> |
| <a target="_blank" href="https://wa.me/+14422295661"><img src="https://img.shields.io/badge/whatsapp-faceplugin-blue.svg?logo=whatsapp " alt="faceplugin.com"> |
| </div> |
| """ |
| ) |
|
|
| with gr.TabItem("Face Recognition"): |
| with gr.Row(): |
| with gr.Column(): |
| first_input = gr.Image(type='filepath') |
| gr.Examples(['images/rec_7.jpg', 'images/rec_1.jpg', 'images/9.png', 'images/rec_3.jpg'], |
| inputs=first_input) |
| start_button = gr.Button("Run") |
| with gr.Column(): |
| second_input = gr.Image(type='filepath') |
| gr.Examples(['images/rec_8.jpg', 'images/rec_2.jpg', 'images/10.jpg', 'images/rec_4.jpg'], |
| inputs=second_input) |
|
|
| with gr.Column(): |
| app_output = [gr.JSON()] |
|
|
| start_button.click(face_recognition_on_file, inputs=[first_input, second_input], outputs=app_output) |
| with gr.TabItem("Face Liveness Detection"): |
| with gr.Row(): |
| with gr.Column(): |
| app_input = gr.Image(type='filepath') |
| gr.Examples(['images/4.jpg', 'images/1.png', 'images/2.png', 'images/3.png'], |
| inputs=app_input) |
| start_button = gr.Button("Run") |
| with gr.Column(): |
| app_output = [gr.JSON()] |
|
|
| start_button.click(liveness_detection_on_file, inputs=app_input, outputs=app_output) |
|
|
|
|
| gr.HTML('<a href="https://visitorbadge.io/status?path=https%3A%2F%2Fhuggingface.co%2Fspaces%2FFacePlugin-Ltd%2FFacePlugin-Face-Recognition-SDK"><img src="https://api.visitorbadge.io/api/combined?path=https%3A%2F%2Fhuggingface.co%2Fspaces%2FFacePlugin-Ltd%2FFacePlugin-Face-Recognition-SDK&labelColor=%23697689&countColor=%2337d67a&style=flat&labelStyle=upper" /></a>') |
| |
| demo.queue().launch(share=True) |
|
|