Programování

Co je počítačové vidění? AI pro obrázky a videa

Počítačové vidění identifikuje a často vyhledává objekty v digitálních obrázcích a videích. Vzhledem k tomu, že živé organismy zpracovávají obrazy pomocí své vizuální kůry, mnoho vědců vzalo architekturu zrakové kůry savců jako model neuronových sítí určených k provádění rozpoznávání obrazu. Biologický výzkum sahá do 50. let.

Pokrok v oblasti počítačového vidění za posledních 20 let byl naprosto pozoruhodný. I když to ještě není dokonalé, některé systémy počítačového vidění dosahují přesnosti 99% a jiné fungují slušně na mobilních zařízeních.

Průlomem v oblasti neuronové sítě pro vidění byl Yann LeCun 1998 LeNet-5, sedmúrovňový konvoluční neuronová síť pro rozpoznávání ručně psaných číslic digitalizovaných v obrázcích 32x32 pixelů. Aby bylo možné analyzovat obrázky s vyšším rozlišením, bylo by nutné síť LeNet-5 rozšířit na více neuronů a více vrstev.

Dnešní nejlepší modely klasifikace obrázků dokážou barevně identifikovat různé katalogy objektů v HD rozlišení. Kromě čistých hlubokých neuronových sítí (DNN) lidé někdy používají modely hybridního vidění, které kombinují hluboké učení s klasickými algoritmy strojového učení, které provádějí konkrétní dílčí úkoly.

Další problémy se zrakem kromě základní klasifikace obrazu byly vyřešeny hlubokým učením, včetně klasifikace obrazu s lokalizací, detekce objektů, segmentace objektů, přenosu stylu obrazu, zbarvení obrazu, rekonstrukce obrazu, superrozlišení obrazu a syntéza obrazu.

Jak funguje počítačové vidění?

Algoritmy počítačového vidění se obvykle spoléhají na konvoluční neurální sítě neboli CNN. CNN obvykle používají k simulaci vizuální kůry konvoluční, sdružování, ReLU, plně připojené a ztrátové vrstvy.

Konvoluční vrstva v podstatě přebírá integrály mnoha malých překrývajících se oblastí. Sloučená vrstva provádí formu nelineárního down-samplování. Vrstvy ReLU používají nesaturační aktivační funkci f (x) = max (0, x).

V plně spojené vrstvě mají neurony spojení se všemi aktivacemi v předchozí vrstvě. Ztrátová vrstva vypočítává, jak síťový trénink penalizuje odchylku mezi předpovězenými a skutečnými štítky, a to pomocí klasifikace Softmax nebo ztráty napříč entropií.

Školicí datové sady pro počítačové vidění

Existuje mnoho veřejných obrazových datových sad, které jsou užitečné pro trénink modelů vidění. Nejjednodušší a jeden z nejstarších je MNIST, který obsahuje 70 000 ručně psaných číslic v 10 třídách, 60 kB pro školení a 10 tisíc pro testování. MNIST je snadno modelovatelná datová sada, a to i při použití notebooku bez hardwaru pro akceleraci. CIFAR-10 a Fashion-MNIST jsou podobné datové soubory třídy 10. SVHN (čísla domů) jsou sada 600K obrázků čísel domů v reálném světě extrahovaných z Google Street View.

COCO je rozsáhlejší datová sada pro detekci, segmentaci a titulkování objektů s 330 000 obrázky v 80 kategoriích objektů. ImageNet obsahuje přibližně 1,5 milionu obrázků s ohraničujícími rámečky a štítky, které ilustrují přibližně 100 000 frází z WordNet. Otevřené obrázky obsahují přibližně devět milionů adres URL obrázků, přibližně 5 000 štítků.

