Podobne obrazy - jak je porównać

Mam ponad 1,3 miliona obrazów, które muszę porównać ze sobą i dodaje się kilkaset dziennie.

Moja firma robi zdjęcie i tworzy wersję, którą mogą wykorzystać nasi dostawcy.

Pliki są często bardzo podobne do siebie, na przykład dwie różne firmy mogą przesłać nam dwa różne obrazy, JPG i GIF, oba z logo McDonald, z miesiącami pomiędzy zgłoszeniami.

Dzieje się tak dlatego, że na koniec tworzymy dwa różne czasy tego samego logo, kiedy moglibyśmy po prostu skopiować / wkleić już utworzone logo lub przynajmniej zasugerować to jako możliwy punkt wyjścia dla artystów.

Szukałem algorytmów do utworzenia odcisku palca lub czegoś, co pozwoliłoby mi wykonać proste zapytanie, gdy nowy obraz zostanie przesłany, czas nie jest problemem, jeśli stworzenie odcisku zajmuje 1 sekundę, zajmie to 150 dni stwórz odciski palców, ale zaoszczędzisz sporo czasu, że możemy nawet uzyskać 3 lub 4 serwery.

Mówię płynnie w PHP, ale jeśli algorytm jest w pseudokodzie lub nawet w C, mogę go przeczytać i spróbować przetłumaczyć (chyba że korzysta z niektórych bibliotek specyficznych dla C)

Obecnie robię MD5 wszystkich obrazów, aby złapać te, które są dokładnie takie same, to pytanie pojawiło się, gdy myślałem o zmianie rozmiaru obrazu i uruchomieniu md5 na obrazie o zmienionym rozmiarze, aby złapać te, które były wcześniej zapisany w innym formacie i zmieniony rozmiar, ale nadal nie miałbym wystarczająco dobrego rozpoznania.

Jeśli o tym nie wspomnę, będę zadowolony z czegoś, co sugeruje możliwe „podobne” obrazy.

EDYTOWAĆ

Pamiętaj, że sprawdzenie musi odbywać się wiele razy na minutę, więc najlepszym rozwiązaniem jest takie, które daje mi pewne wartości na obraz, które mogę przechowywać i używać w przyszłości, aby porównać z obrazem, na który patrzę bez konieczności ponownie zeskanuj cały serwer.

Czytam kilka stron, które wspominają histogramy, lub zmieniają rozmiar obrazu do bardzo małego rozmiaru, usuwam ewentualne znaczniki, a następnie konwertuję je w skali szarości, wykonuję skrót tych plików i używam go do porównania. Jeśli mi się uda, opublikuję kod / odpowiedź tutaj

questionAnswers(4)

yourAnswerToTheQuestion