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

11 KiB
Raw Blame History

Objektide tuvastamine

Pildiklassifikatsiooni mudelid, millega oleme seni tegelenud, võtsid pildi ja andsid kategoorilise tulemuse, näiteks klassi 'number' MNIST-probleemis. Kuid paljudel juhtudel ei taha me lihtsalt teada, et pilt kujutab objekte me tahame määrata nende täpse asukoha. Just seda eesmärki täidab objektide tuvastamine.

Eelloengu viktoriin

Objektide tuvastamine

Pilt YOLO v2 veebilehelt

Naivne lähenemine objektide tuvastamisele

Oletame, et tahame leida kassi pildilt. Väga naiivne lähenemine objektide tuvastamisele oleks järgmine:

  1. Jagame pildi mitmeks väiksemaks osaks.
  2. Käivitame pildiklassifikatsiooni igal osal.
  3. Need osad, mis annavad piisavalt kõrge aktiveerimise, võib pidada objektiks, mida otsime.

Naivne objektide tuvastamine

Pilt harjutuste märkmikust

Kuid see lähenemine pole ideaalne, kuna see võimaldab algoritmil määrata objekti piiritleva kasti asukohta väga ebatäpselt. Täpsema asukoha määramiseks peame kasutama mingisugust regressiooni, et ennustada piiritlevate kastide koordinaate ja selleks on vaja spetsiifilisi andmekogumeid.

Regressioon objektide tuvastamiseks

See blogipostitus pakub suurepärast sissejuhatust kujundite tuvastamisse.

Andmekogumid objektide tuvastamiseks

Selle ülesande jaoks võite kohata järgmisi andmekogumeid:

  • PASCAL VOC 20 klassi
  • COCO Tavalised objektid kontekstis. 80 klassi, piiritlevad kastid ja segmentatsioonimaskid

COCO

Objektide tuvastamise mõõdikud

Ühisosa ja ühenduse suhe (Intersection over Union)

Kui pildiklassifikatsiooni puhul on lihtne mõõta, kui hästi algoritm töötab, siis objektide tuvastamise puhul peame mõõtma nii klassi õigsust kui ka tuvastatud piiritleva kasti asukoha täpsust. Viimase jaoks kasutame nn ühisosa ja ühenduse suhet (IoU), mis mõõdab, kui hästi kaks kasti (või kaks suvalist ala) kattuvad.

IoU

Joonis 2 sellest suurepärasest blogipostitusest IoU kohta

Idee on lihtne jagame kahe kujundi ühisosa pindala nende ühenduse pindalaga. Kahe identse ala puhul oleks IoU väärtus 1, samas kui täiesti eraldatud alade puhul oleks see 0. Muudel juhtudel varieerub see 0 ja 1 vahel. Tavaliselt arvestame ainult neid piiritlevaid kaste, mille IoU ületab teatud väärtuse.

Keskmine täpsus (Average Precision)

Oletame, et tahame mõõta, kui hästi tuvastatakse teatud klassi objekte C. Selleks kasutame keskmise täpsuse mõõdikut, mis arvutatakse järgmiselt:

  1. Võtame täpsuse ja tagasikutsumise kõvera, mis näitab täpsust sõltuvalt tuvastamise läve väärtusest (vahemikus 0 kuni 1).
  2. Sõltuvalt lävest tuvastatakse pildil rohkem või vähem objekte ning täpsuse ja tagasikutsumise väärtused muutuvad.
  3. Kõver näeb välja selline:

Pilt NeuroWorkshopist

Keskmine täpsus klassi C jaoks on selle kõvera alune pindala. Täpsemalt jagatakse tagasikutsumise telg tavaliselt 10 osaks ja täpsus keskmistatakse kõigi nende punktide üle:


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

AP ja IoU

Arvestame ainult neid tuvastusi, mille IoU ületab teatud väärtuse. Näiteks PASCAL VOC andmekogumis eeldatakse tavaliselt \mbox{IoU Threshold} = 0.5, samas kui COCO-s mõõdetakse AP-d erinevate \mbox{IoU Threshold} väärtuste jaoks.

