@obscurity: Ciekawego tricku raczej nie znajdziesz. I jest pytanie co to są takie same zdjęcia? Jak masz zdjęcie w proporcjach 4:3 i przytniesz je do kwadratu zmieniając proporcje, to będzie takie samo? Jak robisz 3 zdjęcia i na jednym z nich ktoś ma zamknięte oczy, a na drugim otwarte to jak je zinterpretować? Moim zdaniem czegoś imperatywnego o przyzwoitej jakości nie da się zrobić. Pozostaje ML i algorytmy z dziedziny unsupervised learning.
- Na początek definiujesz sobie zbiór cech kluczowych zdjęcia na przykład: proporcje, kolor dominujący, kolory dominujące regionów kontrast itp.
- Liczysz sobie te te cechy dla każdego zdjęcia i zapisujesz w postaci wektora reprezentującego data point.
- Odległość pomiędzy poszczególnymi data points, jest tym mniejsza im bardziej są one do siebie podobne.
- szukasz takich punktów centralnych, dla którego suma odległości do wszystkich punktów będzie najmniejsza, ta suma + jakaś rosnąca f(c), gdzie c to liczba punktów centralnych to twoja funkcja kosztu.
- Zakładając, że funkcja będzie miała postać
sum(a*D^2) + (b*c^2)
szukasz takich parametrów a, b, żeby jej wynik dla całości był jak najniższy, a wciąż dawał oczekiwany rezultat.
Plusem problemu z obrazkami jest to, że bardzo łatwo można wygenerować zbiór danych do uczenia - wrzucasz 10k obrazków, dla każdego z nich generujesz losową liczbę duplikatów w innej jakości, z lekkim przesunięciem itd. Ponieważ kontrolujesz tworzenie zbioru uczącego dokładnie wiesz jaki powinien być wynik.