• Nie Znaleziono Wyników

Algorytm umieszczania i ekstrakcji znaków wodnych

W dokumencie Index of /rozprawy2/10954 (Stron 78-83)

4. Bimodalny system biometrycznego znakowania wodnego w dziedzinie

4.2. Proponowany algorytm

4.2.1. Algorytm umieszczania i ekstrakcji znaków wodnych

Autorska procedura znakowanie wodnego działa w opisany poniżej sposób.

Wstawianie znaku wodnego Algorytm umieszczania znaków wodnych zilustrowany na

rys. 4.2 bazuje na metodzie MRICA opisanej w podrozdziale 4.1.1 dla k = 2. W pierwszym kroku oryginalny obraz w rozmiarze N × M dzielony jest na k2 = 4 obrazów będących mniejszymi kopiami obrazu oryginalnego, rozmiar każdego z nich to N/2×M/2. Obrazy te są wykorzystywane przez algorytm ICA do znalezienia czterech niezależnych komponen-tów bazowych, które w kolejności od najwyższej do najniżej energii można oznaczyć jako IC1, IC2, IC3 oraz IC4. Następnie w dwóch spośród tych obrazów bazowych, dokładnie w IC1 i IC2, są umieszczane znaki wodne. Wybór tych komponentów wynika z faktu, że są one najbardziej odporne i w związku z tym umieszczone w nich znaki wodne mają szansę przetrwać nawet, gdy obraz po znakowaniu wodnym będzie poddawany dodatko-wym przekształceniom.

Pierwszy znak wodny, oparty na wykorzystaniu obrazu odcisku palca jest umieszczany w komponencie IC1, charakteryzującym się największą energią, który jest jednocześnie aproksymacją obrazu oryginalnego. W celu otrzymania z dowolnego obrazu odcisku palca

4.2. Proponowany algorytm 78

znaku wodnego W 1 należy dostosować rozmiar tego obrazu do rozmiaru komponentu IC1 oraz dokonać przetasowania (wymieszania) jego pikseli za pomocą transformaty Arnolda (np. [98], [101]). Przekształcenie Arnolda jest dość popularną i prostą metodą szyfrowa-nia obrazu, która polega na zmianie pozycji pikseli, dla przykładu w obrazie o wymiarze V × V zależność między pikselami przed transformatą (p, q) ∈ {0, 1, . . . , V − 1}, a tymi po przekształceniu (p0, q0) przedstawia się następująco

p0 q0 = 1 1 1 2 p q modV. (4.6)

Po kilku przekształceniach Arnolda można otrzymać obraz z wymieszanymi pikselami, co umożliwia ukrycie jego zawartości. Z drugiej strony ze względu na okresowość tej transformaty po wykonaniu V przekształceń można łatwo odzyskać obraz oryginalny. Stąd w proponowanej metodzie liczba użytych transformat Arnolda jest traktowana jako klucz1. Otrzymany w ten sposób znak wodny W 1 jest mieszany z komponentem IC1 zgodnie z zaproponowaną w standardowej metodzie MRICA formułą

IC10 = IC1 + αW 1, (4.7)

gdzie IC10 oznacza komponent IC1 ze wstawionym znakiem wodnym, a α jest współczyn-nikiem odpowiadającym za siłę wstawiania znaku wodnego. Ponieważ widoczne zmiany w komponencie IC1 prowadzą do podobnych zmian w obrazie ze znakiem wodnym ważne jest by używać małych wartości α oraz transformaty Arnolda, aby linie papilarne były całkowicie zatarte, ponieważ uczyni to odcisk palca nie tylko bardziej niewidocznym, ale także bezpieczniejszym.

W komponencie IC2, który zawiera szczegóły obrazu oryginalnego, jest umieszczany bi-narny znak wodny W 2. Znak ten powstaje przez połączenie binarnego kodu tęczówki i jej maski otrzymywanych za pomocą metod biometrycznych służących do segmentacji i kodowania obrazów tęczówek oka. Dysponując kodem i maską w rozmiarach n × m, łączy się je pionowo otrzymując znak wodny W 2 w rozmiarze 2n × m. Ma on dwie podstawowe zalety w stosunku do poprzedniego W 1, pierwszą jest prostota, ponieważ zawiera on tylko

4.2. Proponowany algorytm 79

Rysunek 4.2: Schemat algorytmu umieszczania biometrycznych znaków wodnych W 1 i W 2, opartych odpowiednio o odcisk palca i kod tęczówki oka, w dziedzinie składowych niezależnych oryginalnego obrazu I przy użyciu kluczy klucz1, klucz2 i klucz3 w celu otrzymania obrazu ze znakiem wodnym Iw

dwie możliwe wartości pikseli, a drugą niewielki rozmiar, który mimo iż zależy od uży-tych procedur biometrycznych to jednak zawsze może być znacznie mniejszy niż rozmiar komponentu, w którym jest on umieszczany. Te zalety mają szczególne znaczenie z uwagi na fakt, że komponent IC2 jest mniej odporny niż IC1 ponieważ zawiera on tylko szcze-góły obrazu. Wstawienie znaku wodnego W 2 odbywa się poprzez kwantyzację wybranych (dokładnie 2nm) pikseli komponentu IC2. Wybór tych pikseli jest przeprowadzany za pomocą binarnej macierzy klucz2 w rozmiarze N/2 × M/2, która zawiera dokładnie 2nm wartości "1" w losowo wybranych lokalizacjach. Po maskowaniu IC2 za pomocą klucz2

