stub Kaip veikia vaizdų klasifikavimas? - Vienykitės.AI
Susisiekti su mumis
AI meistriškumo klasė:

AI 101 m

Kaip veikia vaizdų klasifikavimas?

mm
Atnaujinta on

Kaip jūsų telefonas gali nustatyti, kas yra objektas, tik jį nufotografavęs? Kaip socialinės žiniasklaidos svetainės automatiškai pažymi žmones nuotraukose? Tai pasiekiama naudojant dirbtinio intelekto vaizdų atpažinimą ir klasifikavimą.

Vaizdų atpažinimas ir klasifikavimas yra tai, kas įgalina daugelį įspūdingiausių dirbtinio intelekto laimėjimų. Tačiau kaip kompiuteriai išmoksta aptikti ir klasifikuoti vaizdus? Šiame straipsnyje apžvelgsime bendruosius metodus, kuriuos kompiuteriai naudoja vaizdams interpretuoti ir aptikti, o tada pažvelgsime į kai kuriuos populiariausius tų vaizdų klasifikavimo metodus.

Pikselių lygis ir objektas pagrįsta klasifikacija

Vaizdų klasifikavimo metodus daugiausia galima suskirstyti į dvi skirtingas kategorijas: pikseliais pagrįsta klasifikacija ir objektu pagrįsta klasifikacija.

Pikseliai yra pagrindiniai vaizdo vienetai, o pikselių analizė yra pagrindinis vaizdo klasifikavimo būdas. Tačiau klasifikavimo algoritmai gali naudoti tik spektrinę informaciją atskiruose pikseliuose, kad klasifikuotų vaizdą, arba tirti erdvinę informaciją (greta esančius pikselius) kartu su spektrine informacija. Pikseliais pagrįsti klasifikavimo metodai naudoja tik spektrinę informaciją (pikselio intensyvumą), o objektiniais klasifikavimo metodais atsižvelgiama ir į pikselių spektrinę informaciją, ir į erdvinę informaciją.

Klasifikavimui pikseliais naudojami įvairūs klasifikavimo būdai. Tai apima minimalų atstumą iki vidurkio, didžiausią tikimybę ir minimalų atstumą iki Mahalanobis. Šie metodai reikalauja, kad būtų žinomi klasių vidurkiai ir dispersijos, ir jie visi veikia tirdami „atstumą“ tarp klasės vidurkių ir tikslinių pikselių.

Pikseliais pagrįstus klasifikavimo metodus riboja tai, kad jie negali naudoti informacijos iš kitų netoliese esančių pikselių. Priešingai, objektais pagrįsti klasifikavimo metodai gali apimti kitus pikselius, todėl jie taip pat naudoja erdvinę informaciją elementams klasifikuoti. Atminkite, kad „objektas“ reiškia tik gretimas pikselių sritis, o ne tai, ar toje pikselių srityje yra tikslinis objektas, ar ne.

Išankstinis vaizdo duomenų apdorojimas objektų aptikimui

Naujausiose ir patikimiausiose vaizdų klasifikavimo sistemose visų pirma naudojamos objekto lygio klasifikavimo schemos, o šiems požiūriams vaizdo duomenys turi būti ruošiami konkrečiais būdais. Objektus / regionus reikia pasirinkti ir iš anksto apdoroti.

Prieš klasifikuojant vaizdą ir tame vaizde esančius objektus/regionus, kompiuteris turi interpretuoti tą vaizdą sudarančius duomenis. Vaizdai turi būti iš anksto apdoroti ir paruošti įvesti į klasifikavimo algoritmą, o tai daroma aptikus objektą. Tai yra svarbi duomenų paruošimo ir vaizdų paruošimo, kad būtų galima išmokyti mašininio mokymosi klasifikatorių, dalis.

