Finom bevezetés az objektumfelismerésbe mély tanulással

Tweet Megosztás Megosztás

Most frissítve: 2021. január 27.

A kezdők számára kihívást jelenthet a különböző kapcsolódó számítógépes látási feladatok megkülönböztetése.

A képosztályozás például egyszerű, de az objektumlokalizáció és az objektumfelismerés közötti különbségek zavaróak lehetnek, különösen akkor, ha mindhárom feladatot ugyanúgy nevezhetjük objektumfelismerésnek is.

A képosztályozás során egy osztálycímkét rendelünk egy képhez, míg az objektumlokalizáció során egy határoló keretet rajzolunk egy vagy több objektum köré a képen. Az objektumfelismerés nagyobb kihívást jelent, és egyesíti ezt a két feladatot, és egy határoló dobozt rajzol a kép minden egyes érdekes objektuma köré, és hozzárendel egy osztálycímkét. Mindezeket a problémákat együttesen objektumfelismerésnek nevezzük.

Ezzel a bejegyzéssel felfedezhet egy szelíd bevezetést az objektumfelismerés problémájába és a legkorszerűbb mélytanulási modellekbe, amelyeket a probléma megoldására terveztek.

A bejegyzés elolvasása után tudni fogja:

  • A tárgyfelismerés a digitális fényképeken lévő objektumok azonosítására szolgáló kapcsolódó feladatok gyűjteményére utal.
  • A régiókon alapuló konvolúciós neurális hálózatok, vagy R-CNN-ek a tárgylokalizációs és felismerési feladatok megoldására szolgáló technikák egy családja, amelyet a modellteljesítményre terveztek.
  • A You Only Look Once, vagy YOLO a tárgyfelismerési technikák egy másik családja, amelyet a sebességre és a valós idejű használatra terveztek.

Kezdje el projektjét az új könyvemmel Deep Learning for Computer Vision, amely lépésről lépésre bemutató útmutatókat és az összes példa Python forráskódfájlját tartalmazza.

Kezdjük el.

A Gentle Introduction to Object Recognition With Deep Learning

A Gentle Introduction to Object Recognition With Deep Learning
Photo by Bart Everson, some rights reserved.

Áttekintés

Ez a bemutató három részre oszlik; ezek a következők:

  1. Mi a tárgyfelismerés?
  2. R-CNN modellcsalád
  3. YOLO modellcsalád

Eredményeket szeretne a mély tanulással a számítógépes látáshoz?

Vegye fel a 7 napos ingyenes e-mailes gyorstalpaló tanfolyamomat most (mintakóddal).

Kattintson a feliratkozáshoz és kapja meg a tanfolyam ingyenes PDF Ebook változatát is.

Töltse le az INGYENES minitanfolyamát

Mi a tárgyfelismerés?

A tárgyfelismerés egy általános kifejezés, amely olyan kapcsolódó számítógépes látási feladatok gyűjteményét írja le, amelyek a digitális fényképeken lévő tárgyak azonosítására vonatkoznak.

A képosztályozás során egy képen lévő tárgy osztályát kell megjósolni. Az objektumlokalizáció egy vagy több objektum helyének azonosítására utal a képen, és a kiterjedésük köré egy körülhatárolt doboz rajzolására. A tárgyfelismerés e két feladatot egyesíti, és egy vagy több tárgyat lokalizál és osztályoz egy képen.

Amikor egy felhasználó vagy szakember “tárgyfelismerésre” hivatkozik, gyakran “tárgyfelismerésre” gondol.