4.2. Proponowany algorytm 80

wybrane zostają piksele xi dla i = 1, 2, . . . , 2nm. Następnie dla zadanej liczby poziomów kwantyzacji Q+1 wyznaczany jest krok kwantyzacji δ = (xmax−xmin)/Q, gdzie xmini xmax oznaczają odpowiednio minimalną i maksymalną wartość wybranych pikseli. W rezultacie poziomy kwantyzacji Ll dla l = 1, . . . , Q mogą być wyrażone jako Ll = xmin + (l − 1)δ oraz LQ+1 = xmax. Wektor zawierający wartości tych poziomów jest traktowany jak klucz klucz3. Dla każdego piksela xijego wartość po kwantyzacji oznaczana przez q(xi) jest rów-na wartości jednego z poziomów Lldla l = 1, . . . , Q + 1, dla którego odległość |Ll− xi| jest najmniejsza. W algorytmach znakowania wodnego wykorzystujących binarne znaki wodne stosowane są dwa różne kwantyzatory w zależności od tego jaka jest wartość bitów znaku wodnego, [73]. W związku z tym dla każdego z wybranych pikseli xi i odpowiadających mu pikseli znaku wodnego W 2(i) dla i = 1, . . . , 2nm (odczytywanych w kolejności wierszowej) wartość piksela po znakowaniu wodnym x0i można wyznaczyć zgodnie z formułą:

x0i = q0(xi) gdy W 2(i) = 0 q1(xi) gdy W 2(i) = 1 (4.8)

Aby umożliwić maksymalną separację poziomów powyższe kwantyzatory mogą być zde-finiowane następująco: q0(xi) = q(xiδ 4) + δ 4, q1(xi) = q(xi+ δ 4) − δ 4 (4.9)

W ten sposób otrzymywany jest komponent zawierający znak wodny IC20.

Aby otrzymać obraz ze znakiem wodnym Iw, najpierw algorytm ICA miesza komponen-ty IC10, IC20, IC3 i IC4 rekonstruując cztery obserwacje obrazu, a po ich połączeniu powstaje Iw.

Ekstrakcja znaku wodnego Schemat procedury ekstrakcji znaków wodnych z obrazu

Iw jest przedstawiony na rys. 4.3. Najpierw Iw dzielony jest na k2 = 4 mniejszych obrazów, które w następnym kroku są poddawane działaniu transformaty ICA w celu otrzymania obrazów bazowych IC100, IC200, IC300 i IC400.

Następnie z komponentu IC100, który jest aproksymacją obrazu Iw, wydobywany jest pierwszy znak wodny W 10 w postaci zakodowanego odcisku palca. W tym celu ponownie

4.2. Proponowany algorytm 81

Rysunek 4.3: Schemat algorytmu ekstrakcji biometrycznych znaków wodnych W 10 i W 20 z obrazu Iw przy użyciu kluczy klucz1, klucz2 i klucz3

wykorzystywany jest algorytm ICA, który pozwala na oddzielenie obrazów źródłowych komponentu IC100, tj. mniejszej kopi obrazu oraz W 10. W związku z tym, że poszukiwane są dwa obrazy źródłowe na wejściu algorytmu wymagane jest podanie dwóch obserwacji, dlatego oprócz IC100 można wykorzystać przeskalowany obraz oryginalny I. Aby z wydo-bytego W 10 odzyskać obraz odcisku palca należy przeprowadzić odwrotne przekształcenie Arnolda klucz1 razy.

W celu wydobycia znaku wodnego W 20, drugi komponent IC200jest maskowany za pomocą macierzy klucz2. Wybrane w ten sposób piksele xi00 dla i = 1, 2, . . . , 2nm poddawane są kwantyzacji. Znając poziomy kwantyzacji zapisane w kluczu klucz3 dla każdego z pikseli x00i wyznaczany jest najbliższy pod względem wartości poziom Ll dla l = 1, ..., Q + 1. Wreszcie analizując znak różnicy x00i − Ll podejmowana jest decyzja dotycząca wartości pikseli w W 20(i) dla każdego i, zgodnie z zasadą, że jeżeli ta różnica jest dodatnia to w

4.2. Proponowany algorytm 82

wydobytym znaku wodnym W 20(i) = 0, a w przeciwnym przypadku W 20(i) = 1.

Podsumowując powyższą procedurę należy zauważyć, że mimo iż do ekstrakcji W 10 wy-korzystywany jest obraz oryginalny, można go zstąpić drugą kopią obrazu ze znakiem wodnym, [23]. Z kolei do ekstrakcji W 20 nie potrzebne są żadne dane oryginalne. Ponadto używanie kluczy zwiększa bezpieczeństwo algorytmu.

W dokumencie Index of /rozprawy2/10954 (Stron 78-83)

Powiązane dokumenty