Pilt NeuroWorkshopist

Keskmine keskmine täpsus mAP

Peamine objektide tuvastamise mõõdik on keskmine keskmine täpsus ehk mAP. See on keskmise täpsuse väärtus, keskmistatud kõigi objektiklasside ja mõnikord ka \mbox{IoU Threshold} üle. Täpsemalt on mAP arvutamise protsess kirjeldatud selles blogipostituses ja siin koos koodinäidetega.

Erinevad objektide tuvastamise lähenemised

Objektide tuvastamise algoritme on kahte laia klassi:

  • Piirkonna ettepanekuvõrgud (R-CNN, Fast R-CNN, Faster R-CNN). Peamine idee on genereerida huvipiirkonnad (ROI) ja käivitada nende üle CNN, otsides maksimaalset aktiveerimist. See on natuke sarnane naiivse lähenemisega, välja arvatud see, et ROIsid genereeritakse nutikamalt. Üks peamisi puudusi sellistel meetoditel on see, et need on aeglased, kuna vajame CNN klassifikaatori mitut läbimist pildi üle.
  • Ühe läbimise (YOLO, SSD, RetinaNet) meetodid. Nendes arhitektuurides kujundatakse võrk nii, et see ennustaks nii klasse kui ka ROIsid ühe läbimisega.

R-CNN: Piirkonna põhine CNN

R-CNN kasutab Selective Search, et genereerida ROI piirkondade hierarhiline struktuur, mis seejärel läbib CNN-i funktsioonide ekstraktorid ja SVM-klassi määrajad, et määrata objekti klass, ning lineaarse regressiooni, et määrata piiritleva kasti koordinaadid. Ametlik artikkel

RCNN

Pilt van de Sande et al. ICCV11

RCNN-1

Pildid sellest blogist

F-RCNN Kiire R-CNN

See lähenemine on sarnane R-CNN-iga, kuid piirkonnad määratakse pärast konvolutsioonikihtide rakendamist.

FRCNN

Pilt ametlikust artiklist, arXiv, 2015

Kiirem R-CNN

Selle lähenemise peamine idee on kasutada närvivõrku ROIside ennustamiseks nn piirkonna ettepanekuvõrk. Artikkel, 2016

FasterRCNN

Pilt ametlikust artiklist

R-FCN: Piirkonna põhine täielikult konvolutsiooniline võrk

See algoritm on isegi kiirem kui Faster R-CNN. Peamine idee on järgmine:

  1. Ekstraheerime funktsioonid ResNet-101 abil.
  2. Funktsioone töödeldakse positsioonitundliku skoorikaardiga. Iga objekt klassist C jagatakse k\times k piirkondadeks ja treenime ennustama objektide osi.
  3. Iga osa k\times k piirkondadest hääletavad kõik võrgud objektiklasside eest ja maksimaalse häälega objektiklass valitakse.

r-fcn pilt

Pilt ametlikust artiklist

YOLO You Only Look Once

YOLO on reaalajas ühe läbimise algoritm. Peamine idee on järgmine:

  • Pilt jagatakse S\times S piirkondadeks.
  • Iga piirkonna jaoks ennustab CNN n võimalikku objekti, piiritleva kasti koordinaate ja usaldusväärsust=tõenäosust * IoU.

YOLO

Pilt ametlikust artiklist

Muud algoritmid

✍️ Harjutused: Objektide tuvastamine

Jätkake õppimist järgmises märkmikus:

ObjectDetection.ipynb

Kokkuvõte

Selles tunnis tegite kiirülevaate erinevatest viisidest, kuidas objektide tuvastamist saab teostada!

🚀 Väljakutse

Lugege läbi need artiklid ja märkmikud YOLO kohta ning proovige neid ise:

Järelloengu viktoriin

Ülevaade ja iseseisev õppimine

Ülesanne: Objektide tuvastamine


Lahtiütlus:
See dokument on tõlgitud, kasutades AI tõlketeenust Co-op Translator. Kuigi püüame tagada täpsust, palun arvestage, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks lugeda autoriteetseks allikaks. Olulise teabe puhul on soovitatav kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.