Super Resolution
A super-resolução reconstrói uma imagem de alta resolução a partir de uma imagem de baixa resolução, prevendo detalhes que a interpolação não consegue recuperar. Modelos e código.
A super-resolução (SR) é uma família de técnicas de visão computacional que reconstrói uma imagem ou vídeo de maior resolução a partir de uma entrada de menor resolução. O aumento de escala clássico, como a interpolação bicúbica, apenas espalha os píxeis existentes por uma grelha maior, pelo que as arestas ficam suaves e as texturas finas ficam desfocadas. Um modelo de SR aprendido prevê os detalhes de alta frequência em falta, como arestas nítidas, traços de texto e texturas de tecido ou folhagem, com base em padrões aprendidos a partir de pares de imagens de baixa e alta resolução. A super-resolução de imagem única (SISR) usa uma só imagem, enquanto a super-resolução de vídeo também recorre aos fotogramas vizinhos, que captam informações ligeiramente diferentes sobre a mesma cena.
Como funciona a super-resolução#
A super-resolução é um problema mal posto: muitas imagens diferentes de alta resolução podem ser reduzidas para a mesma imagem de baixa resolução, pelo que o modelo tem de escolher a resposta mais plausível com base no que aprendeu sobre imagens naturais. Os pares de treino são criados degradando imagens de alta resolução com desfocagem, redução de escala por um fator como 2× ou 4×, ruído e compressão. Esse modelo de degradação determina que entradas reais a rede consegue processar; o Real-ESRGAN treina com degradações encadeadas aleatoriamente para restaurar fotografias e vídeos reais, bem como imagens reduzidas de forma limpa.
As arquiteturas acompanharam o resto da aprendizagem profunda. Em 2014, o SRCNN demonstrou que uma rede neural convolucional (CNN) de três camadas supera os métodos clássicos. O ESPCN executa as convoluções em baixa resolução e só aumenta a escala no fim, com uma convolução subpíxel que reorganiza os canais numa imagem maior, tornando-o suficientemente rápido para vídeo 1080p em tempo real. O EDSR empilhou muitos blocos residuais, o SwinIR construiu o seu modelo com blocos de Transformer de visão de janela deslocada, e os modelos de difusão geram detalhes por meio de desruído iterativo.
A função de perda determina o que significa «melhor». As perdas por píxel, como L1 ou o erro quadrático médio, maximizam a fidelidade ao original, mas fazem a média das respostas possíveis, o que produz um resultado suave. O SRGAN acrescentou uma perda percetual sobre características profundas e uma perda adversarial de uma rede generativa adversarial (GAN), produzindo texturas nítidas e realistas que podem não corresponder exatamente à cena real píxel a píxel. Isso representa um risco na imagiologia médica e forense, onde um detalhe inventado pode ser confundido com prova.
Avaliar a super-resolução#
A fidelidade é medida pela relação sinal-ruído de pico (PSNR), uma medida logarítmica do erro quadrático médio em decibéis, e pelo índice de similaridade estrutural (SSIM). Métricas percetuais como LPIPS comparam características profundas e acompanham mais de perto os juízos humanos de realismo. A comparação abaixo reduz uma imagem 4× e reconstrói-a com interpolação bicúbica e com um modelo ESPCN pré-treinado do 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")Imprime Bicubic: 19.51 dB, ESPCN: 20.52 dB. O ganho de 1 dB corresponde a cerca de 21% menos erro quadrático médio, com um ficheiro de modelo de aproximadamente 100 KB.
Super-resolução vs. termos relacionados#
- Restauro de imagem: O campo mais amplo da recuperação de uma imagem limpa a partir de uma imagem degradada, incluindo a redução de ruído, a remoção de desfocagem e a remoção de artefactos de compressão. A super-resolução é a tarefa de restauro que também aumenta o número de píxeis, e os modelos modernos muitas vezes processam várias degradações ao mesmo tempo.
- Preenchimento de imagem: Preenche regiões em falta ou mascaradas, enquanto a super-resolução acrescenta detalhes a toda uma imagem completa, mas grosseira.
- Interpolação de fotogramas: Aumenta a resolução temporal ao sintetizar fotogramas entre os existentes; é o equivalente, no eixo temporal, da super-resolução espacial.
- IA generativa: Os modelos de texto para imagem criam imagens a partir de instruções. A super-resolução é condicionada por uma imagem de entrada e tem de preservar o seu conteúdo; muitos geradores de imagens usam um modelo de aumento de escala por difusão na etapa final.
Aplicações no mundo real#
- Jogos: O NVIDIA DLSS renderiza fotogramas com resolução inferior e aumenta a escala deles com uma rede neural, elevando a taxa de fotogramas com uma qualidade visual semelhante.
- Transmissão e arquivos de vídeo: As emissoras e os especialistas em restauro de filmes aumentam a escala de imagens de definição padrão e de arquivos para ecrãs HD e 4K.
- Análise de imagens de satélite: Os analistas melhoram imagens de menor custo para mapear edifícios, estradas e veículos.
- Análise de imagens médicas: Sistemas de investigação reconstroem imagens de ressonância magnética de alta resolução a partir de aquisições mais rápidas e de menor resolução, reduzindo o tempo que o paciente passa no aparelho.
A super-resolução também serve como etapa de pré-processamento para detetar objetos pequenos em fontes de baixa resolução. O YOLO26 da Ultralytics redimensiona cada entrada para o seu imgsz, 640 píxeis por padrão, com interpolação bilinear; assim, um fotograma de câmara de 320×240 é ampliado 2× antes da deteção. Usar um modelo de super-resolução 2× em vez dessa interpolação fornece ao detetor arestas reconstruídas em objetos pequenos e distantes, como rostos, matrículas e veículos em vistas aéreas.