Google, Azure a AWS mají své vlastní modely vidění trénované proti velmi velkým databázím obrázků. Můžete je použít tak, jak jsou, nebo spustit přenosové učení a přizpůsobit tyto modely svým vlastním datovým sadám obrázků. Můžete také provádět přenosové učení pomocí modelů založených na ImageNet a Open Images. Výhody přenosu učení oproti budování modelu od nuly spočívají v tom, že je mnohem rychlejší (spíše než hodiny než hodiny) a poskytuje přesnější model. K dosažení nejlepších výsledků budete i nadále potřebovat 1 000 obrázků na štítek, i když někdy se vám podaří dostat jen 10 obrázků na štítek.

Aplikace počítačového vidění

I když počítačové vidění není dokonalé, často je dost dobré na to, aby bylo praktické. Dobrým příkladem je vize v automobilech s vlastním pohonem.

Waymo, dříve projekt samojízdného automobilu Google, požaduje testy na sedmi milionech kilometrů veřejných komunikací a schopnost bezpečně navigovat v každodenním provozu. Došlo nejméně k jedné nehodě dodávky Waymo; podle policie se o softwaru podle všeho nejednalo.

Tesla má tři modely samořídících automobilů. V roce 2018 došlo k smrtelné nehodě SUV Tesla v režimu s vlastním řízením. Zpráva o nehodě uvedla, že řidič (který byl zabit) měl ruce od volantu navzdory několika varováním z konzoly a že se řidič ani software nepokusili zabrzdit, aby nenarazili na betonovou bariéru. Software byl od té doby upgradován tak, aby vyžadoval, spíše než naznačoval, že ruce řidiče jsou na volantu.

Obchody Amazon Go jsou samoobslužné maloobchodní prodejny bez pokladny, kde systém počítačového vidění v obchodech detekuje, když si zákazníci vyzvednou nebo vrátí skladové položky; nakupující jsou identifikováni a účtováni prostřednictvím aplikace pro Android nebo iPhone. Když softwaru Amazon Go chybí položka, zákazník si ji může nechat zdarma; když software falešně zaregistruje odebranou položku, může nakupující položku označit a získat náhradu za tento poplatek.

Ve zdravotnictví existují aplikace vidění pro klasifikaci určitých funkcí v patologických diapozitivech, rentgenech hrudníku a dalších lékařských zobrazovacích systémech. Některé z nich prokázaly hodnotu ve srovnání s kvalifikovanými odborníky na lidské zdraví, některé dost pro schválení regulačními orgány. K dispozici je také systém pro odhad ztráty krve pacienta v operačním nebo porodním sále v reálném čase.

Existují užitečné aplikace pro vidění v zemědělství (zemědělské roboty, monitorování plodin a půdy a prediktivní analytika), bankovnictví (detekce podvodů, ověřování dokumentů a vzdálené vklady) a průmyslové monitorování (vzdálené vrty, zabezpečení pracoviště a pracovní činnost).

Existují také aplikace počítačového vidění, které jsou kontroverzní nebo dokonce zastaralé. Jedním z nich je rozpoznávání tváří, které, když je používá vláda, může být zásahem do soukromí, a které má často tréninkové zkreslení, které má tendenci nesprávně identifikovat jiné než bílé tváře. Další je generace falešných, která je více než trochu strašidelná, když se používá pro pornografii nebo vytváření podvodů a jiných podvodných obrazů.

Rámečky a modely počítačového vidění

Většina rámců hlubokého učení má podstatnou podporu počítačového vidění, včetně rámců založených na Pythonu TensorFlow (hlavní volba pro produkci), PyTorch (hlavní volba pro akademický výzkum) a MXNet (rámce výběru Amazon). OpenCV je specializovaná knihovna pro počítačové vidění, která se opírá o aplikace vidění v reálném čase a využívá instrukce MMX a SSE, jsou-li k dispozici; má také podporu pro akceleraci pomocí CUDA, OpenCL, OpenGL a Vulkan.

Amazon Rekognition je služba analýzy obrazu a videa, která dokáže identifikovat objekty, lidi, text, scény a aktivity, včetně analýzy obličeje a vlastních štítků. Google Cloud Vision API je předem připravená služba pro analýzu obrázků, která dokáže detekovat objekty a tváře, číst tištěný a ručně psaný text a vytvářet metadata do vašeho katalogu obrázků. Google AutoML Vision vám umožňuje trénovat vlastní modely obrázků. Vlastní štítky Amazon Rekognition a Google AutoML Vision provádějí přenosové učení.