… az objektumfelismerés kifejezést tágan használjuk, hogy magában foglalja mind a képosztályozást (egy algoritmust igénylő feladat, amely meghatározza, hogy milyen objektumosztályok vannak jelen a képen), mind az objektumfelismerést (egy algoritmust igénylő feladat, amely lokalizálja a képen jelen lévő összes objektumot

– ImageNet Large Scale Visual Recognition Challenge, 2015.

Így megkülönböztethetjük ezt a három számítógépes látási feladatot:

  • Képosztályozás: Egy képen lévő objektum típusának vagy osztályának előrejelzése.
    • Input: Egy kép egyetlen objektummal, például egy fénykép.
    • Kimenet:
  • Objektum lokalizáció: Objektumok jelenlétének lokalizálása egy képen, és a helyük megjelölése egy határoló doboz segítségével.
    • Bemenet:
    • Kimenet: Egy vagy több határoló doboz (pl. egy pont, szélesség és magasság által meghatározott).
  • Objektumfelismerés: Objektumok jelenlétének keresése egy határoló doboz segítségével és a megtalált objektumok típusai vagy osztályai egy képen.
    • Bemenet:
    • Kimenet:

A számítógépes látási feladatok e felosztásának egyik további kiterjesztése az objektumszegmentálás, más néven “objektumpéldány-szegmentálás” vagy “szemantikus szegmentálás”, ahol a felismert objektumok példányait a durva határoló doboz helyett az objektum konkrét pixeleinek kiemelésével jelöljük.

Ebből a felosztásból látható, hogy a tárgyfelismerés a számítógépes látás kihívást jelentő feladatainak egy csoportjára utal.

Overview of Object Recognition Computer Vision Tasks

Overview of Object Recognition Computer Vision Tasks

A képfelismerési feladatokkal kapcsolatos legújabb innovációk többsége az ILSVRC feladatokban való részvétel részeként jött létre.

Ez egy évente megrendezésre kerülő akadémiai verseny, amely mindhárom problématípusra külön kihívást tartalmaz, azzal a szándékkal, hogy minden szinten független és különálló fejlesztéseket ösztönözzön, amelyek szélesebb körben is hasznosíthatók. Lásd például a három megfelelő feladattípus alábbi listáját az ILSVRC 2015-ös áttekintő dokumentumából:

  • Képosztályozás: Az algoritmusok létrehozzák a képen található tárgykategóriák listáját.
  • Egyetlen tárgy lokalizációja: Az algoritmusok létrehozzák a képen jelen lévő tárgykategóriák listáját, valamint az egyes tárgykategóriák egy példányának helyzetét és méretarányát jelző, tengelyhez igazított határoló keretet.
  • Objektumdetektálás: Az algoritmusok létrehozzák a képen található tárgykategóriák listáját, valamint egy tengelyhez igazított határoló keretet, amely jelzi az egyes tárgykategóriák minden egyes példányának helyzetét és méretarányát.

Láthatjuk, hogy az “Egyetlen objektum lokalizáció” a tágabban értelmezett “Objektum lokalizáció” egyszerűbb változata, a lokalizációs feladatokat a képen belüli egy típusú objektumokra korlátozza, ami feltételezhetően egyszerűbb feladat.

Az alábbiakban az ILSVRC dokumentumból vett példa összehasonlítja az egyetlen objektum lokalizációt és az objektum detektálást. Figyeljük meg a különbséget az alapigazság elvárásai között az egyes esetekben.

Comparison Between Single Object Localization and Object Detection

Comparison Between Single Object Localization and Object Detection.Taken From: ImageNet Large Scale Visual Recognition Challenge.

A képosztályozási modell teljesítményét a megjósolt osztálycímkék átlagos osztályozási hibája alapján értékeljük. Az egy objektum lokalizálására szolgáló modell teljesítményét a várt osztály várható és a megjósolt határoló doboza közötti távolság alapján értékeljük. Míg a tárgyfelismerésre szolgáló modell teljesítményét a képen lévő ismert tárgyakhoz legjobban illeszkedő határoló dobozok mindegyikére vonatkozó pontosság és visszahívás alapján értékeljük.

Most, hogy már ismerjük a tárgylokalizáció és -felismerés problémáját, nézzünk meg néhány, a közelmúltban legjobban teljesítő mélytanulási modellt.

R-CNN modellcsalád

Az R-CNN módszercsalád a Ross Girshick, et al. által kifejlesztett R-CNN-re utal, ami a “Regions with CNN Features” vagy “Region-Based Convolutional Neural Network” rövidítése lehet.

Ez magában foglalja az R-CNN, a Fast R-CNN és a Faster-RCNN technikákat, amelyeket objektumlokalizációra és objektumfelismerésre terveztek és mutattak be.

Nézzük meg sorban az egyes technikák legfontosabb jellemzőit.

R-CNN

Az R-CNN-t a 2014-ben megjelent Ross Girshick, et al. (UC Berkeley) “Rich feature hierarchies for accurate object detection and semantic segmentation.”

Ez lehetett a konvolúciós neurális hálózatok egyik első nagy és sikeres alkalmazása a tárgyak lokalizációjának, detektálásának és szegmentálásának problémájára. A megközelítést benchmark adathalmazokon demonstrálták, és azután a VOC-2012 adathalmazon és a 200 osztályos ILSVRC-2013 tárgyfelismerési adathalmazon a legkorszerűbb eredményeket érték el.

A javasolt R-CNN modelljük három modulból áll; ezek a következők:

  • 1. modul: Regionális javaslat. Kategóriafüggetlen régiójavaslatok, pl. jelölt határoló dobozok generálása és kinyerése.
  • 2. modul: Feature Extractor. Jellemzők kivonása minden egyes jelölt régióból, pl. mély konvolúciós neurális hálózat segítségével.
  • 3. modul: Osztályozó. A jellemzők osztályozása az ismert osztályok egyikébe, pl. lineáris SVM osztályozó modell.

A modell architektúráját az alábbi, a cikkből vett kép foglalja össze.

Summary of the R-CNN Model Architecture

Summary of the R-CNN Model ArchitectureTaken from Rich feature hierarchies for accurate object detection and semantic segmentation.

A képen található potenciális objektumok jelölt régióinak vagy határoló dobozainak javaslására a számítógépes látás technikája, az úgynevezett “szelektív keresés” szolgál, bár a konstrukció rugalmassága lehetővé teszi más régiójavasló algoritmusok használatát is.

A modell által használt jellemző-kivonatoló az AlexNet mély CNN volt, amely megnyerte az ILSVRC-2012 képosztályozási versenyt. A CNN kimenete egy 4096 elemű, a kép tartalmát leíró vektor volt, amelyet egy lineáris SVM-hez tápláltak az osztályozáshoz, konkrétan minden ismert osztályhoz egy SVM-et képeztek ki.

A CNN-ek viszonylag egyszerű és egyszerű alkalmazása a tárgylokalizáció és -felismerés problémájára. A megközelítés hátránya, hogy lassú, mivel a régiójavaslat algoritmus által generált minden egyes jelölt régióra egy CNN-alapú jellemző-kivonási menetet igényel. Ez problémát jelent, mivel a dolgozat leírása szerint a modell tesztidőben képenként körülbelül 2000 javasolt régióval dolgozik.

A dolgozatban ismertetett R-CNNython (Caffe) és MatLab forráskódját a R-CNN GitHub tárolójában tettük elérhetővé.

Gyors R-CNN

Az R-CNN nagy sikerére való tekintettel Ross Girshick, aki akkoriban a Microsoft Researchnél dolgozott, egy 2015-ös, “Fast R-CNN” című tanulmányában egy bővítést javasolt az R-CNN sebességi problémáinak kezelésére.”

A tanulmány az R-CNN korlátainak áttekintésével kezdődik, amelyek a következőképpen foglalhatók össze:

  • A képzés egy többlépcsős csővezeték. Három különálló modell elkészítését és működtetését foglalja magában.
  • A képzés térben és időben költséges. A mély CNN képenként ennyi régiójavaslaton történő képzése nagyon lassú.
  • A tárgyak felismerése lassú. Előrejelzések készítése egy mély CNN segítségével ennyi régiójavaslaton nagyon lassú.

Egy korábbi munka a 2014-es “Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition” (Térbeli piramis-összevonó hálózatok vagy SPPnetek) című tanulmányban tett javaslatot a technika felgyorsítására. Ez valóban felgyorsította a jellemzők kinyerését, de lényegében egyfajta forward pass caching algoritmust használt.

A gyors R-CNN-t egyetlen modellként javasolják a régiók és osztályozások közvetlen tanulására és kimenetére szolgáló pipeline helyett.

A modell architektúrája a fényképet egy sor régiójavaslatot fogad el bemenetként, amelyeket egy mély konvolúciós neurális hálózaton vezetnek át. Egy előre betanított CNN-t, például egy VGG-16-ot használnak a jellemzők kinyeréséhez. A mély CNN vége egy egyéni réteg, az úgynevezett Region of Interest Pooling Layer, vagy RoI Pooling, amely egy adott bemeneti jelölt régióra specifikus jellemzőket von ki.

A CNN kimenetét ezután egy teljesen összekapcsolt réteg értelmezi, majd a modell két kimenetre bifurkálódik, az egyik az osztályjósláshoz egy softmax rétegen keresztül, a másik pedig egy lineáris kimenettel a határoló dobozhoz. Ez a folyamat ezután többször megismétlődik egy adott kép minden egyes érdekes régiójára.

A modell architektúráját a cikkből vett alábbi kép foglalja össze.

Summary of the Fast R-CNN Model Architecture

Summary of the Fast R-CNN Model Architecture.
Taken from: Gyors R-CNN.

A modellt lényegesen gyorsabban lehet betanítani és előrejelzéseket készíteni, ugyanakkor továbbra is szükséges, hogy minden egyes bemeneti képpel együtt egy sor jelölt régiót javasoljunk.

A Fast R-CNN-nek a tanulmányban leírtython és C++ (Caffe) forráskódját egy GitHub-tárban tették elérhetővé.

Faster R-CNN

A modell architektúráját Shaoqing Ren, et al. a Microsoft Research 2016-os, Faster R-CNN című tanulmányában továbbfejlesztette mind a képzés, mind a detektálás gyorsasága szempontjából: Towards Real-Time Object Detection with Region Proposal Networks.”

Az architektúra volt az alapja az ILSVRC-2015 és az MS COCO-2015 objektumfelismerési és -detektálási versenyfeladatokon elért első helyezett eredményeknek.

Az architektúrát úgy tervezték, hogy a képzési folyamat részeként régiójavaslatokat javasoljon és finomítson, amelyet régiójavaslat-hálózatnak (Region Proposal Network, RPN) neveznek. Ezeket a régiókat ezután egy gyors R-CNN modellel együtt használják fel egyetlen modelltervezésben. Ezek a fejlesztések egyrészt csökkentik a régiójavaslatok számát, másrészt a modell tesztidőszaki működését közel valós idejűvé gyorsítják, majd a legkorszerűbb teljesítményt nyújtják.

… a felderítő rendszerünk képkockasebessége 5 képkocka/mp (minden lépéssel együtt) GPU-n, miközben a legkorszerűbb tárgyfelismerési pontosságot érte el a PASCAL VOC 2007, 2012 és MS COCO adatkészleteken, képenként mindössze 300 javaslattal. Az ILSVRC és a COCO 2015 versenyeken a Faster R-CNN és az RPN több pályaműben is az 1. helyezett pályaművek alapját képezi

– Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, 2016.

Bár egyetlen egységes modellről van szó, az architektúra két modulból áll:

  • 1. modul: Régiós javaslathálózat. Konvolúciós neurális hálózat a régiók és a régióban figyelembe veendő objektum típusának javaslására.
  • 2. modul: Fast R-CNN. Konvolúciós neurális hálózat a javasolt régiók jellemzőinek kinyerésére és a határoló doboz és az osztálycímkék kiadására.

Mindkét modul egy mély CNN azonos kimenetén működik. A régiójavaslat-hálózat a gyors R-CNN hálózat figyelemmechanizmusaként működik, tájékoztatva a második hálózatot arról, hogy hol kell keresnie vagy figyelnie.

A modell architektúráját az alábbi, a cikkből vett kép foglalja össze.

Summary of the Faster R-CNN Model Architecture

Summary of the Faster R-CNN Model Architecture.Taken from: Faster R-CNN: Towards Real-Time Object Detection With Region Proposal Networks.

Az RPN úgy működik, hogy egy előre betanított mély CNN, például a VGG-16 kimenetét veszi, és egy kis hálózatot vezet át a jellemzőtérképen, majd több régiójavaslatot és mindegyikhez egy osztályjóslatot ad ki. A régiójavaslatok olyan határoló dobozok, amelyek úgynevezett horgonydobozokon vagy előre meghatározott alakzatokon alapulnak, és amelyek célja a régiók javaslatának felgyorsítása és javítása. Az osztály-előrejelzés bináris, jelezve egy objektum jelenlétét, vagy nem jelenlétét, a javasolt régió úgynevezett “objektumosságát”.

A váltakozó képzés eljárását alkalmazzuk, ahol a két alhálózatot egyszerre, bár egymás között váltakozva képezzük. Ez lehetővé teszi, hogy a jellemződetektoros mély CNN paramétereit mindkét feladatra egyszerre szabják vagy finomhangolják.

A cikk írásakor ez a Faster R-CNN architektúra a modellcsalád csúcsa, és továbbra is közel a legkorszerűbb eredményeket ér el a tárgyfelismerési feladatokban. Egy további bővítés a képszegmentálás támogatásával egészül ki, amelyet a 2017-es “Mask R-CNN.”

Python és C++ (Caffe) forráskódja a Fast R-CNN-nek a cikkben leírtak szerint elérhetővé vált egy GitHub tárolóban.

YOLO modellcsalád

A tárgyfelismerő modellek másik népszerű családját együttesen YOLO vagy “You Only Look Once” néven emlegetik, amelyet Joseph Redmon, et al. fejlesztett ki.

Az R-CNN modellek általában pontosabbak lehetnek, mégis a YOLO modellcsalád gyors, sokkal gyorsabb, mint az R-CNN, és valós idejű tárgyfelismerést ér el.

YOLO

A YOLO modellt először Joseph Redmon, et al. írta le 2015-ben a “You Only Look Once: Unified, Real-Time Object Detection” című tanulmányában. Megjegyzendő, hogy Ross Girshick, az R-CNN fejlesztője szintén szerzője és közreműködője volt ennek a munkának, akkor a Facebook AI Research-nél.

A megközelítés egyetlen, végponttól végpontig képzett neurális hálózatot tartalmaz, amely bemenetként egy fényképet vesz, és közvetlenül megjósolja a határoló dobozokat és az egyes határoló dobozok osztálycímkéit. A technika alacsonyabb előrejelzési pontosságot kínál (pl. több lokalizációs hiba), bár 45 képkocka/másodperc sebességgel működik, a modell sebességre optimalizált változata pedig akár 155 képkocka/másodperc sebességgel is.

Egységes architektúránk rendkívül gyors. Az alap YOLO modellünk valós időben 45 képkocka/másodperc sebességgel dolgozza fel a képeket. A hálózat kisebb változata, a Fast YOLO, másodpercenként elképesztő 155 képkockát dolgoz fel …

– You Only Look Once: Unified, Real-Time Object Detection, 2015.

A modell úgy működik, hogy először a bemeneti képet cellákból álló rácsra osztja, ahol minden egyes cella felelős egy határoló doboz előrejelzéséért, ha a határoló doboz középpontja a cellába esik. Minden rácscella egy határoló dobozt jósol meg az x, y koordinátát, valamint a szélességet és a magasságot és a megbízhatóságot bevonva. Minden egyes cellán egy osztályjóslás is alapul.

Egy képet például 7×7-es rácsra lehet osztani, és a rács minden egyes cellája 2 határoló dobozt jósolhat, ami 94 javasolt határoló doboz-előrejelzést eredményez. Az osztályvalószínűségi térképet és a konfidenciákkal rendelkező határoló dobozokat ezután a határoló dobozok és az osztálycímkék végső készletévé kombináljuk. Az alábbi, a cikkből vett kép a modell két kimenetét foglalja össze.

Summary of Predictions made by YOLO Model

Summary of Predictions made by YOLO Model.Taken from: You Only Look Once: Unified, Real-Time Object Detection

YOLOv2 (YOLO9000) and YOLOv3

A modellt Joseph Redmon és Ali Farhadi a modell teljesítményének további javítása érdekében frissítette a 2016-ban megjelent “YOLO9000: Better, Faster, Stronger.”

Bár a modellnek ezt a változatát YOLO v2 néven említik, a modell egy olyan példányát írják le, amelyet két tárgyfelismerési adathalmazon párhuzamosan képeztek ki, és amely 9000 tárgyosztály előrejelzésére képes, ezért kapta a “YOLO9000″ nevet.”

A modellen számos képzési és architektúrális változtatást hajtottak végre, mint például a kötegelt normalizálás és a nagy felbontású bemeneti képek használata.

A Faster R-CNN-hez hasonlóan a YOLOv2 modell is használ anchor boxokat, előre definiált, hasznos alakú és méretű határoló dobozokat, amelyeket a képzés során testre szabnak. A képhez tartozó határolódobozok kiválasztása előfeldolgozásra kerül a képzési adathalmazon végzett k-means elemzéssel.

Fontos, hogy a határolódobozok prediktált reprezentációja úgy módosul, hogy a kis változások kevésbé drámai hatással legyenek a predikciókra, ami stabilabb modellt eredményez. Ahelyett, hogy a pozíciót és a méretet közvetlenül jósolnánk meg, az előre meghatározott horgonydobozok rácscellához viszonyított mozgatásához és átformálásához az eltolódásokat jósoljuk meg, és ezeket egy logisztikus függvénnyel csillapítjuk.

Példa a határoló dobozok pozíciójának és alakjának előrejelzésekor kiválasztott reprezentációra

Példa a határoló dobozok pozíciójának és alakjának előrejelzésekor kiválasztott reprezentációraVétel: YOLO9000: Better, Faster, Stronger

A modell további fejlesztését Joseph Redmon és Ali Farhadi javasolta a 2018-as “YOLOv3: An Incremental Improvement” című tanulmányukban. A fejlesztések ésszerűen kisebbek voltak, beleértve egy mélyebb feature detektor hálózatot és kisebb reprezentációs változtatásokat.

Further Reading

Ez a rész további forrásokat tartalmaz a témában, ha mélyebben szeretne elmélyülni.

Papers

  • ImageNet Large Scale Visual Recognition Challenge, 2015.

R-CNN Family Papers

  • Rich feature hierarchies for accurate object detection and semantic segmentation, 2013.
  • Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition, 2014.
  • Fast R-CNN, 2015.
  • Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, 2016.
  • Mask R-CNN, 2017.

YOLO Family Papers

  • You Only Look Once: Unified, Real-Time Object Detection, 2015.
  • YOLO9000: Better, Faster, Stronger, 2016.
  • YOLOv3: An Incremental Improvement, 2018.

Code Projects

  • R-CNN: Regions with Convolutional Neural Network Features, GitHub.
  • Fast R-CNN, GitHub.
  • Faster R-CNN Python Code, GitHub.
  • YOLO, GitHub.

Resources

  • Ross Girshick, Homepage.
  • Joseph Redmon, Homepage.
  • YOLO: Real-Time Object Detection, Homepage.

Articles

  • A Short History of CNNs in Image Segmentation: From R-CNN to Mask R-CNN, 2017.
  • Object Detection for Dummies Part 3: R-CNN Family, 2017.
  • Object Detection Part 4: Fast Detection Models, 2018.

Summary

Ebben a bejegyzésben egy szelíd bevezetést fedezett fel a tárgyfelismerés problémájába és az annak megoldására tervezett legkorszerűbb mélytanulási modellekbe.

Közelebbről megtanulta:

  • A tárgyfelismerés a digitális fényképeken lévő tárgyak azonosítására szolgáló, egymással összefüggő feladatok gyűjteményére utal.
  • A régióalapú konvolúciós neurális hálózatok, vagy R-CNN-ek a tárgylokalizációs és felismerési feladatok megoldására szolgáló technikák egy családja, amelyet a modellteljesítményre terveztek.
  • A You Only Look Once, vagy YOLO a tárgyfelismerési technikák egy másik családja, amelyet a sebességre és a valós idejű használatra terveztek.

Kérdése van?
Tegye fel kérdéseit az alábbi megjegyzésekben, és igyekszem a lehető legjobban válaszolni.

Develop Deep Learning Models for Vision Today!

Deep Learning for Computer Vision

Develop Your Own Vision Models in Minutes

….mindössze néhány sor python kóddal

Fedezze fel, hogyan az új Ebookomban:
Deep Learning for Computer Vision

Ez önképző tananyagokat tartalmaz olyan témákban, mint:
osztályozás, tárgyfelismerés (yolo és rcnn), arcfelismerés (vggface és facenet), adatelőkészítés és még sok más…

Finally Bringing Deep Learning to your Vision Projects

Skip the Academics. Just Results.

See What’s Inside

Tweet Share Share Share

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.