Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Superopløsningsmetoder | Sektion
Anvendt Computer Vision
Sektion 1. Kapitel 9
single

single

bookSuperopløsningsmetoder

Stryg for at vise menuen

Note
Definition

Super-resolution (SR) er et sæt teknikker, der bruges til at forbedre opløsningen af billeder, hvilket muliggør skarpere detaljer og forbedret kvalitet. Disse metoder anvendes bredt inden for forskellige områder, herunder videobehandling og AI-drevet billedforbedring.

Super-resolution teknikker kan overordnet opdeles i:

  • Traditionelle interpolationsbaserede metoder (Bilinear, Bicubic, Lanczos);
  • Deep learning-baseret super-resolution (CNNs, GANs, Transformers).
super-resolution sammenlignet

Traditionelle interpolationsbaserede metoder

Interpolation er en af de simpleste tilgange til superopløsning, hvor manglende pixels estimeres baseret på omkringliggende pixelværdier. Alle almindelige interpolationsteknikker inkluderer cv2.resize(), men parameteren interpolation varierer:

super_res_image = cv2.resize(image, None, fx=4, fy=4, interpolation=interpolation_param)

Nærmeste-nabo interpolation

  • Kopierer den nærmeste pixelværdi til den nye position;
  • Giver skarpe, men kantede billeder;
  • Hurtig, men mangler glathed og detaljer.
interpolation_param = cv2.INTER_NEAREST

Bilineær interpolation

  • Gennemsnit af fire nabopixels for at estimere den nye pixelværdi;
  • Giver glattere billeder, men kan introducere sløring.
 interpolation_param = cv2.INTER_LINEAR

Bikubisk interpolation

  • Anvender et vægtet gennemsnit af 16 omkringliggende pixels;
  • Giver bedre glathed og skarphed sammenlignet med bilineær interpolation.
 interpolation_param = cv2.INTER_CUBIC

Lanczos-interpolation

  • Anvender en sinc-funktion til at beregne pixelværdier;
  • Tilbyder bedre skarphed og minimal aliasing.
 interpolation_param = cv2.INTER_LANCZOS4

Selvom interpolationsbaserede metoder er beregningseffektive, formår de ofte ikke at genskabe fine detaljer og teksturer.

Dybe læringsbaserede superopløsningsmetoder

Prætrænede superopløsningsmodeller:

  • ESPCN (Efficient Sub-Pixel Convolutional Network): Hurtig og effektiv til realtids-superopløsning;
  • FSRCNN (Fast Super-Resolution CNN): Et letvægtsnetværk optimeret til hastighed;
  • LapSRN (Laplacian Pyramid SR Network): Anvender progressiv opskalering for bedre detaljer.
 # Load pre-trained model
sr = cv2.dnn_superres.DnnSuperResImpl_create()
sr.readModel("path/to/model.pb")
sr.setModel("model_name", scale_factor)  # Using 4x upscaling

# Apply super-resolution
high_res_image = sr.upsample(image)
Opgave

Swipe to start coding

Du har et image med lav opløsning:

  • Anvend bikubisk interpolation med 4x skalering og gem resultatet i bicubic_image;
  • Definér og opret et dybt neuralt netværksobjekt i variablen sr;
  • Indlæs modellen fra model_path;
  • Angiv navnet espcn og 4x skalering;
  • Anvend DNN super-opløsningsmetoden og gem resultatet i dnn_image.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 9
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt