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

Маска задаёт, что можно изменить

Пусть xx — изображение, m{0,1}H×Wm\in\{0,1\}^{H\times W} равна единице в редактируемой области. Результат x^\widehat x должен сохранять известную часть:

(1m)x^(1m)x,(1-m)\odot\widehat x \approx(1-m)\odot x,

а внутри маски соответствовать условию cc и контексту. В diffusion inpainting на каждом обратном шаге известные пиксели подмешиваются из appropriately noised исходника.

Маска является контрактом. Если она размыта, граница редактирования шире видимого контура. Модель может менять отражение, тень или фон, чтобы согласовать новый объект; технически это улучшает правдоподобие, но усложняет provenance.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Исходное изображение binary mask inpainting result and difference map
Рис. 87.1. Маска, контекст и невидимая область правки

Четыре панели показывают исходник, маску, результат и x^x|\widehat x-x|. Контур маски наложен на difference map: изменения вне него измеримы. Отдельно отмечены тень и отражение как спорные элементы контракта.

Перенос стиля и identity

Face swap пытается сохранить позу, освещение и выражение кадра-источника, меняя identity. Можно разделить признаки:

zid=Eid(xA),zattr=Eattr(xB),x^=G(zid,zattr).z_{\mathrm{id}}=E_{\mathrm{id}}(x_A), \qquad z_{\mathrm{attr}}=E_{\mathrm{attr}}(x_B), \qquad \widehat x=G(z_{\mathrm{id}},z_{\mathrm{attr}}).

На практике разделение неполно: identity encoder содержит возраст и освещение, attribute encoder — черты лица. Метрика cosine similarity face-recognition модели тоже может быть обманута.

Style transfer меняет статистику признаков, а не «переносит художественную душу». Любое использование узнаваемого человека требует согласия и контекста распространения.

Threat model раньше accuracy

Нужно определить:

  • тип подделки: face swap, lip-sync, full synthesis, inpainting;
  • доступ атакующего к detector;
  • допустимые преобразования: resize, recompression, screenshot;
  • base rate подделок;
  • стоимость false positive и false negative;
  • время до появления нового generator;
  • есть ли оригинал или только подозрительный файл.

Detector, обученный на артефактах одного generator-а, может распознавать его fingerprint, а не общий факт синтеза. После обновления generator-а fingerprint исчезает.

Порог зависит от редкости

Пусть sensitivity Pr(+F)=0,9\Pr(+\mid F)=0{,}9, specificity Pr(R)=0,95\Pr(-\mid R)=0{,}95. При base rate Pr(F)=0,01\Pr(F)=0{,}01 positive predictive value:

Pr(F+)=0,90,010,90,01+0,050,990,154.\Pr(F\mid+)= \frac{0{,}9\cdot0{,}01} {0{,}9\cdot0{,}01+0{,}05\cdot0{,}99} \approx0{,}154.

Большинство флагов окажется ложным, хотя sensitivity и specificity выглядят высокими. Поэтому нельзя автоматически обвинять автора по одному score.

Порог выбирают по expected cost:

C(t)=cFNPr(FN;t)+cFPPr(FP;t).C(t)= c_{\mathrm{FN}}\Pr(\mathrm{FN};t) +c_{\mathrm{FP}}\Pr(\mathrm{FP};t).

В журналистской проверке пропуск опасной подделки и ложное обвинение имеют разные, оба серьёзные последствия.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Дерево из 10000 файлов с real fake detector outcomes and predictive value
Рис. 87.2. Редкая подделка превращает флаги в ложные тревоги

Из 10 000 файлов 100 поддельны: 90 найдены, 10 пропущены; из 9 900 настоящих 495 ошибочно помечены. Цветные блоки позволяют увидеть знаменатель: среди 585 тревог истинны только 90.

Лаборатория порога

Порог deepfake-детектора, base rate и сдвиг генератора

Загружается живая иллюстрация…

Меняйте base rate, sensitivity и specificity. Следите, как PPV рушится при редких подделках. Затем включите новый generator: ROC старого test больше не описывает работу.

Выберите порог для двух контекстов — массовой автоматической модерации и ручной проверки редакцией. Во втором можно позволить больше false positives, если каждый флаг изучает эксперт; в первом цена масштаба другая.

Detector стареет

Разделение случайными кадрами опасно: соседние кадры одного видео почти одинаковы. Train/test делят по исходным видео, людям и генераторам. Ещё лучше — временной split, где test создан позже.

Преобразования тестируют цепочкой: JPEG quality, resize, crop, blur, screenshot, повторная запись экрана. Но augmentation не должна случайно создавать shortcut — например, все fake пережаты сильнее real.

Калибровку проверяют после shift. Temperature scaling на старом validation не исправляет новую физику артефактов.

Provenance сильнее угадывания пикселей

