AI-For-Beginners/translations/fi/lessons/4-ComputerVision/11-ObjectDetection/README.md

12 KiB
Raw Blame History

Kohteiden Tunnistus

Kuvien luokittelumallit, joita olemme tähän mennessä käsitelleet, ottavat kuvan ja tuottavat kategorisen tuloksen, kuten luokan 'numero' MNIST-ongelmassa. Monissa tapauksissa emme kuitenkaan halua vain tietää, että kuva esittää kohteita haluamme pystyä määrittämään niiden tarkka sijainti. Juuri tähän kohteiden tunnistus keskittyy.

Pre-lecture quiz

Kohteiden Tunnistus

Kuva YOLO v2 -verkkosivustolta

Naiivi Lähestymistapa Kohteiden Tunnistukseen

Oletetaan, että haluaisimme löytää kissan kuvasta. Hyvin yksinkertainen lähestymistapa kohteiden tunnistukseen voisi olla seuraava:

  1. Pilko kuva useisiin ruutuihin.
  2. Suorita kuvien luokittelu jokaisessa ruudussa.
  3. Ruutuja, jotka tuottavat riittävän korkean aktivoinnin, voidaan pitää sisältävän halutun kohteen.

Naiivi Kohteiden Tunnistus

Kuva Harjoitusmuistikirjasta

Tämä lähestymistapa on kuitenkin kaukana ihanteellisesta, koska se sallii algoritmin paikantaa kohteen rajauslaatikon hyvin epätarkasti. Tarkempaa sijaintia varten meidän täytyy suorittaa jonkinlainen regressio ennustamaan rajauslaatikoiden koordinaatit ja tätä varten tarvitsemme erityisiä tietoaineistoja.

Regressio Kohteiden Tunnistukseen

Tämä blogikirjoitus tarjoaa hyvän johdannon muotojen tunnistamiseen.

Kohteiden Tunnistuksen Tietoaineistot

Tässä tehtävässä saatat törmätä seuraaviin tietoaineistoihin:

  • PASCAL VOC 20 luokkaa
  • COCO Common Objects in Context. 80 luokkaa, rajauslaatikot ja segmentointimaskit

COCO

Kohteiden Tunnistuksen Mittarit

Intersection over Union

Kuvien luokittelussa algoritmin suorituskyvyn mittaaminen on helppoa, mutta kohteiden tunnistuksessa meidän täytyy mitata sekä luokan oikeellisuus että ennustetun rajauslaatikon sijainnin tarkkuus. Jälkimmäistä varten käytämme niin kutsuttua Intersection over Union (IoU) -mittaria, joka mittaa, kuinka hyvin kaksi laatikkoa (tai kaksi mielivaltaista aluetta) menevät päällekkäin.

IoU

Kuva 2 tästä erinomaisesta IoU-blogikirjoituksesta

Idea on yksinkertainen jaamme kahden kuvion leikkausalueen niiden yhdistymisalueella. Kahdelle identtiselle alueelle IoU olisi 1, kun taas täysin erillisille alueille se olisi 0. Muuten se vaihtelee välillä 01. Yleensä otamme huomioon vain ne rajauslaatikot, joiden IoU ylittää tietyn arvon.

Keskiarvoinen Tarkkuus

Oletetaan, että haluamme mitata, kuinka hyvin tietty kohdeluokka C tunnistetaan. Tätä varten käytämme Keskiarvoinen Tarkkuus -mittaria, joka lasketaan seuraavasti:

  1. Tarkastellaan Precision-Recall-käyrää, joka näyttää tarkkuuden havaintokynnyksen arvon (01) mukaan.
  2. Kynnyksen mukaan saamme enemmän tai vähemmän havaittuja kohteita kuvassa sekä erilaisia tarkkuuden ja palautteen arvoja.
  3. Käyrä näyttää tältä:

Kuva NeuroWorkshopista

Keskiarvoinen tarkkuus tietylle luokalle C on tämän käyrän alla oleva alue. Tarkemmin sanottuna Recall-akseli jaetaan yleensä 10 osaan, ja tarkkuus keskiarvoistetaan kaikissa näissä pisteissä:


AP = {1\over11}\sum_{i=0}^{10}\mbox{Precision}(\mbox{Recall}={i\over10})

AP ja IoU

Otamme huomioon vain ne havainnot, joiden IoU ylittää tietyn arvon. Esimerkiksi PASCAL VOC -tietoaineistossa yleensä \mbox{IoU Threshold} = 0.5, kun taas COCO:ssa AP mitataan eri \mbox{IoU Threshold}-arvoille.