Objekto aptikimas atliekamas naudojant įvairių metodų ir technikų. Pirmiausia tai, ar yra keli dominantys objektai, ar vienas dominantis objektas, turi įtakos išankstiniam vaizdo apdorojimui. Jei domina tik vienas objektas, vaizdas lokalizuojamas. Vaizdą sudarantys pikseliai turi skaitmenines reikšmes, kurias interpretuoja kompiuteris ir kurios naudojamos tinkamoms spalvoms ir atspalviams rodyti. Aplink dominantį objektą nupieštas objektas, vadinamas ribojančiu langeliu, kuris padeda kompiuteriui žinoti, kuri vaizdo dalis yra svarbi ir kokios pikselių reikšmės apibrėžia objektą. Jei vaizde yra keli dominantys objektai, taikomas metodas, vadinamas objekto aptikimu, kad šie ribojantys langeliai būtų pritaikyti visiems vaizdo objektams.

Nuotrauka: Adrianas Rosebrockas per Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)

Kitas išankstinio apdorojimo būdas yra vaizdo segmentavimas. Vaizdo segmentavimas veikia padalydamas visą vaizdą į segmentus pagal panašias savybes. Skirtingi vaizdo regionai turės panašias pikselių reikšmes, palyginti su kitomis vaizdo sritimis, todėl šie pikseliai yra sugrupuoti į vaizdo kaukes, atitinkančias atitinkamų vaizdo objektų formą ir ribas. Vaizdo segmentavimas padeda kompiuteriui atskirti vaizdo ypatybes, kurios padės klasifikuoti objektą, panašiai kaip apribojantys langeliai, tačiau jie pateikia daug tikslesnes pikselių lygio etiketes.

Užbaigus objekto aptikimą arba vaizdo segmentavimą, atitinkamiems regionams priskiriamos etiketės. Šios etiketės kartu su objektą sudarančių pikselių reikšmėmis įvedamos į mašininio mokymosi algoritmus, kurie išmoks su skirtingomis etiketėmis susietus modelius.

Mašininio mokymosi algoritmai

Kai duomenys yra paruošti ir paženklinti, jie įvedami į mašininio mokymosi algoritmą, kuris treniruojasi pagal duomenis. Apžvelgsime kai kuriuos dažniausiai pasitaikančius mašininio mokymosi tipus vaizdų klasifikavimo algoritmai toliau.

K-Artimiausi kaimynai

K-Arčiausiai kaimynai yra klasifikavimo algoritmas, kuris nagrinėja artimiausius mokymo pavyzdžius ir žiūri į jų etiketes, kad nustatytų labiausiai tikėtiną tam tikro bandymo pavyzdžio etiketę. Kalbant apie vaizdų klasifikavimą naudojant KNN, mokomųjų vaizdų funkcijų vektoriai ir etiketės yra saugomi, o tik funkcijų vektorius perduodamas į algoritmą testavimo metu. Tada mokymo ir testavimo funkcijų vektoriai lyginami vienas su kitu, siekiant panašumo.

KNN pagrįsti klasifikavimo algoritmai yra labai paprasti ir gana lengvai susidoroja su keliomis klasėmis. Tačiau KNN panašumą apskaičiuoja pagal visas savybes vienodai. Tai reiškia, kad jis gali būti klaidingai klasifikuojamas, kai pateikiamas kartu su vaizdais, kai vaizdo klasifikavimui svarbus tik funkcijų poaibis.

Palaikykite vektorines mašinas

Pagalbinės vektoriaus mašinos yra klasifikavimo metodas, pagal kurį taškai išdėstomi erdvėje, o tada tarp taškų nubrėžiamos skiriamosios linijos, suskirstant objektus į skirtingas klases, priklausomai nuo to, kurioje dalijimo plokštumos pusėje taškai patenka. Pagalbinės vektoriaus mašinos gali atlikti netiesinę klasifikaciją, naudodamos techniką, žinomą kaip branduolio triukas. Nors SVM klasifikatoriai dažnai yra labai tikslūs, esminis SVM klasifikatorių trūkumas yra tas, kad juos riboja dydis ir greitis, o greitis kenčia, kai dydis didėja.

Daugiasluoksniai perceptronai (neuroniniai tinklai)

