EKSPLORACJA ZASOBÓW INTERNETU LABORATORIUM VIII WYSZUKIWANIE OBRAZÓW 1. Motywacja Strony internetowe zawierają 70% multimediów Tradycyjne wyszukiwarki wspierają wyszukiwanie tekstu Kolekcje obrazów: Dwie największe: Corbis (Gates) oraz gettyimages (Getty) zawierają setki milionów obrazów astronomia - satelity NASA oraz ESA zbierają ponad petabajt danych dziennie czas, typ (x-ray, ultrafiolet, gamma, itd.), wydarzenia specjalne (konstelacje, zaćmienia) telewizja (program, rok, tytuł, osoba, słowa kluczowe, sekwencje przygotowane na specjalne wydarzenia) media (obrazy często nie mają odpowiednich adnotacji; trudno znaleźć obraz wyrażający określone uczucie, odnoszący się do konkretnego tematu) medycyna (x-ray, CRT, MRI) Dane bez adnotacji nie mogą być znalezione Tworzenie adnotacji jest bardzo kosztowne i zazwyczaj wymaga wiedzy eksperckiej 2. Różne sposoby wyszukiwania Wyszukiwanie przez przeglądanie (Yahoo): proste struktury wysokie koszty utrzymania, złożone zapytania cat and dog, black horse Wyszukiwanie przez słowa kluczowe: typowe podejście w większości współczesnych wyszukiwarek prosta implementacja istniejące rozwiązania wszystkie obrazy muszą posiadać adnotacje; nawet jeśli one istnieją, to nie odnoszą się do atrybutów, np. kolor konia
Wyszukiwanie przez podobieństwo: zapytanie zawiera obiekty referencyjne automatyczna analiza zawartości (tanie) Zapytanie przez przykład: zwykle łatwo znaleźć pierwsze dopasowanie trudno uzyskać wystarczająco dobre obiekty referencyjne system znajduje obiekty podobne do referencyjnych pod względem cech, które nie są dla nich istotne Zapytanie przez szkic: zapytanie rysowane/śpiewane/mówione przez użytkownika duża elastyczność, możliwość zdefiniowania dokładnego zapytania nie każdy jest dobry w rysowaniu/śpiewaniu Przestrzeń cech zależy od specyfiki przetwarzanych obiektów
3. Funkcja odległości (metryka) Jeśli składowe cech nie są skorelowane, najczęściej wykorzystuje się normę L p, p=1, 2,... Jeśli istnieje korelacja między cechami (np. czerwony-pomarańczowy dla histogramu kolorów), zależności między nimi powinny być wzięte pod uwagę i skompensowane z wykorzystaniem fukcji kwadratowej: Wybór funkcji ma wpływ na wyniki wyszukiwania: metryki nie powinny być stosowane bezpośrednio na wektorach cech opisujących obrazy. rozkład ich wartości może się bardzo różnić, np. składowa 1 w przedziale [0,1], składowa 2 w przedziale [100, 200] bez normalizacji wkład składowej 1 w funkcję odległości byłby pomijalny poprawka: rozkład składowych we wszystkich wymiarach powinien być podobny; można to uzyskać z wykorzystaniem rozkładu Gaussa (odejmujemy średnią, dzielimy przez odchylenie standardowe): Stosując to np. do normy L 1 uzyskujemy następującą metrykę:
4. Miara podobieństwa σ(q,pi ) w przedziale [0,1] σ(q,pi )=0 oznacza brak podobieństwa między q oraz pi σ(q,pi )=1 oznacza identyczność między q oraz pi Duży dystans oznacza niskie podobieństwo, mały dystans wysokie podobieństwo. 5. Proste cechy obrazów Kolor jest najważniejszy atrybutem wizualnym dla rozpoznawania obiektów. Obrazy zwykle składają się z małej liczby regionów o podobnych kolorach Tekstura (kierunkowość obrazu) opisuje powierzchnie obiektów oraz atrybuty fizyczne; tekstury są istotne dla rozpoznania obiektów naturalnych i sztucznych te drugie często posiadają linie poziome i pionowe Kształty ważne ze względu na rozpoznanie obiektów, ale zmieniają się znacząco w przypadku różnych perspektyw ich waga w badaniu podobieństwa jest niewielka
6. Przestrzenie barw RGB R red (czerwony), G green (zielony) i B blue (niebieski). Model wynikający z właściwości odbiorczych ludzkiego oka, w którym wrażenie widzenia dowolnej barwy można wywołać przez zmieszanie w ustalonych proporcjach trzech wiązek światła o barwie czerwonej, zielonej i niebieskiej Lab wynik badań nad postrzeganiem przez ludzkie oko różnicy między barwami barwy znajdujące się w przestrzeni Lab w jednakowej odległości E od siebie będą postrzegane jako jednakowo różniące się od siebie L jasność (luminacja miara natężenia oświetlenia padającego w danym kierunku) 0 to czarny, 100 to biały a barwa od zielonej (ujemne wartości) do magenty (dodatnie) b barwa od niebieskiej (ujemne wartości) do żółtej (dodatnie) LCH (HCL) nie kartezjański układ współrzędnych, ale kula L = Lightness (jasność) czarny 0, w środku 50, biały 100; C = Chroma (saturation, chromatyczność, nasycenie) 0 kolor nienasycone, 100 nasycony (czysty) h = hue (barwa) 0 (czerwony), 90 (żółty), 180 (zielony), 270 (niebieski)
7. Histogramy kolorów częstotliwość występowania kolorów referencyjnych wybór przestrzeni (RGB, Lab, LCH), kolorów referencyjnych (dużo dobra szczegółowość opisu, mało szybkie wyszukiwanie), definicja miary podobieństwa zwykle 64, 128 lub 256 kolorów; dla 64 (i=0,,63) kolorów w RGB wybór kolejne barwy: R i = 85 * int(i/16) G i = 85 * (int(i/4) MOD 4) B i = 85 * (i MOD 4) dla każdego piksela, kolor referencyjny jest określany jako najbliższy kolorowi rzeczywistemu liczbę wystąpień każdego koloru zazwyczaj normalizuje się przez liczbę pikseli 8. Momenty kolorów w przypadku kolorów miara podobieństwa powinna wziąć pod uwagę korelację między kolorami momenty kolorów momenty statystyczne dla różnych wymiarów kolorów (luminance, hue, saturation, R, G, B, itd.) dla przykładu dla modelu Lab dla P pikseli - 9-składowy wektor cech
9. Momenty tekstur Tekstura opisuje strukturę powierzchni i jej granularność Filtr Gabora filtry dla zbioru częstotliwości oraz orientacji typowo wykorzystuje się tylko jasność (luminance), by odwołać się do neutralnych własności koloru wykorzystanie szybkiej transformaty Fouriera metody statystyczne zliczają liczbę oraz intensywność pikseli, które pozostają po tej operacji
Macierz energii częstotliwości im jaśniejszy piksel, tym wyższa energia odpowiedniej częstotliwości centrum obrazuje niskie częstotliwości, boki wysokie wysokie częstotliwości występują jeśli obraz zawiera ostre przejścia między jasnym i ciemnym pozycja w przestrzeni częstotliwości określa orientację częstotliwości filtr przepuszczający niskie częstotliwości sprawia, że kontrast jest mniej ostry filtr przepuszczający wysokie częstotliwości jest wykorzystywany do wykrywania krawędzi
10. Złożone zapytania wiele obiektów referencyjnych (all images similar to image B and image C) różne cechy (all images that are similar to image A according to color and shape, all images similar to image D that contain the terms dolphin and whale ) Zapytania z wieloma (K) obiektami referencyjnymi Funkcje agregujące: Zapytania z wieloma (J) cechami Funkcje agregujące jak powyżej.
11. Zadanie do realizacji w grupach [8] Zadanie polega na zaimplementowaniu systemu wyszukiwania obrazów. W katalogu lab8 znajduje się baza obrazów (images.zip). Każdy z nich przetworzono w celu uzyskania następujących cech (każda z nich znajduje się w osobnym pliku w features.zip): ColorRGBCov: macierz momentów kolorów w przestrzeni RGB 9 składowych, ColorHCLCov: macierz momentów kolorów w przestrzeni HCL 9 składowych, ColorLabCov: macierz momentów kolorów w przestrzeni Lab 9 składowych, ColorHist64: histogram dla 64 kolorów 64 składowe, ColorHist256: histogram dla 256 kolorów 256 składowych, TextureLumGabor: luminance z filtru Gabora 30 składowych. Każda linia plików z cechami składa się nazwy pliku oraz kolejnych n składowych danej cechy (poszczególne składowe oddzielone są spacją). a) [4] Napisz program, który dla zadanego pojedynczego obrazu oraz pojedynczej cech, znajdzie 12 najbardziej podobnych obrazów z kolekcji. Nazwa obrazu oraz nazwa cechy (ColorHCLCov, ColorLabCov, itd.) mają być parametrami wywołania programu. Zaimplementuj normę L1 jako metrykę odległości oraz wykorzystaj rozkład Gaussa, aby znormalizować kolejne składowe cechy. Odchylenia standardowe wykorzystaj jako wagi w normie L1. Przekształć normę L1 do funkcji podobieństwa, w ten sposób że: dystans zerowy (obraz podobieństwo z samym sobą) = podobieństwo 1, a największy dystans z uzyskanych = podobieństwo 0, pomiędzy wykorzystaj liniową funkcję odwzorowania. Wynikiem ma być uporządkowana lista 12 nazw plików najbardziej podobnych wraz z miarami podobieństwa. Wywołanie: findimage obrazów cecha b) [4] Rozszerz program tak, aby umożliwić zapytania odwołujące się do kilku obrazów oraz cech oraz agregację wyników na tych dwóch poziomach z wykorzystaniem funkcji min, max lub ave. Agregacji dokonuj na ostatecznych miarach podobieństwa pary obrazów pod względem określonej cechy - znormalizowano je w poprzednim podpunkcie, więc można je porównywać dla różnych obrazów oraz różnych cech. Funkcje agregujące podaj osobno dla agregacji obrazów i cech, określ liczbę i listę plików oraz liczbę i listę cech, które mają być wzięte pod uwagę, np. Wywołanie: findimage {min, max, ave} 3 plik1 plik2 plik3 {min, max, ave} 2 ColorLabCov TextureLumGabor findimage funkcja_agregująca_dla_obrazów liczba_obrazów lista_obrazów funkcja_agregująca_dla_cech liczba_cech lista_cech Zwróć listę nazw 12 najbardziej podobnych plików wraz z miarami podobieństwa.
Jako rozwiązanie przesłane powinny zostać: kod źródłowy (nie ma ograniczeń co do języka) wyniki dla następujących zapytań w jednym pliku tekstowym: findimage 10049.jpeg ColorRGBCov findimage 1975.jpeg TextureLumGabor findimage 2136.jpeg ColorHist64 findimage max 1 11643.jpeg min 2 TextureLumGabor ColorHist256 findimage ave 2 3161.jpeg 2677.jpeg max 1 ColorHCLCov findimage max 2 3163.jpeg 3754.jpeg ave 3 ColorRGBCov ColorHist64 TextureLumGabor Zwróć uwagę, że zapytanie: findimage 10049.jpeg ColorRGBCov jest równoważne findimage {max, min, ave} 1 10049.jpeg {max, min, ave} 1 ColorRGBCov.