Super Resolution
Сверхразрешение восстанавливает изображение с более высоким разрешением из изображения с низким разрешением, предсказывая детали, которые не удаётся восстановить интерполяцией. Модели и код.
Сверхразрешение (SR) — это семейство методов компьютерного зрения, которые восстанавливают изображение или видео с более высоким разрешением по входным данным с низким разрешением. При классическом масштабировании, например с помощью бикубической интерполяции, имеющиеся пиксели просто распределяются по более крупной сетке, из-за чего края становятся размытыми, а мелкие текстуры теряют чёткость. Обученная модель SR предсказывает недостающие высокочастотные детали — например, резкие края, штрихи текста, текстуры ткани или листвы — на основе закономерностей, усвоенных на парах изображений с низким и высоким разрешением. Сверхразрешение одиночного изображения (SISR) использует одно изображение, а сверхразрешение видео также опирается на соседние кадры, каждый из которых содержит немного отличающуюся информацию об одной и той же сцене.
Как работает сверхразрешение#
Сверхразрешение — некорректно поставленная задача: множество разных изображений высокого разрешения при уменьшении дают одно и то же изображение низкого разрешения, поэтому модель должна выбрать наиболее правдоподобный вариант на основе усвоенных знаний о естественных изображениях. Обучающие пары создают, ухудшая качество изображений высокого разрешения: применяют размытие, уменьшают разрешение в 2× или 4×, добавляют шум и сжатие. От модели такого ухудшения зависит, с какими реальными входными данными сможет работать сеть; Real-ESRGAN обучается на случайно скомбинированных цепочках искажений, чтобы восстанавливать как реальные фото и видео, так и изображения, чисто уменьшенные в разрешении.
Архитектуры развивались вместе с остальными направлениями глубокого обучения. В 2014 году SRCNN показала, что трёхслойная свёрточная нейронная сеть (CNN) превосходит классические методы. ESPCN выполняет свёртки на низком разрешении и масштабирует изображение только в конце с помощью субпиксельной свёртки, которая переставляет каналы в изображение большего размера. Благодаря этому метод достаточно быстр для обработки видео 1080p в реальном времени. EDSR объединяла множество остаточных блоков, SwinIR строила модель из блоков визуального трансформера со сдвинутыми окнами, а диффузионные модели генерируют детали посредством итеративного устранения шума.
Функция потерь определяет, что считать «лучшим». Пиксельные функции потерь, например L1 или среднеквадратичная ошибка, максимизируют сходство с исходным изображением, но усредняют возможные варианты ответа, из-за чего результат выглядит сглаженным. SRGAN добавила перцептивную функцию потерь на основе глубоких признаков и состязательную функцию потерь из генеративно-состязательной сети (GAN). В результате получаются чёткие, реалистичные текстуры, которые могут не совпадать с реальной сценой пиксель в пиксель. В медицинской и криминалистической визуализации это рискованно: выдуманную деталь можно принять за доказательство.
Оценка сверхразрешения#
Точность измеряют с помощью пикового отношения сигнала к шуму (PSNR) — логарифмической метрики среднеквадратичной ошибки в децибелах — и индекса структурного сходства (SSIM). Перцептивные метрики, например LPIPS, сравнивают глубокие признаки и точнее отражают человеческую оценку реалистичности. В примере ниже изображение уменьшается в 4 раза, а затем восстанавливается с помощью бикубической интерполяции и предварительно обученной модели ESPCN из OpenCV:
import urllib.request
import cv2 # cv2.dnn_superres requires: pip install opencv-contrib-python
# Download a pretrained 4x ESPCN model and a test image cropped to a multiple of 4
urllib.request.urlretrieve("https://github.com/fannymonori/TF-ESPCN/raw/master/export/ESPCN_x4.pb", "ESPCN_x4.pb")
urllib.request.urlretrieve("https://ultralytics.com/images/bus.jpg", "bus.jpg")
original = cv2.imread("bus.jpg")[:1080, :808]
# Simulate a low-resolution capture by shrinking the image 4x
low_res = cv2.resize(original, (202, 270), interpolation=cv2.INTER_CUBIC)
# Upscale 4x with bicubic interpolation and with the learned ESPCN model
bicubic = cv2.resize(low_res, (808, 1080), interpolation=cv2.INTER_CUBIC)
sr = cv2.dnn_superres.DnnSuperResImpl_create()
sr.readModel("ESPCN_x4.pb")
sr.setModel("espcn", 4)
espcn = sr.upsample(low_res)
# Higher PSNR means the reconstruction is closer to the original image
print(f"Bicubic: {cv2.PSNR(original, bicubic):.2f} dB, ESPCN: {cv2.PSNR(original, espcn):.2f} dB")Выводится Bicubic: 19.51 dB, ESPCN: 20.52 dB. Прирост в 1 дБ соответствует снижению среднеквадратичной ошибки примерно на 21%; размер файла модели — около 100 КБ.
Сверхразрешение и смежные понятия#
- Восстановление изображений: более широкая область, посвящённая восстановлению чистого изображения из искажённого; включает устранение шума, размытия и артефактов сжатия. Сверхразрешение — задача восстановления, которая также увеличивает число пикселей; современные модели часто одновременно справляются с несколькими видами искажений.
- Ретуширование изображений: заполняет отсутствующие или замаскированные области, тогда как сверхразрешение добавляет детали по всему изображению, которое целиком, но имеет низкую чёткость.
- Интерполяция кадров: повышает временное разрешение, создавая кадры между существующими; это аналог сверхразрешения для пространственной оси, применённый к оси времени.
- Генеративный ИИ: модели преобразования текста в изображение создают изображения по текстовым запросам. Сверхразрешение выполняется с учётом входного изображения и должно сохранять его содержание; многие генераторы изображений используют диффузионный апскейлер на заключительном этапе.
Примеры применения в реальных условиях#
- Игры: NVIDIA DLSS рендерит кадры в низком разрешении, а затем увеличивает их с помощью нейросети, повышая частоту кадров при сопоставимом визуальном качестве.
- Потоковое видео и архивы: телекомпании и специалисты по реставрации фильмов масштабируют видео стандартной чёткости и архивные записи для экранов HD и 4K.
- Анализ спутниковых снимков: аналитики повышают чёткость снимков, полученных более дешёвыми средствами, чтобы размечать здания, дороги и автомобили.
- Анализ медицинских изображений: исследовательские системы восстанавливают МРТ высокого разрешения по более быстрым снимкам низкого разрешения, сокращая время, которое пациент проводит в сканере.
Сверхразрешение также используют как этап предварительной обработки для обнаружения небольших объектов на источниках низкого разрешения. Ultralytics YOLO26 изменяет размер каждого входного изображения до imgsz — по умолчанию до 640 пикселей — с помощью билинейной интерполяции. Поэтому кадр камеры размером 320×240 увеличивается в 2 раза перед обнаружением объектов; если вместо интерполяции применить модель сверхразрешения 2×, детектор получит восстановленные края небольших удалённых объектов, таких как лица, номерные знаки и автомобили на аэрофотоснимках.










