Programovanie

Čo je to počítačové videnie? AI pre obrázky a video

Počítačové videnie identifikuje a často lokalizuje objekty v digitálnych obrázkoch a videách. Pretože živé organizmy spracúvajú obrazy svojou vizuálnou kôrou, mnohí vedci vzali architektúru vizuálnej kôry cicavcov ako model neurónových sietí určených na vykonávanie rozpoznávania obrazu. Biologický výskum siaha do 50. rokov 20. storočia.

Pokrok v počítačovom videní za posledných 20 rokov bol absolútne pozoruhodný. Aj keď to ešte nie je dokonalé, niektoré systémy počítačového videnia dosahujú 99% presnosť a iné fungujú slušne na mobilných zariadeniach.

Prelomom v oblasti neurónovej siete pre videnie bol YNN LeCun z roku 1998 LeNet-5, sedemúrovňový konvolučná neurónová sieť na rozpoznávanie ručne písaných číslic digitalizovaných v obrázkoch s rozmermi 32 x 32 pixelov. Na analýzu obrázkov s vyšším rozlíšením by bolo potrebné rozšíriť sieť LeNet-5 na viac neurónov a viac vrstiev.

Najlepšie dnešné modely klasifikácie obrázkov dokážu identifikovať rozmanité katalógy objektov vo farebnom rozlíšení HD. Okrem čistých hlbokých neurónových sietí (DNN) ľudia niekedy používajú modely hybridného videnia, ktoré kombinujú hlboké učenie s klasickými algoritmami strojového učenia, ktoré vykonávajú konkrétne čiastkové úlohy.

Ďalšie problémy so zrakom okrem základnej klasifikácie obrázkov boli vyriešené pomocou hlbokého učenia, vrátane klasifikácie obrázkov s lokalizáciou, detekcie objektov, segmentácie objektov, prenosu štýlu obrazu, vyfarbenia obrazu, rekonštrukcie obrazu, super rozlíšenia obrazu a syntézy obrazu.

Ako funguje počítačové videnie?

Algoritmy počítačového videnia sa zvyčajne spoliehajú na konvolučné neurónové siete alebo CNN. CNN zvyčajne používajú na simuláciu vizuálnej kôry vrstvy konvolúcie, združovania, ReLU, plne pripojené a stratové vrstvy.

Konvolučná vrstva v podstate berie integrály mnohých malých prekrývajúcich sa oblastí. Spoločná vrstva vykonáva formu nelineárneho vzorkovania nadol. Vrstvy ReLU používajú nesaturačnú aktivačnú funkciu f (x) = max (0, x).

V úplne spojenej vrstve majú neuróny spojenie so všetkými aktiváciami v predchádzajúcej vrstve. Stratová vrstva počíta, ako sieťové školenie penalizuje odchýlku medzi predpovedanými a skutočnými štítkami, a to pomocou klasifikácie Softmax alebo krížovej entropie.

Výcvikové súbory údajov o počítačovom videní

Existuje veľa verejných obrazových dátových súborov, ktoré sú užitočné na trénovanie modelov videnia. Najjednoduchší a jeden z najstarších je MNIST, ktorý obsahuje 70 000 ručne písaných číslic v 10 triedach, 60 000 za školenie a 10 000 za testovanie. MNIST je jednoduchý súbor údajov, ktorý sa dá modelovať, a to aj pri použití notebooku bez hardvéru na akceleráciu. CIFAR-10 a Fashion-MNIST sú podobné datasety triedy 10. SVHN (čísla domov s pohľadom na ulicu) je sada 600 000 obrázkov čísel domov z reálneho sveta extrahovaných z Google Street View.

COCO je rozsiahlejší súbor údajov na detekciu, segmentáciu a titulkovanie objektov s 330 000 obrázkami v 80 kategóriách objektov. ImageNet obsahuje asi 1,5 milióna obrázkov s ohraničujúcimi rámčekmi a štítkami, ktoré ilustrujú asi 100 000 fráz z WordNetu. Program Open Images obsahuje asi deväť miliónov adries URL obrázkov, s približne 5 000 štítkami.

