RANSAC ( lyhenne RANdom Sample Consensus ) on vakaa menetelmä mallin parametrien arvioimiseksi satunnaisotoksiin perustuen . RANSAC-järjestelmä kestää kohinaista syöttödataa. Menetelmää ehdottivat vuonna 1981 Fischler ja Bolles.
Usein on tietojenkäsittelytehtävä, jossa on tarpeen määrittää mallin parametrit, joiden on täytettävä lähtötiedot. Kaikki lähtötiedot voidaan jakaa kahteen tyyppiin: mallia tyydyttävät hyvät kohdat, "ei-outliers" tai "inlayers" ( englanniksi inlier ) ja väärät pisteet, kohinat ovat satunnaisia sisällytyksiä alkuperäiseen dataan, "outliers" tai "outlayers" ( englanti ) .outlier
Tarkastellaan yksinkertaisinta esimerkkiä algoritmin toiminnasta: suoran viivan kirjoittaminen 2D-pisteeseen . Olettaen, että tiedoissa on poikkeavuuksia, parametrien estimoiminen tavallisella tavalla, kuten pienimmän neliösumman , johtaa virheellisen mallin laskemiseen, koska malli rakennetaan kaikista pisteistä. RANSAC-menetelmä ottaa lähtökohtana vain kaksi suoran rakentamiseen tarvittavaa pistettä ja rakentaa niiden avulla mallin, jonka jälkeen se tarkistaa estimointifunktiolla tietyllä kynnysarvolla kuinka monta pistettä vastaa mallia.
Tietojoukko, johon rivi sovitetaan. päästöt ovat runsaat.
RANSAC-algoritmin ehdottama suora. poikkeamat eivät vaikuta tulokseen.
Algoritmin syöte on:
Koko algoritmi koostuu yhdestä silmukasta, jonka jokainen iteraatio voidaan jakaa loogisesti kahteen vaiheeseen.
Silmukan loppuun jää viimeinen paras hypoteesi.
Menetelmän tulokset ovat:
Parametrin arvo tulee määrittää tiedoista riippuen erityisvaatimuksista riippuen, useimmiten vasta kokeellisten arvioiden jälkeen. Iteraatioiden lukumäärä voidaan määrittää teoreettisella estimoinnilla ennen kuin algoritmi suoritetaan. Olkoon todennäköisyys, että RANSAC-algoritmi jossain iteraatiossa , valitessaan mallin perustana olevat pisteet, ottaa alkuperäisestä datajoukosta vain inlayers laskelmia varten. Tällaisessa tilanteessa näistä pisteistä rakennettu malli on todennäköisesti melko tarkka. Tämän perusteella voimme käyttää todennäköisyyttä p arvioimaan algoritmin tarkkuutta. Olkoon todennäköisyys valita yksi kerros pisteiden kokonaismäärästä, eli missä on kerrosten lukumäärä ja pisteiden kokonaismäärä. Useimmissa tapauksissa inlayer-osien prosenttiosuutta ei tiedetä ennen algoritmin käynnistymistä, mutta lähes aina voidaan tehdä jokin karkea arvio. Todennäköisyys sille, että lähtötiedoista valitaan itsenäisesti n lisäkerrosta, on tässä tapauksessa ja todennäköisyys, että ainakin yksi piste joukosta on outlier eli että rakennetaan väärä malli, on . Todennäköisyys, että iteraatioiden aikana algoritmi ei koskaan valitse inlayeria, on , tämä tilanne tarkoittaa, että tarkkaa mallia ei rakenneta, ja tämän tapahtuman todennäköisyys on . Tällä tavalla
Ilmoitetaan tarvittavien iteraatioiden lukumäärä k
RANSAC-algoritmin etuna on sen kyky antaa luotettava arvio mallin parametreista, eli kyky estimoida mallin parametrit suurella tarkkuudella, vaikka alkuperäisessä aineistossa olisi huomattava määrä poikkeavuuksia.
Yksi RNSAC-menetelmän haitoista on se, että malliparametrien laskemiseen tarvittavalle ajalle ei ole ylärajaa. Jos käytämme aikarajana iteraatioiden maksimimäärää, tuloksena oleva ratkaisu ei välttämättä ole optimaalinen, ja on myös hyvin pieni todennäköisyys, että mikään malli ei vastaa alkuperäistä dataa. Tarkka malli voidaan määrittää tietyllä todennäköisyydellä, joka kasvaa mitä enemmän iteraatioita käytetään. Toinen RANSAC-menetelmän haittapuoli on, että on tarpeen asettaa tietty kynnysarvo algoritmin suorittamiseksi. Lopuksi RANSAC-menetelmä voi määrittää vain yhden mallin tietylle tietojoukolle. Kuten missä tahansa yhden mallin lähestymistavassa, tässä on ongelma: kun syöttötiedoissa on kaksi (tai useampia) mallia, RANSAC ei välttämättä löydä yhtään mallia.
RANSAC - algoritmia käytetään usein tietokonenäössä , esimerkiksi ratkaisemaan kuvansovitusongelma ja perusmatriisiestimaatio kameran sijaintiparametrien määrittämiseksi.