Rozhraní Microsoft Computer Vision API dokáže identifikovat objekty z katalogu 10 000 se štítky ve 25 jazycích. Vrátí také ohraničující rámečky pro identifikované objekty. Rozhraní Azure Face API provádí detekci obličeje, která vnímá tváře a atributy v obraze, identifikaci osoby, která odpovídá jednotlivci ve vašem soukromém úložišti až jednoho milionu lidí, a vnímání rozpoznávání emocí. Face API může běžet v cloudu nebo na okraji v kontejnerech.

IBM Watson Visual Recognition může klasifikovat obrázky z předem vyškoleného modelu, umožňuje vám trénovat vlastní modely obrazů pomocí učení přenosu, provádět detekci objektů s počítáním objektů a trénovat vizuální kontrolu. Watson Visual Recognition lze spustit v cloudu nebo na zařízeních iOS pomocí Core ML.

Balíček pro analýzu dat Matlab může provádět rozpoznávání obrázků pomocí strojového učení a hlubokého učení. Má volitelnou sadu Computer Vision Toolbox a lze ji integrovat s OpenCV.

Modely počítačového vidění prošly od LeNet-5 dlouhou cestou a většinou jde o CNN. Jako příklady lze uvést AlexNet (2012), VGG16 / OxfordNet (2014), Booking.comNet / InceptionV1 (2014), Resnet50 (2015), InceptionV3 (2016) a MobileNet (2017-2018). Rodina optických neuronových sítí MobileNet byla navržena s ohledem na mobilní zařízení.

[Také na: Kaggle: Kde se datoví vědci učí a soutěží]

Rámec Apple Vision provádí detekci tváře a orientačních bodů, detekci textu, rozpoznávání čárových kódů, registraci obrázků a sledování obecných funkcí. Vision také umožňuje použití vlastních modelů Core ML pro úkoly, jako je klasifikace nebo detekce objektů. Funguje na iOS a macOS. Sada Google ML Kit SDK má podobné funkce a funguje na zařízeních Android a iOS. ML Kit navíc podporuje API přirozeného jazyka.

Jak jsme viděli, systémy počítačového vidění se staly natolik dobrými, aby byly užitečné, a v některých případech přesnější než lidské vidění. Pomocí přenosu učení se přizpůsobení modelů vidění stalo praktickým pro pouhé smrtelníky: počítačové vidění již není výlučnou doménou výzkumníků na Ph.D. úrovni.

Přečtěte si více o strojovém učení a hlubokém učení:

  • Hluboké učení vs. strojové učení: Pochopte rozdíly
  • Co je to strojové učení? Inteligence odvozená z dat
  • Co je hluboké učení? Algoritmy, které napodobují lidský mozek
  • Algoritmy strojového učení vysvětleny
  • Co je zpracování přirozeného jazyka? AI pro řeč a text
  • Vysvětleno automatické strojové učení nebo AutoML
  • Výuka pod dohledem je vysvětlena
  • Vysvětlení částečně pod dohledem
  • Vysvětlení bez dozoru
  • Výklad výztuže vysvětlen
  • Kaggle: Kde se vědci o datech učí a soutěží
  • Co je CUDA? Paralelní zpracování pro GPU

Přečtěte si recenze strojového učení a hloubkového učení:

  • Jak si vybrat platformu pro učení cloudového stroje
  • Deeplearning4j: Hluboké učení a ETL pro JVM
  • Recenze: Amazon SageMaker hraje dohon
  • Recenze TensorFlow 2: Snadnější strojové učení
  • Recenze: Google Cloud AutoML je skutečně automatizované strojové učení
  • Recenze: MXNet deep learning září s Gluon
  • Recenze PyTorch: Rámec hlubokého učení vytvořený pro rychlost
  • Recenze: Keras se plaví hlubokým učením
$config[zx-auto] not found$config[zx-overlay] not found