Google, Azure a AWS majú svoje vlastné modely videnia trénované proti veľmi veľkým databázam obrázkov. Môžete ich použiť tak, ako sú, alebo spustiť prenosové učenie a prispôsobiť tieto modely svojim vlastným súborom údajov obrázka. Prenosové učenie môžete vykonávať aj pomocou modelov založených na službách ImageNet a Open Images. Výhodou prenosového učenia oproti budovaniu modelu od nuly je, že je oveľa rýchlejší (skôr ako hodiny ako týždne) a poskytuje presnejší model. Na dosiahnutie najlepších výsledkov budete stále potrebovať 1 000 obrázkov na štítok, hoci niekedy sa môžete dostať až s 10 obrázkami na štítok.

Aplikácie počítačového videnia

Aj keď počítačové videnie nie je dokonalé, často je dosť dobré na to, aby bolo praktické. Dobrým príkladom je vízia v samoriadiacich automobiloch.

Waymo, predtým projekt samoriadiacich automobilov spoločnosti Google, požaduje testy na siedmich miliónoch míľ od verejných komunikácií a schopnosť bezpečne navigovať v každodennej premávke. K najmenej jednej nehode došlo pri dodávke Waymo; podľa polície sa neverilo, že došlo k chybe softvéru.

Tesla má tri modely samoriadiacich automobilov. V roku 2018 sa SUV Tesla v režime samoriadenia stalo obeťou smrteľnej nehody. V správe o nehode sa uvádza, že vodič (ktorý bol zabitý) mal aj napriek niekoľkým upozorneniam z konzoly ruky z volantu a že vodič ani softvér sa nepokúšali zabrzdiť, aby nenarazili do betónovej bariéry. Softvér bol odvtedy inovovaný tak, aby vyžadoval skôr, ako by naznačoval, že ruky vodiča sú za volantom.

Obchody Amazon Go sú samoobslužné maloobchodné predajne bez pokladne, kde systém počítačového videnia v obchode detekuje, keď si zákazníci vyzdvihnú alebo vrátia skladové položky; nakupujúcich identifikuje a účtuje prostredníctvom aplikácie pre Android alebo iPhone. Keď softvéru Amazon Go chýba položka, zákazník si ju môže nechať zadarmo; keď softvér falošne zaregistruje odobratú položku, môže kupujúci položku označiť a za tento poplatok dostať náhradu.

V zdravotníctve existujú vizuálne aplikácie na klasifikáciu určitých znakov patologických snímok, röntgenových snímok hrudníka a ďalších lekárskych zobrazovacích systémov. Niektoré z nich preukázali hodnotu v porovnaní s kvalifikovanými ľuďmi v praxi, niektoré stačia na schválenie regulačnými orgánmi. K dispozícii je tiež systém na odhadovanie strát krvi pacienta na operačnej alebo pôrodnej sále v reálnom čase.

Existujú užitočné vizuálne aplikácie pre poľnohospodárstvo (poľnohospodárske roboty, monitorovanie plodín a pôdy a prediktívne analýzy), bankovníctvo (detekcia podvodov, autentifikácia dokumentov a vzdialené vklady) a priemyselné monitorovanie (vzdialené studne, bezpečnosť staveniska a pracovné činnosti).

Existujú aj aplikácie počítačového videnia, ktoré sú kontroverzné alebo dokonca zastarané. Jedným z nich je rozpoznávanie tváre, ktoré pri použití vládou môže predstavovať zásah do súkromia a ktoré má často tendenciu k tréningu, ktorá vedie k nesprávnej identifikácii nebielych tvárí. Ďalšou je generácia falošných, ktorá je pri používaní na pornografiu alebo vytváranie hoaxov a iných podvodných obrázkov viac ako trochu strašidelná.

Rámce a modely počítačového videnia

Väčšina rámcov hlbokého učenia má podstatnú podporu počítačového videnia, vrátane rámcov založených na Pythone TensorFlow (hlavná voľba pre produkciu), PyTorch (hlavná voľba pre akademický výskum) a MXNet (rámcová voľba Amazonu). OpenCV je špecializovaná knižnica pre počítačové videnie, ktorá sa zameriava na vizuálne aplikácie v reálnom čase a využíva výhody pokynov MMX a SSE, keď sú k dispozícii; má tiež podporu pre akceleráciu pomocou CUDA, OpenCL, OpenGL a Vulkan.

Amazon Rekognition je služba analýzy obrazu a videa, ktorá dokáže identifikovať objekty, ľudí, text, scény a aktivity vrátane analýzy tváre a vlastných štítkov. Google Cloud Vision API je vopred pripravená služba na analýzu obrázkov, ktorá dokáže detekovať objekty a tváre, čítať tlačený a ručne písaný text a vytvárať metadáta do vášho katalógu obrázkov. Google AutoML Vision vám umožňuje trénovať vlastné modely obrázkov. Vlastné štítky rozpoznávania Amazon a Google AutoML Vision vykonávajú prenosové učenie.

