Uusimmat ideat kuvioiden tunnistamisesta. Yksinkertainen kotelo, yksiulotteinen erottelu

Yleisesti ottaen voidaan erottaa kolme hahmontunnistusmenetelmää: Luettelomenetelmä. Tässä tapauksessa tehdään vertailu tietokantaan, jossa jokaiselle objektityypille esitetään kaikki mahdolliset näytön muutokset. Esimerkiksi optisessa kuvantunnistuksessa voit käyttää menetelmää, jolla lajitellaan kohteen tyyppi eri kulmissa, mittakaavassa, siirtymissä, muodonmuutoksissa jne. Kirjaimia varten sinun on lajiteltava fontti, fontin ominaisuudet jne. äänikuvan tunnistuksen tapauksessa vertailu joihinkin tunnettuihin malleihin (esimerkiksi useiden ihmisten puhumaan sanaan).

Toinen lähestymistapa on kuvan ominaisuuksien syvempi analyysi. Optisen tunnistuksen tapauksessa tämä voi olla erilaisten geometristen ominaisuuksien määrittämistä. Tässä tapauksessa ääninäytteelle tehdään taajuus-, amplitudianalyysi jne.

Seuraava menetelmä on keinotekoisten hermoverkkojen (ANN) käyttö. Tämä menetelmä vaatii joko suuren määrän esimerkkejä tunnistustehtävästä koulutuksen aikana tai erityisen hermoverkkorakenteen, joka ottaa huomioon tämän tehtävän erityispiirteet. Sille on kuitenkin ominaista korkeampi tehokkuus ja tuottavuus.

4. Kuviontunnistuksen historia

Tarkastellaanpa lyhyesti hahmontunnistuksen matemaattista formalismia. Kuviontunnistuksen kohde kuvataan perusominaisuuksien (ominaisuuksien, ominaisuuksien) avulla. Tärkeimmät ominaisuudet voivat olla luonteeltaan erilaisia: ne voidaan ottaa todellisen viivatyypin järjestetystä joukosta tai diskreetistä joukosta (jolle voi kuitenkin olla myös rakenne). Tämä ymmärrys kohteesta on sopusoinnussa sekä hahmontunnistuksen käytännön sovellusten tarpeen että ymmärryksemme kanssa ihmisen esineen havaitsemismekanismista. Itse asiassa uskomme, että kun henkilö tarkkailee (mittaa) objektia, tietoa siitä tulee äärellisen määrän antureiden (analysoitujen kanavien) kautta aivoihin, ja jokainen anturi voidaan yhdistää kohteen vastaavaan ominaisuuteen. Kohteen mittauksiamme vastaavien ominaisuuksien lisäksi on olemassa myös valittu piirre tai piirreryhmä, jota kutsumme ominaisuuksien luokittelemiseksi ja niiden arvojen selvittäminen tietylle vektorille X on luonnollinen tehtävä. ja keinotekoiset tunnistusjärjestelmät toimivat.

On selvää, että näiden ominaisuuksien arvojen määrittämiseksi tarvitaan tietoa siitä, miten tunnetut ominaisuudet liittyvät luokitteluun. Tiedot tästä suhteesta annetaan ennakkotapausten muodossa, toisin sanoen joukko kuvauksia objekteista, joilla on tunnetut luokitteluominaisuuksien arvot. Ja tämän ennakkotietojen mukaan on rakennettava päätössääntö, joka määrittää kohteen mielivaltaisen kuvauksen sen luokitteluominaisuuksien arvosta.

Tämä ymmärrys hahmontunnistuksen ongelmasta on vakiintunut tieteessä viime vuosisadan 50-luvulta lähtien. Ja sitten huomattiin, että tällainen tuotanto ei ole ollenkaan uusi. Hyvin todistetut tilastollisen data-analyysin menetelmät, joita käytettiin aktiivisesti moniin käytännön tehtäviin, kuten esimerkiksi tekniseen diagnostiikkaan, kohtasivat tällaisen muotoilun ja olivat jo olemassa. Siksi hahmontunnistuksen ensimmäiset askeleet kulkivat tilastollisen lähestymistavan merkin alla, mikä saneli pääongelman.

Tilastollinen lähestymistapa perustuu ajatukseen, että objektien alkuavaruus on todennäköisyysavaruus ja objektien ominaisuudet (ominaisuudet) ovat sille annettuja satunnaismuuttujia. Sitten datatieteilijän tehtävänä oli esittää joistakin näkökohdista tilastollinen hypoteesi piirteiden jakautumisesta tai pikemminkin luokitteluominaisuuksien riippuvuudesta muusta. Tilastollinen hypoteesi oli pääsääntöisesti parametrisesti määritelty joukko piirteiden jakautumisfunktioita. Tyypillinen ja klassinen tilastollinen hypoteesi on hypoteesi tämän jakauman normaalista (tilastoissa tällaisia ​​hypoteeseja on monia erilaisia). Hypoteesin muotoilun jälkeen jäi testata tätä hypoteesia ennakkotietojen perusteella. Tämä tarkistus koostui jonkin jakauman valitsemisesta alun perin annetusta jakaumien joukosta (jakauman hypoteesiparametri) ja tämän valinnan luotettavuuden (luottamusvälin) arvioimisesta. Itse asiassa tämä jakaumafunktio oli vastaus ongelmaan, vain objektia ei luokiteltu yksiselitteisesti, vaan jollain todennäköisyydellä kuulua luokkiin. Tilastomiehet ovat myös kehittäneet asymptoottisen perustelun tällaisille menetelmille. Tällaiset perustelut tehtiin seuraavan kaavion mukaisesti: määritettiin tietty jakauman valinnan laadun funktionaali (luottamusväli) ja osoitettiin, että ennakkotapausten määrän lisääntyessä valintamme todennäköisyydellä 1 tuli oikeaksi. tämän funktionaalisen merkityksen (luottamusväli taipumus 0:aan). Tulevaisuudessa voidaan sanoa, että tilastollinen näkemys tunnistusongelmasta osoittautui erittäin hedelmälliseksi paitsi kehitettyjen algoritmien (jotka sisältävät klusteri- ja erotteluanalyysimenetelmiä, ei-parametrisen regression jne.), vaan myös myöhemmin johti Vapnikin. luoda syvällinen tilastollinen tunnustamisteoria.

Siitä huolimatta on vahva argumentti sen puolesta, että hahmontunnistuksen ongelmat eivät rajoitu tilastoihin. Jokaista tällaista ongelmaa voidaan periaatteessa tarkastella tilastollisesta näkökulmasta ja sen ratkaisun tuloksia voidaan tulkita tilastollisesti. Tätä varten tarvitsee vain olettaa, että ongelman objektien tila on todennäköisyys. Mutta instrumentalismin näkökulmasta tietyn tunnistusmenetelmän tilastollisen tulkinnan onnistumisen kriteeri voi olla vain tämän menetelmän perustelujen olemassaolo tilaston kielellä matematiikan haarana. Perustelulla tarkoitetaan tässä ongelmalle sellaisten perusvaatimusten kehittämistä, jotka takaavat tämän menetelmän onnistumisen. Tällä hetkellä suurimmalle osalle tunnistusmenetelmistä, mukaan lukien ne, jotka syntyivät suoraan tilastollisen lähestymistavan puitteissa, ei kuitenkaan ole löydetty tällaisia ​​tyydyttäviä perusteita. Lisäksi tällä hetkellä yleisimmin käytetyillä tilastollisilla algoritmeilla, kuten Fisherin lineaarinen diskriminantti, Parzen-ikkuna, EM-algoritmi, lähimmät naapurit, bayesilaisista uskomusverkostoista puhumattakaan, on vahvasti korostunut heuristinen luonne ja niillä voi olla erilaisia ​​tulkintoja kuin tilastollisista. Ja lopuksi kaikkeen edellä olevaan on lisättävä, että tunnistusmenetelmien asymptoottisen käyttäytymisen lisäksi, joka on tilastojen pääkysymys, tunnistuskäytäntö herättää kysymyksiä menetelmien laskennallisesta ja rakenteellisesta monimutkaisuudesta, jotka menevät paljon pidemmälle kuin pelkkä todennäköisyysteoria.

Kaiken kaikkiaan, toisin kuin tilastotieteilijät pyrkivät pitämään hahmontunnistusta tilaston osana, tunnistamisen käytäntöön ja ideologiaan tulivat täysin erilaiset ideat. Yksi niistä johtui visuaalisen kuviontunnistuksen alan tutkimuksesta ja perustuu seuraavaan analogiaan.

Kuten jo todettiin, arkielämässä ihmiset ratkaisevat jatkuvasti (usein tiedostamatta) erilaisten tilanteiden, kuulo- ja visuaalikuvien tunnistamiseen liittyviä ongelmia. Tällainen kyky tietokoneille on parhaimmillaan tulevaisuuden kysymys. Tästä jotkut hahmontunnistuksen pioneerit päättelivät, että näiden ongelmien ratkaisun tietokoneella tulisi yleisesti ottaen simuloida ihmisen ajattelun prosesseja. Tunnetuin yritys lähestyä ongelmaa tältä puolelta oli kuuluisa F. Rosenblattin tutkimus perceptroneista.

1950-luvun puoliväliin mennessä näytti siltä, ​​​​että neurofysiologit olivat ymmärtäneet aivojen fyysiset periaatteet (kirjassa "The New Mind of the King" kuuluisa brittiläinen teoreettinen fyysikko R. Penrose kyseenalaistaa mielenkiintoisella tavalla aivojen hermoverkkomallin ja perustelee kvanttimekaanisten vaikutusten olennainen rooli sen toiminnassa; vaikka tämä malli kuitenkin kyseenalaistettiin alusta alkaen. Näiden löytöjen perusteella F. Rosenblatt kehitti mallin visuaalisten kuvioiden tunnistamisen oppimiseen, jota hän kutsui perceptroniksi. Rosenblatin perceptroni on seuraava toiminto (kuva 1):

Kuva 1. Perceptronin kaavio

Perceptroni vastaanottaa sisääntulossa kohdevektorin, joka Rosenblattin teoksissa oli binäärivektori, joka osoitti, mikä näytön pikseleistä on kuvan peittämä ja mikä ei. Lisäksi jokainen merkeistä syötetään neuronin sisäänmenoon, jonka toiminta on yksinkertainen kertominen tietyllä neuronin painolla. Tulokset syötetään viimeiseen neuroniin, joka laskee ne yhteen ja vertaa kokonaismäärää tiettyyn kynnykseen. Vertailun tuloksista riippuen syöttöobjekti X tunnistetaan tarpeelliseksi tai ei. Tämän jälkeen kuviontunnistuksen oppimisen tehtävänä oli valita neuronien painot ja kynnysarvo niin, että perceptroni antaisi oikeat vastaukset ennakkotapauksiin. Rosenblatt uskoi, että tuloksena oleva funktio olisi hyvä tunnistamaan halutun visuaalisen kuvan, vaikka syöttöobjekti ei olisi ennakkotapausten joukossa. Bionicin näkökulmasta hän keksi myös menetelmän painojen ja kynnyksen valitsemiseksi, joihin emme viivyttele. Sanotaan vaikka, että hänen lähestymistapansa onnistui useissa tunnistusongelmissa ja sai aikaan kokonaisen tutkimuksen alueen hermoverkkoihin perustuvista oppimisalgoritmeista, joista perceptron on erikoistapaus.

Lisäksi keksittiin erilaisia ​​perceptronin yleistyksiä, hermosolujen toiminta oli monimutkaista: nyt neuronit eivät voineet vain kertoa syötettyjä lukuja tai lisätä niitä ja verrata tulosta kynnysarvoihin, vaan soveltaa niihin monimutkaisempia toimintoja. Kuvassa 2 on yksi näistä neuronikomplikaatioista:

Riisi. 2 Neuroverkon kaavio.

Lisäksi hermoverkon topologia voisi olla paljon monimutkaisempi kuin Rosenblattin näkemä, esimerkiksi tämä:

Riisi. 3. Rosenblatin hermoverkon kaavio.

Komplikaatiot johtivat säädettävien parametrien määrän kasvuun harjoittelun aikana, mutta samalla lisäsivät kykyä virittää hyvin monimutkaisiin kuvioihin. Tämän alan tutkimusta tehdään nyt kahdella läheisesti toisiinsa liittyvällä alueella - tutkitaan sekä erilaisia ​​verkkotopologioita että erilaisia ​​viritysmenetelmiä.

Neuroverkot eivät ole tällä hetkellä vain työkalu hahmontunnistusongelmien ratkaisemiseen, vaan niitä on käytetty assosiatiivisen muistin ja kuvanpakkauksen tutkimuksessa. Vaikka tämä tutkimuslinja on vahvasti päällekkäinen hahmontunnistuksen ongelmien kanssa, se on erillinen kybernetiikan osa. Tämän hetken tunnistajalle hermoverkot ovat vain hyvin spesifinen, parametrisesti määritelty joukko kartoitusjoukkoa, jolla ei tässä mielessä ole merkittäviä etuja moniin muihin vastaaviin oppimismalleihin verrattuna, jotka luetellaan lyhyesti alla.

Tämän arvioinnin yhteydessä hermoverkkojen roolista asianmukaisessa tunnistamisessa (eli ei bioniikassa, jolle ne ovat nyt ensiarvoisen tärkeitä), haluaisin huomauttaa seuraavaa: hermoverkot ovat matemaattisesti erittäin monimutkainen kohde. analyysit, niiden oikealla käytöllä, antavat meille mahdollisuuden löytää tiedoista hyvin ei-triviaaleja lakeja. Niiden analysointivaikeus selittyy yleensä niiden monimutkaisella rakenteella ja sen seurauksena käytännöllisesti katsoen ehtymättömillä mahdollisuuksilla yleistää monenlaisia ​​säännönmukaisuuksia. Mutta nämä edut, kuten usein tapahtuu, ovat mahdollisten virheiden lähde, mahdollisuus uudelleenkoulutukseen. Kuten myöhemmin käsitellään, tällainen kaksijakoinen näkemys minkä tahansa oppimismallin näkymistä on yksi koneoppimisen periaatteista.

Toinen suosittu tunnistussuunta on loogiset säännöt ja päätöspuut. Verrattuna edellä mainittuihin tunnistusmenetelmiin, nämä menetelmät käyttävät aktiivisimmin ajatusta ilmaista tietomme aihealueesta luultavasti luonnollisimpien (tietoisella tasolla) rakenteiden - loogisten sääntöjen - muodossa. Alkuperäinen looginen sääntö tarkoittaa lausetta, kuten "jos luokittelemattomat kohteet ovat suhteessa X, niin luokitellut ovat suhteessa Y". Esimerkki tällaisesta lääketieteellisen diagnostiikan säännöstä on seuraava: jos potilaan ikä on yli 60 vuotta ja hänellä on aiemmin ollut sydänkohtaus, älä suorita leikkausta - negatiivisen tuloksen riski on suuri.

Loogisten sääntöjen etsimiseen tiedoista tarvitaan 2 asiaa: säännön ”informatiivisuuden” mitta ja sääntöavaruuden määrittäminen. Ja sääntöjen löytämisen tehtävä sen jälkeen muuttuu täydelliseksi tai osittaiseksi luetteloimiseksi sääntöjen avaruudessa, jotta niistä löydetään informatiivisin. Tietosisällön määrittelyä voidaan esitellä monella tapaa, emmekä jää tässä piipahtamaan, koska tämä on myös eräs mallin parametri. Hakuavaruus määritellään tavallisella tavalla.

Kun riittävän informatiiviset säännöt on löydetty, alkaa sääntöjen ”kokoamisen” vaihe lopulliseen luokittelijaan. Käsittelemättä perusteellisesti täällä esiin tulevia ongelmia (ja niitä on huomattava määrä), luettelemme 2 päämenetelmää "kokoonpanoon". Ensimmäinen tyyppi on lineaarinen luettelo. Toinen tyyppi on painotettu äänestys, jolloin kullekin säännölle on annettu tietty painoarvo ja luokitin viittaa objektiin luokkaan, jolle suurin määrä sääntöjä äänesti.

Itse asiassa säännönrakennusvaihe ja "kokoonpano"-vaihe suoritetaan yhdessä, ja painotettua äänestystä tai listaa laadittaessa sääntöhakua kutsutaan yhä uudelleen ja uudelleen, jotta voidaan varmistaa parempi yhteensopivuus tietojen ja tietojen välillä. malli.

Iterointimenetelmä. Tässä menetelmässä vertailu tehdään tiettyyn tietokantaan, jossa jokaiselle objektille on eri vaihtoehtoja näytön muokkaamiseen. Esimerkiksi optisessa kuvantunnistuksessa voit käyttää iterointimenetelmää eri kulmissa tai mittakaavassa, siirtymissä, muodonmuutoksissa jne. Kirjainten kohdalla voit iteroida fontin tai sen ominaisuuksien yli. Äänikuvantunnistuksen tapauksessa on olemassa vertailu joihinkin tunnettuihin malleihin (monen ihmisen puhuma sana). Lisäksi suoritetaan syvällisempi analyysi kuvan ominaisuuksista. Optisen tunnistuksen tapauksessa tämä voi olla geometristen ominaisuuksien määritelmä. Tässä tapauksessa ääninäytteelle tehdään taajuus- ja amplitudianalyysi.

Seuraava menetelmä on keinotekoisten neuroverkkojen käyttö(INS). Se vaatii joko valtavan määrän esimerkkejä tunnistustehtävästä tai erityisen hermoverkkorakenteen, joka ottaa huomioon tämän tehtävän erityispiirteet. Mutta kuitenkin, tälle menetelmälle on ominaista korkea tehokkuus ja tuottavuus.

Menetelmät, jotka perustuvat piirrearvojen jakautumistiheyksien arvioihin. Lainattu klassisesta tilastollisten päätösten teoriasta, jossa tutkimuskohteita pidetään moniulotteisen satunnaismuuttujan realisaatioina, jotka ovat jakautuneet piirreavaruuteen jonkin lain mukaan. Ne perustuvat Bayesin päätöksentekokaavioon, joka vetoaa tiettyyn luokkaan kuuluvien objektien alkutodennäköisyyksiin ja ehdollisiin piirteiden jakautumistiheyksiin.

Piirrearvojen jakautumistiheyksien estimointiin perustuva menetelmäryhmä liittyy suoraan erotteluanalyysin menetelmiin. Bayesin lähestymistapa päätöksentekoon on yksi kehittyneimmistä parametrisistä menetelmistä nykytilastoissa, jolle jakauman lain (normaalilaki) analyyttinen ilmaus katsotaan tunnetuksi ja vain pieni määrä parametreja (keskiarvovektorit ja kovarianssimatriisit) ) on arvioitava. Päävaikeudeksi tämän menetelmän soveltamisessa pidetään tarvetta muistaa koko opetusnäyte tiheysestimaattien laskemiseksi ja suuri herkkyys harjoitusnäytteelle.

Päätösfunktioiden luokkaa koskeviin oletuksiin perustuvat menetelmät. Tässä ryhmässä päätösfunktion tyyppi katsotaan tiedoksi ja sen laatufunktio on annettu. Tämän funktion perusteella optimaalinen approksimaatio päätösfunktiolle löydetään opetussekvenssistä. Päätössäännön laatufunktio liittyy yleensä virheeseen. Menetelmän tärkein etu on tunnistusongelman matemaattisen muotoilun selkeys. Mahdollisuutta poimia uutta tietoa kohteen luonteesta, erityisesti tietoa attribuuttien vuorovaikutusmekanismeista, rajoittaa tässä pohjimmiltaan tietty vuorovaikutuksen rakenne, joka on kiinnitetty valittuun päätöstoimintojen muotoon.

Prototyyppien vertailumenetelmä. Tämä on käytännössä helpoin laajennusmenetelmä. Sitä sovelletaan, kun tunnistettavat luokat esitetään kompakteina geometrisina luokkina. Sitten geometrisen ryhmittelyn keskipiste (tai keskustaa lähinnä oleva kohde) valitaan prototyyppipisteeksi.

Määrittämättömän kohteen luokittelemiseksi löydetään sitä lähinnä oleva prototyyppi ja kohde kuuluu samaan luokkaan kuin se. Ilmeisesti tällä menetelmällä ei muodostu yleistettyjä kuvia. Mittana voidaan käyttää erilaisia ​​etäisyyksiä.

K lähimpien naapurien menetelmä. Menetelmä piilee siinä, että kun luokitellaan tuntematon objekti, löydetään tietty määrä (k) geometrisesti lähintä piirreavaruutta muista lähimpien naapureiden, joiden luokkaan kuuluminen on jo tiedossa. Päätös tuntemattoman kohteen osoittamisesta tehdään analysoimalla tietoja sen lähimmistä naapureista. Tarve vähentää harjoitusnäytteen objektien määrää (diagnostiset ennakkotapaukset) on tämän menetelmän haitta, koska tämä vähentää harjoitusnäytteen edustavuutta.

Sen perusteella, että eri tunnistusalgoritmit käyttäytyvät eri tavalla samassa otoksessa, herää kysymys synteettisestä päätössäännöstä, joka käyttäisi kaikkien algoritmien vahvuuksia. Tätä varten on olemassa synteettinen menetelmä tai päätössääntöjoukot, jotka yhdistävät kunkin menetelmän myönteisimmät puolet.

Tunnistusmenetelmien katsauksen päätteeksi esitämme edellä olevan olemuksen yhteenvetotaulukossa, johon on lisätty joitain muita käytännössä käytettyjä menetelmiä.

Taulukko 1. Tunnistusmenetelmien luokitustaulukko, niiden käyttöalueiden ja rajoitusten vertailu

Tunnistusmenetelmien luokittelu

Sovellusalue

Rajoitukset (haitat)

Intensiiviset tunnistusmenetelmät

Tiheysarvioihin perustuvat menetelmät

Ongelmia tunnetussa jakaumassa (normaali), tarve kerätä suuria tilastoja

Tarve luetella koko koulutussarja tunnistuksen aikana, suuri herkkyys koulutussarjan epäedustavuudelle ja esineille

Oletuksiin perustuvat menetelmät

Luokkien tulee olla hyvin erotettavissa

Päätösfunktion muoto on tiedettävä etukäteen. Uutta tietoa ominaisuuksien välisistä korrelaatioista ei voida ottaa huomioon

Boolen menetelmät

Pienen mittasuhteen ongelmat

Kun valitset loogisia päätössääntöjä, täydellinen luettelointi on välttämätön. Korkea työvoimaintensiteetti

Kielelliset menetelmät

Tehtävä määrittää kielioppi tietylle lausejoukolle (objektien kuvauksille) on vaikea formalisoida. Ratkaisemattomia teoreettisia ongelmia

Laajennetut tunnistusmenetelmät

Prototyyppien vertailumenetelmä

Ominaisuustilan pienen ulottuvuuden ongelmat

Luokittelutulosten suuri riippuvuus metriikasta. Tuntematon optimaalinen mittari

k lähimmän naapurin menetelmä

Luokittelutulosten suuri riippuvuus metriikasta. Koulutusnäytteen täydellinen luettelointi tunnistuksen aikana. Laskennallinen monimutkaisuus

Arvosanan laskentaalgoritmit (ABO)

Pienikokoiset ongelmat luokkien ja ominaisuuksien lukumäärän suhteen

Luokittelutulosten riippuvuus metriikasta. Koulutusnäytteen täydellinen luettelointi tunnistuksen aikana. Menetelmän tekninen monimutkaisuus

Collective Decision Regulations (CRC) on synteettinen menetelmä.

Pienikokoiset ongelmat luokkien ja ominaisuuksien lukumäärän suhteen

Menetelmän erittäin tekninen monimutkaisuus, ratkaisemattomien teoreettisten ongelmien määrä sekä tiettyjen menetelmien toimivalta-alueiden määrittelyssä että itse menetelmissä

Su 29. maaliskuuta 2015

Tällä hetkellä on monia tehtäviä, joissa joudutaan tekemään jokin päätös riippuen kohteen läsnäolosta kuvassa tai luokitella se. Kykyä "tunnistaa" pidetään biologisten olentojen pääominaisuutena, kun taas tietokonejärjestelmillä ei ole tätä ominaisuutta täysin.

Harkitse luokitusmallin yleisiä elementtejä.

Luokka- joukko objekteja, joilla on yhteisiä ominaisuuksia. Saman luokan kohteille oletetaan "samankaltaisuuden" olemassaoloa. Tunnistustehtävälle voidaan määrittää mielivaltainen määrä luokkia, enemmän kuin 1. Luokkien lukumäärä on merkitty numerolla S. Jokaisella luokalla on oma tunnisteluokkansa.

Luokitus- prosessi, jossa objekteille annetaan luokkatunnisteet näiden objektien ominaisuuksien jonkin kuvauksen mukaan. Luokitin on laite, joka vastaanottaa syötteenä joukon objektin ominaisuuksia ja tuottaa tuloksena luokkatunnisteen.

Todentaminen- prosessi, jossa objektiinstanssi sovitetaan yhteen objektimalliin tai luokkakuvaukseen.

Alla tapa ymmärrämme sen alueen nimen attribuuttiavaruudessa, jossa monet aineellisen maailman esineet tai ilmiöt näkyvät. merkki- kvantitatiivinen kuvaus tutkittavan kohteen tai ilmiön tietystä ominaisuudesta.

ominaisuus tilaa tämä on tietylle tunnistustehtävälle määritetty N-ulotteinen avaruus, jossa N on kiinteä määrä mitattuja piirteitä mille tahansa kohteelle. Tunnistusongelman kohdetta vastaava vektori piirreavaruudesta x on N-ulotteinen vektori, jonka komponentit (x_1,x_2,…,x_N) ovat annetun kohteen piirrearvoja.

Toisin sanoen kuvion tunnistus voidaan määritellä alkutietojen osoittamiseksi tiettyyn luokkaan poimimalla olennaiset ominaisuudet tai ominaisuudet, jotka luonnehtivat tätä dataa epäolennaisten yksityiskohtien yleisestä massasta.

Esimerkkejä luokitteluongelmista ovat:

  • hahmon tunnistus;
  • puheentunnistus;
  • lääketieteellisen diagnoosin määrittäminen;
  • Sääennuste;
  • kasvojen tunnistus
  • asiakirjojen luokittelu jne.

Useimmiten lähdemateriaalina on kamerasta saatu kuva. Tehtävä voidaan muotoilla siten, että saadaan piirrevektorit kullekin tarkastellun kuvan luokalle. Prosessia voidaan pitää koodausprosessina, jossa kullekin ominaisuudelle annetaan arvo kunkin luokan ominaisuusavaruudesta.

Jos otetaan huomioon 2 esineluokkaa: aikuiset ja lapset. Ominaisuuksina voit valita pituuden ja painon. Kuten kuvasta seuraa, nämä kaksi luokkaa muodostavat kaksi ei-leikkautuvaa joukkoa, mikä voidaan selittää valituilla ominaisuuksilla. Aina ei kuitenkaan ole mahdollista valita oikeita mitattuja parametreja luokkien ominaisuuksiksi. Valitut parametrit eivät esimerkiksi sovellu jalkapalloilijoiden ja koripalloilijoiden ei-päällekkäisten luokkien luomiseen.

Toinen tunnistuksen tehtävä on valita alkuperäisistä kuvista ominaispiirteitä tai ominaisuuksia. Tämä tehtävä voidaan liittää esikäsittelyyn. Jos tarkastelemme puheentunnistuksen tehtävää, voimme erottaa sellaiset ominaisuudet kuin vokaalit ja konsonantit. Attribuutin on oltava tietylle luokalle tyypillinen ominaisuus, samalla kun se on yhteinen tälle luokalle. Merkit, jotka kuvaavat eroja - luokkien väliset merkit. Kaikille luokille yhteiset ominaisuudet eivät sisällä hyödyllistä tietoa, eikä niitä pidetä tunnistusongelman ominaisuuksina. Ominaisuuksien valinta on yksi tärkeimmistä tunnistusjärjestelmän rakentamiseen liittyvistä tehtävistä.

Kun ominaisuudet on määritetty, on tarpeen määrittää optimaalinen luokittelun päätösmenettely. Harkitse kuviontunnistusjärjestelmää, joka on suunniteltu tunnistamaan eri M-luokkia, jotka merkitään m_1,m_2,…,m 3. Tällöin voidaan olettaa, että kuva-avaruus koostuu M alueesta, joista jokainen sisältää yhden luokan kuvaa vastaavat pisteet. Tällöin tunnistusongelmaa voidaan pitää M luokkaa erottavien rajojen rakentamisena hyväksyttyjen mittausvektoreiden perusteella.

Kuvan esikäsittelyn, piirteiden poiminnan ja optimaalisen ratkaisun ja luokituksen saamisen ongelman ratkaisemiseen liittyy yleensä tarve arvioida useita parametreja. Tämä johtaa parametrien estimointiongelmaan. Lisäksi on selvää, että piirteiden poiminnassa voidaan käyttää lisätietoa luokkien luonteen perusteella.

Kohteiden vertailu voidaan tehdä niiden esityksen perusteella mittausvektoreiden muodossa. Mittaustiedot on kätevä esittää reaalilukuina. Sitten kahden kohteen piirrevektorien samankaltaisuus voidaan kuvata euklidisen etäisyyden avulla.

missä d on piirrevektorin ulottuvuus.

