Viimeisin päivitetty 27.1.2021
Aloittelijoille voi olla haastavaa erottaa toisistaan erilaiset toisiinsa liittyvät tietokonenäön tehtävät.
Esimerkiksi kuvien luokittelu on suoraviivaista, mutta kohteiden paikantamisen ja kohteiden havaitsemisen väliset erot voivat olla hämmentäviä, varsinkin kun kaikkia kolmea tehtävää voidaan yhtä hyvin kutsua kohteiden tunnistamiseksi.
Kuvaluokittelussa on kyse luokkatunnisteen antamisesta kuvalle, kun taas kohteiden paikantamisessa on kyse rajaavan laatikon piirtämisestä yhden tai useamman kohteen ympärille kuvassa. Objektien tunnistaminen on haastavampaa, ja siinä yhdistetään nämä kaksi tehtävää ja piirretään rajaava laatikko jokaisen kiinnostavan objektin ympärille kuvassa ja annetaan niille luokkatunnus. Yhdessä kaikkia näitä ongelmia kutsutaan objektintunnistukseksi.
Tässä postauksessa tutustut lempeästi objektintunnistusongelmaan ja sen ratkaisemiseen suunniteltuihin uusimpiin syväoppimismalleihin.
Lukemalla tämän postauksen tiedät:
- Objektintunnistus viittaa kokoelmaan toisiinsa liittyviä tehtäviä, joiden avulla tunnistetaan kohteita digitaalisista valokuvista.
- Region-Based Convolutional Neural Networks eli R-CNN:t ovat tekniikkaperhe kohteiden paikannus- ja tunnistustehtävien ratkaisemiseen, ja ne on suunniteltu mallisuorituskykyisiksi.
- You Only Look Once eli YOLO on toinen tekniikkaperhe kohteiden tunnistamiseen, joka on suunniteltu nopeuteen ja reaaliaikaiseen käyttöön.
Käynnistä projektisi uudella kirjallani Deep Learning for Computer Vision, joka sisältää vaiheittaiset opetusohjelmat ja Python-lähdekooditiedostot kaikille esimerkeille.
Aloitetaan.
A Gentle Introduction to Object Recognition With Deep Learning
Photo by Bart Everson, some rights reserved.
Yleiskatsaus
Tämä opetusohjelma on jaettu kolmeen osaan; ne ovat:
- Mitä on objektien tunnistaminen?
- R-CNN-malliperhe
- YOLO-malliperhe
Tahdotko tuloksia syvällä oppimisella tietokoneen visioinnissa?
Osta nyt ilmainen 7 päivän sähköpostin pikakurssini (esimerkkikoodilla).
Klikkaa ilmoittautuaksesi ja saat myös ilmaisen PDF-kirjaversion kurssista.
Lataa itsellesi ILMAINEN minikurssi
Mitä on esineiden tunnistus?
Objektintunnistus on yleisnimitys kuvaamaan kokoelmaa toisiinsa liittyviä tietokonenäkötehtäviä, joissa tunnistetaan kohteita digitaalisissa valokuvissa.
Kuvaluokittelussa on kyse yhden kohteen luokan ennustamisesta kuvassa. Objektin paikantamisella tarkoitetaan yhden tai useamman objektin sijainnin tunnistamista kuvassa ja rajatun laatikon piirtämistä niiden laajuuden ympärille. Objektien tunnistaminen yhdistää nämä kaksi tehtävää ja paikallistaa ja luokittelee yhden tai useamman objektin kuvassa.
Kun käyttäjä tai ammattilainen puhuu ”objektien tunnistamisesta”, hän tarkoittaa usein ”objektien tunnistamista”.
… käytämme termiä objektintunnistus laajasti käsittääksemme sekä kuvan luokittelun (tehtävä, joka edellyttää algoritmia määrittämään, mitä objektiluokkia kuvassa on) että objektin havaitsemisen (tehtävä, joka edellyttää algoritmia paikallistamaan kaikki kuvassa olevat objektit
– ImageNet Large Scale Visual Recognition Challenge, 2015.
Siten voidaan erottaa nämä kolme tietokonenäkötehtävää:
- Kuvan luokittelu: Kuvan kohteen tyypin tai luokan ennustaminen kuvassa.
- Input: Kuva, jossa on yksi objekti, esimerkiksi valokuva.
- Tulos: Luokkatunniste (esim. yksi tai useampi kokonaisluku, joka on kuvattu luokkatunnisteisiin).
- Kohteen paikannus: Objektien paikantaminen kuvassa ja niiden sijainnin osoittaminen rajaavalla laatikolla.
- Input: Kuva, jossa on yksi tai useampi objekti, esimerkiksi valokuva.
- Tulos: Yksi tai useampi rajaava laatikko (esim. pisteen, leveyden ja korkeuden määrittelemä).
- Objektien havaitseminen: Paikallistaa kuvassa olevien objektien läsnäolon rajauslaatikon avulla ja paikannettujen objektien tyypit tai luokat.
- Input: Kuva, jossa on yksi tai useampi objekti, esimerkiksi valokuva.
- Tulos: Yksi tai useampi rajalaatikko (esim. pisteen, leveyden ja korkeuden määrittelemä) ja luokkamerkintä kullekin rajalaatikolle.
Yksi lisälaajennus tähän jaotteluun tietokonenäkötehtävistä on objektien segmentointi, jota kutsutaan myös ”objektin instanssin segmentoinniksi” tai ”semanttiseksi segmentoinniksi”, jossa tunnistettujen objektien instansseja merkitään nostamalla esiin objektin tietyt pikselit karkean rajalaatikon sijasta.
Tästä jaottelusta nähdään, että objektintunnistuksella tarkoitetaan useita haastavia tietokonenäkötehtäviä.
Overview of Object Recognition Computer Vision Tasks
Suuri osa viimeaikaisista kuvantunnistusongelmiin liittyvistä innovaatioista on tullut osana ILSVRC:n tehtäviin osallistumista.
Tämä on vuosittainen akateeminen kilpailu, jossa kullekin näistä kolmesta ongelmatyypistä on oma haasteensa, ja tarkoituksena on edistää kullakin tasolla itsenäisiä ja erillisiä parannuksia, joita voidaan hyödyntää laajemmin. Katso esimerkiksi alla oleva luettelo kolmesta vastaavasta tehtävätyypistä, jotka on poimittu ILSVRC:n vuoden 2015 arvosteluasiakirjasta:
- Kuvien luokittelu: Algoritmit tuottavat luettelon kuvassa esiintyvistä objektiluokista.
- Yksittäisen objektin paikantaminen: Algoritmit tuottavat luettelon kuvassa esiintyvistä objektiluokista sekä akselin suuntaisen rajapyykin, joka osoittaa kunkin objektiluokan yhden kappaleen sijainnin ja mittakaavan.
- Objektien havaitseminen: Algoritmit tuottavat luettelon kuvassa esiintyvistä objektiluokista sekä akselin suuntaisen rajoituslaatikon, joka osoittaa kunkin objektiluokan jokaisen esiintymän sijainnin ja mittakaavan.
Voidaan nähdä, että ”yhden kohteen paikannus” on yksinkertaisempi versio laajemmin määritellystä ”kohteen paikannuksesta”, jossa paikannustehtävät rajataan koskemaan vain yhden tyyppisiä kohteita kuvassa, minkä voidaan olettaa olevan helpompi tehtävä.
Alhaalla on esimerkki, jossa verrataan yhden kohteen paikannusta ja kohteen havaitsemista ILSVRC:n julkaisusta. Huomaa ero pohjatodellisuusodotuksissa kummassakin tapauksessa.
Comparison Between Single Object Localization and Object Detection.Taken From: ImageNet Large Scale Visual Recognition Challenge.
Kuvanluokittelumallin suorituskykyä arvioidaan käyttämällä keskimääräistä luokitteluvirhettä ennustettujen luokkatunnisteiden välillä. Yksittäisen kohteen paikantamiseen tarkoitetun mallin suorituskykyä arvioidaan käyttämällä odotetun luokan odotetun ja ennustetun rajauslaatikon välistä etäisyyttä. Kun taas objektien tunnistamiseen tarkoitetun mallin suorituskykyä arvioidaan käyttämällä tarkkuutta ja palautusta kunkin kuvan tunnetuille objekteille parhaiten sopivan rajauslaatikon välillä.
Nyt kun objektien paikantamisen ja tunnistamisen ongelma on nyt tuttu, katsotaanpa joitakin viimeaikaisia huippusuorituskykyisiä syväoppimisen malleja.
R-CNN-malliperhe
R-CNN-menetelmäperhe viittaa R-CNN-menetelmään, joka voi olla lyhenne sanoista ”Regions with CNN Features” (alueet CNN-ominaisuuksilla) tai ”Region-Based Convolutional Neural Network” (aluepohjainen konvoluutio-neuraaliverkko), jonka on kehittänyt Ross Girshick ym.
Se sisältää tekniikat R-CNN, Fast R-CNN ja Faster-RCNN, jotka on suunniteltu ja demonstroitu objektien paikantamiseen ja objektien tunnistamiseen.
Katsotaanpa tarkemmin kunkin tekniikan kohokohtia vuorollaan.
R-CNN
R-CNN kuvattiin vuonna 2014 ilmestyneessä artikkelissa, jonka kirjoittajina olivat Ross Girshick, et al. UC Berkeleystä otsikolla ”Rich feature hierarchies for accurate object detection and semantic segmentation.”
Se saattoi olla yksi ensimmäisistä laajoista ja onnistuneista konvoluutiohermoverkkojen sovelluksista objektien paikantamisen, havaitsemisen ja segmentoinnin ongelmaan. Lähestymistapa demonstroitiin vertailutietoaineistoissa, ja sillä saavutettiin tuolloin huippuluokan tulokset VOC-2012-tietoaineistossa ja 200-luokan ILSVRC-2013-objektien havaitsemistietoaineistossa.
Heidän ehdottamansa R-CNN-malli koostuu kolmesta moduulista; ne ovat:
- Moduuli 1: Alue-ehdotus. Luo ja poimii kategoriasta riippumattomia alue-ehdotuksia, esim. ehdokkaiden rajauslaatikoita.
- Moduuli 2: Feature Extractor. Poimitaan piirre jokaisesta aluekandidaatista, esim. syvän konvoluutionaalisen neuroverkon avulla.
- Moduuli 3: Luokittelija. Luokittele piirteet yhdeksi tunnetuista luokista, esim. lineaarinen SVM-luokitinmalli.
Mallin arkkitehtuuri on tiivistetty alla olevaan kuvaan, joka on otettu paperista.
Yhteenveto R-CNN-mallin arkkitehtuuristaViedään Runsaspiirteiset piirrehierarkiat tarkkaan objektien havaitsemiseen ja semanttiseen segmentointiin.
Kuvassa olevien potentiaalisten objektien ehdokkaiden alueiden tai rajaavien laatikoiden ehdottamiseen käytetään tietokonenäkötekniikkaa, jota kutsutaan ”valikoivaksi etsinnäksi”, vaikka rakenteen joustavuus mahdollistaa muidenkin alueita ehdottavien algoritmien käyttämisen.
Mallissa käytettiin ominaisuuksien poimijana AlexNet-syvää CNN:ää, joka voitti kuvanluokittelukilpailun ILSVRC-2012. CNN:n tuotos oli 4 096-alkioinen kuvan sisältöä kuvaava vektori, joka syötetään lineaariselle SVM:lle luokittelua varten, ja nimenomaan jokaiselle tunnetulle luokalle koulutetaan yksi SVM.
Suhteellisen yksinkertainen ja suoraviivainen CNN:ien sovellus objektien paikallistamisen ja tunnistamisen ongelmaan. Lähestymistavan haittapuolena on, että se on hidas, sillä se vaatii CNN-pohjaisen ominaisuuksien louhintakierroksen jokaiselle alue-ehdotusalgoritmin tuottamalle ehdokasalueelle. Tämä on ongelma, sillä artikkelissa kuvataan mallin toimivan noin 2 000 ehdotetun alueen kanssa kuvaa kohti testihetkellä.
Python (Caffe) ja MatLab-lähdekoodi artikkelissa kuvatulle R-CNN:lle asetettiin saataville R-CNN:n GitHub-tietovarastoon.
Nopea R-CNN
R-CNN:n suuren menestyksen vuoksi Ross Girshick, joka työskenteli tuolloin Microsoft Researchissa, ehdotti laajennusta R-CNN:n nopeusongelmien ratkaisemiseksi vuonna 2015 julkaistussa artikkelissa ”Nopea R-CNN.”
Paperin alussa käydään läpi R-CNN:n rajoituksia, jotka voidaan tiivistää seuraavasti:
- Koulutus on monivaiheinen putki. Sisältää kolmen erillisen mallin valmistelun ja käytön.
- Koulutus on kallista tilassa ja ajassa. Syvän CNN:n kouluttaminen niin monella alue-ehdotuksella kuvaa kohti on hyvin hidasta.
- Kohteiden havaitseminen on hidasta. Ennusteiden tekeminen syvä-CNN:n avulla niin monelle alue-ehdotukselle on hyvin hidasta.
Tekniikan nopeuttamiseksi ehdotettiin aiempaa työtä, jota kutsutaan spatiaalisiksi pyramidipooling-verkoiksi (spatial pyramid pooling networks, SPPnets), vuonna 2014 julkaistussa artikkelissa ”Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition”. Tämä nopeutti kyllä piirteiden louhintaa, mutta käytti pohjimmiltaan eräänlaista eteenpäin kulkevaa välimuistialgoritmia.
Nopeaa R-CNN:ää ehdotetaan yhdeksi ainoaksi malliksi sen sijaan, että se oppisi ja tulostaisi suoraan alueita ja luokituksia.
Mallin arkkitehtuuri ottaa syötteenä valokuvan joukon alue-ehdotuksia, jotka ohjataan syvän konvoluutio-neuroverkon läpi. Ominaisuuksien louhintaan käytetään valmiiksi koulutettua CNN:ää, kuten VGG-16:ta. Syvän CNN:n lopussa on mukautettu kerros nimeltä Region of Interest Pooling Layer eli RoI Pooling, joka poimii tietylle syötteeksi ehdotetulle alueelle ominaisia piirteitä.
CNN:n ulostuloa tulkitaan sitten täysin kytketyssä kerroksessa, minkä jälkeen malli haarautuu kahteen ulostuloon, joista toinen on luokan ennustamista varten softmax-kerroksen kautta ja toinen lineaarisen ulostulon kanssa rajalaatikkoa varten. Tämä prosessi toistetaan sitten useita kertoja kullekin kiinnostavalle alueelle tietyssä kuvassa.
Mallin arkkitehtuuri on tiivistetty alla olevaan kuvaan, joka on poimittu artikkelista.
Yhteenveto nopean R-CNN-mallin arkkitehtuurista.
Viety artikkelista: Fast R-CNN.
Malli on huomattavasti nopeampi kouluttaa ja tehdä ennusteita, mutta se vaatii silti, että jokaisen tulokuvan mukana ehdotetaan joukko ehdokasalueita.
Pythonin ja C++:n (Caffe) lähdekoodi artikkelissa kuvatulle Fast R-CNN:lle asetettiin saataville GitHub-arkistoon.
Faster R-CNN
Malliarkkitehtuuria parannettiin entisestään sekä harjoittelun että havainnon nopeuden osalta Shaoqing Ren ym. Microsoft Researchissa vuonna 2016 julkaistussa artikkelissa ”Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks.”
Arkkitehtuuri oli perustana sekä ILSVRC-2015- että MS COCO-2015 -objektien tunnistus- ja havaintokilpailutehtävissä saavutetuille ensimmäisille tuloksille.
Arkkitehtuuri suunniteltiin niin, että se sekä ehdottaa että tarkentaa alue-ehdotuksia osana harjoitteluprosessia, johon viitataan nimellä Alue-ehdotusverkko (Region Proposal Network, RPN). Näitä alueita käytetään sitten yhdessä Fast R-CNN -mallin kanssa yhdessä mallin suunnittelussa. Nämä parannukset sekä vähentävät alue-ehdotusten määrää että nopeuttavat mallin testiaikaista toimintaa lähes reaaliaikaiseksi, jolloin suorituskyky on huippuluokkaa.
… …havaitsemisjärjestelmämme kuvataajuus on 5 kuvaa sekunnissa (kaikki vaiheet mukaan luettuina) grafiikkasuorittimella, ja samalla saavutetaan huippuluokkaa oleva objektien havaitsemistarkkuus PASCAL VOC 2007-, 2012- ja MS COCO -datajoukoissa, joissa on vain 300 ehdotusta kuvaa kohti. ILSVRC- ja COCO 2015 -kilpailuissa Faster R-CNN ja RPN ovat perustana 1. sijan voittaneille ehdotuksille useilla raiteilla
– Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, 2016.
Vaikka kyseessä on yksi yhtenäinen malli, arkkitehtuuri koostuu kahdesta moduulista:
- Moduuli 1: Alue-ehdotusverkko. Konvolutiohermoverkko, joka ehdottaa alueita ja alueella huomioon otettavan kohteen tyyppiä.
- Moduuli 2: Fast R-CNN. Konvoluutiohermoverkko ehdotettujen alueiden piirteiden poimimiseen ja rajauslaatikon ja luokkatunnisteiden tulostamiseen.
Kumpikin moduuli toimii samalla syvä-CNN:n ulostulolla. Alueiden ehdotusverkko toimii nopean R-CNN-verkon huomiomekanismina, joka ilmoittaa toiselle verkolle, mihin sen on katsottava tai kiinnitettävä huomiota.
Mallin arkkitehtuuri on tiivistetty alla olevaan kuvaan, joka on otettu paperista.
Summary of the Faster R-CNN Model Architecture.Taken from: Faster R-CNN: Towards Real-Time Object Detection With Region Proposal Networks.
RPN toimii siten, että otetaan esivalmennetun syvän CNN:n, kuten VGG-16:n, tuotos ja ohjataan pieni verkko piirrekartan yli ja tulostetaan useita alue-ehdotuksia ja luokkaennuste jokaiselle. Alue-ehdotukset ovat rajaavia laatikoita, jotka perustuvat niin sanottuihin ankkurilaatikoihin tai ennalta määriteltyihin muotoihin, jotka on suunniteltu nopeuttamaan ja parantamaan alueiden ehdottamista. Luokkaennuste on binäärinen, ja se ilmaisee, onko ehdotetulla alueella objekti vai ei, eli ehdotetun alueen niin sanottu ”objektimaisuus”.
Käytetään vuorottelevaa harjoittelumenetelmää, jossa molemmat aliverkot harjoittelevat samaan aikaan, vaikkakin lomittain. Näin ominaisuustunnistimen syvä-CNN:n parametreja voidaan räätälöidä tai hienosäätää molempia tehtäviä varten samanaikaisesti.
Tätä artikkelia kirjoitettaessa tämä Faster R-CNN -arkkitehtuuri on malliperheen huippu, ja sillä saavutetaan edelleen lähes huippuluokan tuloksia esineiden tunnistustehtävissä. Lisälaajennus lisää tuen kuvan segmentoinnille, joka on kuvattu vuonna 2017 julkaistussa paperissa ”Mask R-CNN.”
Python- ja C++ (Caffe) -lähdekoodi artikkelissa kuvatulle Fast R-CNN:lle asetettiin saataville GitHub-arkistoon.
YOLO-malliperhe
Toisesta suositusta objektintunnistusmalliperheestä käytetään yhteisnimikettä YOLO eli ”You Only Look Once”, jonka kehittivät Joseph Redmon, et al.
R-CNN-mallit voivat olla yleisesti ottaen tarkempia, mutta YOLO-malliperheen mallit ovat kuitenkin nopeita, paljon nopeampia kuin R-CNN, ja niillä saavutetaan kohteiden tunnistus reaaliajassa.
YOLO
YOLO-mallia kuvailivat ensimmäisen kerran Joseph Redmon, et al. vuonna 2015 julkaistussa artikkelissa ”You Only Look Once: Unified, Real-Time Object Detection”. Huomaa, että Ross Girshick, R-CNN:n kehittäjä, oli myös tämän työn kirjoittaja ja tekijä, joka työskenteli tuolloin Facebookin tekoälytutkimuksessa.
Lähestymistavassa on kyse yhdestä päästä päähän koulutetusta neuroverkosta, joka ottaa syötteenä valokuvan ja ennustaa rajauslaatikot ja luokkatunnisteet kullekin rajauslaatikolle suoraan. Tekniikka tarjoaa alhaisemman ennustustarkkuuden (esim. enemmän paikannusvirheitä), vaikka se toimii 45 kuvan sekuntinopeudella ja jopa 155 kuvan sekuntinopeudella mallin nopeusoptimoidulla versiolla.
Yhdistynyt arkkitehtuurimme on erittäin nopea. Perus-YOLO-mallimme käsittelee kuvia reaaliajassa 45 kuvan sekuntinopeudella. Pienempi versio verkosta, Fast YOLO, käsittelee hämmästyttävät 155 kuvaa sekunnissa …
– You Only Look Once: Unified, Real-Time Object Detection, 2015.
Malli toimii siten, että se ensin jakaa syötetyn kuvan solujen ruudukkoon, jossa kukin solu on vastuussa rajalaatikon ennustamisesta, jos rajalaatikon keskipiste osuu soluun. Jokainen ruudukon solu ennustaa rajaavan laatikon, johon sisältyy x- ja y-koordinaatti sekä leveys ja korkeus ja luottamus. Myös luokkaennuste perustuu kuhunkin soluun.
Esimerkiksi kuva voidaan jakaa 7×7 ruudukkoon, ja jokainen ruudukon solu voi ennustaa kaksi rajalaatikkoa, jolloin saadaan 94 ehdotettua rajalaatikkoennustetta. Luokkatodennäköisyyskartta ja rajattavat laatikot luottamuksineen yhdistetään sitten lopulliseksi rajattavien laatikoiden ja luokkatunnisteiden joukoksi. Alla olevassa paperista otetussa kuvassa on yhteenveto mallin kahdesta tuotoksesta.
Summary of Predictions made by YOLO Model.Otettu lähteestä: You Only Look Once: Unified, Real-Time Object Detection
YOLOv2 (YOLO9000) ja YOLOv3
Mallia päivittivät Joseph Redmon ja Ali Farhadi pyrkiessään parantamaan mallin suorituskykyä entisestään vuonna 2016 ilmestyneessä julkaisussaan ”YOLO9000: Better, Faster, Stronger.”
Vaikka tätä mallin variaatiota kutsutaan YOLO v2:ksi, kuvataan mallin instanssi, joka koulutettiin kahdella objektintunnistustietoaineistolla rinnakkain ja joka kykeni ennustamaan 9000 objektiluokkaa, minkä vuoksi sille annettiin nimi ”YOLO9000″.”
Malliin tehtiin useita koulutus- ja arkkitehtuurimuutoksia, kuten eränormalisoinnin ja korkearesoluutioisten syöttökuvien käyttö.
YOLOv2-malli käyttää Faster R-CNN:n tavoin ankkurilaatikoita, jotka ovat ennalta määriteltyjä rajalaatikoita, joilla on käyttökelpoiset muodot ja koot ja joita räätälöidään harjoittelun aikana. Rajauslaatikoiden valinta kuvaa varten esikäsitellään k-means-analyysin avulla harjoitustietokannassa.
Tärkeää on, että rajauslaatikoiden ennustettua esitystä muutetaan, jotta pienillä muutoksilla ei olisi yhtä dramaattista vaikutusta ennusteisiin, mikä johtaa vakaampaan malliin. Sen sijaan, että sijainti ja koko ennustettaisiin suoraan, ennustetaan ennalta määriteltyjen ankkurilaatikoiden liikuttamisesta ja uudelleenmuotoilusta aiheutuvia siirtymiä ruudukkosoluun nähden, ja niitä vaimennetaan logistisella funktiolla.
Esimerkki representaatiosta, joka valitaan, kun ennustetaan rajauslaatikon sijaintia ja muotoaViety lähteestä: YOLO9000: Better, Faster, Stronger
Malliin ehdotettiin lisäparannuksia Joseph Redmonin ja Ali Farhadin vuoden 2018 julkaisussaan ”YOLOv3: An Incremental Improvement”. Parannukset olivat kohtuullisen pieniä, sisältäen syvemmän ominaisuustunnistinverkon ja pieniä representaatiomuutoksia.
Lisälukemista
Tässä osiossa on lisää resursseja aiheesta, jos haluat syventyä syvemmälle.
Paperit
- ImageNet Large Scale Visual Recognition Challenge, 2015.
R-CNN Family Papers
- Rich feature hierarchies for accurate object detection and semantic segmentation (Runsaat ominaisuuksien hierarkiat tarkkaan objektin havaitsemiseen ja semanttiseen segmentointiin), 2013.
- Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition (Spatial Pyramid Pooling syvässä konvoluutioverkossa visuaalista tunnistusta varten), 2014.
- Nopea R-CNN (Nopea R-CNN), 2015.
- Nopeampi 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.
Lähteet
- Ross Girshick, Kotisivu.
- Joseph Redmon, Kotisivu.
- YOLO: Real-Time Object Detection, Kotisivu.
Artikkelit
- A Brief 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.
Yhteenveto
Tässä postauksessa löysit hellävaraisen johdatuksen objektien tunnistamisongelmaan ja sen ratkaisemiseen suunniteltujen nykyaikaisten syväoppimismallien käyttöön.
Kohtaisesti opit:
- Objektintunnistuksella tarkoitetaan kokoelmaa toisiinsa liittyviä tehtäviä, joissa tunnistetaan kohteita digitaalisista valokuvista.
- Region-Based Convolutional Neural Networks eli R-CNN:t ovat tekniikkaperhe kohteiden paikannus- ja tunnistustehtävien ratkaisemiseen, ja ne on suunniteltu mallisuorituskykyyn.
- You Only Look Once eli YOLO on toinen tekniikkaperhe kohteiden tunnistamiseen, joka on suunniteltu nopeuteen ja reaaliaikaiseen käyttöön.
Onko sinulla kysyttävää?
Kysy kysymyksesi alla olevissa kommenteissa, niin teen parhaani vastatakseni.
Kehitä Deep Learning -mallit visioon jo tänään!
Kehitä omat visio-opiskelumallisi muutamassa minuutissa
…vain muutamalla rivillä python-koodia
Tutustu siihen uudessa E-kirjassani:
Deep Learning for Computer Vision
Se tarjoaa itseopiskeluoppaita muun muassa seuraavista aiheista:
luokittelu, objektien havaitseminen (yolo ja rcnn), kasvojentunnistus (vggface ja facenet), datan valmistelu ja paljon muuta…
Vihdoinkin syväoppimisen tuominen visio-projekteihisi
Laske akateemiset opinnot. Just Results.
Katso mitä sisällä on
.