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-верификации окупается за счёт сокращения ручной проверки документов.







