Programiranje

Kaj je računalniški vid? AI za slike in video

Računalniški vid prepozna in pogosto najde predmete v digitalnih slikah in videoposnetkih. Ker živi organizmi obdelujejo slike s svojo vidno skorjo, so mnogi raziskovalci arhitekturo vidne skorje sesalcev vzeli za model nevronskih mrež, namenjenih za prepoznavanje slik. Biološke raziskave segajo v petdeseta leta prejšnjega stoletja.

Napredek na področju računalniškega vida v zadnjih 20 letih je bil izjemno izjemen. Čeprav nekateri sistemi računalniškega vida še niso popolni, dosegajo 99-odstotno natančnost, drugi pa dostojno delujejo na mobilnih napravah.

Preboj na področju nevronske mreže za vid je bil leta 1998 LeNet-5 Yanna LeCuna, sedemstopenjski konvolucijska nevronska mreža za prepoznavanje ročno napisanih številk, digitaliziranih na slikah z ločljivostjo 32 x 32 slikovnih pik. Za analizo slik z višjo ločljivostjo bi bilo treba omrežje LeNet-5 razširiti na več nevronov in več plasti.

Današnji najboljši modeli klasifikacije slik lahko prepoznajo raznolike kataloge predmetov v barvni ločljivosti HD. Poleg čistih globokih nevronskih mrež (DNN) ljudje včasih uporabljajo tudi hibridne modele vida, ki globinsko učenje kombinirajo s klasičnimi algoritmi strojnega učenja, ki izvajajo posebne podnaloge.

Drugi problemi z vidom so poleg osnovne klasifikacije slik rešeni z globokim učenjem, vključno s klasifikacijo slik z lokalizacijo, zaznavanjem predmetov, segmentacijo predmetov, prenosom sloga slike, barvanjem slike, rekonstrukcijo slike, super ločljivostjo slike in sintezo slike.

Kako deluje računalniški vid?

Algoritmi računalniškega vida se običajno zanašajo na konvolucijske nevronske mreže ali CNN. CNN za simulacijo vizualne skorje običajno uporabljajo sloje, združevanje, ReLU, popolnoma povezane in izgubne plasti.

Konvolucijski sloj v bistvu prevzame integrale številnih majhnih prekrivajočih se regij. Plast združevanja izvaja obliko nelinearnega vzorčenja navzdol. Plasti ReLU uporabljajo funkcijo aktivacije, ki ni nasičena f (x) = največ (0, x).

V popolnoma povezani plasti imajo nevroni povezave z vsemi aktivacijami v prejšnji plasti. Plast izgub izračuna, kako mrežni trening kaznuje odstopanje med napovedanimi in resničnimi oznakami z uporabo Softmax ali navzkrižne entropijske izgube za razvrščanje.

Nabori podatkov za usposabljanje za računalniški vid

Obstaja veliko naborov podatkov o javnih slikah, ki so uporabni za trening modelov vida. Najenostavnejši in eden najstarejših je MNIST, ki vsebuje 70.000 ročno napisanih številk v 10 razredih, 60K za trening in 10K za testiranje. MNIST je enostaven za nabor podatkov, tudi z uporabo prenosnika brez pospeševalne strojne opreme. CIFAR-10 in Fashion-MNIST sta podobna nabora podatkov iz 10 razredov. SVHN (hišne številke s pogledom na ulice) je nabor 600K slik resničnih hišnih številk, pridobljenih iz Google Street View.

COCO je obsežnejši nabor podatkov za zaznavanje, segmentacijo in podnapise objektov s 330.000 slik v 80 kategorijah predmetov. ImageNet vsebuje približno 1,5 milijona slik z omejevalnimi polji in nalepkami, ki ponazarjajo približno 100.000 stavkov iz programa WordNet. Odprte slike vsebujejo približno devet milijonov URL-jev do slik s približno 5K nalepkami.

