Перевірка справжності документів (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. Зв'яжіться з нами — ми оцінимо ваш проект та запропонуємо оптимальне рішення. Отримайте консультацію сьогодні.