Programmering

Hva er datasyn? AI for bilder og video

Datasyn identifiserer og lokaliserer ofte objekter i digitale bilder og videoer. Siden levende organismer behandler bilder med sin visuelle cortex, har mange forskere tatt arkitekturen til den visuelle cortex fra pattedyr som en modell for nevrale nettverk designet for å utføre bildegjenkjenning. Den biologiske forskningen går tilbake til 1950-tallet.

Fremgangen i datasyn de siste 20 årene har vært helt bemerkelsesverdig. Selv om de ennå ikke er perfekte, oppnår noen datasynssystemer 99% nøyaktighet, og andre kjører anstendig på mobile enheter.

Gjennombruddet i det nevrale nettverksfeltet for visjon var Yann LeCuns 1998 LeNet-5, et syv-nivå konvolusjonelle nevrale nettverk for gjenkjenning av håndskrevne sifre digitalisert i bilder på 32x32 piksler. For å analysere bilder med høyere oppløsning, må LeNet-5-nettverket utvides til flere nevroner og flere lag.

Dagens beste bildeklassifiseringsmodeller kan identifisere forskjellige kataloger av objekter med HD-oppløsning i farger. I tillegg til rene dype nevrale nettverk (DNN), bruker folk noen ganger hybridvisjonsmodeller, som kombinerer dyp læring med klassiske maskinlæringsalgoritmer som utfører spesifikke underoppgaver.

Andre synsproblemer i tillegg til grunnleggende bildeklassifisering er løst med dyp læring, inkludert bildeklassifisering med lokalisering, gjenstandsdeteksjon, objektsegmentering, bildestiloverføring, bildefarging, bildekonstruksjon, bildeoppløsning og bildesyntese.

Hvordan fungerer datasyn?

Datasynsalgoritmer er vanligvis avhengige av konvolusjonelle nevrale nettverk eller CNN. CNN-er bruker vanligvis konvolusjons-, pooling-, ReLU-, fullt tilkoblede og tapslag for å simulere en visuell cortex.

Konvolusjonslaget tar i utgangspunktet integralene i mange små overlappende regioner. Bassenglaget utfører en form for ikke-lineær nedprøving. ReLU-lag bruker den ikke-mettende aktiveringsfunksjonen f (x) = maks (0, x).

I et fullt koblet lag har nevronene forbindelser til alle aktiveringer i forrige lag. Et tapslag beregner hvordan nettverksopplæringen straffer avviket mellom de forutsagte og sanne etikettene, ved hjelp av et Softmax- eller kryssentropitap for klassifisering.

Datasett for trening av datasyn

Det er mange offentlige bildedatasett som er nyttige for å trene visjonsmodeller. Den enkleste, og en av de eldste, er MNIST, som inneholder 70.000 håndskrevne sifre i 10 klasser, 60K for trening og 10K for testing. MNIST er et enkelt datasett å modellere, selv ved bruk av en bærbar datamaskin uten akselerasjonsmaskinvare. CIFAR-10 og Fashion-MNIST er like datasett i 10 klasser. SVHN (street view husnumre) er et sett med 600K bilder av virkelige husnummer hentet fra Google Street View.

COCO er et større datasett for gjenkjenning, segmentering og teksting av objekter, med 330K bilder i 80 objektkategorier. ImageNet inneholder omtrent 1,5 millioner bilder med avgrensningsbokser og etiketter, som illustrerer omtrent 100 000 setninger fra WordNet. Åpne bilder inneholder omtrent ni millioner nettadresser til bilder, med omtrent 5 000 etiketter.

Google, Azure og AWS har alle sine egne visjonsmodeller trent mot veldig store bildedatabaser. Du kan bruke disse som de er, eller kjøre overføringslæring for å tilpasse disse modellene til dine egne bildedatasett. Du kan også utføre overføringslæring ved hjelp av modeller basert på ImageNet og Open Images. Fordelene med overføringslæring fremfor å bygge en modell fra bunnen av er at den er mye raskere (timer i stedet for uker) og at den gir deg en mer nøyaktig modell. Du trenger fortsatt 1000 bilder per etikett for å få de beste resultatene, selv om du noen ganger kan komme unna med så få som ti bilder per etikett.