Kuviontunnistusmenetelmiä on kolme ryhmää:

  • Esimerkkivertailu. Tämä ryhmä sisältää luokituksen lähimmän keskiarvon mukaan, luokituksen etäisyyden mukaan lähimpään naapuriin. Otosvertailuryhmään voidaan sisällyttää myös rakenteellisia tunnistusmenetelmiä.
  • Tilastolliset menetelmät. Kuten nimestä voi päätellä, tilastolliset menetelmät käyttävät jonkin verran tilastotietoa tunnistusongelman ratkaisemisessa. Menetelmä määrittää objektin kuulumisen tiettyyn luokkaan todennäköisyyden perusteella.Joissakin tapauksissa tämä rajoittuu siihen, että määritetään jälkikäteen todennäköisyys, että objekti kuuluu tiettyyn luokkaan, edellyttäen, että objektin ominaisuudet ovat ottaneet asianmukaisen arvot. Esimerkki on Bayesin päätössääntömenetelmä.
  • Neuroverkot. Erillinen tunnistusmenetelmien luokka. Erottuva piirre muista on kyky oppia.

Luokittelu lähimmän keskiarvon mukaan

Klassisessa hahmontunnistuksen lähestymistavassa, jossa luokittelua varten tuntematon objekti esitetään elementaaristen piirteiden vektorina. Ominaisuuspohjaista tunnistusjärjestelmää voidaan kehittää monin eri tavoin. Nämä vektorit voivat olla järjestelmän tiedossa etukäteen harjoittelun tuloksena tai ennustettavissa reaaliajassa joidenkin mallien perusteella.

Yksinkertainen luokittelualgoritmi koostuu luokkaviitetietojen ryhmittelystä käyttämällä luokan odotusvektoria (keskiarvo).

missä x(i,j) on luokan i j:s referenssipiirre, n_j on luokan i referenssivektoreiden lukumäärä.

Silloin tuntematon objekti kuuluu luokkaan i, jos se on paljon lähempänä luokan i odotusvektoria kuin muiden luokkien odotusvektoreita. Tämä menetelmä sopii ongelmiin, joissa kunkin luokan pisteet sijaitsevat tiiviisti ja kaukana muiden luokkien pisteistä.

Vaikeuksia syntyy, jos luokilla on hieman monimutkaisempi rakenne, kuten kuvassa. Tässä tapauksessa luokka 2 on jaettu kahteen ei-päällekkäiseen osaan, jotka kuvataan huonosti yhdellä keskiarvolla. Myös luokka 3 on liian pitkänomainen, 3. luokan näytteet suurilla x_2-koordinaattiarvoilla ovat lähempänä 1. luokan keskiarvoa kuin 3. luokkaa.

Kuvattu ongelma voidaan joissain tapauksissa ratkaista muuttamalla etäisyyden laskentaa.

Otamme huomioon luokka-arvojen "sironta" ominaisuuden - σ_i jokaisessa koordinaattisuunnassa i. Keskihajonta on yhtä suuri kuin varianssin neliöjuuri. Skaalattu euklidinen etäisyys vektorin x ja odotusvektorin x_c välillä on

Tämä etäisyyskaava vähentää luokitusvirheiden määrää, mutta todellisuudessa useimpia ongelmia ei voida esittää näin yksinkertaisella luokalla.

Luokittelu etäisyyden mukaan lähimpään naapuriin

Toinen lähestymistapa luokitteluun on määrittää tuntematon piirrevektori x luokkaan, jolle tämä vektori on lähinnä erillistä näytettä. Tätä sääntöä kutsutaan lähimmän naapurin säännöksi. Lähin naapuriluokitus voi olla tehokkaampi, vaikka luokat ovat monimutkaisia ​​tai kun luokat menevät päällekkäin.

Tämä lähestymistapa ei vaadi oletuksia piirrevektorien jakautumamalleista avaruudessa. Algoritmi käyttää vain tietoa tunnetuista vertailunäytteistä. Ratkaisumenetelmä perustuu etäisyyden x laskemiseen jokaiseen tietokannan näytteeseen ja minimietäisyyden löytämiseen. Tämän lähestymistavan edut ovat ilmeiset:

  • milloin tahansa voit lisätä uusia näytteitä tietokantaan;
  • puu- ja ruudukkotietorakenteet vähentävät laskettujen etäisyyksien määrää.

Lisäksi ratkaisu on parempi, jos etsit tietokannasta ei yhtä lähin naapuria, vaan k. Sitten, kun k > 1, se tarjoaa parhaan näytteen vektoreiden jakautumisesta d-ulotteisessa avaruudessa. K-arvon tehokas käyttö riippuu kuitenkin siitä, onko niitä riittävästi jokaisella tilan alueella. Jos luokkia on enemmän kuin kaksi, oikean päätöksen tekeminen on vaikeampaa.

Kirjallisuus

  • M. Castrillon, . O. Deniz, . D. Hernández ja J. Lorenzo, "Kasvojen ja kasvojen piirteiden tunnisinten vertailu Viola-Jonesin yleiseen esineentunnistuskehykseen", International Journal of Computer Vision, nro 22, s. 481-494, 2011.
  • Y.-Q. Wang, "An Analysis of Viola-Jones Face Detection Algorithm", IPOL Journal, 2013.
  • L. Shapiro ja D. Stockman, Computer vision, Binom. Knowledge Lab, 2006.
  • Z. N. G., Tunnistusmenetelmät ja niiden soveltaminen, Neuvostoliiton radio, 1972.
  • J. Tu, R. Gonzalez, Mathematical Principles of Pattern Recognition, Moskova: “Mir” Moskova, 1974.
  • Khan, H. Abdullah ja M. Shamian Bin Zainal, "Tehokas silmien ja suun ilmaisualgoritmi käyttäen alttoviulujen ja ihon värin pikselien tunnistusta" International Journal of Engineering and Applied Sciences, no. 3 nro 4, 2013.
  • V. Gaede ja O. Gunther, "Multidimensional Access Methods", ACM Computing Surveys, pp. 170-231, 1998.
  • opetusohjelma

Pitkään halusin kirjoittaa yleisen artikkelin, joka sisältää kuvantunnistuksen perusteet, eräänlaisen oppaan perusmenetelmistä, kertoen milloin niitä käyttää, mitä tehtäviä ne ratkaisevat, mitä voidaan tehdä illalla polvella ja mikä on parempi olla ajattelematta ilman 20-vuotiaiden ihmisten tiimiä.

Olen kirjoittanut joitain artikkeleita optisesta tunnistuksesta jo pitkään, joten pari kertaa kuukaudessa useat ihmiset kirjoittavat minulle kysymyksiä tästä aiheesta. Joskus tulee tunne, että elät heidän kanssaan eri maailmoissa. Yhtäältä ymmärrät, että henkilö on todennäköisimmin ammattilainen aiheeseen liittyvässä, mutta tietää hyvin vähän optisista tunnistusmenetelmistä. Ja ärsyttävintä on se, että hän yrittää soveltaa menetelmää läheiseltä tietoalueelta, joka on looginen, mutta ei täysin toimi Image Recognitionissa, mutta ei ymmärrä tätä ja loukkaantuu hyvin, jos hän alkaa kertoa hänelle jotain hyvin perusasioita. Ja kun otetaan huomioon, että perusasioista kertominen vie paljon aikaa, jota usein ei ole, se on vielä surullisempaa.

