Головна / Статті / Як ШІ читає й перебудовує фотографію: що стоїть за портретами «з 1980-х»

Як ШІ читає й перебудовує фотографію: що стоїть за портретами «з 1980-х»

Як моделі зору перетворюють пікселі на ембединги і як генеративний ШІ з їхньою допомогою стилізує знімок під плівку 1980-х — і де межі точності, схожості та розпізнавання.

2038 слів

Останнім часом стрічки заповнені звичайними сучасними фото, переробленими так, ніби їх зняли в 1980-х. Свіжий портрет перетворюється на старий сімейний знімок, вінтажне студійне фото, вуличну сцену 1985 року, вицвілий відбиток із плівки або кадр із ретроодягом і тлом. Схоже на простий фільтр. Але це не так. За результатом стоять комп’ютерний зір, вивчені представлення зображень і генеративні моделі.

Звідси більш базове питання. Перш ніж ШІ зможе змінити картинку, як він її взагалі читає?

Фотографія — це сітка чисел

Людина дивиться на фото й думає: «хтось стоїть перед старою будівлею». Модель так не сприймає. На найнижчому рівні цифрове зображення — це просто числа. Кольорову картинку можна записати як Img(x, y, c), де x — позиція по горизонталі, y — по вертикалі, а c — колірний канал.

Візьмімо один піксель:

Pixel
 ↓

Його колір розкладається на три значення каналів, наприклад:

Red   = 128
Green = 91
Blue  = 73

Із мільйонів таких значень складається все зображення, тож перший крок виглядає так:

Photograph
     ↓
Pixels
     ↓
Numbers

Модель ніколи не отримує фото як зорове переживання. Вона отримує математичне представлення.

Від пікселів до патернів

Самі по собі сирі числа мало що означають. Корисне починається, коли їх обробляє нейромережа. Припустімо, на вході груба фігура на кшталт такої:

🧑
       /|\
       / \

Людина одразу бачить постать. Мережа доходить до цього поступово. Ранні шари вловлюють приблизно таке:

Edges
Lines
Corners
Textures
Colors

Пізніші шари складають із цього складніші структури:

Edges
 ↓
Shapes
 ↓
Textures
 ↓
Parts
 ↓
Objects
 ↓
Relationships

Здатність будувати дедалі складніші представлення з простіших — одна з головних причин, чому глибокі мережі так добре працюють у комп’ютерному зорі.

Ембединги

Зрештою система може перетворити побачене на числове представлення — ембединг. Потік виглядає приблизно так:

Image
  ↓
Vision Model
  ↓
[0.21, -0.73, 0.14, ...]

Ці числа — не прості мітки на кшталт таких:

person = 1
tree = 2
building = 3

Вони можуть кодувати багато аспектів візуального вмісту та зв’язки, які вивчила модель. Концептуально кожному зображенню відповідає свій ембединг:

Image A
   ↓
Embedding A
Image B
   ↓
Embedding B

Якщо два зображення мають спільні візуальні чи смислові риси, їхні ембединги можуть опинитися поруч у просторі представлень моделі. На цьому побудована значна частина сучасного комп’ютерного зору й мультимодального ШІ.

Навчання замість написання правил

Моделі зазвичай не дають величезне вручну написане правило на кшталт:

IF two eyes
AND nose
AND mouth
AND body
THEN person

Натомість вона вчиться на даних. Під час навчання вона бачить велетенську кількість прикладів і поступово засвоює статистичні зв’язки між візуальними патернами. Ніхто не програмує твердження «в обличчя двоє очей». Систему навчають будувати корисні представлення на прикладах. У цьому й полягає головна відмінність класичного зору на правилах від сучасного глибокого навчання.

Що відбувається, коли фото «старять»

Припустімо, ви даєте системі сучасну фотографію:

Modern Photograph
       ↓
AI
       ↓
1980s Photograph

ШІ не просто застосував до фото фільтр в один клік. Багато генеративних моделей використовують вхідну картинку як умову, а потім створюють нове зображення, яке зберігає одні риси оригіналу й змінює інші. Наприклад, вони можуть зберегти ось це:

Keep:
✓ Person
✓ General face structure
✓ Pose
✓ Composition

і переробити ось це:

