AI-реставрація пошкоджених фотографій: пайплайн і впровадження

Скановані плівки з сімейних архівів часто містять подряпини, потертості, вицвітання та піксельні артефакти. Ручна реставрація одного кадру у Photoshop займає 2–3 години. Навіть досвідчений ретушер витрачає до 8 годин на складні портрети XIX століття. Наша AI-реставрація фотографій базується на глибо

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Скановані плівки з сімейних архівів часто містять подряпини, потертості, вицвітання та піксельні артефакти. Ручна реставрація одного кадру у Photoshop займає 2–3 години. Навіть досвідчений ретушер витрачає до 8 годин на складні портрети XIX століття. Наша AI-реставрація фотографій базується на глибокому навчанні. Ми автоматизуємо цей процес через комбінацію спеціалізованих моделей — отримуємо результат за секунди без втрати якості. При цьому вартість обробки одного зображення в пайплайні може бути в десятки разів нижчою за ручну працю, особливо при масовій реставрації архівів. Економія бюджету при переході з ручної обробки сягає 80% — для архіву з 10 000 кадрів це близько 50 000 грн. Наша компанія має 12+ років досвіду в ML.

Наш пайплайн вирішує повний спектр проблем: видалення подряпин і плям (інпейтинг), відновлення облич (GFPGAN), апскейлінг з деталізацією (Real-ESRGAN), деноїзинг та корекцію кольору. Все це об'єднано в єдиний сервіс із REST API або gRPC. Нейромережа для видалення подряпин (інпейтинг) використовує архітектуру UNet. Для відновлення старих фото ми застосовуємо комплексний підхід. ML реставрація зображень включає кілька етапів.

Пайплайн реставрації фотографій: покроково

  1. Аналіз вихідного зображення — визначаємо тип пошкоджень, роздільну здатність, наявність облич. Використовується Feature Pyramid Network для детекції дефектів.
  2. Видалення подряпин і плям — застосовуємо інпейтинг-модель (LaMa або внутрішню на базі UNet). Інпейтинг фото дозволяє видалити подряпини та плями.
  3. Апскейлінг — Real-ESRGAN збільшує роздільну здатність у 4 рази зі збереженням текстур. Апскейлінг фото виконується за допомогою Real-ESRGAN.
  4. Відновлення облич — GFPGAN коригує риси, використовуючи StyleGAN2 як пріор. Відновлення облич AI досягається завдяки GFPGAN.
  5. Фінальна пост-обробка — деноїзинг, корекція кольору та експорт.

Пайплайн реалізовано на Python з використанням PyTorch та ONNX Runtime. Приклад коду нижче.

from PIL import Image import cv2 import numpy as np import io class PhotoRestorationPipeline: def restore(self, damaged_photo: bytes) -> bytes: # 1. Видалення подряпин і плям (GFPGAN + інпейтинг) # 2. Апскейлінг (Real-ESRGAN) # 3. Відновлення облич (GFPGAN) # 4. Деноїзинг image = Image.open(io.BytesIO(damaged_photo)).convert("RGB") img_np = np.array(image) img_np = self.remove_scratches(img_np) img_np = self.upscale(img_np) img_np = self.restore_faces(img_np) result = Image.fromarray(img_np) buf = io.BytesIO() result.save(buf, format="PNG") return buf.getvalue() 

Реалізація апскейлінгу (Real-ESRGAN)

from basicsr.archs.rrdbnet_arch import RRDBNet from realesrgan import RealESRGANer model = RRDBNet(num_in_ch=3, num_out_ch=3, num_feat=64, num_block=23, num_grow_ch=32, scale=4) upsampler = RealESRGANer( scale=4, model_path="RealESRGAN_x4plus.pth", model=model, tile=512, tile_pad=10, pre_pad=0, half=True ) def upscale_image(img_np: np.ndarray, scale: int = 4) -> np.ndarray: output, _ = upsampler.enhance(img_np, outscale=scale) return output 

Відновлення облич (GFPGAN)

from gfpgan import GFPGANer gfpgan = GFPGANer( model_path="GFPGANv1.4.pth", upscale=2, arch="clean", channel_multiplier=2 ) def restore_faces(img_np: np.ndarray) -> np.ndarray: _, _, restored_img = gfpgan.enhance( img_np, has_aligned=False, only_center_face=False, paste_back=True, weight=0.5 ) return restored_img 

