Wyszukiwarka podobnych obrazów

Witam, czy zastanawialiście się kiedyś jak działa wyszukiwarka podobnych obrazków np. TinyEye?

Moja teoria jest taka - wycinanych jest kilka fragmentów obrazka i robione są ich sumy kontrolne w powiększeniu i pomniejszeniu następnie wrzucony obraz użytkownika przy wyszukiwaniu jest także dzielony na części i tworzone są sumy kontrolne jednak wtedy są one porównywane z tymi w bazie danych.

Jaka jest wasza teoria?

– WebNuLL

Wszystko opiera się o “cyfrowy odcisk palca” generowany dla każdej wyszukiwanej grafiki. Bazuje na algorytmie wymyślonym przez Idée Inc. Więcej szczegółów: Tineye FAQ

A jak się generuje i jak działa taki odcisk?

– WebNuLL

Na temat tego konkretnego algorytmu niestety nie wiem nic, ale Twoja teoria z pierwszego posta wydaje się być całkiem sensowna. Czy jest stosowana w Tineye? Nie potrafię powiedzieć. Na stronie Tineye oraz Idée Inc. nie ma szczegółów dotyczących samego algorytmu, więc możemy tylko zgadywać jak działa. Możliwe, że google w swych czeluściach skrywa informację na ten temat, niestety nie potrafię jej teraz znaleźć.

Według tego, co było kiedyś opublikowane na DP, analizowane są między innym kształty i kolory występujące na obrazku.

Przeważnie bada się jakąś charakterystykę obrazu, np. histogram luminancji, rozkład barwny różnych elementów, charakterystykę obrazu w domenie częstotliwości, obraz opisany po jakiejś innej transformacie. Następnie szuka się bliskich obrazów (bliskich w sensie jakiejś funkcji). Stosunkowo często używa się transformacji falkowych. Np. do porównania tęczówek oka używałem kiedyś transformacji falkowej Haara (Haar wavelet) a następnie liczyłem odległość Hamminga między skanowanym okiem a informacjami w bazie (co sprowadza się do w sumie do iloczynu skalarnego na obrazach).