C2PA-подобная provenance связывает файл с подписанными утверждениями об источнике и истории редактирования. Криптографическая подпись не доказывает истинность сцены, но помогает обнаружить изменение после захвата.

Watermark встраивает сигнал в generated content. Он должен переживать обычные преобразования и иметь контролируемый false positive. Атакующий может удалить watermark, поэтому отсутствие сигнала не доказывает реальность.

Комбинированная система:

  1. проверяет подпись и цепочку происхождения;
  2. ищет watermark;
  3. анализирует пиксельные и временные признаки;
  4. сопоставляет независимые источники;
  5. передаёт спорный случай человеку.
Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Decision flow provenance signature watermark detector source corroboration human review
Рис. 87.3. Проверка как дерево свидетельств

Схема не выдаёт бинарный приговор из detector score. Ветви подписаны типом свидетельства и возможным отказом: подпись отсутствует, watermark повреждён, classifier вне домена. Финал — уровни уверенности и действие, а не ярлык «фейк».

FaceForensics++ и перенос

FaceForensics++ содержит оригинальные и манипулированные видео несколькими методами и уровнями compression. Он удобен для сравнения, но generators исторические. Высокая intra-dataset accuracy не гарантирует перенос на современные diffusion edits.

Эксперимент должен иметь:

  • split по исходным видео;
  • balanced training, но evaluation при нескольких base rates;
  • leave-one-manipulation-out;
  • compression stress test;
  • калибровку;
  • error audit по освещению, движению и группам;
  • запрет вывода личности и публичного обвинения.

Связь с adversarial robustness очевидна: атакующий адаптируется к проверке, а фиксированный benchmark стареет.

Мини-исследование: временной fingerprint

Для видео возьмите landmarks лица и оцените траектории глаз, губ и головы. Вместо classification каждого кадра вычислите derivatives и cross-correlations. Lip-sync может создавать правдоподобные frames, но запаздывать относительно аудио или нарушать согласованное движение соседних точек. В уроке о видеогенерации эта проверка продолжается через 3D-согласованность и поведение сцены после вмешательства.

Сравните три splits: случайные frames, видео и leave-one-generator-out. Один и тот же temporal feature может отлично работать на первых двух и упасть на третьем. Это показывает, распознал ли он общую несогласованность или конкретный pipeline.

Добавьте обычные real-видео с плохой связью аудио из-за монтажа. Если detector считает их fake, признак обнаруживает рассинхронизацию, а не происхождение. Название output должно отражать измеренное событие.

Мини-исследование: evidence card вместо приговора

Для 100 файлов составьте card: provenance status, watermark result, pixel score с calibration interval, temporal score, metadata anomalies и доступные независимые источники. Не сворачивайте всё сразу в среднее.

Попросите двух экспертов принимать действие по card и по одному detector score в случайном порядке. Сравните accuracy, время и уверенность. Structured evidence может замедлить решение и снизить ложные обвинения.

Сценарий связывает тему с человеческими предпочтениями и разногласием: экспертные решения тоже имеют вариативность, поэтому нужен adjudication protocol. Ни classifier, ни человек не являются безошибочным oracle.

Проверка после сжатия

Проведите каждый файл через две реальные цепочки: загрузка в мессенджер и запись экрана. Сохраняйте exact transformations. Стройте calibration curve заново и измеряйте selective accuracy, когда система может сказать «не знаю».

Отказ от решения при высоком shift — полезная функция. Coverage–risk curve показывает долю обработанных файлов и ошибку на них. Система, уверенно классифицирующая всё, может быть хуже осторожной.

Связь с adversarial threat model и общей устойчивостью задаёт требование к тесту: включить преобразования, доступные противнику и обычному пользователю.

Укажите, что происходит с отложенными случаями. Если их автоматически считать настоящими, selective policy лишь прячет ошибки. Они должны идти в отдельную ручную очередь, а end-to-end метрика включать её стоимость и задержку.

Проверьте равенство coverage по важным режимам. Система может отказываться почти на всех тёмных видео и показывать низкий риск на оставшихся. Общая кривая хороша, доступность проверки распределена неравномерно.

Для каждого режима покажите и sample size. Маленькая группа даёт широкий интервал, а не автоматически худшее качество. Если порог выбирался на той же группе, нужен отдельный validation.

Финальный пользовательский текст должен говорить «обнаружены признаки, требующие проверки», а не «человек сфальсифицировал видео». Detector оценивает файл, не намерение автора.

Флаг только начинает проверку

Генеративное редактирование определяется маской, условием и допустимыми изменениями. Deepfake detection — задача под сдвигом и адаптивным противником. Base rate превращает высокую accuracy в слабую достоверность отдельного флага. Provenance и процедура проверки надёжнее одиночного классификатора.

Задачи