REST API на FastAPI

from fastapi import FastAPI, UploadFile, File app = FastAPI() pipeline = PhotoRestorationPipeline() @app.post("/restore") async def restore_photo(file: UploadFile = File(...)): original_bytes = await file.read() restored_bytes = pipeline.restore(original_bytes) return Response(content=restored_bytes, media_type="image/png") 

FastAPI сервіс реставрації забезпечує зручний REST API.

Чому GFPGAN краще справляється з обличчями?

GFPGAN використовує StyleGAN2 як пріор і специфічний модуль відновлення облич. На відміну від загальної upscaling-моделі, він зберігає індивідуальні риси: очі, ніс, вираз. Згідно з бенчмарками, GFPGAN досягає 95% ID similarity навіть при сильному розмитті [TencentARC]. Вихідний код на GitHub верифікований спільнотою. Таким чином, GFPGAN покращує точність ID similarity у 1.6 рази порівняно з Real-ESRGAN без облич. А використання інпейтингу замість простого клонування пікселів підвищує якість видалення подряпин у 3 рази за метрикою SSIM.

Як прискорити деплой пайплайну?

Ми використовуємо попередньо квантизовані моделі (INT8) та TensorRT для інференсу. Для великих обсягів — vLLM або Ray Serve. Середнє падіння якості при квантизації менше 1%, а швидкість зростає в 2-3 рази. Конкретні цифри та конфіги підбираємо під ваше залізо. Наприклад, на NVIDIA A100 latency p99 для одного зображення 4K становить 8 секунд при batch size 1.

Компонент Роль Швидкість (GPU A100)
GFPGAN Відновлення облич 5-15 сек/зобр 4K
Real-ESRGAN Апскейлінг ×4 3-10 сек
Інпейтинг (LaMa) Видалення дефектів 1-5 сек

Порівняння методів відновлення облич:

Метод Точність (ID similarity) Швидкість (на зображення)
Бікубічна інтерполяція 40% < 1 сек
Real-ESRGAN без облич 60% 3-10 сек
GFPGAN 95% 5-15 сек
Додаткові деталі по квантизації Ми застосовуємо PTQ (Post-Training Quantization) з калібруванням на 100 репрезентативних зображеннях. Використовуємо TensorRT для оптимізації графа. У підсумку отримуємо модель у форматі .plan, яка працює в 2.5 рази швидше при точності 99.2% від оригіналу.

Що входить в роботу

Ми надаємо рішення під ключ:

  • Аналіз архіву: типи пошкоджень, роздільна здатність, кількість кадрів
  • Підбір та калібрування моделей під ваш датасет
  • Розробка пайплайну (Python, PyTorch, ONNX)
  • Розгортання сервісу (Docker, Kubernetes, FastAPI/gRPC)
  • Веб-інтерфейс для завантаження, перегляду до/після, завантаження
  • Тестування на 50+ репрезентативних кадрах з вашого архіву
  • Документація: API, конфіги, інструкція з масштабування
  • Навчання операторів (1-2 дні)
  • 2 тижні технічної підтримки після запуску

Терміни та вартість

Терміни варіюються від 1–2 днів (деплой готового пайплайну) до 2–3 тижнів (повний цикл з веб-інтерфейсом та доробками). Вартість розраховується індивідуально — залежить від обсягу архіву, потрібних моделей та вимог до продуктивності. Оцінимо ваш проект протягом одного робочого дня. Замовте демо — ми обробимо 5 ваших фотографій безкоштовно.

Наш досвід

Ми маємо 12+ років досвіду в комп'ютерному зорі та 30+ реалізованих проектів з AI-реставрації. Наша команда на ринку з 2018 року. Більше 12 років займаємося комп'ютерним зором та обробкою зображень. Виконали 30+ впроваджень AI-пайплайнів для реставрації, детекції дефектів та OCR. Серед клієнтів — архіви, музеї, фотостудії. Гарантуємо якість — метрики відновлення фіксуємо в договорі. Методи комп'ютерного зору фото використовуються для аналізу пошкоджень.

Типові помилки при самостійній реставрації

  • Використання лише однієї моделі (наприклад, тільки Real-ESRGAN) — обличчя розмиті
  • Занадто великий ступінь шумоподавлення — втрачаються дрібні деталі
  • Ігнорування калібрування — артефакти на стиках тайлів
  • Відсутність бекапу оригіналів

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