Datasynsapplikasjoner

Selv om datasyn ikke er perfekt, er det ofte bra nok til å være praktisk. Et godt eksempel er visjon i selvkjørende biler.

Waymo, tidligere Googles selvkjørende bilprosjekt, hevder tester på syv millioner miles med offentlige veier og muligheten til å navigere trygt i daglig trafikk. Det har vært minst en ulykke med en Waymo varebil; programvaren ble ikke antatt å være feil, ifølge politiet.

Tesla har tre modeller av selvkjørende bil. I 2018 var en Tesla SUV i selvkjøringsmodus involvert i en dødsulykke. Rapporten om ulykken sa at føreren (som ble drept) hadde hendene av rattet til tross for flere advarsler fra konsollen, og at verken sjåføren eller programvaren prøvde å bremse for å unngå å treffe betongsperren. Programvaren har siden blitt oppgradert for å kreve i stedet for å antyde at førerens hender skal være på rattet.

Amazon Go-butikker er selvbetjeningsbutikker uten kasser der datasynet i butikken oppdager når kjøpere henter eller returnerer lagervarer; kunder identifiseres av og belastes via en Android- eller iPhone-app. Når Amazon Go-programvaren savner en vare, kan kunden beholde den gratis; når programvaren feilaktig registrerer en vare som er tatt, kan kunden flagge varen og få refusjon for den kostnaden.

I helsevesenet er det visjonsapplikasjoner for å klassifisere visse funksjoner i patologiske lysbilder, røntgenbilder av brystet og andre medisinske bildesystemer. Noen få av disse har vist verdi sammenlignet med dyktige utøvere, noen nok til godkjenning fra myndighetene. Det er også et sanntidssystem for å estimere pasientens blodtap i et operasjons- eller fødestue.

Det er nyttige visjonsapplikasjoner for jordbruk (landbruksroboter, avling og jordovervåking og prediktiv analyse), bankvirksomhet (oppdagelse av svindel, dokumentgodkjenning og fjernforekomster) og industriell overvåking (eksterne brønner, sikkerhetssted og arbeidsaktivitet).

Det er også applikasjoner av datasyn som er kontroversielle eller til og med avskaffet. Den ene er ansiktsgjenkjenning, som når den brukes av myndighetene kan være en invasjon av privatliv, og som ofte har en treningsskjevhet som har en tendens til å feilsøke ikke-hvite ansikter. En annen er dypfalske generasjoner, som er mer enn litt skumle når de brukes til pornografi eller for å lage hoaxes og andre falske bilder.

Datasynsrammer og modeller

De fleste dype læringsrammer har betydelig støtte for datasyn, inkludert Python-baserte rammer TensorFlow (det ledende valget for produksjon), PyTorch (det ledende valget for akademisk forskning) og MXNet (Amazons ramme for valg). OpenCV er et spesialisert bibliotek for datasyn som lener seg mot sanntidsapplikasjoner og utnytter MMX- og SSE-instruksjoner når de er tilgjengelige; den har også støtte for akselerasjon ved bruk av CUDA, OpenCL, OpenGL og Vulkan.

Amazon Rekognition er en bilde- og videoanalysetjeneste som kan identifisere objekter, personer, tekst, scener og aktiviteter, inkludert ansiktsanalyse og tilpassede etiketter. Google Cloud Vision API er en forhåndsutdannet bildeanalysetjeneste som kan oppdage objekter og ansikter, lese utskrevet og håndskrevet tekst og bygge metadata i bildekatalogen din. Google AutoML Vision lar deg trene tilpassede bildemodeller. Både Amazon Rekognition Custom Labels og Google AutoML Vision utfører overføringslæring.