Google, Azure in AWS imajo lastne modele vizije, usposobljene za uporabo v zelo velikih slikovnih zbirkah podatkov. Uporabite jih lahko takšne, kot so, ali pa zaženite učenje prenosa, da prilagodite te modele lastnim naborom podatkov o slikah. Učenje prenosov lahko izvedete tudi z uporabo modelov, ki temeljijo na ImageNet in Open Images. Prednosti prenosa učenja pred izdelavo modela iz nič so, da je veliko hitrejše (ure in ne tedni) in da vam daje natančnejši model. Za najboljše rezultate boste še vedno potrebovali 1000 slik na etiketo, čeprav se lahko včasih izognete tudi z 10 slikami na etiketo.

Aplikacije za računalniški vid

Čeprav računalniški vid ni popoln, je pogosto dovolj dober, da je praktičen. Dober primer je vizija pri samovozečih avtomobilih.

Waymo, nekdanji Googlov projekt samovozečih avtomobilov, zahteva preizkuse na sedmih milijonih kilometrov javnih cest in sposobnost varne navigacije v dnevnem prometu. Zgodila se je vsaj ena nesreča, v kateri je bil udeležen kombi Waymo; po navedbah policije programska oprema ni bila kriva.

Tesla ima tri modele samovozečega avtomobila. Leta 2018 je bil SUV Tesla v načinu samovoze v nesreči s smrtnim izidom. V poročilu o nesreči je pisalo, da je imel voznik (umrli) kljub številnim opozorilom s konzole roke z volana in da niti voznik niti programska oprema nista poskušala zavirati, da ne bi trčila v betonsko pregrado. Programska oprema je bila od takrat nadgrajena tako, da je namesto, da bi predlagala, da so voznikove roke na volanu.

Trgovine Amazon Go so samopostrežne maloprodajne prodajalne, kjer sistem za računalniški vid v trgovini zazna, kdaj kupci prevzamejo ali vrnejo zaloge; kupce prepozna in zaračuna prek aplikacije za Android ali iPhone. Ko programska oprema Amazon Go kaj zamudi, ga kupec lahko obdrži brezplačno; ko programska oprema napačno registrira prevzeti predmet, lahko kupec izdelek označi in za to plačilo dobi povračilo.

V zdravstvu obstajajo aplikacije za vid za razvrščanje nekaterih lastnosti diapozitivov, rentgenskih slik prsnega koša in drugih sistemov za slikanje v medicini. Nekateri izmed njih so pokazali vrednost v primerjavi s kvalificiranimi zdravniki, nekateri pa dovolj za regulativno odobritev. Obstaja tudi sistem za sprotno ocenjevanje izgube krvi bolnika v operacijski ali porodni sobi.

Obstajajo uporabne aplikacije za vid za kmetijstvo (kmetijski roboti, spremljanje pridelkov in tal ter napovedna analitika), bančništvo (odkrivanje goljufij, preverjanje pristnosti dokumentov in depoziti na daljavo) in industrijsko spremljanje (oddaljeni vodnjaki, varnost gradbišča in delovna dejavnost).

Obstajajo tudi aplikacije računalniškega vida, ki so kontroverzne ali celo zastarele. Eno je prepoznavanje obrazov, ki je lahko, če ga vlada uporabi, poseg v zasebnost in ima pogosto pristransko pristranskost, ki ponavadi napačno prepozna nebele obraze. Druga je deepfake generacija, ki je več kot malo grozljiva, kadar se uporablja za pornografijo ali ustvarjanje prevara in drugih goljufivih slik.

Okviri in modeli računalniškega vida

Večina okvirov za poglobljeno učenje ima močno podporo za računalniški vid, vključno z ogrodji, ki temeljijo na Pythonu, TensorFlow (vodilna izbira za proizvodnjo), PyTorch (vodilna izbira za akademske raziskave) in MXNet (Amazonov izbirni okvir). OpenCV je specializirana knjižnica za računalniški vid, ki se nagiba k aplikacijam za vid v realnem času in izkoristi navodila MMX in SSE, ko so na voljo; podpira tudi pospeševanje s pomočjo CUDA, OpenCL, OpenGL in Vulkan.

Amazon Rekognance je storitev za analizo slik in videov, ki lahko prepozna predmete, ljudi, besedilo, prizore in dejavnosti, vključno z analizo obraza in nalepkami po meri. Google Cloud Vision API je vnaprej pripravljena storitev za analizo slik, ki lahko zazna predmete in obraze, prebere natisnjeno in ročno napisano besedilo ter vgradi metapodatke v vaš katalog slik. Google AutoML Vision vam omogoča, da trenirate modele slik po meri. Tako Amazon Rekogmination Custom Labels kot Google AutoML Vision izvajata učenje prenosa.