Kuva NeuroWorkshopista

Keskiarvoinen Tarkkuus Kaikkien Luokkien Yli mAP

Kohteiden tunnistuksen päämittari on Keskiarvoinen Tarkkuus Kaikkien Luokkien Yli, eli mAP. Se on keskiarvoinen tarkkuus, keskiarvoistettuna kaikkien kohdeluokkien yli, ja joskus myös \mbox{IoU Threshold}-arvojen yli. Tarkempi kuvaus mAP-laskentaprosessista löytyy tästä blogikirjoituksesta) sekä täältä koodiesimerkkien kanssa.

Erilaiset Kohteiden Tunnistusmenetelmät

Kohteiden tunnistusalgoritmit voidaan jakaa kahteen pääluokkaan:

  • Alue-ehdotusverkot (R-CNN, Fast R-CNN, Faster R-CNN). Pääidea on luoda kiinnostusalueita (ROI) ja ajaa CNN niiden läpi etsimällä maksimiaktivointia. Tämä on hieman samanlainen kuin naiivi lähestymistapa, mutta ROI:t luodaan älykkäämmin. Yksi suurimmista haittapuolista tällaisissa menetelmissä on niiden hitaus, koska CNN-luokittelijaa täytyy ajaa kuvan läpi monta kertaa.
  • Yhden passin (YOLO, SSD, RetinaNet) menetelmät. Näissä arkkitehtuureissa verkko suunnitellaan ennustamaan sekä luokat että ROI:t yhdellä passilla.

R-CNN: Aluepohjainen CNN

R-CNN käyttää Selective Search -menetelmää luodakseen hierarkkisen rakenteen ROI-alueista, jotka sitten kulkevat CNN-ominaisuuksien erottelijoiden ja SVM-luokittelijoiden läpi määrittämään kohdeluokan sekä lineaarisen regression määrittämään rajauslaatikon koordinaatit. Virallinen artikkeli

RCNN

Kuva van de Sande et al. ICCV11

RCNN-1

Kuvat tästä blogista

F-RCNN Fast R-CNN

Tämä lähestymistapa on samanlainen kuin R-CNN, mutta alueet määritellään vasta konvoluutiokerrosten soveltamisen jälkeen.

FRCNN

Kuva virallisesta artikkelista, arXiv, 2015

Faster R-CNN

Tämän lähestymistavan pääidea on käyttää neuroverkkoa ennustamaan ROI:t niin kutsuttu Region Proposal Network. Artikkeli, 2016

FasterRCNN

Kuva virallisesta artikkelista

R-FCN: Aluepohjainen Täysin Konvoluutioverkko

Tämä algoritmi on jopa nopeampi kuin Faster R-CNN. Pääidea on seuraava:

  1. Ominaisuudet erotellaan ResNet-101:llä.
  2. Ominaisuudet käsitellään Position-Sensitive Score Map -kartalla. Jokainen kohde luokasta C jaetaan k\times k alueisiin, ja verkkoa koulutetaan ennustamaan kohteiden osia.
  3. Jokaiselle osalle k\times k alueista kaikki verkot äänestävät kohdeluokista, ja kohdeluokka, jolla on eniten ääniä, valitaan.

r-fcn kuva

Kuva virallisesta artikkelista

YOLO You Only Look Once

YOLO on reaaliaikainen yhden passin algoritmi. Pääidea on seuraava:

  • Kuva jaetaan S\times S alueisiin.
  • Jokaiselle alueelle CNN ennustaa n mahdollista kohdetta, rajauslaatikon koordinaatit ja luottamus=todennäköisyys * IoU.

YOLO

Kuva virallisesta artikkelista

Muut Algoritmit

✍️ Harjoitukset: Kohteiden Tunnistus

Jatka oppimista seuraavassa muistikirjassa:

ObjectDetection.ipynb

Yhteenveto

Tässä oppitunnissa tutustuit moniin eri tapoihin, joilla kohteiden tunnistus voidaan toteuttaa!

🚀 Haaste

Lue nämä artikkelit ja muistikirjat YOLO:sta ja kokeile niitä itse:

Post-lecture quiz

Kertaus & Itseopiskelu

Tehtävä: Kohteiden Tunnistus


Vastuuvapauslauseke:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäisellä kielellä tulisi pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa väärinkäsityksistä tai virhetulkinnoista, jotka johtuvat tämän käännöksen käytöstä.