Rozhranie Microsoft Computer Vision API dokáže identifikovať objekty z katalógu 10 000 kusov so štítkami v 25 jazykoch. Vráti tiež ohraničujúce rámčeky pre identifikované objekty. Rozhranie Azure Face API umožňuje detekciu tváre, ktorá vníma tváre a atribúty v obraze, identifikáciu osoby, ktorá sa zhoduje s jednotlivcom vo vašom súkromnom úložisku až s miliónom ľudí, a rozpoznávanie vnímaných emócií. Face API môže bežať v cloude alebo na okraji v kontajneroch.

IBM Watson Visual Recognition dokáže klasifikovať obrázky z vopred vyškoleného modelu, umožní vám trénovať vlastné obrazové modely pomocou prenosového učenia, vykonávať detekciu objektov s počítaním objektov a trénovať vizuálnu kontrolu. Watson Visual Recognition môže bežať v cloude alebo na zariadeniach so systémom iOS pomocou Core ML.

Balík na analýzu údajov Matlab môže vykonávať rozpoznávanie obrázkov pomocou strojového učenia a hlbokého učenia. Má voliteľný panel počítačového videnia a je možné ho integrovať do OpenCV.

Modely počítačového videnia prešli od LeNet-5 dlhú cestu a väčšinou ide o CNN. Patria sem napríklad AlexNet (2012), VGG16 / OxfordNet (2014), Booking.comNet / InceptionV1 (2014), Resnet50 (2015), InceptionV3 (2016) a MobileNet (2017-2018). Rodina neurónových sietí VisionN MobileNet bola navrhnutá s ohľadom na mobilné zariadenia.

[Tiež na: Kaggle: Kde sa vedci o údajoch učia a súťažia]

Rámec Apple Vision vykonáva detekciu medzníkov tváre a tváre, detekciu textu, rozpoznávanie čiarových kódov, registráciu obrázkov a sledovanie všeobecných funkcií. Vision tiež umožňuje použitie vlastných modelov Core ML na úlohy ako klasifikácia alebo detekcia objektov. Funguje na iOS a macOS. Súprava Google ML Kit SDK má podobné schopnosti a funguje na zariadeniach so systémom Android a iOS. ML Kit navyše podporuje API v prirodzenom jazyku.

Ako sme videli, systémy počítačového videnia sa stali dosť dobrými na to, aby boli užitočné, a v niektorých prípadoch presnejšie ako ľudské videnie. Pomocou prenosového učenia sa prispôsobenie modelov videnia stalo praktickým pre obyčajných smrteľníkov: počítačové videnie už nie je výlučnou doménou výskumníkov na Ph.D. úrovni.

Prečítajte si viac o strojovom učení a hlbokom učení:

  • Hlboké učenie vs. strojové učenie: Pochopte rozdiely
  • Čo je to strojové učenie? Spravodajstvo odvodené z údajov
  • Čo je to hlboké učenie? Algoritmy, ktoré napodobňujú ľudský mozog
  • Algoritmy strojového učenia vysvetlené
  • Čo je spracovanie prirodzeného jazyka? AI pre reč a text
  • Vysvetlenie automatizovaného strojového učenia alebo AutoML
  • Vysvetlenie kontrolovaného učenia
  • Vysvetlenie čiastočne kontrolovaného učenia
  • Výučba bez dozoru vysvetlená
  • Vysvetlenie posilňovacieho učenia
  • Kaggle: Kde sa vedci o údajoch učia a súťažia
  • Čo je CUDA? Paralelné spracovanie pre GPU

Prečítajte si recenzie o strojovom učení a hlbokom učení:

  • Ako si vybrať platformu na učenie sa cloudových strojov
  • Deeplearning4j: Hlboké učenie a ETL pre JVM
  • Recenzia: Amazon SageMaker hrá hry doháňané
  • Recenzia TensorFlow 2: Jednoduchšie strojové učenie
  • Recenzia: Google Cloud AutoML je skutočne automatizované strojové učenie
  • Recenzia: MXNet deep learning žiari s Gluonom
  • Recenzia PyTorch: Rámec hlbokého učenia postavený na rýchlosti
  • Recenzia: Keras sa plaví hlbokým učením
$config[zx-auto] not found$config[zx-overlay] not found