API Microsoft Computer Vision lahko prepozna predmete iz kataloga 10.000 z nalepkami v 25 jezikih. Vrne tudi omejena polja za identificirane predmete. Azure Face API omogoča zaznavanje obrazov, ki zazna obraze in atribute na sliki, identifikacijo osebe, ki ustreza posamezniku v vašem zasebnem skladišču do enega milijona ljudi, in prepoznavanje zaznanih čustev. Face API lahko deluje v oblaku ali na robu v posodah.

IBM Watson Visual Recognition lahko razvrsti slike iz vnaprej usposobljenega modela, omogoča usposabljanje modelov slik po meri s prenosom učenja, zaznavanje predmetov s štetjem predmetov in usposabljanje za vizualni pregled. Watson Visual Recognition se lahko izvaja v oblaku ali na napravah iOS z uporabo Core ML.

Paket za analizo podatkov Matlab lahko prepoznava slike s pomočjo strojnega učenja in globokega učenja. Ima neobvezno orodje Computer Vision Toolbox in se lahko integrira z OpenCV.

Modeli računalniškega vida so od LeNet-5 daleč daleč in so večinoma CNN-ji. Primeri so AlexNet (2012), VGG16 / OxfordNet (2014), GoogLeNet / InceptionV1 (2014), Resnet50 (2015), InceptionV3 (2016) in MobileNet (2017-2018). Družina vidnih nevronskih mrež MobileNet je bila zasnovana z mislijo na mobilne naprave.

[Tudi na: Kaggle: Kje se znanstveniki podatkov učijo in tekmujejo]

Okvir Apple Vision izvaja zaznavanje obrazov in obrazov, zaznavanje besedila, prepoznavanje črtne kode, registracijo slik in splošno sledenje funkcij. Vision omogoča tudi uporabo modelov Core ML po meri za naloge, kot sta razvrščanje ali zaznavanje predmetov. Deluje na iOS in macOS. Google ML Kit SDK ima podobne zmogljivosti in deluje v napravah Android in iOS. ML Kit poleg tega podpira API-je v naravnem jeziku.

Kot smo videli, so sistemi za računalniški vid postali dovolj dobri, da so uporabni in v nekaterih primerih bolj natančni kot človeški vid. Z učenjem prenosov je prilagajanje modelov vida postalo praktično za preproste smrtnike: računalniški vid ni več izključna domena raziskovalcev na doktoratu.

Preberite več o strojnem učenju in globokem učenju:

  • Poglobljeno učenje v primerjavi s strojnim učenjem: Razumevanje razlik
  • Kaj je strojno učenje? Inteligenca, pridobljena iz podatkov
  • Kaj je globoko učenje? Algoritmi, ki posnemajo človeške možgane
  • Razloženi algoritmi strojnega učenja
  • Kaj je obdelava naravnega jezika? AI za govor in besedilo
  • Razloženo avtomatizirano strojno učenje ali AutoML
  • Razloženo nadzorovano učenje
  • Pojasnjeno polnadzorovano učenje
  • Razloženo nenadzorovano učenje
  • Razloženo učenje okrepitve
  • Kaggle: Kje se podatkovni znanstveniki učijo in tekmujejo
  • Kaj je CUDA? Vzporedna obdelava za grafične procesorje

Preberite recenzije strojnega učenja in globokega učenja:

  • Kako izbrati platformo za strojno učenje v oblaku
  • Deeplearning4j: Poglobljeno učenje in ETL za JVM
  • Pregled: Amazon SageMaker igra dohitevanje
  • Pregled TensorFlow 2: lažje strojno učenje
  • Pregled: Google Cloud AutoML je resnično avtomatizirano strojno učenje
  • Pregled: MXNet globoko učenje sije z Gluonom
  • Pregled PyTorch: Poglobljen učni okvir, zgrajen za hitrost
  • Pregled: Keras pluje skozi globoko učenje
$config[zx-auto] not found$config[zx-overlay] not found