Samankaltaisuus - kuujakke/arkisto GitHub Wiki

Sovellus arvio kuvien samankaltaisuutta käyttäen pHash kirjastoa sekä Hammingin ja Levenshteinin etäisyysalgoritmeja.

pHash

Kirjastoa käytetään pHashion -gemin kautta, jonka avulla kuvalle tuotetaan hajautusarvo myöhempää vertailua varten. Perceptual hash algoritmi poikkeaa normaalista md5 tai sha1 hajautusfunktioista siinä että esimerkiksi pHash tuottaa samankaltaisen hajautusarvon samankaltaisille sisällöille.

Hamming ja Levenshtein

Sovellus vertaa käsittelyssä olevan kuvan pHash hajautusarvoa kaikkien tietokannassa olevien kuvien hajautusarvoon käyttäen Hammingin ja Levenshteinin etäisyysalgoritmeja. Laskenta tapahtuu tietokannassa, joka soveltuu tähän tarkoitukseen hyvin nopeutensa takia. Tietokantaan tarvitsee asentaa pg_similarity laajennus, joka tuo PostgreSQL tietokantaan mahdollisuuden käyttää Hamming ja Levenshtein -funktioita.