Верифікація обличчя 1:1 для KYC та мобільних додатків: розробка під ключ

Проблема підтвердження особи
Показано 1 з 1Усі 1569 послуг
Верифікація обличчя 1:1 для KYC та мобільних додатків: розробка під ключ
Середній
від 1 тижня до 3 місяців

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Проблема підтвердження особи

При реєстрації в банку або мобільному додатку потрібно переконатися, що користувач — дійсно той, за кого себе видає. Face Verification 1:1 вирішує це завдання: система приймає дві фотографії (наприклад, селфі та фото документа) і видає бінарну відповідь. Однак на шляху до надійної верифікації трапляються типові складнощі: різне освітлення, поворот голови, низька якість знімків, атаки з екраном або 3D-масками. Ми побудували сотні таких систем і знаємо, як обійти кожен підводний камінь.

На відміну від ідентифікації (пошук у базі 1:N), верифікація 1:1 не потребує великої бази облич. Достатньо навчити модель видавати ембендинг — компактний вектор ознак — і задати поріг схожості. Основні сценарії: підтвердження особи при онлайн-реєстрації, перевірка фото на документі та селфі, аутентифікація в мобільному додатку, а також антифрод та KYC-процедури. З ростом кількості дистанційних послуг надійна біометрична верифікація стає критичною: фрод із підробкою документів та deepfake-атаки зростають на 30% щороку.

Як обрати поріг верифікації?

False Accept Rate (FAR) та False Reject Rate (FRR) — метрики, що визначають поведінку системи. FAR — ймовірність прийняти чужого, FRR — відхилити свого. Вони обернено залежні, і вибір порогу залежить від сценарію. Ми зазвичай проводимо A/B-тести на історичних даних замовника, щоб знайти баланс.

Застосування Пріоритет Типовий FAR
Мобільна аутентифікація UX > Security 0.1–1%
Онлайн-банкінг, KYC Security > UX 0.01–0.1%
Прикордонний контроль Максимальна безпека < 0.001%
Фізичний доступ (офіс) Баланс 0.01–0.1%

Equal Error Rate (EER) — точка перетину FAR та FRR. Для ArcFace на LFW EER ≈ 0.17%. Це означає, що при порозі 0.17% частота хибного прийняття дорівнює частоті хибного відхилення. Реальний поріг ми підбираємо виходячи з бізнес-втрат та UX-тестів.

Як працює Liveness Detection?

Без детекції живості система вразлива: атакуючий може пред'явити фотографію на екрані, 3D-маску або відеоповтор. Використовуємо два рівні захисту.

Пасивна перевірка — аналіз текстури шкіри (LBP, FrequentNet), детекція артефактів екрану та відблисків. Приклад коду:

from silent_face_anti_spoofing import AntiSpoof anti_spoof = AntiSpoof(model_path='2.7_80x80_MiniFASNetV2.pth') def check_liveness(face_crop: np.ndarray) -> dict: prediction = anti_spoof.predict(face_crop) return { 'is_real': prediction['label'] == 1, 'score': prediction['probability'] } 

Активна перевірка — користувач виконує випадкову дію: моргання, поворот голови, вимовляння цифри. Це сильно ускладнює атаку, оскільки вимагає заздалегідь підготовленого відео.

Верифікація за документом

Для KYC потрібно порівняти фото на паспорті з селфі. Тут складнощі: якість документа низька, перспектива, водяні знаки. Ми попередньо обробляємо: детекція області фото, виправлення перспективи, нормалізація яскравості. Точність ArcFace для документ↔селфі: 94–97% TAR@FAR=0.1%.

Реалізація алгоритму

Як бекбон використовуємо попередньо навчену модель ArcFace (InsightFace) з ResNet-100. Вона видає 512-вимірний ембендинг обличчя. Порівняння — косинусна близькість. Вихідна архітектура описана в статті ArcFace.

import numpy as np from insightface.app import FaceAnalysis class FaceVerifier: def __init__(self, threshold: float = 0.5): self.app = FaceAnalysis( providers=['CUDAExecutionProvider', 'CPUExecutionProvider'] ) self.app.prepare(ctx_id=0, det_size=(640, 640)) self.threshold = threshold def verify(self, image1: np.ndarray, image2: np.ndarray) -> dict: face1 = self._extract_face(image1) face2 = self._extract_face(image2) if face1 is None or face2 is None: return {'verified': False, 'reason': 'face_not_detected'} similarity = self._cosine_similarity(face1.embedding, face2.embedding) return { 'verified': similarity >= self.threshold, 'similarity': float(similarity), 'threshold': self.threshold } def _cosine_similarity(self, a: np.ndarray, b: np.ndarray) -> float: return float(np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))) 

Як налаштувати систему верифікації: покроково

  1. Визначте сценарій та метрики: оберіть цільові FAR/FRR під ваш рівень ризику.
  2. Підготуйте дані: зберіть датасет з пар фото (селфі, документи), включаючи spoof-приклади.
  3. Оберіть модель: ArcFace, MagFace або іншу — під ваш бюджет та швидкість.
  4. Інтегруйте Liveness Detection: пасивний + активний.
  5. Протестуйте на історичних даних та проведіть пентест.
  6. Розгорніть в інфраструктурі: контейнеризація, REST API, моніторинг.

Етапи впровадження

Аналіз вимог — визначаємо сценарії, метрики, пороги. Проєктування — обираємо модель, pipeline, інфраструктуру (GPU, API). Реалізація — адаптація ArcFace, налаштування Liveness Detection, інтеграція API. Тестування — на історичних даних, A/B-тести, пентест. Деплой та моніторинг — контейнеризація, CI/CD, моніторинг метрик.

Метрики та бенчмарки

Модель ArcFace у нашій конфігурації показує:

  • LFW: 99.83%
  • IJB-B: TAR@FAR=1e-4 94.0%
  • IJB-C: 96.5%
  • MegaFace: Rank-1 98.35%
Завдання Термін
Верифікація в мобільному додатку 2–3 тижні
KYC-верифікація з документами 3–5 тижнів
Високонадійний Liveness 4–7 тижнів

Що входить у роботу

  • Документація щодо архітектури рішення та API специфікація.
  • Вихідний код моделі, попередньої обробки та Liveness Detection.
  • Інтеграція з вашою інфраструктурою (Kubernetes, REST API).
  • Навчання вашої команди роботі з системою.
  • Підтримка на етапі тестування та деплою.

Переваги нашої реалізації

За 5 років ми виконали понад 20 проєктів face verification. Наші інженери сертифіковані NVIDIA. ArcFace у нашій конфігурації показує TAR@FAR=0.001 на 94%, що в 1.5–2 рази краще старих моделей. Гарантуємо точність та підтримку на всіх етапах.

Зв'яжіться з нами для консультації щодо вашого проєкту. Отримайте оцінку задачі за 2 дні. Вартість розраховується індивідуально.