Change:
→ Clothing
→ Background
→ Lighting
→ Color characteristics
→ Film appearance
→ Camera style

Це значно більше, ніж підкрутити яскравість чи насиченість.

Звідки модель знає, який вигляд мав 1985 рік

Модель увібрала візуальні закономірності з величезних колекцій зображень. Серед них — зв’язки між такими речами, як:

Era
+
Clothing
+
Architecture
+
Lighting
+
Photography style
+
Film characteristics
+
Color
+
Camera artifacts

Коли її просять зробити «справжню фотографію 1985 року», модель може створити зображення, що узгоджується з патернами, пов’язаними з цим описом. Вона не подорожує в часі. Вона генерує нове з вивчених асоціацій.

Чому детальний промпт працює краще

Порівняйте два запити. «Зроби це фото старим» — розмито. А цей набагато конкретніший: відтвори портрет так, ніби його справді зняли в Індії 1985 року, з одягом, архітектурою та світлом тієї епохи, особливостями аналогової плівки, легким зерном, природною текстурою шкіри й автентичним виглядом вінтажної камери.

Другий задає генератору багато обмежень, які треба виконати. Концептуально ці частини поєднуються так:

Prompt
  +
Input Image
  ↓
Conditioning
  ↓
Generative Model
  ↓
New Image

Фільтр чи генератор?

Не обов’язково фільтр. Класичний фільтр обчислює Out = f(Img), застосовуючи заздалегідь задане перетворення до вихідних пікселів. Типові кроки такі:

Increase contrast
Reduce saturation
Add grain
Apply color tint

Генеративний ШІ може поводитися інакше. Він здатен створювати нові значення пікселів, орієнтуючись на вхідне зображення та текстові інструкції. Якщо поставити два конвеєри поруч, вони виглядають так:

Traditional Filter:
Original Pixels
      ↓
Fixed Transformation
      ↓
Modified Pixels

Проти:

Generative AI:
Image + Prompt
      ↓
Learned Generative Process
      ↓
New Image

Тому генеративна система може змінювати набагато більше, ніж колір.

Дрібниці, які продають епоху

Переконливе вінтажне фото містить багато маленьких сигналів:

  • Аналогова плівка залишає помітне зерно.
  • Старі фотопроцеси інакше передають колір.
  • Студійні й вуличні стилі змінюються від епохи до епохи.
  • Старі об’єктиви дають іншу різкість та інші оптичні артефакти.
  • Мода — сильний маркер часу.
  • Будівлі, вивіски, автомобілі й інтер’єри допомагають датувати сцену.

Навіть дрібні предмети можуть зробити зображення історично достовірним на вигляд. Тож модель не обов’язково вчить правило «1980-ті — це коричневі відтінки». Вона може вловлювати значно багатшу мережу візуальних зв’язків.

Правдоподібно — не означає точно

Це найважливіший момент. Усередині генеративної моделі немає бездоганної історичної бази даних. Вона видає результат на основі вивчених патернів, тому може давати картинки, які виглядають переконливо, але історично хибні. Уявіть таку пару:

Requested:
India, 1985
Generated:
Modern object
+
1980s clothing
+
incorrect architecture

Зображення може виглядати правдоподібно, але правдоподібність — це не точність.

Різниця стає ще важливішою, коли йдеться про особисті історії. Припустімо, хтось генерує картинку з підписом «мій дідусь у Мумбаї 1982 року». Вона може виглядати чудово автентичною. Але якщо такого фото ніколи не існувало, це не відновлена фотографія. Це згенерована реконструкція. Порівняйте:

Real Historical Photograph
          vs
AI-Generated Historical Image

Виглядати вони можуть схоже, а походження в них зовсім різне.

Чи можна розпізнати згенеровані зображення?

Іноді. Дослідники вивчають такі властивості:

Pixel statistics
Frequency patterns
Noise
Compression artifacts
Texture
Edges
Metadata
Generation signatures

Один з інструментів — перетворення Фур’є, F(u, v), яке переводить зображення в частотну область. Потім аналітики перевіряють, чи мають згенеровані картинки статистичні особливості, що відрізняють їх від знімків фізичних камер. Але тут є жорстка межа: універсального математичного «відбитка», за яким будь-яке ШІ-зображення миттєво розпізнається, не існує, а методи генерації й далі вдосконалюються.