Tämä artikkeli on suunniteltu siten, että henkilö, joka ei ole koskaan käsitellyt kuvantunnistusmenetelmiä, voi 10-15 minuutissa luoda päähänsä aihetta vastaavan tietyn peruskuvan maailmasta ja ymmärtää, mihin suuntaan hänen pitäisi kaivaa. Monet tässä kuvatuista menetelmistä soveltuvat tutka- ja äänenkäsittelyyn.
Aloitan parilla periaatteella, joita alamme aina kertoa potentiaaliselle asiakkaalle tai henkilölle, joka haluaa aloittaa optisen tunnistuksen:

  • Kun ratkaiset ongelman, lähde aina yksinkertaisimmasta. On paljon helpompaa ripustaa oranssi etiketti henkilöön kuin seurata henkilöä korostamalla häntä peräkkäin. On paljon helpompaa ottaa kamera korkeammalla resoluutiolla kuin kehittää superresoluutioinen algoritmi.
  • Tiukka ongelmanmääritys optisissa tunnistusmenetelmissä on suuruusluokkaa tärkeämpi kuin järjestelmäohjelmointiongelmissa: yksi ylimääräinen sana TK:ssa voi lisätä 50 % työstä.
  • Tunnistusongelmissa ei ole universaaleja ratkaisuja. Et voi tehdä algoritmia, joka yksinkertaisesti "tunnistaa kaikki merkinnät". Kyltti kadulla ja tekstiarkki ovat pohjimmiltaan erilaisia ​​esineitä. Yleinen algoritmi on luultavasti mahdollista tehdä (hyvä esimerkki Googlesta), mutta se vaatii paljon työtä suurelta tiimiltä ja koostuu kymmenistä erilaisista aliohjelmista.
  • OpenCV on raamattu, jolla on monia menetelmiä ja jolla voit ratkaista 50% melkein minkä tahansa ongelman määrästä, mutta OpenCV on vain pieni osa siitä, mitä voidaan tehdä todellisuudessa. Eräässä tutkimuksessa päätelmiin kirjoitettiin: "Ongelmaa ei ratkaista OpenCV-menetelmillä, joten se on ratkaisematon." Yritä välttää tätä, älä ole laiska ja arvioi nykyinen tehtävä raittiisti joka kerta tyhjästä käyttämättä OpenCV-malleja.
On erittäin vaikeaa antaa yleispäteviä neuvoja tai kertoa, kuinka luoda jonkinlainen rakenne, jonka ympärille voidaan rakentaa ratkaisu mielivaltaisiin tietokonenäköongelmiin. Tämän artikkelin tarkoituksena on jäsentää, mitä voidaan käyttää. Yritän jakaa olemassa olevat menetelmät kolmeen ryhmään. Ensimmäinen ryhmä on esisuodatus ja kuvan valmistelu. Toinen ryhmä on suodatustulosten looginen käsittely. Kolmas ryhmä ovat loogiseen käsittelyyn perustuvat päätöksentekoalgoritmit. Ryhmien väliset rajat ovat hyvin mielivaltaisia. Ongelman ratkaisemiseksi ei ole läheskään aina tarpeen soveltaa menetelmiä kaikista ryhmistä, joskus kaksi riittää ja joskus jopa yksi.

Tässä esitetty menetelmien luettelo ei ole täydellinen. Ehdotan lisäämään kommentteihin kriittisiä menetelmiä, joita en ole kirjoittanut, ja antavat jokaiselle 2-3 saatesanaa.

Osa 1. Suodatus

Laitoin tähän ryhmään menetelmiä, joiden avulla voit valita kuvista kiinnostavia alueita analysoimatta niitä. Useimmat näistä menetelmistä soveltavat jonkinlaista yhtenäistä muunnosta kuvan kaikkiin pisteisiin. Suodatustasolla kuvaa ei analysoida, mutta suodatettuja pisteitä voidaan pitää alueina, joilla on erityispiirteitä.
Kynnysbinarisointi, histogrammin alueen valinta
Yksinkertaisin muunnos on kuvan binarisointi kynnyksen mukaan. RGB- ja harmaasävykuvissa kynnys on väriarvo. On ihanteellisia ongelmia, joissa tällainen muunnos riittää. Oletetaan, että haluat valita automaattisesti kohteet valkoisella paperiarkilla:




Sen kynnyksen valinta, jolla binarisointi tapahtuu, määrää suurelta osin itse binarisointiprosessin. Tässä tapauksessa kuva binaaristettiin keskimääräisellä värillä. Tyypillisesti binarisointi tehdään algoritmilla, joka valitsee mukautuvasti kynnyksen. Tällainen algoritmi voi olla odotuksen tai tilan valinta. Ja voit valita histogrammin suurimman piikin.

Binarisointi voi antaa erittäin mielenkiintoisia tuloksia histogrammien kanssa työskenneltäessä, mukaan lukien tilanne, jos otamme kuvan ei RGB-muodossa, vaan HSV-muodossa. Esimerkiksi segmentoi kiinnostavat värit. Tällä periaatteella on mahdollista rakentaa sekä etiketin tunnistin että ihmisihon ilmaisin.
Klassinen suodatus: Fourier, LPF, HPF
Klassisia suodatusmenetelmiä tutka- ja signaalinkäsittelystä voidaan soveltaa menestyksekkäästi erilaisiin kuvioiden tunnistustehtäviin. Perinteinen menetelmä tutkassa, jota ei juuri koskaan käytetä kuvissa sen puhtaassa muodossa, on Fourier-muunnos (tarkemmin FFT). Yksi harvoista poikkeuksista, joissa käytetään 1D Fourier-muunnosta, on kuvan pakkaus. Kuva-analyysiin yksiulotteinen muunnos ei yleensä riitä, vaan täytyy käyttää paljon resursseja vaativampaa kaksiulotteista muunnosa.

Harvat ihmiset todella laskevat sen, yleensä on paljon nopeampaa ja helpompaa käyttää kiinnostavan alueen konvoluutiota valmiilla korkeille (HPF) tai matalille (LPF) taajuuksille teroitetulla suodattimella. Tällainen menetelmä ei tietenkään salli spektrianalyysiä, mutta tietyssä videonkäsittelytehtävässä ei yleensä tarvita analyysiä, vaan tulosta.


Yksinkertaisimpia esimerkkejä suodattimista, jotka korostavat matalia taajuuksia (Gauss-suodatin) ja korkeita taajuuksia (Gabor-suodatin).
Jokaiselle kuvapisteelle valitaan ikkuna ja kerrotaan samankokoisella suodattimella. Tällaisen konvoluution tulos on pisteen uusi arvo. LPF:ää ja HPF:ää toteutettaessa saadaan tämän tyyppisiä kuvia:



Aallot
Mutta entä jos käytämme jotain mielivaltaista ominaisfunktiota signaalin konvoluutioon? Sitten sen nimi on "Wavelet Transform". Tämä aallokkojen määritelmä ei ole oikea, mutta perinteisesti aallokkoanalyysi on monissa ryhmissä mielivaltaisen kuvion etsimistä kuvasta käyttämällä konvoluutiota tämän kuvion mallilla. Aallokeanalyysissä käytetään klassisia funktioita. Näitä ovat Haar-aalto, Morlet-aalto, meksikolainen hattu-aalto ja niin edelleen. Haar primitiivit, joista oli useita aiempia artikkeleitani ( , ), viittaavat tällaisiin funktioihin kaksiulotteisessa avaruudessa.


Yllä on 4 esimerkkiä klassisista aalloista. 3D Haar aallokko, 2D Meyer aallokko, Mexican Hat aallokko, Daubechies aallokko. Hyvä esimerkki aallokkojen laajennetun tulkinnan käyttämisestä on silmän kimalteen löytämisen ongelma, jolle kimalle itsessään on aallokko:

Klassisia aallokkeja käytetään yleensä , tai niiden luokitteluun (kuvataan alla).
Korrelaatio
Tällaisen omalta osaltani vapaan aallokeiden tulkinnan jälkeen on syytä mainita niiden taustalla oleva todellinen korrelaatio. Kuvien suodatuksessa tämä on välttämätön työkalu. Klassinen sovellus on videovirtakorrelaatio offsettien tai optisten virtojen löytämiseksi. Yksinkertaisin siirtoilmaisin on myös tietyssä mielessä erokorrelaattori. Siellä missä kuvat eivät korreloi, siellä oli liikettä.

