Kursusindhold
Computer Vision Grundlæggende
Computer Vision Grundlæggende
Konvolutionslag
Forståelse af konvolutionslag
Konvolutionslag udgør kernen i konvolutionelle neurale netværk (CNN'er). De anvender konvolution, hvor en lille matrix kaldet et filter (eller kerne) bevæger sig hen over et billede for at registrere kanter, teksturer og former. Dette gør det muligt for CNN'er at behandle billeder mere effektivt end traditionelle netværk.
I stedet for at analysere hele billedet på én gang, opdeler CNN'er det i mindre sektioner og registrerer egenskaber på forskellige niveauer. Tidlige lag genkender simple mønstre som kanter, mens dybere lag identificerer komplekse strukturer.
Sådan fungerer konvolution
Konvolution indebærer, at et filter (kerne) bevæger sig hen over et billede og følger disse trin:
Anvend kernen øverst til venstre på billedet.
Udfør elementvis multiplikation mellem kernen og pixelværdierne.
Summér produkterne for at generere en outputpixel.
Flyt kernen i henhold til stridet og gentag.
Generér et feature map, der fremhæver de registrerede mønstre.
Flere filtre hjælper CNN'er med at opfange forskellige egenskaber, såsom lodrette kanter, kurver og teksturer.
Filtre (Kerne):
Filtre spiller en afgørende rolle i at udtrække meningsfulde mønstre fra billeder. Forskellige typer filtre specialiserer sig i at identificere forskellige egenskaber:
Kantdetektionsfiltre: identificerer objektgrænser ved at opdage pludselige intensitetsændringer (f.eks. Sobel-, Prewitt- og Laplacian-filtre);
Teksturfiltre: opfanger gentagne mønstre såsom bølger eller gitter (f.eks. Gabor-filtre);
Skarphedsfiltre: forstærker billeddetaljer ved at forstærke højfrekvente komponenter;
Sløringsfiltre: reducerer støj og udglatter billeder (f.eks. Gaussisk sløringsfilter);
Prægefiltre: fremhæver kanter og tilføjer en 3D-effekt ved at understrege dybde.
Hvert filter trænes til at opdage specifikke mønstre og bidrager til at opbygge hierarkiske egenskabsrepræsentationer i dybe CNN'er.
Konvolutionslag genbruger det samme filter på tværs af et billede, hvilket reducerer antallet af parametre og gør CNN'er effektive. Specialiserede lokalt forbundne lag anvender dog forskellige filtre til forskellige områder, når det er nødvendigt.
Ved at stable konvolutionslag udtrækker CNN'er detaljerede mønstre, hvilket gør dem kraftfulde til billedklassifikation, objektdetektion og vision-opgaver.
Hyperparametre:
Stride: styrer hvor langt filteret bevæger sig pr. trin;
Padding: tilføjer pixels for at kontrollere outputstørrelsen (samme padding bevarer størrelsen, valid padding reducerer den);
Antal filtre (dybde): flere filtre forbedrer egenskabsdetektion, men øger beregning.
Før næste kapitel skal du huske:
Selvom konvolutionslag kan formindske outputstørrelsen, er deres primære formål feature-ekstraktion, ikke dimensionalitetsreduktion. Pooling-lag derimod reducerer eksplicit dimensionaliteten samtidig med, at vigtig information bevares, hvilket sikrer effektivitet i dybere lag.
1. Hvad er den primære rolle for et konvolutionslag i et CNN?
2. Hvilken hyperparameter bestemmer, hvor langt et filter bevæger sig under konvolution?
3. Hvad er formålet med at anvende flere filtre i et konvolutionslag?
Tak for dine kommentarer!