Дві дороги до тих самих пікселів

Фото, зняте в реальному світі, проходить один шлях:

Real World
    ↓
Light
    ↓
Lens
    ↓
Camera Sensor
    ↓
Electrical Measurements
    ↓
Image Processing
    ↓
Pixels

Згенероване зображення — інший:

Prompt / Input Image
       ↓
Model Representation
       ↓
Generative Process
       ↓
Generated Pixel Values
       ↓
Final Image

Обидва закінчуються пікселями, але шлях зовсім різний. Масив чисел Img(x, y, c) не може сказати, звідки він узявся:

A camera
A scanner
A graphics program
An AI model

Те саме математичне представлення може описувати зображення, створені зовсім різними фізичними та обчислювальними процесами. Відрізняється те, як зображення було отримано.

Чому «пливуть» обличчя

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

Eyes
Nose
Jawline
Hair
Ears
Skin texture
Facial proportions

Модель генерує картинку, а не робить ксерокопію оригіналу.

Схожість проти стилю

Концептуально конвеєр проходить через етап ідентичності:

Original Image
      ↓
Identity Features
      ↓
Generation
      ↓
Vintage Style
      ↓
New Image

Завдання — водночас зберегти особу й змінити зовнішній вигляд, а ці цілі можуть тягнути в різні боки. Змініть забагато — і вийде ось що:

Great vintage style
❌ Poor identity preservation

Замало — і вийде навпаки:

Good identity preservation
❌ Weak transformation

Найцікавіше — знайти баланс. Це можна уявити як поділ зображення на частини:

IMAGE
├── Identity
│   ├── Face
│   ├── Structure
│   └── Features
│
└── Appearance
    ├── Clothing
    ├── Lighting
    ├── Background
    ├── Color
    └── Photography style

Мета така:

Identity → Preserve
Appearance → Transform

І це виявляється напрочуд складною обчислювальною задачею.

Що насправді показує тренд

Мода виглядає як розвага, але під нею ховається щось глибше. ШІ вчиться тому, як ці речі пов’язані одна з одною:

Images
Words
Objects
Styles
Textures
Scenes
Time periods

Потім генеративні моделі використовують ці зв’язки, щоб будувати нові візуальні комбінації. Одного короткого речення — скажімо, прохання про реалістичне фото цієї людини, зняте в Індії 1985 року, — досить, бо модель перетворює мову на візуальні обмеження.

Це вказує й на ширшу галузь — мультимодальний ШІ. Якщо старі системи робили так:

Text → AI → Text

то нові вміють поєднувати кілька видів вхідних даних:

Image
   +
Text
   +
Audio
   ↓
AI Model
   ↓
Understanding / Generation

Сучасна система потенційно може проаналізувати зображення, відповісти на запитання про нього, описати його, відредагувати, поєднати з текстовими інструкціями та згенерувати нове. Межа між мовою і зором дедалі більше розмивається.

То що ж бачить ШІ?

Зовсім не те, що бачать люди. Глядач бачить постать на старій вулиці. А модель працює ось із чим:

Pixels
 ↓
Features
 ↓
Representations
 ↓
Embeddings
 ↓
Learned relationships

Потім генеративна модель може використати ці представлення, щоб створити нову візуальну інформацію. Можливо, правильне питання не в тому, чи може ШІ бачити, а в тому, яке математичне представлення він будує з того, що ми називаємо зором.

Увесь конвеєр

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

HUMAN WORLD
                      ↓
                 Photograph
                      ↓
                    Pixels
                      ↓
              Vision Representation
                      ↓
                 Embeddings
                      ↓
            +------------------+
            |   Generative AI  |
            +------------------+
                ↑          ↑
                |          |
             Image       Prompt
                |          |
                +----+-----+
                     ↓
              Generated Image
                     ↓
             "1980s Photograph"

Тому тренд із фото «з 1980-х» — це більше, ніж фільтр. Він показує, як ШІ може перетворювати числові представлення візуальної реальності на нові візуальні враження. Дивовижне не те, що картинку можна зробити старою на вигляд. Дивовижне те, що модель може вивчити, як виглядає «старе», і потім відтворити це.