Toimintojen suodatus
Mielenkiintoinen suodatinluokka on suodatusfunktiot. Nämä ovat puhtaasti matemaattisia suodattimia, joiden avulla voit havaita yksinkertaisen matemaattisen funktion kuvassa (viiva, paraabeli, ympyrä). Rakennetaan kumulatiivinen kuva, johon alkuperäisen kuvan jokaiselle pisteelle piirretään joukko funktioita, jotka tuottavat sen. Klassisin muunnos on Hough-muunnos viivoille. Tässä muunnoksessa kullekin pisteelle (x;y) piirretään rivin y=ax+b pisteiden joukko (a;b), joille yhtälö on tosi. Hanki kauniita kuvia:


(ensimmäinen plus sille, joka ensimmäisenä löytää kuvasta saaliin ja tällaisen määritelmän ja selittää sen, toinen plus sille, joka sanoo ensimmäisenä mitä tässä näytetään)
Hough-muunnoksen avulla voit löytää mitkä tahansa parametroitavat funktiot. Esimerkiksi piirit. On muokattu muunnos, jonka avulla voit etsiä mitä tahansa . Tämä muutos pitää matemaatikoista hirveästi. Mutta kun käsitellään kuvia, se ei valitettavasti aina toimi. Erittäin hidas nopeus, erittäin korkea herkkyys binarisoinnin laadulle. Ihannetilanteissakin halusin tulla toimeen muilla tavoilla.
Linjojen Hough-muunnoksen vastine on Radon-muunnos. Se lasketaan FFT:n avulla, joka antaa suorituskyvyn lisäyksen tilanteessa, jossa pisteitä on paljon. Lisäksi sitä voidaan soveltaa ei-binarisoituun kuvaan.
Ääriviivojen suodatus
Erillinen suodatinluokka on reuna- ja ääriviivasuodatus. Polut ovat erittäin hyödyllisiä, kun haluamme siirtyä kuvan käsittelystä kuvan objektien käsittelyyn. Kun esine on melko monimutkainen, mutta hyvin erottuva, usein ainoa tapa työskennellä sen kanssa on valita sen ääriviivat. On olemassa useita algoritmeja, jotka ratkaisevat ääriviivasuodatuksen ongelman:

Yleisimmin käytetty on Kenny, joka toimii hyvin ja jonka toteutus on OpenCV:ssä (Sobel on myös siellä, mutta hän etsii ääriviivoja huonommin).



Muut suodattimet
Yllä on suodattimet, joiden muutokset auttavat ratkaisemaan 80-90% tehtävistä. Mutta niiden lisäksi paikallisissa tehtävissä käytetään harvinaisempia suodattimia. Tällaisia ​​suodattimia on kymmeniä, en luettele niitä kaikkia. Mielenkiintoisia ovat iteratiiviset suodattimet (esim. ), sekä harja- ja kaarevuusmuunnokset, jotka ovat klassisen aallokesuodatuksen ja radonmuunnoskentän analyysin seos. Beamlet-muunnos toimii kauniisti aallokemuunnoksen ja loogisen analyysin rajalla, jolloin voit korostaa ääriviivoja:

Mutta nämä muutokset ovat hyvin erityisiä ja räätälöityjä harvinaisiin tehtäviin.

Osa 2. Suodatustulosten looginen käsittely

Suodatus antaa joukon tietoja, jotka soveltuvat käsittelyyn. Mutta usein et voi vain ottaa ja käyttää näitä tietoja käsittelemättä niitä. Tässä osiossa on useita klassisia menetelmiä, joiden avulla voit siirtyä kuvasta objektien ominaisuuksiin tai itse objekteihin.
Morfologia
Siirtymä suodatuksesta logiikkaan on mielestäni matemaattisen morfologian menetelmät ( , ). Itse asiassa nämä ovat yksinkertaisimpia binäärikuvien lisäämis- ja erotusoperaatioita. Näiden menetelmien avulla voit poistaa kohinaa binäärikuvasta lisäämällä tai vähentämällä käytettävissä olevia elementtejä. Matemaattisen morfologian perusteella on olemassa ääriviivaalgoritmeja, mutta yleensä ne käyttävät jonkinlaisia ​​hybridialgoritmeja tai -algoritmeja yhdessä.
ääriviiva-analyysi
Suodatusta käsittelevässä osiossa on jo mainittu algoritmit rajojen saamiseksi. Tuloksena olevat rajat muunnetaan yksinkertaisesti ääriviivoiksi. Canny-algoritmille tämä tapahtuu automaattisesti, muissa algoritmeissa tarvitaan lisäbinarisointia. Voit saada ääriviivan binäärialgoritmille esimerkiksi kovakuoriaisalgoritmilla.
Ääriviiva on esineen ainutlaatuinen ominaisuus. Usein tämän avulla voit tunnistaa kohteen ääriviivaa pitkin. On olemassa tehokas matemaattinen laite, jonka avulla voit tehdä tämän. Laitetta kutsutaan ääriviivaanalyysiksi ( , ).

Rehellisesti sanottuna en ole koskaan onnistunut soveltamaan ääriviivaanalyysiä todellisiin ongelmiin. Liian ihanteelliset olosuhteet vaaditaan. Joko rajaa ei ole tai melua on liikaa. Mutta jos sinun on tunnistettava jotain ihanteellisissa olosuhteissa, ääriviivaanalyysi on loistava vaihtoehto. Se toimii erittäin nopeasti, kaunista matematiikkaa ja ymmärrettävää logiikkaa.
Yksittäisiä pisteitä
Avainpisteet ovat kohteen ainutlaatuisia ominaisuuksia, jotka mahdollistavat objektin liittämisen itseensä tai vastaaviin objektiluokkiin. On olemassa kymmeniä tapoja valita tällaisia ​​pisteitä. Jotkut menetelmät korostavat erityispisteitä viereisissä kehyksissä, jotkut pitkän ajan kuluttua ja valaistuksen muuttuessa, jotkut mahdollistavat erikoispisteiden löytämisen, jotka pysyvät sellaisina myös kohteen pyöriessä. Aloitetaan menetelmillä, joiden avulla voimme löytää erityisiä pisteitä, jotka eivät ole niin vakaita, mutta jotka lasketaan nopeasti, ja sitten mennään yhä monimutkaisemmiksi:
Ensiluokkainen. Yksittäisiä pisteitä, jotka ovat vakaita sekunteja. Tällaisia ​​pisteitä käytetään ohjaamaan kohdetta vierekkäisten videoruutujen välillä tai lähentämään kuvia vierekkäisistä kameroista. Näitä pisteitä ovat kuvan paikalliset maksimit, kuvan kulmat (paras ilmaisimista, ehkä Haris-detektori), pisteet, joissa dispersiomaksimit saavutetaan, tietyt gradientit jne.
Toinen luokka. Yksittäiset pisteet, jotka ovat vakaita vaihdettaessa valaistusta ja kohteen pieniä liikkeitä. Tällaisia ​​pisteitä käytetään ensisijaisesti koulutukseen ja objektityyppien myöhempään luokitukseen. Esimerkiksi jalankulkijoiden luokitin tai kasvojen luokitin on juuri tällaisille pisteille rakennetun järjestelmän tulos. Jotkut aiemmin mainituista aalloista voivat olla perustana tällaisille piseille. Esimerkiksi Haar primitiivit, heijastushaku, muiden erityispiirteiden haku. Näihin pisteisiin kuuluvat pisteet, jotka on löydetty suuntagradienttien histogrammien (HOG) menetelmällä.
Kolmas luokka. vakaat pisteet. Tiedän vain kaksi menetelmää, jotka antavat täydellisen vakauden, ja niiden muunnelmista. Tämä ja. Niiden avulla voit löytää tärkeimmät kohdat, vaikka käännät kuvaa. Tällaisten pisteiden laskeminen kestää kauemmin kuin muilla menetelmillä, mutta melko rajoitetun ajan. Valitettavasti nämä menetelmät ovat patentoituja. Vaikka Venäjällä on mahdotonta patentoida algoritmeja, joten käytä sitä kotimarkkinoilla.

