23-09-2018 06:54:42

Den 18. april 2018 satte vi fokus på mulighederne i embeddede teknologier. 

Neurale netværk sikrer bedre billedgenkendelse

Heliske neurale netværk (eng.: Convolutional Neural Networks eller CNN) er lagdelte systemer af kunstige neuroner, som udveksler meddelelser mellem hinanden. CNN bruges typisk til mønstergenkendelse som billedgenkendelse. Der findes en fin DSP-løsning, der egner sig udmærket til en lang række CNN-applikationer
Figur 1. Et kunstigt neuralt netværk
Figur 1. Et kunstigt neuralt netværk

Et neuralt netværk består af multiple lag af funktionsdetekterende neuroner, som reagerer på forskellige kombinationer af inputs fra de foregående lag. Lagene (figur 1) er opbygget, så det første lag detekterer et sæt af primitive mønstre i input, det andet lag opdager mønstre i mønstrene, mens det tredje lag detekterer mønstre i disse mønstre, og så fremdeles. CNN bruger typisk mellem fem og 25 distinkte lag til mønstergenkendelsen.

Forbindelserne i et neuralt netværk har en numerisk vægt, som tunes under indlæringsprocessen, så netværket reagerer korrekt, når det udsættes for et billede eller mønster. Som en del af træningen tagges et mærket datasæt af inputs i en array af repræsentative input-mønstre i forhold til det planlagte output-respons. Generelle metoder vægter iterativt de mellemliggende og endelige neuroner. Figur 2 viser træningsprocessen på blokniveau.

Figur 2. Træning af neurale netværk.

I neurale netværks computermodeller følger signalerne aksioner (som x0) og interagerer multiplikatorisk (som w0x0) med dendritter i andre neuroner baseret på en synapses styrke (for eksempel w0) som vist i figur 3.

Figur 3. En biologisk neuron (tv.) og dens matematiske model (th.).

Den synaptiske vægt kan trænes og kontrollere påvirkningen fra en neuron til den næste. Dendritterne bærer signalerne til cellen, hvor signalerne summeres. Hvis den endelige sum er højere end en specificeret tærskel, skyder neuronen en spike ud af sin aksion. Afhængigt af kodefortolkningen modelleres neuronen med en aktiveringsfunktion, f, der repræsenterer frekvensen af spikes langs aksionen. Sigmoid er et hyppigt valg af aktiveringsfunktion.

Et CNN er et specielt tilfælde af de beskrevne neurale netværk med ét eller flere heliske lag – ofte med et subsamplinglag. Lagene følges af ét eller flere fuldt forbundne lag som i et standardiseret neuralt netværk.

Minimering af memory-krav og beregningskompleksitet

Figur 4. Typisk blokdiagram for et CNN.

Figur 4 viser et typisk CNN til genkendelse af trafikskilte. Hvert lag modtager inputs fra et funktionssæt placeret i et lille område i det foregående lag, kaldet et lokalt modtagerfelt. Lokale modtagerfelter gør funktionerne i stand til at udtrække elementære visuelle funktioner som orienterede kanter, endepunkter og hjørner. Disse visuelle funktioner kan siden kombineres af de højere lag.

Traditionelt vil den manuelt designede funktionsudstrækning i mønster-/billedgenkendelse samle relevant information fra input og eliminere irrelevante variationer. Udtrækningen følges af en klassifikation, der kan oplæres som et standardiseret neuralt netværk, der opdeler funktionsvektorer i klasser. I et CNN vil heliske lag, som ikke er designet manuelt, fungere som fremtidige udtrækkere, og filterkernens vægtning vil blive afgjort i løbet af træningsprocessen. De heliske lag kan udtrække de lokale funktioner, da de begrænser modtagerfelterne i de skjulte lag til at være lokale. CNN’er kan med deres optimerede netværksstrukturer – sammenlignet med traditionel mønstergenkendelse – minimere memory-krav og beregningskompleksiteten og samtidig give en bedre ydelse i applikationer, hvor inputs har en lokal indbyrdes kobling som i billede og tale.

I mønster- og billedgenkendelse har CNN bevist den bedste CDR (correct detection rate) sammenlignet med andre detekteringsalgoritmer – selv sammenlignet med mennesker. Her er nogle eksempler på CNN’s formåen:

- CDR på 99,77 procent med en MNIST-database for håndskrevne tal.

- CDR på 97,47 procent med et NORB-datasæt for 3D- objekter.

- CDR på 97,6 procent for ~5600 billeder med mere end 10 objekter.

