Hvad betyder Convolutional neural network?
Et convolutional neural network, forkortet CNN, er et neuralt netværk, der bruger konvolutioner til at behandle data med lokal struktur. Det er især kendt fra billedanalyse, hvor nærliggende pixels tilsammen kan beskrive kanter, teksturer og former. Det samme filter anvendes på flere positioner i inputtet.
I stedet for at lære en helt ny beregning til hver billedposition genbruger modellen filterets vægte. Tidlige lag kan repræsentere enkle visuelle mønstre, mens senere lag kombinerer informationen. Det konkrete indhold i repræsentationerne afhænger af arkitektur, træningsmål og data.
Et CNN kan indgå i klassifikation, lokalisering eller andre billedopgaver. Det fortæller ikke i sig selv, om systemet kan finde en defekt, læse en etiket eller afgøre produktets kvalitet. Den ønskede opgave skal stadig beskrives og testes særskilt.
Filtre gør billedets lokale struktur brugbar
Et filter bevæger sig hen over inputtet og beregner et feature map. Flere filtre kan registrere forskellige mønstre. Netværket kan desuden reducere den rumlige opløsning undervejs, så senere beregninger arbejder med en mere kompakt repræsentation.
Et filter er lært gennem træning; det er normalt ikke en manuelt tegnet regel for, hvordan en bestemt ridse ser ud. Hvis træningsbillederne systematisk har en særlig baggrund, kan modellen komme til at bruge baggrunden som signal.
Kamera og data er en del af løsningen
Lys, kameravinkel, beskæring og opløsning påvirker, hvilke detaljer modellen kan se. En flot laboratorietest siger derfor begrænset om billeder fra en travl produktionslinje. Test på forskellige dage, produktvarianter og realistiske variationer.
Transfer learning kan være et relevant udgangspunkt, hvor en eksisterende billedmodel tilpasses opgaven. Det fritager ikke projektet fra at indsamle repræsentative eksempler og etablere en uafhængig test.
Et eksempel fra praksis
Forestil jer en virksomhed, der vil markere mulige overfladefejl på keramiske produkter. En pilot bruger billeder med ensartet optagelse og fagligt vurderede eksempler på både acceptable variationer og egentlige fejl.
Systemet sender tvivlstilfælde til en medarbejder og gemmer resultatet af vurderingen. Testen undersøger både oversete fejl og produkter, der unødvendigt sendes til kontrol. Hvis den samme vare fotograferes flere gange, bør billederne holdes samlet i datasplit, så næsten identiske optagelser ikke giver en kunstigt let test.
Typiske faldgruber
- En anden baggrund eller belysning kan ændre resultatet, selv om produktet er det samme.
- Et netværk kan overse små detaljer, som forsvinder ved nedskalering af billedet.
- Gentagne billeder af samme objekt i træning og test kan overvurdere generalisering.
Det skal I afklare
- Er billedoptagelsen realistisk og tilstrækkelig til at se den relevante detalje?
- Er sjældne fejl og acceptable variationer tydeligt adskilt af fagpersoner?
- Hvordan håndteres billeder uden for de kendte optageforhold?
Spørgsmål og svar
Er CNN det samme som computer vision?
Nej. Computer vision er feltet, der arbejder med visuel information. CNN er én type model, som kan bruges i feltet sammen med andre arkitekturer og billedbehandling.
Skal et CNN trænes fra bunden?
Ikke altid. Transfer learning kan genbruge repræsentationer fra en eksisterende model. Om det hjælper, afhænger af ligheden mellem data, opgaverne og de kvalitetskrav, der skal opfyldes.
Kilder og videre læsning
De tekniske begreber bygger på nedenstående kilder. Eksemplerne er illustrative og viser, hvordan I kan arbejde med emnet.
- TensorFlow: Convolutional Neural Network ↗Eksempel på filtre, lag og billedklassifikation.
- TensorFlow: Transfer learning ↗Genbrug og tilpasning af en eksisterende billedmodel.