Osa 3. Koulutus

Tarinan kolmas osa on omistettu menetelmille, jotka eivät toimi suoraan kuvan kanssa, mutta joiden avulla voit tehdä päätöksiä. Pohjimmiltaan nämä ovat erilaisia ​​​​koneoppimisen ja päätöksenteon menetelmiä. Äskettäin Yandyks lähetti Habrille tästä aiheesta, siellä on erittäin hyvä valikoima. Tässä se on tekstiversiona. Jos haluat tutkia aihetta vakavasti, suosittelen, että tutustut niihin. Tässä yritän tunnistaa useita perusmenetelmiä, joita käytetään erityisesti hahmontunnistuksessa.
80 %:ssa tilanteista oppimisen ydin tunnistusongelmassa on seuraava:
On testinäyte, jossa on useita objektiluokkia. Olkoon se henkilön läsnäolo / poissaolo valokuvassa. Jokaiselle kuvalle on joukko ominaisuuksia, jotka on korostettu jollakin ominaisuudella, olipa kyseessä sitten Haar, HOG, SURF tai jokin aalloke. Oppimisalgoritmin on rakennettava sellainen malli, jonka mukaan se pystyy analysoimaan uutta kuvaa ja päättämään, mikä kohteista on kuvassa.
Miten se on tehty? Jokainen testikuva on piste ominaisuusavaruudessa. Sen koordinaatit ovat kuvan kunkin ominaisuuden paino. Olkoot merkkimme: "Silmien läsnäolo", "Nenän läsnäolo", "Kahden käden läsnäolo", "Korvien läsnäolo" jne. Jaamme kaikki nämä merkit käytössämme olevilla ilmaisimilla, joita harjoitetaan ihmisen kaltaisille ruumiinosille. Tällaisessa tilassa olevalle henkilölle oikea piste on . Apinalle piste hevoselle. Luokittelija on koulutettu esimerkkiesimerkkien perusteella. Mutta kaikissa kuvissa ei näkynyt käsiä, toisilla ei ollut silmiä, ja kolmannessa apinalla oli ihmisen nenä luokitteluvirheen vuoksi. Koulutettava ihmisluokitin jakaa ominaisuustilan automaattisesti sanomalla: jos ensimmäinen piirre on alueella 0,5 Pohjimmiltaan luokittelijan tarkoitus on piirtää piirreavaruuteen luokittelukohteille ominaisia ​​alueita. Tältä peräkkäinen approksimaatio yhdelle luokittelijalle (AdaBoost) kaksiulotteisessa avaruudessa näyttää tältä:


Luokittajia on monia. Jokainen niistä toimii paremmin joissakin tehtävissään. Tehtävä valita luokittelu tiettyä tehtävää varten on suurelta osin taidetta. Tässä on hyviä kuvia aiheesta.
Yksinkertainen kotelo, yksiulotteinen erottelu
Otetaan esimerkki yksinkertaisimmasta luokittelutapauksesta, jossa piirreavaruus on yksiulotteinen ja meidän on erotettava 2 luokkaa. Tilanne esiintyy useammin kuin miltä se saattaa näyttää: esimerkiksi silloin, kun sinun on erotettava kaksi signaalia tai verrattava kuviota näytteeseen. Oletetaan, että meillä on koulutusnäyte. Tässä tapauksessa saadaan kuva, jossa X-akseli on samankaltaisuuden mitta ja Y-akseli on tapahtumien lukumäärä tällaisella mitalla. Kun haluttu objekti on samankaltainen kuin itse, saadaan vasen Gaussin. Kun ei ole samanlainen - oikein. Arvo X=0,4 erottaa näytteet siten, että virheellinen päätös minimoi mahdollisen väärän päätöksen tekemisen. Tällaisen erottimen etsiminen on luokittelun tehtävä.


Pieni huomautus. Kriteeri, joka minimoi virheen, ei aina ole optimaalinen. Seuraava kaavio on kaavio todellisesta iiriksen tunnistusjärjestelmästä. Tällaiselle järjestelmälle kriteeri valitaan siten, että minimoi ulkopuolisen väärän pääsyn todennäköisyys kohteeseen. Tällaista todennäköisyyttä kutsutaan "ensimmäisen tyyppiseksi virheeksi", "väärän hälytyksen todennäköisyydeksi", "vääräksi positiiviseksi". Englanninkielisessä kirjallisuudessa "False Access Rate".
) AdaBusta on yksi yleisimmistä luokittelijoista. Esimerkiksi Haar-kaskadi on rakennettu sen päälle. Yleensä käytetään, kun tarvitaan binääriluokitusta, mutta mikään ei estä opettamasta useampia luokkia.
SVM ( , , , ) Yksi tehokkaimmista luokittelijoista monilla toteutuksilla. Periaatteessa kohtaamissani oppimistehtävissä se toimi samalla tavalla kuin adabusta. Sitä pidetään melko nopeana, mutta sen harjoittelu on Adabustaa vaikeampaa ja vaatii oikean ytimen valintaa.

On myös hermoverkkoja ja regressiota. Mutta jotta ne voidaan luokitella lyhyesti ja osoittaa, kuinka ne eroavat toisistaan, tarvitaan tätä paljon suurempi artikkeli.
________________________________________________
Toivon, että pystyin antamaan nopean yleiskatsauksen käytetyistä menetelmistä sukeltamatta matematiikkaan ja kuvaukseen. Ehkä tämä auttaa jotakuta. Vaikka artikkeli on tietysti epätäydellinen, eikä siinä ole sanaakaan stereokuvien kanssa työskentelystä, LSM:stä Kalman-suodattimella tai mukautuvasta Bayesilaisesta lähestymistavasta.
Jos pidät artikkelista, yritän tehdä toisen osan valikoimalla esimerkkejä olemassa olevien ImageRecognition-ongelmien ratkaisemisesta.

Ja lopuksi

Mitä lukea?
1) Pidin kerran todella B. Yanan kirjasta "Digital Image Processing", joka on kirjoitettu yksinkertaisesti ja selkeästi, mutta samalla melkein kaikki matematiikka on annettu. Hyvä tutustua olemassa oleviin menetelmiin.
2) Genren klassikko on R Gonzalez, R. Woods "Digital Image Processing". Jostain syystä se oli minulle vaikeampi kuin ensimmäinen. Paljon vähemmän matematiikkaa, mutta enemmän menetelmiä ja kuvia.
3) "Kuvankäsittely ja analyysi konenäköongelmissa" - kirjoitettu Fysiikan tekniikan laitoksella opetetun kurssin perusteella. Paljon menetelmiä ja niiden yksityiskohtainen kuvaus. Mutta mielestäni kirjassa on kaksi suurta miinusta: kirja keskittyy vahvasti mukana tulevaan ohjelmistopakettiin, kirjassa liian usein yksinkertaisen menetelmän kuvaus muuttuu matemaattiseksi viidakoksi, josta on vaikea irrottaa. menetelmän rakennekaavio. Mutta kirjoittajat ovat tehneet kätevän sivuston, jossa melkein kaikki sisältö esitetään - wiki.technicalvision.ru Lisää tunnisteita