Як AI виявляє підроблені документи в мобільному додатку
Підроблені паспорти, роздруковані на лазерному принтері, в останні роки проходять базові OCR-перевірки в 30–40% випадків за даними галузевих звітів. Це не теоретична загроза — це реальні заявки на кредити, реєстрації акаунтів та онбординг співробітників із підробленими документами. Ми стикаємося з тим, що класичні правила (збіг MRZ із візуальною зоною, формат дат) недостатні. Потрібен ML-шар, який бачить те, що правила не описують. Наш досвід показує: найкращий результат дає комбінація CNN-моделі та геометричної перевірки. Ви можете замовити інтеграцію під ключ від 3 тижнів.
З 5+ роками досвіду та понад 50 реалізованими проектами, ми є надійним партнером у сфері AI-антифроду. Ми гарантуємо якість моделі та надаємо післяпродажну підтримку.
Що саме перевіряє AI-модель?
Перевірка справжності документа на мобільному пристрої складається з декількох незалежних сигналів:
Аналіз текстури та артефактів друку. Справжній паспорт надрукований на intaglio-пресі з тактильними елементами та специфічною растровою структурою. Скан або фотографія роздруківки має патерн JPEG-артефактів, характерний для побутових принтерів: блоковість на гільйошуванні, втрата мікродруку, рівна яскравість там, де мають бути рельєфні тіні. CNN-модель, навчена на таких прикладах, видає forgery_score як безперервне значення — не бінарне «підробка/ні».
Геометрична консистентність. Текстові поля в реальному паспорті розташовані в строгих пікселях відносно фізичних маркерів. Homography-трансформація вирівнює документ у стандартну площину, після чого поля MRZ, фото, дата народження порівнюються з шаблоном за affine-матрицею. Відхилення від шаблону >2px — тривожний сигнал, >5px — висока ймовірність редагування.
Крос-верифікація полів. Ім'я в MRZ має збігатися з візуальною зоною, дата народження — з контрольною цифрою MRZ (алгоритм ISO 7501-1), номер документа — з базою втрачених/недійсних (якщо підключено зовнішній API, наприклад Interpol I-24/7 або національні реєстри).
Як вибрати між on-device та server-side?
Вибір залежить від вимог до приватності та latency. On-device інференс у 3–5 разів швидше за server-side для первинної перевірки, що критично для UX.
| On-device (CoreML / TFLite) | Server-side | |
|---|---|---|
| Латентність | 300–800 мс | 1–3 с |
| Приватність | Дані не залишають пристрій | Вимагає передачі зображення |
| Розмір моделі | 5–50 MB у додатку | Без обмежень |
| Актуальність моделі | OTA-оновлення через CoreML Model Deployment | Деплой на сервер |
| Офлайн | Так | Ні |
Для більшості KYC-сценаріїв застосовуємо гібридний підхід: on-device модель виконує швидку первинну перевірку (capture quality, базові артефакти), важкий anti-forgery inference — на сервері з GPU. Користувач бачить прогрес-індикатор, а не чекає 3 секунди перед будь-якою дією.
Типові індикатори підробки та їх детекція
Таблиця індикаторів
| Індикатор підробки | Метод перевірки | Чутливість |
|---|---|---|
| JPEG-артефакти на гільйошуванні | CNN-аналіз текстури | Висока |
| Зміщення текстових полів >2px | Homography + affine-порівняння | Середня |
| Незбіг MRZ та візуальної зони | Крос-верифікація (NLP) | Висока |
| Відсутність мікродруку | Детекція високочастотних патернів | Середня |
Впровадження CoreML-моделі на iOS
Приклад коду для iOS
// Завантаження моделі let config = MLModelConfiguration() config.computeUnits = .cpuAndNeuralEngine let model = try DocumentAuthenticityModel(configuration: config) // Попередня обробка — нормалізація та crop до Region of Interest let input = try MLMultiArray(shape: [1, 3, 224, 224], dataType: .float32) // ... заповнення пікселями з CVPixelBuffer // Інференс let prediction = try model.prediction(image: pixelBuffer) let forgeryScore = prediction.forgery_score // Float, 0.0 – 1.0 ANE (Apple Neural Engine) на A14+ обробляє 224×224 документ за ~40 мс. На iPhone SE 2nd gen без ANE — ~350 мс. Різниця суттєва, поріг по computeUnits потрібно адаптувати під мінімально підтримуваний пристрій.
Модель оновлюється через CoreML Model Deployment у CloudKit або через власний endpoint із підписаним .mlmodel файлом. Не хардкодимо модель у бандл, якщо плануємо її оновлювати — розмір IPA зросте, і кожне оновлення моделі вимагатиме релізу.
TensorFlow Lite на Android
Приклад коду для Android
val options = Interpreter.Options().apply { addDelegate(GpuDelegate()) setNumThreads(4) } val interpreter = Interpreter(loadModelFile(assets, "doc_auth_v2.tflite"), options) val inputBuffer = TensorImage.fromBitmap(preprocessedBitmap) val outputBuffer = TensorBuffer.createFixedSize(intArrayOf(1, 2), DataType.FLOAT32) interpreter.run(inputBuffer.buffer, outputBuffer.buffer) val forgeryScore = outputBuffer.floatArray[1] // індекс 1 — клас "forgery" GPU Delegate знижує латентність на Snapdragon 8 Gen 1 з ~600 мс до ~90 мс для моделі EfficientNet-B2. На бюджетних пристроях без GPU Delegate різниця менш помітна — там краще NNAPI з автоматичним вибором прискорювача.
Навчання та донавчання моделі
Готові моделі для anti-forgery у відкритому доступі обмежені та швидко застарівають — шахраї адаптуються. Ми навчаємо на синтетичних даних: реальні документи + аугментовані підробки (JPEG-compress, Gaussian noise, PrintScan simulation через бібліотеку albumentations). Архітектура — EfficientNet-B0 або MobileNetV3 для балансу точності та швидкості. Модель EfficientNet-B0 працює в 2 рази швидше за B2 з мінімальною втратою точності.
Після деплою важливий feedback loop: документи з граничним forgery_score (0.4–0.6) йдуть на ручну розмітку операторами та донавчання. Без цього модель деградує на нових патернах підробок через 3–6 місяців.
Вартість та окупність
Орієнтовна вартість інтеграції AI-моделі — від $8,000 до $25,000, залежно від складності. Впровадження таких систем зменшує втрати від шахрайства на 50–70%.
Що входить у роботу
- Аудит типів документів і сценаріїв використання.
- Збір і розмітка датасету (реальні + синтетичні зразки).
- Навчання та валідація моделі (EfficientNet/MobileNet).
- Конвертація в CoreML / TFLite з оптимізацією для цільових пристроїв.
- Інтеграція в мобільний додаток (iOS/Android).
- Налаштування pipeline оновлень моделі (OTA).
- Документація та навчання команди.
- Технічна підтримка на 3 місяці після запуску.
Етапи впровадження
- Аудит типів документів і сценаріїв.
- Збір датасету (реальні + синтетичні зразки).
- Навчання та валідація моделі.
- Конвертація в CoreML / TFLite.
- Інтеграція в мобільний клієнт.
- A/B тест із людським верифікатором.
- Налаштування threshold.
- Продакшен.
- Моніторинг drift і донавчання.
Строки: інтеграція готової моделі без донавчання — від 3 тижнів. Повний цикл (датасет, навчання, мобільна інтеграція, feedback loop) — 2–4 місяці. Вартість розраховується індивідуально.
Ми реалізували понад 50 проєктів у сфері антифроду за 5+ років роботи. Ми гарантуємо якість моделі та надаємо післяпродажну підтримку. Зв'яжіться з нами для оцінки вашого проєкту — отримайте консультацію безкоштовно.