Daugiasluoksniai perceptronai, dar vadinami neuroninių tinklų modeliais, yra mašininio mokymosi algoritmai, įkvėpti žmogaus smegenų. Daugiasluoksniai perceptronai susideda iš įvairių sluoksnių, kurie yra sujungti vienas su kitu, panašiai kaip žmogaus smegenų neuronai. Neuroniniai tinklai daro prielaidas, kaip įvesties ypatybės yra susijusios su duomenų klasėmis, ir šios prielaidos koreguojamos mokymo metu. Paprasti neuroninių tinklų modeliai, tokie kaip daugiasluoksnis perceptronas, gali išmokti netiesinių ryšių, todėl jie gali būti daug tikslesni nei kiti modeliai. Tačiau MLP modeliai turi tam tikrų svarbių problemų, tokių kaip neišgaubtų praradimo funkcijų buvimas.

Gilaus mokymosi algoritmai (CNN)

Nuotrauka: APhex34 per Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)

Pastaruoju metu dažniausiai naudojamas vaizdų klasifikavimo algoritmas yra konvoliucinis neuronų tinklas (CNN). CNN yra pritaikytos neuroninių tinklų versijos, kurios sujungia daugiasluoksnius neuroninius tinklus su specializuotais sluoksniais, galinčiais išskirti svarbiausias ir svarbias objekto klasifikacijai savybes. CNN gali automatiškai atrasti, generuoti ir išmokti vaizdų ypatybes. Tai labai sumažina poreikį rankiniu būdu žymėti ir segmentuoti vaizdus, ​​​​kad juos būtų galima paruošti mašininio mokymosi algoritmams. Jie taip pat turi pranašumą prieš MLP tinklus, nes gali susidoroti su neišgaubtomis praradimo funkcijomis.

Konvoliuciniai neuroniniai tinklai gavo savo pavadinimą dėl to, kad jie sukuria „konvoliucijas“. CNN veikia paėmę filtrą ir stumdami jį ant vaizdo. Tai galite įsivaizduoti kaip kraštovaizdžio dalių peržiūrą per kilnojamą langą, sutelkiant dėmesį tik į tas funkcijas, kurios vienu metu matomos pro langą. Filtre yra skaitinės reikšmės, kurios padauginamos iš pačių pikselių reikšmėmis. Rezultatas yra naujas kadras arba matrica, pilna skaičių, vaizduojančių pradinį vaizdą. Šis procesas kartojamas pasirinktam skaičiui filtrų, o tada kadrai sujungiami į naują vaizdą, kuris yra šiek tiek mažesnis ir ne toks sudėtingas nei pradinis vaizdas. Metodas, vadinamas telkimu, naudojamas norint pasirinkti tik svarbiausias vaizdo vertes, o tikslas yra, kad konvoliuciniai sluoksniai galų gale išskirtų tik svarbiausias vaizdo dalis, kurios padės neuronų tinklui atpažinti vaizde esančius objektus.

Konvoliuciniai neuroniniai tinklai susideda iš dviejų skirtingų dalių. Konvoliuciniai sluoksniai išskiria vaizdo ypatybes ir konvertuoja jas į formatą, kurį neuroninio tinklo sluoksniai gali interpretuoti ir iš kurio mokytis. Ankstyvieji konvoliuciniai sluoksniai yra atsakingi už pagrindinių vaizdo elementų, tokių kaip paprastos linijos ir ribos, ištraukimą. Viduriniai konvoliuciniai sluoksniai pradeda fiksuoti sudėtingesnes formas, pvz., paprastas kreives ir kampus. Vėlesni, gilesni konvoliuciniai sluoksniai išskiria aukšto lygio vaizdo ypatybes, kurios yra perduodamos į CNN neuroninio tinklo dalį ir kurias sužino klasifikatorius.

Tinklaraštininkas ir programuotojas, turintis specialybių Mašininis mokymasis ir Gilus mokymasis temomis. Danielis tikisi padėti kitiems panaudoti AI galią socialinei gerovei.