Almindelige lagtyper i et CNN

Man kan opbygge ganske komplekse arkitekturer for sine klassificeringer gennem stacking af multiple og forskellige lag i et CNN. Gængse lagtyper inkluderer heliske lag, pooling-/subsamplinglag, nonlineære lag og fuldt forbundne lag.

Et helisk lag udtrækker forskellige funktioner fra input. Det første heliske lag udtrækker lavniveaufunktioner som kanter, linjer og hjørner. Højere niveauer udtrækker højere informationer som specifikke former.

Pooling-/subsamplinglaget reducerer opløsningen af funktioner, så de bliver robuste over for støj og forvrængning. Input opdeles i ikke- overlappende todimensionale områder. Lag 2 i figur 3 er eksempelvis pooling-laget. Hver input-funktion er 28x28 og opdeles i 14x14-regioner på 2x2-størrelser. Der findes to slags pooling, max og average. I en average-pooling kan man beregne fire værdier i regionen. I max-pooling vælger man en maksimal værdi blandt de fire valgte værdier.

CNN’er afhænger af en nonlineær triggerfunktion, der signalerer en distinkt identifikation af mulige funktioner i hvert skjult lag. Der er en række specifikke funktioner, som et CNN kan bruge til en effektiv implementering af nonlineær triggering. Eksempelvis implementerer ReLU’er – ensrettede lineære units – funktionen y=max(x,0), sådan, at input- og output-størrelserne for laget forbliver de samme. ReLU’er bruges almindeligvis, fordi de gør træning af netværket mange gange hurtigere end andre nonlineære funktioner.

De endelige lag i et CNN er oftest fuldt forbundne lag, der matematisk summerer en vægtning af funktionerne i det foregående lag. De indikerer det præcise mix af ”ingredienser”, der udgør et specifikt mål på output. I et fuldt forbundet lag bruges alle elementerne for alle funktionerne fra det foregående lag til at beregne hvert element på hver output-funktion.

Et eksempel på et CNN i brug er det tyske GTSRB (German Traffic Sign Recognition Benchmark), en multiklassificerings-konkurrence som blev afholdt under IJCNN (International Joint Conference on Neural Networks) i 2011. Der var tæt på 52.000 billeder af tyske vejskilte i 43 forskellige klasser med billeder fra 15x15 til 222x193.

Cadence har med afsæt i GTSRB-datasættet udviklet forskellige algoritmer i MAT- LAB til genkendelse af trafiktavler. Med sin egen hierarkiske CNN-tilgang har Cadence opnået en bedre CDR end nogen tidligere systemer. Det første CNN afgjorde var, i hvilken af fem familier et vejskilt ville være. Da først familien af skilt var afgjort, kunne ét af fem CNN’er svarende til familien afgøre skiltets betydning inden for den givne familie. Cadence opnåede en CDR på 99,58 procent med denne algoritme – hvilket var det bedste GTSRB- resultat til dato.

Cadence tilbyder nye højt-ydende, low-power DSP’er, der er ideelle til embeddede neurale netværksapplikationer. Sammenlignet med forgængeren giver Tensilica Vision P6 DSP op til fire gange den multiply-accumulate (MAC) ydelse, som tidligere generationer havde. Sammenlignet med kommercielt tilgængelige GPU’er opnår Vision P6 den dobbelte frame-rate ved et meget lavere forbrug i et typisk neuralt netværk. DSP’en:

- implementerer on-the- fly datakompression, der reducerer memory-footprint og båndbreddekravet i kræ- vende fuldt forbundne neurale netværkslag.

- har en valgfri 32-vejs SIMD-vektor floating-point unit, der inkluderer IEEE’s half-precision standard (FP16).

- giver omfattende support af integer, fixed-point og floating-point datatyper samt en avanceret toolchain med en gennemprøvet auto-vectorizing C-compiler.

- supporterer OpenCV- og OpenVX-bibliotekerne, hvilket giver hurtig højniveau migration af eksisterende billed-/vision-applikationer med support af over 1.000 biblioteksfunktioner.

CNN’er giver altså den bedste ydelse i mønster-/billedgenkendelsesformål. Cadence kan med egne algoritmer og arkitekturer for CNN’er opnå markedets bedste resultater, som ikke mindst trafikskilt genkendelseseksemplet viser, hvilket gør embedding i konkrete produkter med et mini- malt forbrug til en realistisk mulighed.


Deltag i debatten

IT - artikler og arrangementer

Nyeste IT-job fra Jobfinder

luk
close