Блог Головна

Ідеальний face swap, який ніхто не визнає ідеальним

Ідеальний face swap, який ніхто не визнає ідеальним

Скільки я працюю з face swap і генераціями з фіксованим обличчям — стільки існує одна й та сама проблема. Тренуєш модель на чистому датасеті з кількох сотень фото від клієнта, вилизуєш ракурси, ловиш освітлення, доводиш ArcFace cosine similarity до 0,85+ — тобто до значень, де нейромережа без вагань каже «це та сама людина». Показуєш результат — і починається. Один каже «ідеально, я б не відрізнив». Другий — «ні, не схоже, щось не те». Третій (зазвичай сам суб'єкт) — «це взагалі не я».

І це не про якість pipeline'у. Я перевіряв це сотні разів: одну й ту саму генерацію, об'єктивно «правильну» за всіма метриками комп'ютерного зору, різні люди оцінюють діаметрально протилежно. Довгий час я списував це на смак чи неуважність. Поки не закопався в нейробіологію та психологію сприйняття облич — і не зрозумів, що ніхто з них не помиляється. Просто об'єктивної схожості облич не існує. Те, що ми називаємо «схожий» — це не вимірювання, а реконструкція, яку мозок робить за правилами, що різняться від людини до людини на 70%.

Експеримент, який ламає інтуїцію

У 2011 році Роб Дженкінс із колегами в Університеті Глазго опублікував у Cognition статтю з провокативною назвою «Variability in photos of the same face». Експеримент був простий: учасникам давали 40 фото — насправді двох голландських знаменитостей, перемішаних — і просили розкласти їх за людьми. Скільки тут різних осіб?

Голландці, які знали цих знаменитостей, давали правильну відповідь — дві стопки. Британці, які не знали, давали медіану 7,5 стопок — від 3 до 16. Тобто бачили в одному й тому самому обличчі майже десяток різних людей. Цитата авторів варта того, щоб її запам'ятати: «within-person variability is often very large compared to the differences between people» — варіативність всередині однієї людини часто більша за різницю між людьми.

Це фундаментально перевертає те, як ми думаємо про схожість. Між двома фото однієї людини — у різному освітленні, кутах, з різним виразом — часто більше різниці на рівні пікселів, ніж між фото двох різних людей. Майк Бартон і його група показали в 2005 році, як мозок це розв'язує: він будує усереднену репрезентацію за десятками зустрічей. Тому ми впізнаємо знайому людину навіть на зернистому CCTV з 90%+ точністю, але плутаємо незнайомих на ідеальному HD-фото. Працівники паспортного контролю помиляються в 14% випадків навіть із якісними знімками — і тренування цього не виправляє (White et al., PLoS ONE 2014).

Це перший шар відповіді на питання «чому всі бачать по-різному»: для незнайомців ваш суб'єкт face swap — потенційно «10 різних людей». Кожна нова варіація викликає в них окреме розпізнавання, і шанс, що ваша генерація потрапить у «ту саму» категорію, що й їхнє внутрішнє уявлення — нижчий, ніж здається.

Жилмер із колегами в PNAS 2010 року вимірював у близнюків спадковість здатності розпізнавати обличчя. Цифра — 70%. Це майже як зріст. Розкид між «суперрозпізнавачами» і прозопагнозиками — перевищує стандартне відхилення IQ. Тобто серед ваших глядачів є люди, які не впізнають власну дружину без зачіски (близько 2–2,5% популяції за Kennerknecht 2006), і є ті, хто впізнає однокласника через 30 років на розмитому фото з 95–97% точністю (поліцейські Лондона з відділу суперрозпізнавачів за Robertson 2016).

Я зрозумів це на власному досвіді: серед 10 людей, яких я просив оцінити одну й ту саму генерацію, типово знайдуться двоє, які бачать на ній іншу людину, і один, хто помічає мікроартефакт у формі брови, який я сам не бачив у 200% зумі. Це не помилка. Це різні мозки, що працюють на різній архітектурі.

Раса, вік, стать — три фільтри, які деформують ваш результат

Найкраще задокументований bias у сприйнятті облич — ефект іншої раси. Метааналіз Мейснера і Брайгема 2001 року на ~5000 учасниках дав сумарний ефект d ≈ 0,24: люди в 1,4 рази частіше правильно впізнають обличчя своєї раси і в 1,56 раза частіше дають хибні тривоги на чужі. Контактна гіпотеза («ви просто мало бачили інших») пояснює лише 2% варіативності. Головна причина — категоризація: дивлячись на обличчя іншої раси, мозок кодує категорію «раса» замість індивідуальних рис.

Найцікавіше — це формується в немовлячому віці. Келлі та колеги в 2007 році показали, що 3-місячні немовлята розрізняють обличчя всіх рас, 6-місячні — двох, 9-місячні — лише власної. Це критичний період. Контакт у дорослому віці майже не відновлює здатності (МакКоун 2019).

Аналогічно працює own-age bias (Hedges' g = 0,37 за Rhodes & Anastasi 2012) і own-gender bias із дивовижною асиметрією: жіночий — g = 0,57, чоловічий — g ≈ 0 (Herlitz & Lovén 2013). Жінки запам'ятовують жіночі обличчя на пів стандартного відхилення краще за чоловічі. Чоловіки — однаково посередньо всіх.

Практичний наслідок для face swap: один і той самий результат для жінки 25 років і для чоловіка 60 років іншої раси — це дві різні генерації. Не для pipeline'у, але для мозку, що оцінює. І якщо у вашій тестовій вибірці немає представників цільової демографії, ваша оцінка ідентичності систематично зміщена.

Чому суб'єкт — найгірший суддя свого face swap

Це найболючіша частина для тих, хто працює з клієнтами. Міта, Дермер і Найт у 1977 році в JPSP провели мінімалістичний експеримент: показували жінкам два варіанти власного фото — справжнє і дзеркальне — а також їхнім подругам. Жінки воліли дзеркальне, подруги — справжнє. Причина — mere-exposure effect Зайонца: мозок звик до відображення в дзеркалі з його специфічною асиметрією. Будь-яке справжнє фото порушує цей шаблон.

Накладається frozen face effect (Post et al., Frontiers in Psychology 2012): статичний кадр з відео виглядає менш привабливим, ніж саме відео, у 6 експериментах із 1200 кадрами. Мозок еволюційно налаштований на динамічні обличчя; AI-згенероване статичне зображення завжди трохи «гірше», ніж людина в дзеркалі.

І ще один шар — Еплі та Уітчерч у 2008 році виявили самозвеличення: люди впізнають своє фото швидше, коли його морфовано до більш привабливого, ніж до менш привабливого. Внутрішній образ «я» позитивно зміщений. Тобто навіть точна генерація буде сприйматися як «гірше за мене».

Самообличчя обробляється окремою нейронною мережею — переважно у правій нижній лобній звивині, правій нижній тім'яній часточці й правій передній інсулі (Devue & Brédart 2011). Це не той самий FFA-апарат, який працює, коли ви оцінюєте обличчя інших. Тому коли клієнт каже «це не я» на генерації, де всі інші бачать ідеальну схожість — він не бреше і не вередує. У нього спрацьовує інша система, налаштована на дзеркальний шаблон, мікродинаміку міміки і самозвеличений прототип.


Тепер до практичного питання: на що мозок реально дивиться, коли вирішує «та сама людина чи ні». Тут є кілька відкриттів, які перевертають народну інтуїцію.

Перше — Садр, Джаруді і Сінга в Perception 2003 року видалили з фото 50 знаменитостей або очі, або брови. Видалення брів знизило впізнавання сильніше, ніж видалення очей. Брови — high-contrast, лежать на надбрівній кістці, виживають при поганому освітленні й малій роздільній здатності. Якщо ваш face swap зрушив форму чи товщину брови на 15% — мозок реєструє підміну за частки секунди, навіть не усвідомлюючи, що саме змінилося.

Друге — Абударам і Йовель у 2016 році побудували face-space із 20 ознак і систематично змінювали кожну, вимірюючи перцептивну чутливість. Виявилося, що з усіх рис критичних — лише близько п'яти: волосся (колір і довжина), товщина брів, форма й колір очей, товщина губ. У продовженні 2019 року вони показали: жодне обличчя знаменитості не впізнавалося після заміни 4–5 critical features. Решта — пропорції обличчя, відстань між очима, тон шкіри в межах етносу — змінюються без втрати ідентичності.

Це руйнує популярний міф: «відстань між очима» — НЕ критична для ідентичності. Можна змістити її на 5% і ніхто нічого не помітить. А от посунути брови на 2 мм — побачать усі.

Третє уточнення від Елліса, Шепарда і Девіса 1979 року: для знайомих облич критичніші внутрішні риси (очі, ніс, рот, брови), для незнайомих — зовнішні (волосся, контур, лінія щелепи). Тому face swap відомої клієнтам людини провалюється на дрібницях очей, а face swap нікому не знайомого персонажа — на зачісці й вусі. Це пояснює, чому коли я роблю генерацію публічної людини, всі дивляться на очі. А коли роблю абстрактного персонажа з консистентним обличчям — на волосся.

Чому ArcFace підставляє

ArcFace, FaceNet, DeepFace — це 512-вимірні embedding-простори, де косинусна близькість 0,4–0,6 означає «та сама людина». Усі сучасні системи — DeepFaceLab, SimSwap, FaceShifter, InsightFace, IP-Adapter FaceID, InstantID, PuLID — оптимізують identity loss як 𝓛_id = 1 − cos(emb(swap), emb(source)).

Проблема в тому, що ArcFace cosine 0,8 ≠ людське «це та сама людина». Ган, Філліпс і О'Тул у 2022 році на близнюках показали, що human-AI similarity ratings корелюють лише на r = 0,38–0,63. Тобто майже половина варіативності людської оцінки не пояснюється тим, що бачить нейромережа.

Гірше: NIST FRVT (звіт NISTIR 8280) на 26,6 мільйонах зображень виявив demographic differentials у 10–100 разів між расовими групами в false match rates. Тобто ArcFace відтворює ефект іншої раси — лише в цифровому вигляді. Якщо ви тренуєте на переважно західному датасеті, для азійських чи африканських облич ваші embedding'и працюють гірше — і ви цього не побачите за метриками.

Хороша новина — Абударам, Гросбард і Йовель у 2021 році показали, що face-trained DCNN дійсно стають чутливими до тих самих high-priority features (брови, очі, губи, волосся), що й людський мозок. Об'єктно-натреновані CNN такої властивості не мають. Тобто інструмент не безнадійний — просто вимірює щось ортогональне до людської оцінки в кожному конкретному випадку.

Останній важливий шар — звідки береться відчуття «щось не так» навіть при ідеальній схожості рис. Сайгін, Шамінад і колеги в SCAN 2012 року помістили людей у fMRI і показували їм людину, явно механічного робота і андроїда Repliee Q2 (людиноподібна оболонка плюс механічний рух). Мозок реагував стабільно на конгруентні стимули, але bilateral anterior intraparietal sulcus видавав посилений сигнал саме на андроїда. Інтерпретація: це prediction error у системі сприйняття дій. Зовнішність обіцяє людину — динаміка не справджується — мозок реєструє помилку.

Кятсюрі з колегами в систематичному огляді 2015 року найкраще підтвердив perceptual mismatch hypothesis: моторошність викликає не сама людиноподібність, а невідповідність рівнів реалістичності між різними сенсорними cue. Шіохара і Ямасакі у CVPR 2022 формалізували чотири класи артефактів face swap: landmark mismatch, blending boundary, color mismatch, frequency inconsistency.

Практично це означає, що uncanny valley атакує не саме обличчя. Воно атакує неконсистентність між елементами. Освітлення джерела й цілі мають співпадати; head pose — теж; перехід шкіра-обличчя/шкіра-шия не може давати кольорового зриву; мікродинаміка міміки має узгоджуватися з рухами шиї та плечей. Diffusion-моделі мають окрему проблему: денойзинг усереднює пори й текстуру, даючи «восковий» вигляд — типовий тригер. Розв'язок — frequency separation з реальною текстурою як high-pass overlay або skin-restorer на кшталт CodeFormer.

Що з усього цього випливає

Якщо звести все вище до робочого протоколу — кілька непорушних правил.

Ієрархія ознак, які треба зберігати, ясна. Брови — найважливіше. Форма й колір очей — другий пріоритет. Волосся й лінія росту — третій. Товщина губ — четвертий. Решта — пропорції обличчя, відстань між очима, точна форма щелепи — низькопріоритетні, попри міф про їхню важливість.

Освітлення й узгодженість важать більше, ніж геометрична точність. Обличчя в кадрі з невідповідним освітленням буде «не тим» навіть при ідеальній ідентичності рис. Це чистий perceptual mismatch.

Жодна метрика не замінить людської оцінки, і ця оцінка систематично варіює. Жінка краще оцінить жіночий swap. Молода людина краще побачить помилки в обличчі молодої. Представник власної раси — у своїй. Знайомий із суб'єктом — кращий за будь-який стандартизований тест. Якщо у вашій тестовій вибірці немає таргет-аудиторії, оцінка ідентичності буде систематично зміщеною.

Сам суб'єкт face swap — найгірший суддя. Це не баг pipeline'у — це особливість того, як мозок обробляє самообличчя. Mere-exposure effect, frozen face effect і самозвеличення гарантують, що людина оцінить власний swap суворіше за всіх. Якщо клієнт каже «не я» — він має нейробіологічну рацію навіть при cosine 0,9.

Найголовніше відкриття полягає в тому, що «об'єктивної схожості» не існує в принципі. Те, що для одного глядача ідеальний swap, для іншого — очевидний фейк, не через помилку інструмента, а через 70-відсоткову спадковість здатності розпізнавати, через критичний період формування own-race bias до 9 місяців життя, через гендерну асиметрію, через те, чи знайомий глядач із суб'єктом, та через його позицію в континуумі від прозопагнозика до суперрозпізнавача.

Тому єдина адекватна стратегія для face swap у production — проектувати під найжорсткіший фільтр. Уявіть представника власної раси й статі суб'єкта, добре знайомого зі своїм обличчям, який підсвідомо побудував каpiкатуру-прототип у Valentine'івському face space і миттєво відчує відхилення в бровах, формі очей і товщині губ, навіть не усвідомивши, що саме його турбує. Якщо він не побачить підміни — не побачить і ніхто.

А наступного разу, коли клієнт каже «не схоже» при ArcFace 0,85 — не сперечайтеся. Покажіть йому цей текст. Або просто поставте свій pipeline під найсуворіший фільтр і працюйте далі — бо інакше ви будете нескінченно ганятися за метрикою, яку мозок все одно не використовує.

116 переглядів