Судебная видео-экспертиза on-premise: 31,7 часа записи → 214 страниц доказательств без облака

Веб Штурм
  • юридическая экспертиза
  • видео-экспертиза
  • on-premise
  • локальная GPU
  • Whisper
  • OCR
  • ffmpeg
  • 152-ФЗ
  • адвокатская тайна
  • судебная защита

Спор между заказчиком и подрядчиком IT-разработки — типичная история. Подрядчик обещал систему «под ключ», получил предоплату, через год сдал то, что не работает. Видеозапись многочасового осмотра системы у подрядчика стала ключевым доказательством для суда. Наша роль — построить AI-pipeline анализа этих записей и подготовить комплект документов, готовых к подаче в арбитраж.

Контекст дела (анонимно)

Имена сторон, юр.лица и предмет спора в этой статье не называются. Описываем только методику и итоги. Исходные данные:

Задача

Pipeline (наш стек обработки)

1. Извлечение значимых кадров (extract_frames.py)

Результат: из 31,7 часа видео извлечено 3 818 значимых кадров (~120 кадров на час) — это управляемый объём для последующего OCR и ручной разметки.

# extract_frames.py (упрощённо)
import cv2
from skimage.metrics import structural_similarity as ssim

prev = None
saved = 0
for frame in iter_frames(video_path, fps=1):
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    if prev is None or ssim(prev, gray) < SSIM_THRESHOLD:
        cv2.imwrite(f'frames/{saved:06d}.png', frame)
        saved += 1
        prev = gray

2. OCR извлечённых кадров (easyocr)

# ocr_pipeline.py (упрощённо)
import easyocr
reader = easyocr.Reader(['ru', 'en'], gpu=True)
results = reader.readtext(frame_path, detail=1)
for bbox, text, confidence in results:
    if confidence > 0.6:
        save_to_db(frame=frame_id, bbox=bbox, text=text, conf=confidence)

3. Транскрипция (faster-whisper, локально на CUDA)

# transcribe.py (упрощённо)
from faster_whisper import WhisperModel

model = WhisperModel('large-v3', device='cuda', compute_type='float16')
segments, info = model.transcribe(audio_path, language='ru', word_timestamps=True)
for seg in segments:
    save_segment(start=seg.start, end=seg.end, text=seg.text)

4. Сборка экспертного заключения

Где обрабатывались данные: 100% локально, без облака

Это самый важный пункт всего проекта. Никакой кадр, аудио или фрагмент стенограммы не покидали локальный компьютер судебного аналитика. Весь pipeline собран из инструментов с открытыми весами и локальным запуском:

ЭтапИнструментГде работает
Извлечение кадровffmpeg + OpenCV + scikit-image (SSIM)Локально, CPU
Транскрипцияfaster-whisper (модель large-v3)Локально, CUDA GPU
OCReasyocr (RU+EN)Локально, CUDA GPU (gpu=True)
Сборка отчётасвой Python + process_all_videos.py оркестраторЛокально

Что это даёт юридически:

Технические детали железа: локальная workstation с GPU 24+ ГБ VRAM (NVIDIA RTX 3090 / 4090 / A6000 уровня). Этого достаточно для large-v3 Whisper в float16 + параллельной OCR-обработки. Для меньших объёмов хватит 12 ГБ VRAM с моделью medium или small.en.

Этот же подход применим ко всем нашим проектам с конфиденциальными данными: судебные кейсы, медицинские записи, корпоративная переписка, ПДн госорганов. Если данные не должны покидать контур — не должны.

Выявленные нарушения подрядчика

Видео-экспертиза дала четыре независимых группы доказательств нарушений со стороны ответчика:

  1. Несанкционированное копирование кода с локального компьютера, не входившего в материалы дела. Доказательство: кадр с экраном файлового менеджера + таймкод + цитата участника на этом же таймкоде.
  2. Установка панели управления HestiaCP на тестовый сервер заказчика — это даёт полный административный доступ к данным заказчика без согласования. Доказательство — кадры с интерфейсом HestiaCP и установочной командой в терминале.
  3. Создание триггеров БД, нарушающих целостность системы — после правок система оказалась нефункциональной. Доказательство — OCR кода триггера в кадре + последующие ошибки в логах.
  4. Отсутствие документации/инструкций для установки и развёртывания системы — нарушение конкретных пунктов договора. Доказательство от обратного: на видео ответчик неоднократно ищет «как установить», то есть документации нет даже у него.

Что мы из этого вынесли

Когда полезно

Ссылки (методика)