AI-верифікація документів через камеру мобільного додатку — не просто OCR, а повноцінний пайплайн: виявлення документа в кадрі, оцінка якості, вилучення полів, валідація та перевірка справжності. Кожен етап може стати вузьким місцем, тому ми використовуємо комбінацію методів, перевірену на десятках проєктів. Типовий сценарій: користувач фотографує паспорт у поганому освітленні, документ частково затемнений, краї обрізані. Навіть якщо OCR розпізнав текст, MRZ може бути пошкодженою, а дані не пройдуть валідацію. Без guidance користувач робить 3–5 спроб, що погіршує UX, збільшує відтік до 30% та підвищує витрати на підтримку. Ми вирішуємо це комплексно, знижуючи кількість невдалих спроб до одиниць та економлячи бюджет на фрод-контроль. У нашій практиці впровадження систем верифікації для банків та фінтех-сервісів точність розпізнавання досягає 99% при правильному налаштуванні пайплайну. Наша команда має понад 8 років досвіду в розробці мобільних рішень для верифікації документів і успішно запустила більше 50 проєктів у цій галузі. Ми гарантуємо точність >99% при правильному налаштуванні — кожен проєкт супроводжується детальним аудитом якості.
Чому сирий OCR не працює
Спроба прочитати паспорт через Vision framework (iOS) або ML Kit (Android) і розпарсити результат регулярними виразами — найчастіший перший підхід. Він дає 70–80% точності в лабораторії та 40–60% на реальних користувачах: засвітка, кут зйомки, м'яті сторінки, знос документа — все це ламає простий OCR.
Правильний пайплайн додає три шари:
- Передобробка зображення. Корекція перспективи (документ знятий під кутом), підвищення контрастності, видалення відблисків. На iOS — CIFilter + CIPerspectiveCorrection. На Android — OpenCV через JNI або CameraX з кастомним ImageAnalysis.
- Спеціалізований document OCR. Не загальний OCR, а моделі, навчені на документах: Microsoft Azure Document Intelligence, Google Document AI, Amazon Textract. Вони повертають структуровані поля — surname, given_names, date_of_birth, document_number.
- Machine Readable Zone (MRZ) parsing. Паспорти містять MRZ за стандартом ICAO 9303. Це найнадійніше джерело: стандартизований шрифт, чітка структура, контрольна сума. Бібліотеки: mrz-java, passport-reader для iOS, або власна реалізація.
Чому ми обираємо Azure Document Intelligence?
Azure Document Intelligence забезпечує точність >99% на стандартизованих документах, підтримує MRZ з коробки та надає confidence score для кожного поля. На відміну від Google Document AI (точність ~98%) та Amazon Textract (95%, без вбудованого MRZ), Azure пропонує оптимальне співвідношення ціна/якість для мобільних сценаріїв. Для бюджетних проєктів підходить Google Document AI, для інтеграції з AWS — Amazon Textract, однак для мобільних high-load сценаріїв Azure стабільніше.
| Провайдер | Точність на ID-документах | Швидкість | Підтримка MRZ |
|---|---|---|---|
| Azure Document Intelligence | >99% | 2–5 сек | Так |
| Google Document AI | >98% | 3–7 сек | Так |
| Amazon Textract | >95% | 5–10 сек | Ні |
Як ми інтегруємо Azure Document Intelligence
// iOS — Swift
import AzureAIDocumentIntelligence
class DocumentVerificationService {
private let client: DocumentIntelligenceClient
func analyzePassport(imageData: Data) async throws -> PassportData {
let request = AnalyzeDocumentRequest(
urlSource: nil,
base64Source: imageData.base64EncodedString()
)
let operation = try await client.beginAnalyzeDocument(
"prebuilt-idDocument",
analyzeRequest: request
)
let result = try await operation.waitForResult()
guard let document = result.documents?.first else {
throw DocumentError.noDocumentDetected
}
return PassportData(
firstName: document.fields?["FirstName"]?.valueString,
lastName: document.fields?["LastName"]?.valueString,
documentNumber: document.fields?["DocumentNumber"]?.valueString,
dateOfBirth: document.fields?["DateOfBirth"]?.valueDate,
expiryDate: document.fields?["ExpirationDate"]?.valueDate,
nationality: document.fields?["CountryRegion"]?.valueCountryRegion,
mrz: document.fields?["MachineReadableZone"]?.valueString,
confidence: document.confidence ?? 0
)
}
}
Confidence score — критичний параметр. При confidence < 0.8 запитуємо повторну зйомку з підказкою користувачеві (краще освітлення, тримати рівніше, не закривати краї).
Realtime guidance через камеру
Користувач не повинен робити кілька спроб наосліп. Realtime feedback при зйомці через Vision framework на iOS:
// Detects document bounds in realtime while camera is active
func detectDocumentInFrame(_ pixelBuffer: CVPixelBuffer) {
let request = VNDetectRectanglesRequest { [weak self] request, error in
guard let observation = request.results?.first as? VNRectangleObservation else {
self?.cameraGuidance = .noDocumentFound // "Наведіть камеру на документ"
return
}
let area = observation.boundingBox.width * observation.boundingBox.height
if area < 0.4 {
self?.cameraGuidance = .tooFar // "Піднесіть ближче"
} else if area > 0.9 {
self?.cameraGuidance = .tooClose // "Віддаліть камеру"
} else {
self?.cameraGuidance = .ready // Автоматичне захоплення
}
}
request.minimumAspectRatio = 0.5
request.maximumAspectRatio = 1.0
request.minimumConfidence = 0.7
try? VNImageRequestHandler(cvPixelBuffer: pixelBuffer).perform([request])
}
Автоматичний capture при ідеальному позиціонуванні прибирає необхідність натискати кнопку — знижує кількість поганих знімків.
Виявлення підробок: що перевіряємо?
Базовий anti-spoofing для мобільної верифікації включає:
| Перевірка | Метод |
|---|---|
| Фізичний документ vs фото/екран | Детекція moire-ефекту та текстури паперу (Azure, Onfido) |
| Liveness check | Випадкові рухи голови, моргання (AWS Rekognition, FaceTec) |
| Крос-перевірка MRZ з візуальними полями | Дата народження має збігатися |
Ці методи гарантують, що документ реальний та належить пред'явнику.
Як забезпечується захист персональних даних?
Всі дані обробляються відповідно до ФЗ-152 та GDPR. Зображення документів не зберігаються після верифікації — лише вилучені поля. Ми використовуємо шифрування в спокої та при передачі, а також ізольоване середовище для виконання моделей. Для роботи з чутливими даними можна розгорнути рішення в хмарі клієнта (Azure / AWS).
Процес роботи
- Аналіз документів, які потрібно підтримати
- Вибір OCR-провайдера (Azure / Google / Регула)
- Реалізація realtime camera guidance
- Інтеграція document analysis API
- MRZ parsing та крос-валідація полів
- Anti-spoofing та liveness check
- Compliance-перевірка (ФЗ-152 для зберігання даних паспортів)
Що входить у результат
- Модуль камери з realtime guidance та автоматичним захопленням
- Інтеграція з обраним OCR-сервісом (Azure, Google, або власна модель)
- Парсинг MRZ та крос-валідація полів
- Anti-spoofing та liveness check (опціонально)
- Документація по API та інструкція з інтеграції
- Доступ до вихідного коду та тестових прикладів
- Підтримка на етапі релізу в App Store / Google Play
Орієнтири за строками
MVP з Azure Document Intelligence та базовим guidance — 2–3 тижні. Повна система з liveness check, anti-spoofing та підтримкою кількох типів документів — 4–6 тижнів.
Щоб дізнатися, як впровадити AI-верифікацію у ваш додаток, зв'яжіться з нами. Замовте консультацію для оцінки вашого проєкту — ми підберемо оптимальне рішення та строки. Отримайте безкоштовну оцінку вашого кейсу та рекомендації щодо вибору провайдера. Інтеграція AI-верифікації окупається за рахунок скорочення ручної перевірки документів.







