Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Superupplösningstekniker | Bildbehandling med OpenCV
Grundläggande Datorseende

Svep för att visa menyn

book
Superupplösningstekniker

Superupplösningstekniker kan grovt delas in i:

  • Traditionella interpolationsbaserade metoder (Bilinear, Bicubic, Lanczos);

  • Djupinlärningsbaserad superupplösning (CNN:er, GAN:er, Transformatorer).

Traditionella interpolationsbaserade metoder

Interpolation är en av de enklaste metoderna för superupplösning, där saknade pixlar uppskattas baserat på omgivande pixelvärden. Alla vanliga interpolationsmetoder inkluderar cv2.resize(), men parametern interpolation skiljer sig åt:

Närmaste grannes interpolation

  • Kopierar det närmaste pixelvärdet till den nya positionen;

  • Ger skarpa men blockiga bilder;

  • Snabb men saknar jämnhet och detaljrikedom.

Bilinjär Interpolering

  • Medelvärde av fyra närliggande pixlar för att uppskatta det nya pixelvärdet;

  • Ger mjukare bilder men kan introducera oskärpa.

Bikubisk Interpolering

  • Använder ett viktat medelvärde av 16 omgivande pixlar;

  • Ger bättre mjukhet och skärpa jämfört med bilinjär interpolering.

Lanczos-interpolering

  • Använder en sinc-funktion för att beräkna pixelvärden;

  • Erbjuder bättre skärpa och minimal aliasing.

Även om interpolationsbaserade metoder är beräkningsmässigt effektiva, misslyckas de ofta med att återställa fina detaljer och texturer.

Djupinlärningsbaserad superupplösning

Förtränade superupplösningsmodeller:

  • ESPCN (Efficient Sub-Pixel Convolutional Network): Snabb och effektiv för realtids-SR;

  • FSRCNN (Fast Super-Resolution CNN): Ett lättviktigt nätverk optimerat för hastighet;

  • LapSRN (Laplacian Pyramid SR Network): Använder progressiv uppskalning för bättre detaljrikedom.

Uppgift

Swipe to start coding

Du har fått en image med låg upplösning:

  • Använd bikubisk interpolering med 4x skala och spara resultatet i bicubic_image;
  • Definiera och skapa ett djupinlärningsnätverksobjekt i variabeln sr;
  • Läs in modellen från model_path;
  • Ange namnet espcn och 4x skala;
  • Använd DNN superupplösningsmetod och spara resultatet i dnn_image.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 6
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 3.45

book
Superupplösningstekniker

Superupplösningstekniker kan grovt delas in i:

  • Traditionella interpolationsbaserade metoder (Bilinear, Bicubic, Lanczos);

  • Djupinlärningsbaserad superupplösning (CNN:er, GAN:er, Transformatorer).

Traditionella interpolationsbaserade metoder

Interpolation är en av de enklaste metoderna för superupplösning, där saknade pixlar uppskattas baserat på omgivande pixelvärden. Alla vanliga interpolationsmetoder inkluderar cv2.resize(), men parametern interpolation skiljer sig åt:

Närmaste grannes interpolation

  • Kopierar det närmaste pixelvärdet till den nya positionen;

  • Ger skarpa men blockiga bilder;

  • Snabb men saknar jämnhet och detaljrikedom.

Bilinjär Interpolering

  • Medelvärde av fyra närliggande pixlar för att uppskatta det nya pixelvärdet;

  • Ger mjukare bilder men kan introducera oskärpa.

Bikubisk Interpolering

  • Använder ett viktat medelvärde av 16 omgivande pixlar;

  • Ger bättre mjukhet och skärpa jämfört med bilinjär interpolering.

Lanczos-interpolering

  • Använder en sinc-funktion för att beräkna pixelvärden;

  • Erbjuder bättre skärpa och minimal aliasing.

Även om interpolationsbaserade metoder är beräkningsmässigt effektiva, misslyckas de ofta med att återställa fina detaljer och texturer.

Djupinlärningsbaserad superupplösning

Förtränade superupplösningsmodeller:

  • ESPCN (Efficient Sub-Pixel Convolutional Network): Snabb och effektiv för realtids-SR;

  • FSRCNN (Fast Super-Resolution CNN): Ett lättviktigt nätverk optimerat för hastighet;

  • LapSRN (Laplacian Pyramid SR Network): Använder progressiv uppskalning för bättre detaljrikedom.

Uppgift

Swipe to start coding

Du har fått en image med låg upplösning:

  • Använd bikubisk interpolering med 4x skala och spara resultatet i bicubic_image;
  • Definiera och skapa ett djupinlärningsnätverksobjekt i variabeln sr;
  • Läs in modellen från model_path;
  • Ange namnet espcn och 4x skala;
  • Använd DNN superupplösningsmetod och spara resultatet i dnn_image.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

close

Awesome!

Completion rate improved to 3.45

Svep för att visa menyn

some-alt