Rozdzał 33 Wyszukwane w baze danych obrazów kolorowych Streszczene. W rozdzale zaproponowano strukturę systemu rozszerzającego funkcjonalność relacyjnych baz danych o możlwość porównywana obrazów kolorowych. Porównywane w całośc odbywa sę na serwerze bazy danych jest dostępne na pozome języka zapytań SQL. Algorytm porównywana obrazów oparty został na analze hstogramów. Dokładne opsano zastosowany algorytm porównywana obrazów, a także realzację systemu na pozome serwera relacyjnej bazy danych. Wykonano prototypową mplementację systemu dla serwera PostgreSQL wraz z ułatwającą jego testowane, dzałającą w środowsku WWW, aplkacją klencką. 1 Wstęp Do głównych zadań systemów baz danych należy przechowywane różnego rodzaju danych dostarczene metod dostępu do nch. Pozwala to zarządzać danym wstawać, modyfkować przede wszystkm sprawne je wyszukwać. Dla relacyjnych baz danych powszechne stosowanym standardem dostępu do danych jest język zapytań SQL. Został on opracowany główne z myślą o danych typów numerycznych, tekstowych logcznych. W standardze SQL [4] wymenony jest równeż typ bnarny, jednak opracowane dla nego unwersalnego mechanzmu wyszukwana jest w zasadze nemożlwe, gdyż będze ono zwykle uzależnone od nterpretacj danych. Rosnące zapotrzebowana jednocześne możlwośc systemów komputerowych powodują, że bazy danych przechowują struktury o coraz wększej złożonośc, jak na przykład bazy multmedalne. Szczególnym przypadkem, a zarazem jednym z najczęścej gromadzonych obektów multmedalnych są plk grafczne, reprezentujące dwuwymarowe obrazy. Powszechne znane są sposoby ch przechowywana w bazach danych, gdze zwykle do tych celów wykorzystywane są typy bnarne. Brak jest jednak wypracowanych unwersalnych mechanzmów pozwalających na wyszukwane wśród tego typu danych. Jednym z najczęścej stawanych zadań wyszukwana dla obrazów jest podane zboru obrazów podobnych do obrazu wzorcowego. W przypadku, gdy baza danych jest newelka taką zbeżność podobeństwa możemy oszacować manualne przez analzę wszystkch obrazów. Jednak jeśl w baze znajdują sę setk, a może nawet tysące obrazów zadane to jest w najlepszym przypadku czasochłonne, w gorszym newykonalne. Stąd też nawet tylko ogranczene lczby obektów, bądź wyznaczene kolejnośc ch analzy byłoby znacznym uproszczenem zadana. Adam Śwtońsk, Hafedh Zghd Poltechnka Śląska, Instytut Informatyk, ul. Akademcka 7, 44-100 Glwce, Polska emal:{adam.swtonsk, hafed.zghd}@polsl.pl
A. Śwtońsk, H. Zghd W nnejszym rozdzale, podjęto próbę opracowana systemu rozszerzającego funkcjonalność relacyjnej bazy danych o możlwość wyszukwana wśród obrazów kolorowych. Główne założena jake przyjęto przed przystąpenem do prac były następujące. Wyróżnono dwe operacja podstawowe, które pownen realzować system: jednoznaczne określene, czy dwa obrazy są do sebe podobne; określene stopna podobeństwa dwóch obrazów, które to pozwol posortować obraz w kolejnośc względem podobeństwa do zadanego wzorca. Wyszukwane ma być dostępne z pozomu języka zapytań SQL ne pownno wymagać od użytkownka przygotowana żadnych dodatkowych struktur danych. Jako parametry zapytana, jak w wynku jego wykonana otrzymujemy obekt typu obraz. System w całośc dzała na serwerze bazy danych. Użytkownk systemu ne mus znać algorytmu wyszukwana, wystarczy mu znajomość standardu SQL. 2 Porównywane obrazów kolorowych Tradycyjny obraz cyfrowy defnowany jest jako funkcja f odwzorowująca dwuwymarową przestrzeń pksel obrazu D f w zbór kolorów C [1]: f : D f C (1) Kolory mogą być reprezentowane w różnych przestrzenach, w wększośc przypadków jednak składają sę one z trójelementowych wektorów wartośc całkowtych: C { c, c, c ) : c, c c Z} = 1 2 3 1 2, 3 ( (2) W zależnośc od przestrzen różna jest jedyne nterpretacja poszczególnych składowych wektora koloru [6]. Porównywane obrazów punkt po punkce ne daje dobrych rezultatów, gdyż: ne pozwala porównywać obrazów o różnej rozdzelczośc, jest wrażlwe na nawet mnmalne przesunęca pksel ne pozwala analzować obrazów przedstawających te same obekty patrząc z różnych perspektyw. Dowodz sę, że człowek przy zgrubnym oszacowanu podobeństwa obrazów w perwszej kolejnośc analzuje ch globalną kolorystykę. Dopero po pewnym czase, przy dokładnej analze, zaczyna zwracać uwagę na lokalne szczegóły. Stąd też jednym z możlwych sposobów porównywana obrazów kolorowych jest analza ch hstogramów, podających nformacje na temat globalnej kolorystyk. Dla trójelementowej reprezentacj barw otrzymujemy trójwymarowy hstogram. Dalej jednak traktować go będzemy jako wektor, którego poszczególne składowe podają nformację o lczbe pksel dla zadanej barwy [8]: h 1 h2 H = (3) M h N 358
Wyszukwane w baze danych obrazów kolorowych Porównane podobeństwa dwóch obrazów będze sę sprowadzało do wylczena odległośc pomędzy wektoram ch hstogramów. Można skorzystać tutaj z dowolnej z powszechne znanych mar, jak odległość eukldesowa czy Mnkowskego: d eukldesowa ( H H 2 ) = ( h1, h2, ) 2 1, (4) Take podejśce jednak ne berze pod uwagę specyfk hstogramu, w którym pewne elementy wektora są ze sobą powązane w wększym stopnu, nne w mnejszym. Zależy to od kolorów, które reprezentują dane składowe, a ścślej rzecz ujmując od ch odległośc w przestrzen kolorów. Mara uwzględnająca tą własność to odległość skrośna hstogramów [8]: d skrosna ( H H ) ( H H T ) A ( H ) = (5), H 1 2 1 2 1 2 gdze A to macerz o rozmarach N N, podobeństwa poszczególnych barw wyznaczana na podstawe odległośc d j poszczególnych barw w zadanej przestrzen barw: ( j) a = j D d, (6) max gdze D max to maksymalna z odległośc pomędzy barwam w zadanej przestrzen. Dla modelu RGB odległość pomędzy barwą (R, G, B ) (R j, G j, B j ) można wyznaczyć na podstawe odległośc eukldesowej: d RGB ( R R ) 2 + ( G G ) 2 + ( B B ) 2 (, j) = (7) j j j Dla modelu HSV zwykle stosuje sę nną marę: d HSV 2 ( V V j ) + ( S cos H S j cos H j ) + ( S sn H S sn H ) 2 (, j) = (8) j j 2 gdze (H,S, V ) (H j, S j, V j ) to barwy, dla których wyznaczana jest odległość. Należy zwrócć uwagę, że przy analze hstogramów o różnej rozdzelczośc przed przystąpenem do wyznaczana odległośc, należy znormalzować hstogramy, tak aby poszczególne składowe ne podawały lczby wystąpeń lecz ch prawdopodobeństwa. Bardzo stotnym czynnkem mającym duży wpływ zarówno na dzałane algorytmu porównywana jak efektywnośc oblczeń jest sposób podzału przestrzen barw, dla którego wylczany jest hstogram. Dla wększośc obrazów cyfrowych pojedyncza barwa reprezentowana jest przez wartość 24-btową równomerne podzeloną na trzy składowe, każda po 8 btów. Daje to w przyblżenu 16 mlonów kolorów do wykorzystana. Hstogram skonstruowany w oparcu o tak podzał byłby bardzo czasochłonny w analze, zajmowałby sporo mejsca w pamęc (w przyblżenu 64 MB), a co może bardzej stotne, porównywane obrazów na jego baze ne daje zadowalających efektów. Dzeje sę tak ze względu na fakt, ż przy takm podzale porównywane skupa sę na analze wszystkch szczegółów gubąc zgrubną postać hstogramów. Na potrzeby budowy modułu wykonano testy dla przestrzen RGB przykładowej bazy obrazów. Najlepsze rezultaty porównywana uzyskano przy podzale przestrzen na 216 kolorów, gdze podzał wykonywany był równomerne dla każdej ze składowych tj. 6x6x6. 359
A. Śwtońsk, H. Zghd Przy takm podzale oraz założenu, że obraz orygnalny ma znaczne wększą lczbę kolorów, zastosowane hstogramu ze zlczanem twardym, to znaczy takm, gdze dany kolor zalczamy do przedzału, którego środek znajduje sę najblżej, ne rozróżna przypadku, gdy dany kolor leży blżej bądź dalej względem środka przedzału. Drobne przesunęca kolorów na brzegach przedzałów hstogramu powodują przemeszczane pomędzy tym przedzałam. Z tego też powodu zastosowany zostane hstogram ze zlczanem rozmytym: dany kolor będze zalczamy do przedzałów proporcjonalne do jego odległośc od środków przedzałów: 2 1 m 1 ( ) dj, jesl dkj 0 c 2 1 k h j = m ( ) 1 ( ) j= 1 dj 1 dla dj = 0 0 w przecwnym przypadku gdze: h (j) rozmyta wartość o jaką zostane zwększona -ta składowa hstogramu, kolor reprezentujący środek przedzału składowej hstogramu h, j kolor analzowanego pksela, d k odległość pomędzy koloram oraz j w zadanej przestrzen kolorów, m stopeń rozmyca. Wyróżna sę tutaj przypadek szczególny, gdy analzowany kolor pokrywa sę z jednym ze środków przedzałów: w takej sytuacj całkowce przypsujemy go do tego przedzału. Dla stopna rozmyca przyjęto wartość 2. Dzałane powyżej opsanego algorytmu zlustrowano na rys. 1. Obrazy b), c), d), e), f) uporządkowano malejąco względem podobeństwa do obrazu a), wyznaczanego na podstawe wyżej opsanego algorytmu. Druge stosowane podejśce porównywana obrazów skupa sę na analze ch lokalnych właścwośc. W perwszym kroku wykrywane są punkty charakterystyczne z wykorzystanem specjalne opracowanych detektorów, jak dla przykładu detektor Harrsa [3]. Do opsu tych punktów stosuje sę odpowedno skonstruowane deskryptory, wśród których jednym z częścej stosowanych jest deskryptor SIFT [5]. Właścwy algorytm porównywana próbuje dopasować do sebe, a następne oszacować podobeństwo punktów charakterystycznych obydwu obrazów. Porównywane take jest bardzo wrażlwe na zastosowane detektory deskryptory, które to pownny być nezależne od skal, obrotów przesunęć. W opracowanym systeme wykorzystano algorytm bazujący na porównywanu hstogramów. (9) 3 Realzacja na pozome serwera bazy danych Główny cel jak przyjęto przed przystąpenem do prac było opracowane systemu rozszerzającego funkcjonalność relacyjnej bazy danych o możlwość wyszukwana obrazów z pozomu języka zapytań SQL. 360
Wyszukwane w baze danych obrazów kolorowych a) b) c) d) e) f) Rys. 1. Przykładowe dzałane algorytmu porównywana obrazów: a) obraz wzorcowy, b), c), d), e), f) obrazy posortowane względem podobeństwa do obrazu a) System pownen w marę możlwośc ukrywać przed użytkownkem wszystke szczegóły technczne zwązane z algorytmam rozpoznawana obrazów stnena dodatkowych struktur opracowanych na ch potrzeby. Z perspektywy użytkownka, do bazy danych wstawa on, modyfkuje otrzymuje w wynku zapytana obraz reprezentowany przez cąg bajtów, będący jego zapsem w określonym formace oraz opcjonalne nazwę plku. Dla osągnęca powyższych założeń na pozome serwera bazy danych należy opracować: nowy typ danych przechowujący nformacje o obraze z odpowedno zdefnowanym operatorem porównana, funkcję automatyczne wyznaczającą hstogram wstawanego/ modyfkowanego obrazu, funkcję wyznaczającą podobeństwo dwóch obrazów, 361
A. Śwtońsk, H. Zghd zestaw funkcj pomocnczych. 3.1 Typ obraz przechowujący dane obrazu Opracowany typ jest strukturą składającą sę z trzech pól (tab. 1) Tabela 1. Typ obraz Pole Typ Ops nazwa_plku Tekstowy Nazwa plku dane Bnarny Bnarna zwartość plku z obrazem hstogram Bnarny Wylczony hstogram obrazu Wyznaczene hstogramu obrazu jest operacją czasochłonną, gdyż dla każdego z pksel obrazu wymaga wylczena odległośc od wszystkch środków przedzałów. Stąd obecność w powyższej strukturze pola hstogram jednoznaczne determnowanego przez zawartość obrazu (pole dane), przechowującego hstogram wyznaczony zaraz po wstawenu lub zmodyfkowanu danych o obraze. Pozwol to przyspeszyć wyszukwane, spowoln natomast wstawane modyfkowane rekordów w baze danych. Ze względu na efektywność oblczeń pownno ono przechowywać hstogram obrazu zapsany w forme możlwe najszybszej do odczytu zapsu dla funkcj operujących na hstograme. Dla powyższego typu obraz defnujemy operator porównana, bazujący na podobeństwe hstogramów zwracający wartość nformującą, że obydwa obrazy są dentyczne w przypadku, gdy odległość skrośna pomędzy hstogramam jest mnejsza od ustalonej wartośc progowej. 3.2 Funkcja automatyczne wyznaczająca hstogram Funkcja ta, bazując na danych reprezentujących obraz w określonym zapse, wylcza dla nego hstogram. Jako parametr pobera obekt typu obraz, wylczena prowadz na podstawe pola dane, a wynk zapsuje w polu hstogram. Pownna być ona automatyczne wywoływana w chwl modyfkacj danych dowolnego obrazu. Na pozome serwera bazy danych, należy ją zarejestrować jako wyzwalacz (ang. trgger) dla nstrukcj INSERT UPDATE dla wszystkch kolumn typu obraz. 3.3 Funkcja wyznaczająca podobeństwo obrazów Na pozome serwera bazy danych defnujemy równeż funkcję zwracającą nformację o podobeństwe dwóch obrazów. Jako parametry wywołana przyjmuje ona dwa obekty typu obraz na podstawe pól hstogram wyznacza ch podobeństwo, wylczając odległość skrośną. Należy zwrócć uwagę, że funkcja ta faktyczne podaje nformacje o nepodobeństwe obrazów. Pozostawamy ją jednak w takej forme ze względu na fakt, ż domyślne sortowane dla wększośc serwerów baz danych przy użycu frazy ORDER BY odbywa sę w porządku rosnącym. Tak węc wypsując z bazy danych obrazy sortując je względem podobeństwa do wskazanego obrazu wzorcowego w perwszej kolejnośc wypsane zostaną te najbardzej podobne, w dalszej mnej podobne, co w wększośc przypadków jest efektem pożądanym. 362
3.4 Zestaw funkcj dodatkowych Wyszukwane w baze danych obrazów kolorowych Zestaw funkcj dodatkowych zawera: funkcje prezentującą hstogram obrazu w forme tekstowej, funkcję zmany progu podobeństwa przy wyznaczanu dentycznośc obrazów, funkcje poberające ustawające dla obektu typu obraz jego bnarną reprezentację nazwę plku. Należy zauważyć, że typ obraz ne ma zdefnowanego ndeksu ne pownen być stosowany jako klucz główny klucz obcy w tabelach podrzędnych, po perwsze ze względu na rozmary danych jake przechowuje, po druge na sposób defncj operatora porównana. Na potrzeby systemu prototypowego zdefnowana została tabela obrazy zawerająca dwa pola: d_obrazu obraz (tab. 2) Tabela 2. Tabela obrazy Pole Typ Ops d_obrazu nteger Klucz główny obraz obraz Przechowywany obraz Dla pola d_obrazu dodatkowo stworzona została sekwencja automatyczne ustalająca kolejne wartośc. 4 Przykładowe zapytana SQL Ponżej zaprezentowane zostaną przykładowe zapytana SQL wraz z opsem dzałana dla powyżej opsanej tabel obrazy. W ponższych przykładach znak? oznacza wprowadzony przez użytkownka parametr typu obraz: Funkcja po podaje nformacje o podobeństwe dwóch obrazów. select * from obrazy where obraz=? Zwrócone zostaną obrazy dentyczne z obrazem podanym w zapytanu. Identyczność wyznaczana jest na podstawe podobeństwa hstogramów. nsert nto obrazy(obraz) values(?) Wstawene obrazu do bazy danych. update obrazy set obraz=? where d_obrazu=3 Modyfkacja obrazu o dentyfkatorze 3. select * from obrazy where d_obrazy<>3 order by po(obrazy.obraz,( select obraz from obrazy where d_obrazu=3)) lmt 10 Wypsane 10 najbardzej podobnych obrazów do obrazu o dentyfkatorze 3. select * from obrazy order by po(obraz,?) 363
A. Śwtońsk, H. Zghd Wypsane wszystkch obrazów w porządku wyznaczonym przez podobeństwo do obrazu podanego w zapytanu. 5 Prototypowa mplementacja systemu Wykonano prototypową mplementację systemu z wykorzystanem serwera PostgreSQL wraz z modułem PLJava [2], pozwalającym na defnowane funkcj dzałających po strone serwera napsanych w języku Java. Język ten wykorzystany został do mplementacj wszystkch powyżej opsanych algorytmów rozpoznawana obrazów. Na pozome serwera zdefnowano nowy typ obraz tabelę obrazy jak podano w podrozdzale 3. Pole hstogram przechowuje bnarną reprezentacją obektów opracowanej na potrzeby systemu klasy aswt.pro.jhstogramvector, otrzymaną w wynku seralzacj. Dla tabel obrazy zarejestrowano wyzwalacz dla nstrukcj INSERT UPDATE wylczający hstogram. W perwszej kolejnośc porównuje on postać rekordu, a dokładnej pola dane, przed po wykonanu nstrukcj INSERT lub UPDATE dopero, gdy wartość uległa zmane, wylcza hstogram. Zdefnowano funkcję po poberającą dwa parametry typu obraz wyznaczającą ch podobeństwo. W perwszej kolejnośc próbuje ona wykorzystać wartość pola hstogram do otrzymana hstogramu. Jeśl jednak jest ona pusta, co ma mejsce w przypadku parametrów zapytana, wyznacza go na podstawe pola dane. Wylczony hstogram zapamętuje w odpowednej mape, tak aby unknąć welokrotnego wylczana hstogramów dla tego samego obrazu. Sytuacja taka małaby mejsce w przypadku porównywana obrazu z klkoma nnym, na przykład pochodzącym z tabel bazy danych. W celu unknęca gromadzena sę nadmarowych danych o hstogramach wykorzystano mechanzm słabych referencj [7]. Serwer PostgreSQL wraz z modułem PLJAVA ne umożlwa modyfkowana parametrów zapytań dla typów złożonych, co byłoby prostszym rozwązanem. W celu ułatwena wprowadzana prezentacj obektów typu obraz opracowana została aplkacja klencka o funkcjonalnośc prostego narzędza do wykonywana zapytań SQL. Jest to aplkacja WWW wykonana w technolog JavaServer Faces [8]. Obekty typu obraz otrzymane w wynku zapytana SQL prezentowane są w forme grafcznej. Dodatkowo w zapytanu SQL można podać w mejsce parametru typu obraz, wprowadzanego w forme tekstowej, znak specjalny?, który oznaczał będze obekt typu obraz pobrany bezpośredno ze wskazanego plku. Wygląd aplkacj dla przykładowego zapytana SQL zaprezentowano na rys. 2. Tabela obrazy wypełnona została przykładowym danym, dla których przetestowano dzałane systemu. System jest dostępny pod adresem: http://zt.nf.polsl.glwce.pl/aswtonsk/bdas2007. 6 Podsumowane W ramach rozdzału zaproponowano strukturę systemu rozszerzającego możlwośc relacyjnej bazy danych o wyszukwane ze zboru obrazów kolorowych. System jest dostępny z pozomu języka zapytań SQL ne wymaga od użytkownka żadnej dodatkowej wedzy na temat zastosowanych algorytmów rozpoznawana obrazów an opracowanych struktur danych. Wyszukwane oparte zostało o analzę hstogramów. System został zamplementowany, a jego dzałane przetestowane. 364
Wyszukwane w baze danych obrazów kolorowych Rys. 2. Aplkacja klencka Przyjęta koncepcja realzacj systemu po strone serwera bazy danych pozwala na: swobodną jego rozbudowę bez konecznośc wykonywana uaktualneń po strone aplkacj użytkownka, przenos cężar wykonywana złożonych oblczeń numerycznych algorytmów rozpoznawana obrazów na stronę serwera, będącego zwykle maszyną o znaczne wększych mocach oblczenowych oraz powoduje zmnejszene rozmarów przesyłanych danych dla zapytań wyszukwana z warunkam selekcj. Prototypowa mplementacja została wykonana dla SZDB PostgreSQL, jednak struktura systemu ne ograncza zastosowań tylko do tego serwera. Muszą jednak być spełnone następujące warunk: możlwość defnowana własnych typów danych wraz z operatoram oraz tworzena funkcj dzałających po strone serwera w języku programowana pozwalającym na mplementację zaawansowanych algorytmów rozpoznawana obrazów. Zastosowana systemu praktyczne ne są ogranczone do żadnego typu obrazów. Należy jednak zwrócć uwagę, że ze względu na zastosowany algorytm rozpoznawana obrazów, efektywne wyszukwane wymaga aby analzowane obrazy różnły sę kolorystyką. Przewdzana jest dalsza rozbudowa systemu, która pozwol na wyelmnowane tego ogranczena: algorytm rozpoznawana obrazów rozszerzony zostane o analzę cech lokalnych opartą na detektorze Harrsa [3] deskryptorze SIFT [5]. Porównane będze wypadkową cech globalnych lokalnych. Planowana jest równeż rozbudowa systemu o możlwość grupowana zboru obrazów z wykorzystanem bardzej zaawansowanych algorytmów grupowana danych, nż te które stosowane są przez frazę GROUP BY języka SQL. Wykonano już perwsze testy dla algorytmów herarchcznych podzałowych. 365
A. Śwtońsk, H. Zghd Lteratura 1. Gonzalez R.C., Woods R.E.: Dgtal mage processng. Prentce-Hall, 2002. 2. Hagander M.: PostgreSQL Techncal Documentaton, PostgreSQL Global Development Group, 2006. 3. Harrs C, Stephens M. A combned corner and edge detector. Alvey Vson Conference, s. 147 151, 1988. 4. ISO/IEC 9075:1992, Database Language SQL, 1992. 5. Lowe D. G.: Object recognton from local scale-nvarant features. ICCV, 1999, s. 1150 1157. 6. Pastuszak W., Barwa w grafce komputerowej, Wydawnctwo Naukowe PWN, 2000. 7. Pawlan M.: Reference Objects and Garbage Collecton, Sun Developer Techncal Artcles, 1998. 8. Quasay H. M.: Developng web applcaton wth JavaSever Faces, Sun Developer Techncal Artcles, 2004. 9. Schettn R., Cocca G., Zuff S.:: A Survey on methods for color mage ndexng and retreval n mage databases, Color Imagng Scence: Explotng Dgtal Meda, J. Wley, 2001. 366