Microsoft Computer Vision API kan identifisere objekter fra en katalog på 10 000, med etiketter på 25 språk. Den returnerer også avgrensningsbokser for identifiserte objekter. Azure Face API gjør ansiktsgjenkjenning som oppfatter ansikter og attributter i et bilde, personidentifikasjon som samsvarer med en person i ditt private lager på opptil en million mennesker, og oppfattet følelsesgjenkjenning. Face API kan kjøre i skyen eller på kanten i containere.

IBM Watson Visual Recognition kan klassifisere bilder fra en forhåndstrent modell, tillate deg å trene tilpassede bildemodeller med overføringslæring, utføre gjenstandsdeteksjon med objekttelling og trene for visuell inspeksjon. Watson Visual Recognition kan kjøres i skyen eller på iOS-enheter ved bruk av Core ML.

Dataanalysepakken Matlab kan utføre bildegjenkjenning ved hjelp av maskinlæring og dyp læring. Den har en valgfri Computer Vision Toolbox og kan integreres med OpenCV.

Datamaskinvisjonsmodeller har kommet langt siden LeNet-5, og de er for det meste CNN-er. Eksempler inkluderer AlexNet (2012), VGG16 / OxfordNet (2014), GoogLeNet / InceptionV1 (2014), Resnet50 (2015), InceptionV3 (2016) og MobileNet (2017-2018). MobileNet-familien av visuelle nevrale nettverk ble designet med tanke på mobile enheter.

[Også på: Kaggle: Hvor dataforskere lærer og konkurrerer]

Apple Vision-rammeverket utfører landemerkeoppdagelse for ansikt og ansikt, tekstgjenkjenning, strekkodegjenkjenning, bilderegistrering og generell funksjonssporing. Vision tillater også bruk av tilpassede Core ML-modeller for oppgaver som klassifisering eller gjenkjenning av objekter. Den kjører på iOS og macOS. Google ML Kit SDK har lignende funksjoner, og kjører på Android- og iOS-enheter. ML Kit støtter i tillegg naturlige språk-APIer.

Som vi har sett, har datasynssystemer blitt gode nok til å være nyttige, og i noen tilfeller mer nøyaktige enn menneskelig syn. Ved hjelp av overføringslæring har tilpasning av visjonsmodeller blitt praktisk for bare dødelige: datasyn er ikke lenger det eksklusive domenet til forskere på Ph.D.-nivå.

Les mer om maskinlæring og dyp læring:

  • Dyp læring kontra maskinlæring: Forstå forskjellene
  • Hva er maskinlæring? Intelligens hentet fra data
  • Hva er dyp læring? Algoritmer som etterligner den menneskelige hjerne
  • Maskinlæringsalgoritmer forklart
  • Hva er naturlig språkbehandling? AI for tale og tekst
  • Automatisert maskinlæring eller AutoML forklart
  • Veiledet læring forklart
  • Semi-veiledet læring forklart
  • Uovervåket læring forklart
  • Forsterkningslæring forklart
  • Kaggle: Hvor dataforskere lærer og konkurrerer
  • Hva er CUDA? Parallell behandling for GPUer

Les anmeldelser av maskinlæring og dyp læring:

  • Hvordan velge en plattform for maskinlæring
  • Deeplearning4j: Deep learning og ETL for JVM
  • Gjennomgang: Amazon SageMaker spiller innhenting
  • TensorFlow 2 anmeldelse: Enklere maskinlæring
  • Gjennomgang: Google Cloud AutoML er virkelig automatisert maskinlæring
  • Gjennomgang: MXNet dyp læring skinner med Gluon
  • PyTorch-gjennomgang: En dyp læringsramme bygget for hastighet
  • Gjennomgang: Keras seiler gjennom dyp læring
$config[zx-auto] not found$config[zx-overlay] not found