Face Matching

Matching service là hệ thống AI cho phép so sánh độ tương đồng giữa khuôn mặt có trong chứng minh nhân dân, thẻ căn cước của người chủ sở hữu với khuôn mặt được chụp trực tiếp của cùng một người đó.

Thử nghiệm nhanh API:Run in Postman

1. So khớp khuôn mặt ảnh trên CMND, CCCD và ảnh chân dung với đầu vào URL ảnh

API:

MethodURL
GEThttps://cloud.computervision.com.vn/api/v2/ekyc/face_matching

Params:

KeyValueMô tả
img1https://example.com/card.pngURL ảnh chứng minh thư hoặc thẻ căn cước
img2https://example.com/portrait.pngURL ảnh khuôn mặt cần so khớp
type1portrait/cardLoại data của ảnh 1, nhận các giá trị: portrait, card
format_typeurlLoại data truyền vào, nhận các giá trị: url, file, base64

Demo Python:

import requests
api_key = "YOUR_API_KEY"
api_secret = "YOUR_API_SECRET"
img_card = 'link_url_img_card'
img_portrait = 'link_url_portrait'
response = requests.get("https://cloud.computervision.com.vn/api/v2/ekyc/face_matching?img1=%s&img2=%s&type1=%s&format_type=%s"
% (img_card, img_portrait, 'card', 'url'),
auth=(api_key, api_secret))
print(response.json())

2. So khớp khuôn mặt ảnh trên CMND, CCCD và ảnh chân dung với đầu vào file ảnh

API:

MethodURLcontent-type
POSThttps://cloud.computervision.com.vn/api/v2/ekyc/face_matchingmultipart/form-data

Params:

KeyValueMô tả
type1portrait/cardLoại data của ảnh 1, nhận các giá trị: portrait, card
format_typefileLoại data truyền vào, nhận các giá trị: url, file, base64

Body:

KeyTypeValueMô tả
img1fileexample_card.jpgFile ảnh chứng minh thư hoặc thẻ căn cước
img2fileexample_portrait.jpgFile ảnh khuôn mặt cần so khớp

Demo Python:

import requests
api_key = "YOUR_API_KEY"
api_secret = "YOUR_API_SECRET"
img_card_path = '/path/to/your/img_card.jpg'
img_portrait_path = '/path/to/your/img_portrait.jpg'
response = requests.post(
"https://cloud.computervision.com.vn/api/v2/ekyc/face_matching?type1=%s&format_type=%s"
% ('card', 'file'),
auth=(api_key, api_secret),
files={'img1': open(img_card_path, 'rb'), 'img2': open(img_portrait_path, 'rb')})
print(response.json())

3. So khớp khuôn mặt ảnh trên CMND, CCCD và ảnh chân dung với đầu vào JSON

API:

MethodURLcontent-type
POSThttps://cloud.computervision.com.vn/api/v2/ekyc/face_matchingapplication/json

Params:

KeyValueMô tả
type1portrait/cardLoại data của ảnh 1, nhận các giá trị: portrait, card
format_typebase64Loại data truyền vào, nhận các giá trị: url, file, base64

Body:

{
"img1": "iVBORw0KGgoAAAANSU...", // string base64 của ảnh chứng minh thư/thẻ căn cước
"img2": "iVBORw0KGgoAAAANSU..." // string base64 của ảnh khuôn mặt cần so khớp
}

Demo Python:

import base64
import io
import requests
from PIL import Image
def get_byte_img(img):
img_byte_arr = io.BytesIO()
img.save(img_byte_arr, format='PNG')
encoded_img = base64.encodebytes(img_byte_arr.getvalue()).decode('ascii')
return encoded_img
api_key = "YOUR_API_KEY"
api_secret = "YOUR_API_SECRET"
img_card_path = '/path/to/your/img_card.jpg'
img_portrait_path = '/path/to/your/img_portrait.jpg'
encode_card = get_byte_img(Image.open(img_card_path))
encode_portrait = get_byte_img(Image.open(img_portrait_path))
response = requests.post(
"https://cloud.computervision.com.vn/api/v2/ekyc/face_matching?type1=%s&format_type=%s"
% ('card', 'base64'),
auth=(api_key, api_secret),
json={'img1' : encode_card, "img2" : encode_portrait})
print(response.json())

4. Thông tin trả về

Đối với dịch vụ so khớp khuôn mặt trong chứng minh thư, thẻ căn cước, phản hồi sẽ là một JSON với định dạng sau:

{
"data": {
"matching": string, // Phần trăm giống nhau giữa hai ảnh đầu vào
"face1": string, // Ảnh khuôn mặt chứng minh thư
"face2": string, // Ảnh khuôn mặt chân dung
"face1_score": string, // Độ tin cậy ảnh khuôn mặt chứng minh thư
"face2_score": string, // Độ tin cậy ảnh khuôn mặt chân dung
"invalidCode": string, // Mã cảnh báo
"invalidMessage": string, // Cảnh báo nếu ảnh chân dung hoặc ảnh giấy tờ có dấu hiệu làm ảnh hưởng đến kết quả
"match": string // 1 nếu phần trăm matching > 75%, 0 nếu phần trăm matching trong khoảng [65%, 75%], ngược lại -1
},
"errorCode": string, // Mã lỗi
"errorMessage": string // Thông báo lỗi
}

Bảng mã lỗi:

Mã lỗiMessageMô tả
0SuccessSo khớp thành công
1The photo does not contain contentUpload ảnh bị lỗi khi dùng POST
2Url is unavailableDownload ảnh bị lỗi khi dùng GET
3Incorrect image formatTồn tại ảnh không có mặt người
4Out of requestsHết số lượng request
5Incorrect api_key or api_secretKhi api_key hoặc api_secret sai
6Incorrect format typeLoại format khai báo trong format_type không đúng với ảnh truyền vào

Bảng mã lỗi cảnh báo:

Mã lỗiMessageMô tả
0SuccessfulThành công
1The ID card photo is not existedẢnh đầu vào không có giấy tờ tùy thân
2The picture is a photocopy version of the id cardẢnh giấy tờ tùy thân là bản photocopy
3The ID card photo is suspected of tamperingẢnh giấy tờ tùy thân có dấu hiệu giả mạo
4The ID card photo does not contain a faceẢnh giấy tờ tùy thân không có mặt
5The portrait photo does not contain a faceẢnh chân dung không có mặt
6Photo contains more than one faceẢnh chứa nhiều hơn một mặt người
7Wearing sunglassesĐeo kính đen
8Wearing a hatĐội mũ
9Wearing a maskĐeo khẩu trang
10Photo taken from picture, screen, blurred noise or sign of fraudẢnh chụp từ bức ảnh khác, màn hình thiết bị, bị mờ nhiễu hoặc có dấu hiệu gian lận
11The face in the picture is too smallMặt người trong ảnh quá nhỏ
12The face in the portrait photo is too close to the marginMặt người trong ảnh quá gần với lề