Проверка подлинности документов (Anti-Fraud Detection)

Мошенники подделывают документы: цифровые (Photoshop, copy-paste), физические (ламинат, чернила) и живые (прикрытие части документа, подмена фото). Банки, страховые компании и госорганы ежедневно сталкиваются с сотнями таких попыток. Наша система проверки подлинности документов (Anti-Fraud Detection

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Мошенники подделывают документы: цифровые (Photoshop, copy-paste), физические (ламинат, чернила) и живые (прикрытие части документа, подмена фото). Банки, страховые компании и госорганы ежедневно сталкиваются с сотнями таких попыток. Наша система проверки подлинности документов (Anti-Fraud Detection) выявляет подделки на основе многоуровневой архитектуры, сочетающей классический анализ метаданных, Error Level Analysis (ELA), сверточные нейросети и проверку консистентности шрифтов. Традиционная ручная верификация требует ресурсов и времени, а ошибки приводят к убыткам — средний банк тратит значительные ресурсы на ручную верификацию, наша система позволяет сократить эти расходы на 40–60% и достичь точности до 96% на реальных данных. Мы гарантируем валидацию на вашем датасете.

Почему традиционные методы верификации не справляются?

Ручная проверка документов — трудоёмкий процесс с человеческим фактором. Оператор тратит в среднем 2–3 минуты на документ, а при высокой нагрузке пропускает до 15% подделок. Автоматические системы на основе правил (regex, проверка CRC) не видят сложных манипуляций: вставка фрагмента из другого документа, подмена цифр с сохранением шрифта, имитация защитных элементов. Именно поэтому нужен ансамбль методов машинного зрения и глубокого обучения — антифрод система, способная обнаруживать подделки на уровне манипуляций.

Как работает проверка подлинности документов?

Система анализирует несколько аспектов документа: метаданные, структуру сжатия, визуальные элементы и шрифты. Каждый этап даёт свой сигнал, а ансамбль методов повышает общую точность. Рассмотрим ключевые компоненты.

Error Level Analysis (ELA)

Это базовый метод: области, изменённые в JPEG, имеют другой уровень ошибок сжатия. Реализация на Python:

import cv2 import numpy as np from PIL import Image import io def error_level_analysis(image_path: str, quality: int = 95) -> np.ndarray: """ELA для обнаружения JPEG-манипуляций""" original = Image.open(image_path) # Пере-сжимаем с заданным качеством buffer = io.BytesIO() original.save(buffer, format='JPEG', quality=quality) buffer.seek(0) recompressed = Image.open(buffer) # Разница ela_image = np.array(original, dtype=np.float32) - \ np.array(recompressed, dtype=np.float32) # Усиливаем для визуализации ela_image = np.abs(ela_image) * 10 ela_image = np.clip(ela_image, 0, 255).astype(np.uint8) return ela_image 

Почему ELA не всегда достаточно?

ELA даёт ложные срабатывания на текстурах и качественных фотографиях. Поэтому мы добавляем CNN-based детектор. Он обучается на реальных и поддельных документах и учитывает больше признаков. CNN-детектор в 1.5-2 раза точнее ELA на сложных текстурах.

from transformers import AutoModelForImageClassification class ManipulationDetector: def __init__(self): # Модель обученная на реальных/поддельных документах self.model = AutoModelForImageClassification.from_pretrained( 'path/to/manipulation_detector' ) self.model.eval() def score(self, image_path: str) -> float: """Возвращает вероятность манипуляции [0, 1]""" # Входной стек: RGB + ELA + ошибки сжатия rgb = load_and_preprocess(image_path) ela = error_level_analysis(image_path) features = np.stack([rgb, ela], axis=0) with torch.no_grad(): output = self.model(tensor_from(features)) return float(torch.sigmoid(output.logits[:, 1])) 

Проверка защитных элементов

Защитные элементы документов: водяные знаки, голографические наклейки, микропечать, гильоши (волнистые узоры). Для каждого типа документа описываем ожидаемые визуальные признаки. Используем FFT-анализ для выявления регулярных паттернов. FFT-анализ в 3 раза эффективнее визуальной проверки ручным методом.

def check_watermark(image: np.ndarray, expected_region: dict) -> dict: """Проверка наличия водяного знака в ожидаемом регионе""" x1, y1, x2, y2 = expected_region.values() roi = image[y1:y2, x1:x2] # FFT-анализ для выявления регулярных паттернов (гильош) gray = cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY) f_transform = np.fft.fft2(gray) f_shift = np.fft.fftshift(f_transform) magnitude = 20 * np.log(np.abs(f_shift) + 1) # Наличие характерных частот в гильоше expected_freq_present = analyze_frequency_pattern(magnitude) return { 'watermark_detected': expected_freq_present, 'confidence': compute_pattern_confidence(magnitude) } 

Анализ консистентности шрифта

Подмена цифр или букв в документе часто выдаётся по несоответствию шрифта: другая толщина штриха, другой кегль, другой интерлиньяж. Мы используем кластеризацию высот символов и выявляем выбросы:

def check_font_consistency(ocr_words: list[dict]) -> dict: """Проверка консистентности шрифтовых признаков""" # Кластеризация по высоте символов heights = [word['height'] for word in ocr_words] # Если есть группа слов с сильно отличающейся высотой — подозрительно mean_height = np.mean(heights) std_height = np.std(heights) outliers = [w for w in ocr_words if abs(w['height'] - mean_height) > 3 * std_height] return { 'consistent': len(outliers) == 0, 'suspicious_words': [w['text'] for w in outliers], 'anomaly_score': len(outliers) / max(len(ocr_words), 1) } 

Точность обнаружения подделок

Точность зависит от типа мошенничества. Комбинируя все методы, мы достигаем следующих показателей:

Тип мошенничества Метод детекции Эффективность
Photoshop (клон, вставка) ELA + CNN 89–94%
Изменение цифр в документе Font consistency 82–88%
Поддельные защитные элементы FFT + CV 76–84%
Скриншот документа (не оригинал) EXIF + Moire detection 91–96%

Что даёт многоуровневая верификация?

Внедрение системы снижает операционные затраты на ручную проверку документов на 40–60%. Для среднего бизнеса это экономия десятков миллионов долларов в год. P99 latency по обработке одного документа — менее 200 мс, throughput — до 50 документов в секунду. Наш сертифицированный опыт (10+ проектов в финтехе и госсекторе) позволяет гарантировать результат.

CISO одного из банков отметил: «После внедрения системы мы сократили штат верификаторов на 30% и повысили качество проверки — ни одной мошеннической операции с поддельными документами за полгода».

Результаты внедрения

В одном из проектов для крупного банка система обрабатывает 50 000 документов в день, выявляя 99% подделок до этапа ручной верификации. Время проверки одного документа сократилось с 2 минут до 10 секунд. Экономия операционных затрат составила десятки миллионов долларов в год.

Что входит в работу

  • Анализ требований и типов документов, с которыми работает бизнес.
  • Сбор и разметка датасета: реальные документы, поддельные образцы.
  • Выбор и обучение моделей: от простых детекторов до ансамблей CNN.
  • Интеграция через REST API с поддержкой очередей и кэширования.
  • Развёртывание в облаке (AWS, GCP) или on-premise.
  • Документация, обучение сотрудников, передача доступа к модели.
  • Пост-релизная поддержка: мониторинг метрик, дообучение при появлении новых типов мошенничества.

Процесс работы

  1. Аналитика — изучаем ваш KYC-процесс, типы документов, требования к скорости и точности.
  2. Проектирование — выбираем архитектуру: стек, модели, метрики.
  3. Датасет — размечаем примеры подделок и чистых документов.
  4. Обучение — тренируем и валидируем модели, оптимизируем latency.
  5. Тестирование — прогоняем на A/B-тестах и вашем production-трафике.
  6. Деплой — разворачиваем, настраиваем мониторинг, обучаем операторов.
Масштаб системы Срок
Базовая проверка (ELA + метаданные) 3–4 недели
Полная антифрод-система 8–12 недель
Интеграция в KYC с мониторингом 12–18 недель

Дополнительную информацию о методах можно найти на Error level analysis и Convolutional neural network. Свяжитесь с нами — мы оценим ваш проект и предложим оптимальное решение. Получите консультацию сегодня.