63
Politechnika Lódzka Instytut Informatyki Praca dyplomowa inżynierska Zastosowanie metod wykrywania krawędzi do identyfikacji czlowieka w oparciu o analizę geometrii dloni Autor: Pawel Tarasiuk Nr albumu: 151021 Promotor: dr inż. Bartlomiej Stasiak Lódź, 28 maja 2012 Instytut Informatyki 90-924 Lódź, ul. Wólczańska 215, budynek B9 tel. (42) 631-27-97, (42) 632-97-57, fax (42) 630-34-14, e-mail: offi[email protected]

Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Politechnika ŁódzkaInstytut Informatyki

Praca dyplomowa inżynierska

Zastosowanie metod wykrywaniakrawędzi do identyfikacji człowiekaw oparciu o analizę geometrii dłoni

Autor:Paweł TarasiukNr albumu: 151021

Promotor:dr inż. Bartłomiej Stasiak

Łódź, 28 maja 2012

Instytut Informatyki

90-924 Łódź, ul. Wólczańska 215, budynek B9tel. (42) 631-27-97, (42) 632-97-57, fax (42) 630-34-14, e-mail: [email protected]

Page 2: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Spis treści

Spis treści . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Streszczenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Streszczenie w języku angielskim . . . . . . . . . . . . . . . . . 5

Rozdział 1: Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . 6

Rozdział 2: Cel i zakres pracy . . . . . . . . . . . . . . . . . . 8

Rozdział 3: Wprowadzenie . . . . . . . . . . . . . . . . . . . . 103.1 Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2 Zarys stosowanych technologii . . . . . . . . . . . . . . . . . . 103.3 Znane podejścia do pobierania próbek . . . . . . . . . . . . . 113.4 Przetwarzanie obrazu dłoni . . . . . . . . . . . . . . . . . . . 12

3.4.1 Specyfika problemu . . . . . . . . . . . . . . . . . . . . 123.4.2 Przetwarzanie potrzebne do ekstrakcji cech . . . . . . 13

3.5 Klasyfikacja próbek . . . . . . . . . . . . . . . . . . . . . . . . 13

Rozdział 4: Zagadnienie programistyczne . . . . . . . . . . . 144.1 Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.2 Zakres i założenia . . . . . . . . . . . . . . . . . . . . . . . . . 144.3 Wybrane technologie . . . . . . . . . . . . . . . . . . . . . . . 15

4.3.1 Główny język programowania . . . . . . . . . . . . . . 154.3.2 Biblioteki do obsługi formatów graficznych . . . . . . 154.3.3 System budowania projektu . . . . . . . . . . . . . . . 174.3.4 Narzędzia pomocnicze . . . . . . . . . . . . . . . . . . 18

4.4 Dane wejściowe do testowania . . . . . . . . . . . . . . . . . . 19

Rozdział 5: Wykrywanie krawędzi dłonina obrazie . . . . . . . . . . . . . . . . . . . . . . . 21

5.1 Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215.1.1 Definicja obrazu . . . . . . . . . . . . . . . . . . . . . 215.1.2 Problem wykrywania krawędzi . . . . . . . . . . . . . 22

5.2 Przekształcenia obrazu . . . . . . . . . . . . . . . . . . . . . . 235.2.1 Działania na pojedynczych punktach . . . . . . . . . . 235.2.2 Splot obrazów . . . . . . . . . . . . . . . . . . . . . . . 26

2 / 63

Page 3: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

5.2.3 Rozmycie Gaussa . . . . . . . . . . . . . . . . . . . . . 275.2.4 Wykrywanie spójnych składowych . . . . . . . . . . . 29

5.3 Metody wykrywania krawędzi . . . . . . . . . . . . . . . . . . 315.3.1 Operator Laplace’a . . . . . . . . . . . . . . . . . . . . 315.3.2 Operator Sobela . . . . . . . . . . . . . . . . . . . . . 325.3.3 Algorytm Canny’ego . . . . . . . . . . . . . . . . . . . 335.3.4 Wyróżnienie dłoni poprzez selektywne progowanie . . 345.3.5 Budowanie sekwencji punktów należących do krawędzi 36

Rozdział 6: System identyfikacjiczłowieka . . . . . . . . . . . . . . . . . . . . . . . 38

6.1 Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.2 Opisywanie konturu dłoni za pomocą wektora cech . . . . . . 38

6.2.1 Interpretacja danych wejściowych . . . . . . . . . . . . 386.2.2 Wyznaczanie punktów charakterystycznych . . . . . . 396.2.3 Proporcje geometryczne i pola powierzchni . . . . . . 42

6.3 Zagadnienie klasyfikacji . . . . . . . . . . . . . . . . . . . . . 456.3.1 Specyfika systemu identyfikacji . . . . . . . . . . . . . 456.3.2 Szybka weryfikacja oparta o próg . . . . . . . . . . . . 476.3.3 Prosty klasyfikator odległościowy . . . . . . . . . . . . 486.3.4 Metoda k najbliższych sąsiadów . . . . . . . . . . . . 50

Rozdział 7: Podsumowanie . . . . . . . . . . . . . . . . . . . . 55

Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Spis rysunków . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Spis wzorów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

Spis fragmentów programów . . . . . . . . . . . . . . . . . . . . 63

3 / 63

Page 4: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Streszczenie

W ramach niniejszej pracy przygotowany został autorski systemidentyfikacji człowieka działający w oparciu o geometrię dłoni. Istot-nym założeniem pracy jest tworzenie tego systemu od podstaw (od stro-ny programistycznej), co ma na celu dokładne zgłębienie wszystkichszczegółów potrzebnych, aby taki system mógł działać. Poruszane za-gadnienia w znacznej mierze obejmują samą analizę obrazu oraz meto-dy wykrywania krawędzi. W dalszych etapach przetwarzania następujeekstrakcja cech biometrycznych oraz klasyfikacja próbek jako pasują-cych lub niepasujących, w oparciu o przygotowaną uprzednio bazę da-nych. System rozwiązujący opisane problemy stanowi praktyczne za-stosowanie algorytmów z dziedziny analizy obrazu.

4 / 63

Page 5: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Abstract

This paper describes the project of the hand geometry-based per-sonal identification system. An important objective of this project wasto implement everything from scratch, in order to analyze all the deta-ils that are essential for such a system to work. The work focuses on theissues of image processing and edge-detection algorithms. In the furtherstages of processing, the biometric characteristics extraction is perfor-med in order to classify the sample as matching or non-matching to thereference templates stored in the database. The whole system providesa practical application of the image processing algorithms.

5 / 63

Page 6: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Rozdział 1

Wstęp

Tematem niniejszej pracy inżynierskiej jest „Zastosowanie metod wy-krywania krawędzi do identyfikacji człowieka w oparciu o analizę geometriidłoni”. Wybór niniejszego tematu podyktowany został chęcią zapoznaniasię z algorytmami związanymi z analizą obrazu, a także nadania wynikomdziałania tych algorytmów praktycznego zastosowania.

Poszukiwanie grupy obiektów, których obrazy miałbym analizować w ra-mach swojej pracy inżynierskiej zaowocowało zainteresowaniem biometrią,a ostateczny wybór padł właśnie na ludzkie dłonie. Informacje uzyskanew wyniku analizy fotografii dłoni (począwszy od najniższego poziomu, czyliod macierzy pikseli) mogą z kolei umożliwić stworzenie systemu identyfi-kacji człowieka. Wybór odpowiedniego wektora informacji (chociażby - sa-mych proporcji geometrycznych, opartych o pewne charakterystyczne punk-ty dłoni) powinien pozwolić utworzyć bazę danych zawierającą użyteczneinformacje o różnych osobach. Wektory cech zbadanych dłoni, czyli próbkibiometryczne, będą w tej pracy nazywane po prostu próbkami.

W oparciu o opisaną powyżej bazę będzie można rozwiązywać problemyweryfikacji oraz identyfikacji. Weryfikacja oznacza, że na podstawie loginuoraz próbki dokonywane będą rozstrzygnięcia, czy badana osoba jest tym,za kogo się podaje – operacja ta dotyczy pojedynczego użytkownika, zatemdziała w trybie 1 : 1. Metody identyfikacji pozwolą z kolei wskazać najpraw-dopodobniejszego właściciela na podstawie samej próbki – tutaj rozważenimuszą zostać wszyscy użytkownicy z bazy, więc mamy do czynienia z rela-cją 1 : n. W obu przypadkach konieczne będzie wcześniejsze utworzenie bazydanych, która będzie zawierała między innymi próbki pochodzące od testo-wanej osoby.

Trudno jest wskazać początek historii analizy obrazu cyfrowego. W ro-ku 1920 powstał system pozwalający przesłać przez Ocean Atlantycki treśćfotografii za pomocą połączenia kablowego - już wtedy obraz był sekwencjo-nowany jako macierz punktów o różnych poziomach jasności i elektronicznaobróbka danych z tej macierzy była rzeczą naturalną. Już na początku lat ’60istniały komputery dość wydajne, aby miało sens stosowanie ich do przetwa-rzania obrazu cyfrowego, zaś powstanie języków programowania takich jakCOBOL znacznie ułatwiło rozwój tej dziedziny. Lata ’70 przyniosły całkiemkonkretne zastosowania komputerowej analizy obrazów, takie jak na przy-

6 / 63

Page 7: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

kład tomografia komputerowa (CT). Obecnie analiza obrazów jest dziedzinątak szeroką, że trudno cokolwiek napisać o niej w ogólności – zastosowaniarozciągają się od semantycznej analizy obrazów medycznych dążącej do na-śladowania doświadczonych lekarzy, do rozpoznawania twarzy i obiektówna zdjęciach umieszczanych na portalach społecznościowych.

Jednego z pierwszych wdrożeń systemów zabezpieczeń opartych o bio-metrię dłoni dokonano na Uniwersytecie w Georgii, gdzie specjalistycznychurządzeń od identyfikacji opartej o geometrię dłoni używa się od roku 1973.Ważniejszym i szerszym przykładem wdrożenia jest zastosowanie podobnychsystemów do zabezpieczenia arsenału nuklearnego USA, od lat ’80. Badaniana temat dróg rozwoju takich systemów prowadzone są do dziś, a systemyoparte o biometrię dłoni znajdują coraz więcej zastosowań (m. in. Między-narodowe Lotnisko w San Francisco, wioska olimpijska w Atlancie). Naj-większą przeszkodą w zdobyciu jeszcze większej popularności przez systemyidentyfikacji oparte o geometrię dłoni jest konkurencja ze strony systemówopartych o inne cechy biometryczne, takie jak odciski palców, tęczówka okalub głos. Istotną zaletą geometrii dłoni jest jednak łatwość w pobieraniu pró-bek, oraz mniejsze wymagania co do rozdzielczości urządzenia pomiarowegoniż w przypadku odcisków palców albo tęczówki oka. Otrzymane w znanychpracach naukowych [11, 10, 14, 13, 12, 16, 7, 6, 5, 17] wskaźniki FAR (falseaccept rate – współczynnik omyłkowych akceptacji) z zakresu 0,1% do 2%oraz FRR (false reject rate – współczynnik omyłkowych odrzuceń) od 1%do 13% czynią tą technologię bardzo obiecującą.

7 / 63

Page 8: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Rozdział 2

Cel i zakres pracy

Głównym celem pracy jest przygotowanie zestawu narzędzi, który bę-dzie stanowił system identyfikacji człowieka oparty o analizę geometrii dłoni.Zdefiniowanie celu w ten sposób oznacza także, że poza opracowaniem algo-rytmów oraz stworzeniem przykładowego oprogramowania, znaczenie będziemiała także analiza jego skuteczności, oraz rozważenie możliwych sposobówdalszego ulepszania takiego systemu.

Danymi wejściowymi dla przygotowywanego systemu będą zdjęcia dło-ni na jednolitym tle, w postaci plików rastrowych. Zastosowane w ramachniniejszej pracy fotografie cechują się tym, że tło jest znacznie ciemniejszeod dłoni.

Podstawowy moduł systemu jest odpowiedzialny za wykrywanie krawę-dzi dłoni i operuje bezpośrednio na obrazach cyfrowych. Najbardziej intere-sującą nas krawędzią będzie sam kontur dłoni, czyli linia oddzielająca dłońod tła. Przyjętą w pracy konwencją będzie określanie, że do konturu dło-ni należą te jej punkty, w których sąsiedztwie znajdują się także punkty tła(alternatywnie mogłyby to być punkty tła mające w swoim sąsiedztwie pew-ne punkty należące do dłoni). Pożądanym wynikiem działania tego modułunie jest jednak zbiór punktów, lecz ich uporządkowany ciąg, pozwalającyna obrysowanie dłoni.

Drugim kluczowym dla pracy zagadnieniem jest badanie geometrii znale-zionej krawędzi dłoni, mające na celu przypisanie do danej próbki pewnegowektora cech. Daną wejściową do tego modułu będzie próbka w postacisamego konturu, bez jakichkolwiek innych informacji na temat fotografiina podstawie której został on wyznaczony. Poszczególne składowe wyzna-czanych przez ten moduł wektorów nie muszą nawet posiadać określonejsemantyki - znaczenie ma jedynie wektor cech jako całość, który może byćporównywany z wektorami cech wygenerowanymi na podstawie innych pró-bek. Takie podejście pozwoli wprowadzić miarę podobieństwa par krawędzidłoni.

Mając przygotowane wektory cech dłoni wielu osób, można w prostysposób zbudować system identyfikacji. Zadaniem postawionym przed takimsystemem będzie rozstrzyganie na podstawie nowego zdjęcia (a zatem: wek-tora cech krawędzi) dłoni, do którego użytkownika systemu najbardziej onapasuje – będzie to problem identyfikacji. Rozwiązywany będzie także pro-

8 / 63

Page 9: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

blem weryfikacji – czyli stwierdzania na podstawie próbki, czy badana osobajest tą, za którą się podaje. Oczywiście niezbędne do tego jest posiadaniewcześniej zebranych próbek od testowanej osoby. Weryfikacja oraz identy-fikacja będą dokonywane za pomocą kilku przykładowych klasyfikatorów,wśród których uwzględniony zostanie klasyfikator k-NN (oparty o metodęk najbliższych sąsiadów).

Celem pracy jest zatem stworzenie systemu identyfikacji człowieka w opar-ciu o geometrię dłoni, w którym kluczowymi wyzwaniami algorytmicznymibędą: wskazanie krawędzi dłoni na podstawie pliku graficznego, badanie geo-metrycznej struktury tej krawędzi w celu wyznaczenia odpowiadającego jejwektora cech, oraz na koniec - stworzenie klasyfikatora wektorów cech, którybędzie służył do identyfikacji i weryfikacji użytkowników.

9 / 63

Page 10: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Rozdział 3

Wprowadzenie

3.1 Wstęp

Niniejszy rozdział stanowi wprowadzenie do dziedziny, o której traktujepraca inżynierska. Jest to wynikające z analizy literatury podsumowaniestanu wiedzy i osiągnięć związanych z tematem systemów biometrycznychopartych o geometrię dłoni, z uwzględnieniem wykorzystywanych przy tymoperacji dokonywanych na obrazach.

3.2 Zarys stosowanych technologii

Systemy biometryczne oparte o geometrię dłoni działają na zasadzie ty-powej dla wszystkich systemów biometrycznych: po pobraniu próbki do-konywane jest przetwarzanie do postaci opisującego ją wektora cech, któryjest porównywany z wektorami wzorcowymi zgromadzonymi w bazie danych.Opcjonalnym krokiem stosowanym w niektórych systemach biometrycznychjest aktualizacja bazy wzorców po pozytywnej weryfikacji. Opisany proceszilustrowany jest na schemacie 3.1.

Pobraniepróbki

Przetwarzanie Porównywanie

Baza danych

Aktualizacja

Decyzja o weryfikacjialbo jej braku

Dłoń użytkownikasystemu

Rysunek 3.1: Przebieg przetwarzania danych w systemie biometrycznym wy-korzystującym geometrię dłoni

10 / 63

Page 11: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

3.3 Znane podejścia do pobierania próbek

Do pobrania próbki biometrycznej często stosowane są zwykłe aparatycyfrowe albo skanery - urządzenia te są łatwo dostępne, co często umożli-wia prowadzenie prac na ten temat bez dodatkowych kosztów. Jakkolwiekniektóre rozwiązania wykorzystują oświetlenie otoczenia, najczęstszym po-dejściem jest dostarczenie własnego źródła światła (lampa błyskowa apa-ratu albo lampa skanera), które staje się dominujące i jest jednakowe dlawszystkich pobieranych próbek. Dla osiągnięcia lepszych rezultatów, w urzą-dzeniach dedykowanych do biometrii dłoni stosuje się oświetlenie i pomiarświatła w bliskiej podczerwieni - pozwala to jeszcze lepiej ignorować ele-menty takie jak tatuaże, owłosienie, blizny czy zabrudzenia. Taki efekt jestpożądany, gdyż w rozważanym zastosowaniu istotne jest jedynie wyznacze-nie czarno-białej „sylwetki” dłoni. Przykład sylwetki dłoni wygenerowanyprzez narzędzie napisane w ramach pracy przedstawia ilustracja 3.2.

Rysunek 3.2: Przykładowa fotografia dłoni oraz wyznaczone na jej podsta-wie: sylwetka i kontur

Wiele systemów geometrii dłoni korzysta z obrazu powierzchni przed-niej (tej z liniami papilarnymi), albo samego tyłu dłoni - efektem jest wte-dy zwykły, płaski obraz. Nawet w przypadku komercyjnych, dedykowanychurządzeń - rozdzielczość wykorzystywana do analizy geometrii dłoni jestbardzo mała, np. w porównaniu do systemów badających odciski palców.W przypadku systemów badawczych można się spodziewać rozdzielczościrzędu 100-200 dpi (oszacowanie zasugerowane w [2]). Tak mała rozdzielczośćobrazu skutkuje małą podatnością na problem różnorodnego umiejscowieniadłoni. W celu redukcji rozmiaru urządzenia biometrycznego typowym roz-wiązaniem jest zastosowanie lustra, pozwalającego pozornie wydłużyć od-ległość aparatu cyfrowego od dłoni (analiza odbitego obrazu dłoni pozwalapoprawić zakres widzenia aparatu oraz ostrość fotografii).

11 / 63

Page 12: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą pojedynczej kamery, poprzez zastosowanie ruchomegolustra [11, 9]. W tej metodzie dzięki zmiennemu położeniu lustra, obserwo-wane były rzuty dłoni pod różnymi kątami.

Jeszcze nowsze systemy zajmują się natychmiastowym pobraniem peł-nego trójwymiarowego modelu dłoni [8] – wykorzystywane są wtedy licznerejestratory obrazu, specjalne systemy oświetlenia lub dalmierze optyczne.Jakkolwiek takie systemy są bardzo obiecujące i dają szansę na znacznąpoprawę skuteczności, nie są znane przypadki ich komercyjnego zastosowa-nia. Takie rozwiązania negują główną zaletę systemów opartych o geometriędłoni, jaką jest potencjalna łatwość w rejestrowaniu próbek.

3.4 Przetwarzanie obrazu dłoni

3.4.1 Specyfika problemu

Niektóre systemy identyfikacji człowieka w oparciu o geometrię dłonioparte są o urządzenie do pobierania próbek z zaznaczonym (np. za pomocąkołków) miejscem, w które należy włożyć dłoń. Zaletą tych systemów jest de-terministycznie określone położenie dłoni, zaś wadą - konieczność usunięciaz bitmapy obrazu aparatury w ramach przetwarzania wstępnego. Pomimotakiego dodatkowego nakładu na samo przetwarzanie obrazu, jest to częstorozwiązanie wydajniejsze od badania położenia i rotacji dłoni na obrazie [5].Jednakże znaczna liczba badaczy skłania się do systemów badania geome-trii swobodnej dłoni, co jest znacznie wygodniejsze dla użytkownika - takierozwiązanie zostało wybrane także w ramach niniejszej pracy (zakłada się,że palce będą rozdzielone, lecz konkretne ułożenie nie jest wymuszane koł-kami). Decyzja o stosowaniu kołków zależy jednak od stosowanej późniejmetody analizy kształtu dłoni, gdyż poszczególne podejścia różnią się mię-dzy sobą wrażliwością na ułożenie palców w chwili pobrania próbki.

Zarówno komercyjne jak i badawcze systemy zwykle zaczynają przetwa-rzanie obrazu od pomiaru geometrycznych własności dłoni. Pomiary opartesą na wybieranych w różny sposób długościach i szerokościach palców, po-lach powierzchni wybranych obszarów, kątach pomiędzy wybranymi linia-mi i stosunkach pomiędzy wymienionymi własnościami [4, 11, 9, 15]. Innesystemy badawcze operują na konturze dłoni, wybierając charakterystycz-ne punkty jedynie pośród krawędzi dłoni, albo operując przy porównaniachna konturze jako na całości [16, 5, 17].

Własności geometryczne dłoni najczęściej okazują się parami silnie skore-lowane, co stanowi utrudnienie przy dalszej klasyfikacji. Rozwiązaniem tegoproblemu może być np. zastosowanie metody analizy głównych składowych(PCA - principal component analysis).

12 / 63

Page 13: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

3.4.2 Przetwarzanie potrzebne do ekstrakcji cech

Problemem, na który w niniejszej pracy położony został szczególny na-cisk, jest sama techniczna kwestia przejścia od postaci macierzy jasności po-szczególnych punktów, do proporcji geometrycznych między zdefiniowanymisemantycznie punktami (takimi jak np. koniuszki palców). Zgodnie z tema-tem pracy, jednym z etapów technicznej strony przetwarzania obrazu jestwyodrębnienie dłoni z tła, a następnie wyznaczanie jej krawędzi rozumianejjako sekwencja punktów za pomocą której dłoń może zostać obrysowana.

Problem wykrywania krawędzi w ogólnej postaci może być rozwiązywanypoprzez badanie gradientu obrazu w poszczególnych punktach, obliczanie la-plasjanów lub zastosowanie filtru Sobela. Ogólnie rozumiany algorytm Can-ny’ego pozwala w praktyczny sposób wyodrębnić z obrazu krawędzie mającenajwiększe znaczenie. Próby związane z tymi metodami okazały się jednaknieadekwatne do postawionego problemu, gdyż często krawędzie stanowiąceodcisk dłoni były bardziej strome od samego jej konturu.

Podstawowe metody przetwarzania obrazu, takie jak redukcja szumuza pomocą rozmycia Gaussa, okazały się jednak bardzo przydatne, a nawetkluczowe przy tworzeniu narzędzi do przetwarzania map bitowych ze zdję-ciami dłoni. Wyznaczanie zbioru punktów należącego do dłoni oparte jestna badaniu histogramu obrazu, na podstawie którego określany jest próg.Aby zapewnić, że wybrane zostaną tylko punkty należące do dłoni, drobniej-sze spójne fragmenty jasnych punktów są odrzucane. Zastosowanie znajdujątutaj algorytmy przeszukiwania grafów, w których piksele obrazu trakto-wane są jako wierzchołki grafu, a krawędziami połączone są pary pikselisąsiednich (w sensie 4−sąsiadów, czyli 4-neighbours według [1, 3]).

3.5 Klasyfikacja próbek

Kluczowym problemem przy klasyfikacji jest badanie poziomu podobień-stwa pomiędzy parami zbadanych próbek. Na słuszność danego wyboru me-tody klasyfikacji może wpłynąć specyfika wektorów cech opisanych w po-przednich sekcjach. Najczęstszym podejściem jest zastosowanie metryki eu-klidesowej (np. w [11]), lecz nie jest to jedyna możliwość. Często stosowanesą metody badania korelacji [8, 12] albo analiza głównych składowych [5],a także wyznaczanie przeciętnych różnic między umiejscowieniem poszcze-gólnych punktów należących do krawędzi dłoni. W ramach [15] do tego celuwykorzystane zostały nawet złożone modele Gaussa (GMM - Gaussian mi-xture models).

13 / 63

Page 14: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Rozdział 4

Zagadnienie programistyczne

4.1 Wstęp

Zgodnie z tym, co zostało zasygnalizowane w celach pracy, istotnymelementem niniejszej pracy inżynierskiej jest przygotowanie implementacjiprogramistycznej, obejmującej algorytmy przetwarzania obrazu oraz systemidentyfikacji człowieka. Jest to implementacja kompletna i działająca, jed-nak należy ją traktować jako dowód koncepcji skupiający wybrane metodyo których traktuje praca, nie zaś gotowe rozwiązanie dla przemysłu. Przy-gotowane w ramach pracy oprogramowanie mogłoby jednakże posłużyć jakokluczowy element takiego rozwiązania.

4.2 Zakres i założenia

Implementacje programistyczne przygotowywane w ramach pracy mająstanowić komplet narzędzi, pozwalający symulować działanie systemu iden-tyfikacji człowieka opartego o geometrię dłoni, z wykorzystaniem mechani-zmów wykrywania krawędzi. Tak zdefiniowany zakres obejmuje narzędziepozwalające wykryć kontur dłoni na podstawie pliku ze zdjęciem, dokonaćekstrakcji cech w oparciu o ciąg współrzędnych kolejnych punktów nale-żących do konturu, oraz zarządzać bazą danych z informacjami o cechachkrawędzi dłoni poszczególnych osób, tak aby możliwe było przeprowadze-nie prób identyfikacji i weryfikacji. Istotne jest także stworzenie narzędziatestującego, które na drodze symulacji oceni poprawność systemu identyfika-cji oraz pozwoli wyznaczyć współczynnik błędnych akceptacji oraz błędnychodrzuceń dla różnych metod weryfikacji.

Kody źródłowe przygotowywanej implementacji powinny mieć choćbypotencjalną wartość użytkową dla zastosowań praktycznych. Wykorzysty-wanie poszczególnych modułów w ramach innych projektów powinno byćmożliwie proste, a wybrany język programowania powinien być międzyplat-formowy, popularny, i nie powodować zbyt dużego narzutu na czas wyko-nywania elementarnych operacji. Aby zapewnić stosowny czas wykonaniaprogramów, poza kierowaniem się samą intuicją i obserwacją czasów wyko-nania dla formułowanych w różny sposób rozwiązań, istotna będzie analiza

14 / 63

Page 15: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

asymptotycznej złożoności czasowej poszczególnych procedur.

4.3 Wybrane technologie

4.3.1 Główny język programowania

Program został napisany z wykorzystaniem możliwie standardowego i uni-wersalnego podzbioru języka C++. Ze względu na bogaty wybór kompila-torów pod różne platformy oraz obecność wielu otwartych narzędzi pozwa-lających na pracę z tym językiem, można stwierdzić że jest to język wystar-czająco międzyplatformowy i popularny. Dotyczy to także platform mobil-nych i systemów wbudowanych (wsparcie dla C++ ma np. kompilator GNUARM). Powyższe twierdzenia odnoszą się do języka C++ według standarduISO/IEC 14882:1998, określanego po prostu jako C++98.

Jakkolwiek wydany w ostatnich miesiącach standard ISO/IEC14882:2011 traktuje o języku znacznie bardziej nowoczesnym pod wzglę-dem składni oraz bogactwa standardowych bibliotek, język ten (C++11 ) niezdobył jeszcze aż tak szerokiej popularności – należy przypuszczać, że stop-niowa zmiana tego stanu zajmie jeszcze wiele lat. Z tego właśnie powodurozszerzenia wchodzące w skład najnowszego standardu nie były brane poduwagę w tym projekcie.

Niezależnie od wersji, język C++ spełnia oczywiście założenie o brakuzbędnych narzutów czasowych przy wykonywaniu podstawowych operacji,ponieważ pliki źródłowe najczęściej kompilowane są do postaci kodu ma-szynowego właściwego dla danej platformy. Dopracowane kompilatory, takiejak np. te wchodzące w skład GNU Compiler Collection, sprawiają że języ-ki C oraz C++ można rozważać jako najszybsze międzyplatformowe językiprogramowania imperatywnego.

Zastosowane elementy programowania obiektowego oraz mechanizm sza-blonów sprawiają, że fragmenty przygotowanego kodu mogłyby zostać wdro-żone do innych projektów bez znacznych kosztów przepisywania lub nawetrefaktoryzacji. Wybrany podzbiór języka C++ nie stanowi podejścia czystoobiektowego, podobnego do tego które wymuszone jest np. w języku Java.Jednak wspomniane powyżej, zastosowane w projekcie elementy programo-wania obiektowego przesądziły o wyborze języka C++, a nie np. pozbawio-nego tych cech języka C.

4.3.2 Biblioteki do obsługi formatów graficznych

ImageMagick stanowi otwarty zestaw oprogramowania, przeznaczonydo renderowania, konwersji i przekształceń obrazów rastrowych. Oprogra-mowanie to wyróżnia się bogactwem obsługiwanych formatów grafiki i kom-patybilnych platform. O uniwersalności tego narzędzia stanowi także liczbawspieranych przez bibliotekę ImageMagick języków programowania, wśród

15 / 63

Page 16: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

których obecny jest oczywiście także C++. Co ważne, nagłówki dla językaC++ wykorzystują możliwości tego języka i przygotowane są w konwencjiobiektowej – zatem nie chodzi po prostu o możliwość wykorzystania w C++nagłówków przystosowanych do języka C, lecz jest to rozwiązanie dedyko-wane specjalnie dla tego przypadku. Interfejs programistyczny (API) łączyw sobie czytelne nazewnictwo klas i procedur oraz udostępnianie niskopo-ziomowych operacji, co z kolei zapewnia dobrą wydajność zawartych w bi-bliotece metod.

Szerokie możliwości biblioteki ImageMagick częściowo obejmują nawette zaawansowane elementy przetwarzania obrazu, których implementacjajest zadaniem postawionym w niniejszej pracy. Zaleta ta pozostaje jednakniewykorzystana, gdyż istotne było samodzielne przygotowanie implemen-tacji poszczególnych filtrów. Elementem, którego samodzielna implementa-cja nie byłaby istotna, a do którego właśnie wykorzystana została bibliote-ka ImageMagick, jest natomiast wczytywanie plików graficznych do postacidwuwymiarowej tablicy pikseli, oraz serializacja utrzymywanych w pamięciprogramu tablic do postaci plików w popularnych formatach.

Technicznym szczegółem związanym z API biblioteki ImageMagick jestistnienie alternatywnych implementacji biblioteki, które udostępniają kom-patybilne API. Zostało sprawdzone, że przygotowana w ramach pracy im-plementacja jest kompatybilna zarówno z oryginalnym ImageMagickiem, jaki z biblioteką GraphicsMagick. Ostatnia ze wspomnianych bibliotek nie jestznana aż tak szeroko i może nie posiadać wersji na starsze platformy, alezapewnia nieco szybszy import i eksport plików graficznych w przypadku32- i 64-bitowych procesorów klasy x86.

Poniższy fragment kodu stanowi prostą demonstrację tego, jak łatwe jestodczytywanie plików graficznych za pomocą API biblioteki ImageMagick dlajęzyka C++:

Wycinek 4.1: Demonstracja biblioteki ImageMagick#inc lude <c s t d l i b>#inc lude <c s td io>#inc lude <Magick++.h>

// Procedura glowna programuin t main ( i n t argc , char ∗∗ argv ) {

// I n i c j a l i z a c j a , przekazujaca b i b l i o t e c e opc jona lne argumentyMagick : : I n i t i a l i z eMag i c k (∗ argv ) ;

// Obiekt op i su j a cy obrazMagick : : Image image ;

// Wskazniki na p i k s e l e na l e zace do wybranych sposrod obrazu// podmacierzyMagick : : Pixe lPacket ∗ p i x e l ;

// Przyklad : zbadamy pros tokat o wymiarach 3x4 , zaczynajacy// s i e od drug iego wie r s za i t r z e c i e j kolumny macierzy p i k s e l iunsigned i n t x0 = 1 , y0 = 2 , width = 3 , he ight = 4 ;

16 / 63

Page 17: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

// Wczytanie obrazy z p l i ku o wskazanej nazwieimage . read ( ” sample . png” ) ;

// I n i c j a l i z a c j a podmacierzy p i k s e l ip i x e l = image . g e tP i x e l s ( x0 , y0 , width , he ight ) ;

f o r ( unsigned i n t x = x0 ; x <= x0 + width ; ++x) {f o r ( unsigned i n t y = y0 ; y <= y0 + he ight ; ++y , ++p i x e l ) {

// W tym mie jscu kodu programu zbadany moze zo s tac// ko l o r danego punktu − w kole jnych i t e r a c j a c h bedz i e// mozna s i e odnos ic do poszczego lnych punktow// wybiera jac j e spod wskaznika , za pomoca zap i su// ”∗ p i x e l ” .

// Np. zap i s p ixe l−>green to poziom kanalu z i e l on e go// w biezacym punkcie .

}}

r e turn EXIT SUCCESS ;}

4.3.3 System budowania projektu

Niniejsza sekcja będzie traktować o budowaniu projektu w sensie kompi-lacji i linkowania bibliotek oraz plików wykonywalnych, które mają powstaćna podstawie przygotowanego kodu źródłowego. Do tego celu wybrane zosta-ło narzędzie GNU Make, którego składnia pozwala w prosty sposób dosto-sować flagi kompilacji i linkowania tak, aby wszystkie dodatkowe nagłówkizostały wykryte przez kompilator, a biblioteki uwzględnione podczas linko-wania.

Zaletą, która została osiągnięta dzięki wyborowi takiego rozwiązania,jest automatyczne budowanie dodatkowych bibliotek, gdy tylko w odpowied-nim dla struktury projektu miejscu pojawią się pliki z kodami źródłowymi.Dodatkowej akcji wymaga jedynie uzupełnianie informacji o budowanychplikach wykonywalnych, poprzez dopisanie ich nazw w określonej linii plikuMakefile. Ponadto, ustawienie odpowiedniej zmiennej środowiskowej pozwa-la zadecydować o włączeniu komunikatów o przebiegu programu, przydat-nych podczas tworzenia oprogramowania (oczywiście Make ustawia jedynieflagę kompilacji, a sama implementacja sposobu wypisywania komunikatówma odzwierciedlenie w kodzie źródłowym projektu).

Samodzielne tworzenie pliku Makefile pozwoliło osiągnąć prostą i łatwąw modyfikacji strukturę projektu, oraz zadecydować o szczegółach przebieguposzczególnych akcji związanych z jego budowaniem. Dzięki takiemu podej-ściu, projekt nie jest w żaden sposób powiązany z konkretnym środowiskiemprogramistycznym – do stworzenia całego projektu wystarczyła powłoka sys-temu oraz edytor tekstu.

17 / 63

Page 18: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Wycinek 4.2: Plik MakefileDEBUG?=0i f e q ( $ (DEBUG) , 1)

DEBUGFLAGS=−g −DDEBUGe l s e

DEBUGFLAGS=−DNDEBUGend i f

CXX=g++CFLAGS=−c −W −Wall −Wno−long−long −pedant icCXXFLAGS=$ (CFLAGS)LDFLAGS=‘Magick++−c on f i g −−cpp f l a g s −−l i b s ‘ $ (DEBUGFLAGS)

EXECUTABLES=b i t c l e a n t o o l showedge animation de s c r i b e \t e s t c l a s s i f i e r s sample

HEADERS=$ ( wi ldcard s r c /∗ . hpp )SOURCES=$ (HEADERS: . hpp=.cpp )EXECSOURCES=$ ( addpre f ix s r c / , $ ( add su f f i x . cpp , $ (EXECUTABLES) ) )OBJECTS=$ ( addpre f i x obj / , $ ( no td i r $ (SOURCES : . cpp=.o ) ) )EXECOBJECTS=$ ( addpre f ix obj / , $ ( no td i r $ (EXECSOURCES: . cpp=.o ) ) )

a l l : $ (SOURCES) $ (EXECSOURCES) $ (EXECUTABLES)

$ (EXECUTABLES) : $ (OBJECTS) $ (EXECOBJECTS)$ (CXX) $ (OBJECTS) obj /$@. o $ (LDFLAGS) −o $@

$ (EXECOBJECTS) : obj /%.o : s r c /%.cpp$ (CXX) $< $ (LDFLAGS) $ (CXXFLAGS) −o $@

$ (OBJECTS) : obj /%.o : s r c /%.cpp s r c /%.hpp$ (CXX) $< $ (LDFLAGS) $ (CXXFLAGS) −o $@

c l ean :−rm $ (EXECUTABLES)−rm $ (EXECOBJECTS)−rm $ (OBJECTS)

4.3.4 Narzędzia pomocnicze

Poszczególne etapy przygotowywania materiałów związanych z projek-tem, takie jak np. dostosowywanie bazy próbek do zastosowania właściwegodla niniejszej pracy, nie zawsze były ściśle związane z samymi celami pracy.Niektóre z tych operacji musiały po prostu zostać wykonane jednorazowoi nie będą musiały nigdy zostać powtórzone przez potencjalnych przyszłychużytkowników przygotowanego oprogramowania. W takich przypadkach uła-twianie wykonywania poszczególnych czynności ich na innych platformachniż moja stacja robocza było nieistotne – dotyczy to także np. generowaniawykresów do niniejszej pracy. Dlatego do takich celów wykorzystywane byłyproste skrypty powłoki bash lub języka Python. Jednakże nawet w przypad-kach opisanych powyżej, użyte przy okazji tworzenia pracy autorskie skryptyzostały zachowane w celu udokumentowania przebiegu ich działania.

Jedno z narzędzi pomocniczych służy do budowania grafu zależności po-między poszczególnymi plikami źródłowymi wchodzącymi w skład zasad-

18 / 63

Page 19: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

niczej części projektu programistycznego. W celu wizualizacji tego grafuwykorzystane zostało narzędzie GraphViz. Powstały graf jest schematycznyi nie stanowi standardowego diagramu – wyróżnione zostały w nim nazwyplików źródłowych, które kompilowane są do postaci plików wykonywalnych.

Rysunek 4.1: Zależności pomiędzy plikami źródłowymi, z których składa sięprojekt w języku C++

4.4 Dane wejściowe do testowania

Najważniejszym zbiorem obrazów do testowania projektu programistycz-nego jest jedna z baz danych biometrycznych przygotowywanych w ramachprojektu Biometrics Ideal Test (BIT). Celem projektu BIT jest wspieranierozwoju badań z dziedziny biometrii poprzez publiczne udostępnienie ba-daczom baz danych i usług. Poza samymi bazami danych, spośród którychjedna okazała się odpowiednia do zastosowania w niniejszej pracy, w ramachBIT udostępniane są usługi polegające na testowaniu poprawności oraz wy-dajności zgłaszanych algorytmów z dziedziny biometrii.

Jak się okazało podczas szukania odpowiedniej bazy danych, znalezie-nie publicznego zbioru próbek dostosowanego do testowania metod biome-

19 / 63

Page 20: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

trycznych związanych z geometrią dłoni jest nietrywialne – może to byćprzypadek, albo skutek tego, że inne metody biometryczne są bardziej po-pularne. Jednakże w ramach projektu BIT przygotowana została m. in. baza„CASIA Multi-Spectral Palmprint Database”, pozwalająca na analizę od-cisku dłoni oświetlanego światłem o różnych częstotliwościach. Pomimo za-stosowania nieco odmiennego od intencji z jaką powstała baza, okazało sięże wyśmienicie nadaje się ona do niniejszej pracy.

Baza zawierała m. in. zdjęcia dłoni oświetlanych światłem białym –po 6 różnych zdjęć dla 100 różnych osób. Spośród tych 100 osób, w 98 przy-padkach udało się wybrać co najmniej 4 zdjęcia nadające się do testów pro-gramu pisanego w ramach niniejszej pracy inżynierskiej. W sumie odrzuconezostało tylko 35 zdjęć spośród 600 – najczęściej występującym problemem,który był przyczyną odrzucenia zdjęcia, było to że nie cała dłoń zostałaujęta w kadrze.

Zdjęcia z BIT zawierały nie tylko dłoń na ciemnym tle, ale także ele-menty aparatury. Problem ten został istotnie zredukowany poprzez odpo-wiednie wykadrowanie zdjęć (na każdym z nich dłoń znajdowała się mniejwięcej w tym samym obszarze zdjęcia). Dodatkowym krokiem dostosowują-cym zdjęcia do celów pracy było zastosowanie napisanego specjalnie w tymcelu programu pomocniczego, wypełniającego ciemnym szumem wszystkopoza największym jasnym obszarem oraz jego otoczeniem o pewnym usta-lonym promieniu. Program ten jest jednym z elementów głównej części pro-jektu napisanej w języku C++ i korzysta z części tych samych nagłówków,co kluczowe narzędzia do wykrywania krawędzi i symulacji działania syste-mu identyfikacji. Masowe zastosowanie tego programu dla wszystkich zdjęćz bazy zostało zrealizowane za pomocą prostego skryptu powłoki bash.

20 / 63

Page 21: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Rozdział 5

Wykrywanie krawędzi dłonina obrazie

5.1 Wstęp

W tym rozdziale zawarty zostanie szczegółowy opis wiedzy, która w ni-niejszej pracy została wykorzystana do rozwiązywania problemu wykrywaniakrawędzi – dotyczy to w znacznej mierze wybranych do tego celu technikprzetwarzania obrazu. Zaprezentowana wiedza stanowiła będzie oczywiściegrunt dla przedstawionych w tym rozdziale rozważań na temat możliwości jejzastosowania w systemie identyfikacji człowieka opartym o analizę geometriidłoni. Opisana zostanie także relacja pomiędzy zagadnieniami teoretycznymia przygotowaną w ramach pracy implementacją programistyczną.

5.1.1 Definicja obrazu

Aby uprościć tworzenie dalszej części niniejszego rozdziału, potrzebnejest wprowadzenie formalnych definicji obrazu do których będzie można siępóźniej odwoływać.

Obraz najogólniej można rozumieć jako funkcję, która wskazującej na kon-kretny punkt prostokąta parze współrzędnych przyporządkowuje kolor, któ-ry ma być widoczny w tym punkcie. W niniejszej pracy opisane zostanąoperacje na obrazie w skali szarości, jednakże rozszerzenie ich na obrazkolorowy nie powinno sprawiać problemów, jeżeli operacje te zostaną za-stosowane np. na każdym z kanałów RGB z osobna. Jeżeli umówimy się,że jasność danego punktu obrazu w skali szarości można opisać za pomocąliczby z przedziału [0, 1], to każdy obraz o wymiarach w×h jest równoważnypewnej funkcji f : [0, w]× [0, h]→ [0, 1].

Podejście praktyczne wymaga podzielenia obrazu na kwadratowe obsza-ry, w obrębie których kolor jest stały - dzięki takiemu przybliżeniu obrazmoże zostać sprowadzony do postaci macierzy pikseli, tzn. obraz w skaliszarości (od 0 do 1 włącznie) o wymiarach w× h może zostać opisany przezmacierz h×w, której elementy należą do zbioru [0, 1] (wymiary obrazu poda-ne są w postaci szerokość×wysokość, przy czym szerokość obrazu odpowiadaliczbie kolumn macierzy, a wysokość - liczbie wierszy). Macierz pikseli cha-

21 / 63

Page 22: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

rakteryzuje się tym, że łatwo jest ją przechowywać w pamięci komputera lubserializować do postaci pliku.

Przekształcenie obrazu określonego funkcją f : [0, w] × [0, h] → [0, 1](przy założeniu w, h ∈ N) do przybliżającej go macierzy A = [aij ] o wymia-rach h× w może zostać dokonane poprzez próbkowanie środków pikseli:

∀i∈1 ...h, j ∈1 ...w aij = f

(j − 1

2, i − 1

2

)(5.1)

Albo poprzez uśrednianie wartości funkcji w odpowiednich kwadrato-wych obszarach 1× 1:

∀i∈1 ...h, j ∈1 ...w aij =i∫

i− 1

j∫j− 1

f (x, y) dx dy (5.2)

Przekształcenie w drugą stronę mogłoby po prostu polegać na budowaniufunkcji, która w obrębie kwadratów opisanych poszczególnymi pikselami jeststała. Jednakże wówczas między sąsiednimi pikselami o różnej jasności wy-stępowałyby skoki. Znacznie bardziej przydatne mogłyby się okazać metodydające w wyniku funkcję ciągłą, jak np. przybliżanie odpowiedniego obrazuza pomocą funkcji trygonometrycznych (według twierdzenia Kotielnikowa-Shannona, otrzymanie odpowiednio dokładnego przybliżenia zawsze będziemożliwe).

W dalszej części rozdziału definicje wielu operacji będą zapisywane w ję-zyku właściwym dla postaci funkcyjnej, na podstawie której wskazane zo-staną odpowiednie przybliżenia pozwalające działać na postaci macierzo-wej. Zapisanie „dokładnych” wzorów dotyczących obrazu w postaci funkcjiuważam za potrzebne, gdyż stanowią one po prostu formalizację intuicjistojącej za poszczególnymi przekształceniami, podczas gdy z samych wzo-rów macierzowych często trudno jest wywnioskować ich intuicyjne znaczenieprzekształceń.

5.1.2 Problem wykrywania krawędzi

Na początku należy wyjaśnić, jak zdefiniowany jest problem wykrywaniakrawędzi dłoni w przypadku niniejszej pracy. Danymi wejściowymi wyko-rzystywanymi do wykrywania krawędzi dłoni są obrazy, które przedstawiajądłoń na wyróżniającym się tle. Kadr rozważanych obrazów obejmuje całądłoń i ewentualnie fragment nadgarstka. Najbardziej interesującą nas krawę-dzią będzie kontur dłoni, rozumiany jako otwarta krzywa jako oddzielającadłoń od tła. Dwa końce tej krzywej będą się znajdowały na granicy kadru.

Postać macierzowa obrazu pozwala potraktować kontur dłoni w sposóbznacznie prostszy do przetwarzania - zamiast rozumianej w sensie matema-tycznym krzywej na powierzchni obrazu, można po prostu rozważać piksele

22 / 63

Page 23: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

przez które ona przechodzi. Istotny okaże się jednak nie tylko kształt liniireprezentowany przez zbiór pikseli, ale także możliwość iteracji przez ko-lejne punkty konturu, przypominająca zwiększanie parametru w przypadkukrzywych parmetrycznych. Dlatego kontur dłoni w niniejszym rozdziale zo-stanie zdefiniowany nie jako zbiór, lecz jako ciąg kolejnych pikseli należącychdo krzywej. Każdy piksel opisany będzie poprzez parę wskazującą na odpo-wiadający mu wiersz oraz kolumnę w macierzy pikseli, co jest równoważnez parą współrzędnych wskazujących na jego położenie na płaszczyźnie obra-zu.

5.2 Przekształcenia obrazu

5.2.1 Działania na pojedynczych punktach

Najprostszą klasą przekształceń obrazu są takie przekształcenia, w któ-rych wynik uzyskany dla danego punktu obrazu jest niezależny od jego po-łożenia oraz od kolorów pozostałych punktów. Złożoność obliczeniowa tychprzekształceń jest wyjątkowo prosta do wyznaczenia – jest ona klasy O(w·h),czyli wprost proporcjonalna do powierzchni obrazu. Dla algorytmów, któremają dokonywać tego typu przekształceń na postaci macierzowej, bardzołatwe jest zrównoleglenie wykonywanych operacji.

Rozjaśnienie

Jednym z najprostszych przekształceń mających opisaną powyżej wła-sność jest rozjaśnienie (lub przyciemnienie) obrazu, czyli mnożenie jasnościwszystkich punktów przez pewien nieujemny współczynnik k – dla k > 1 bę-dziemy mieli do czynienia z rozjaśnieniem, dla k < 1 – z przyciemnieniem,zaś dla k = 1 - z przekształceniem identycznościowym. Rozważmy obrazopisany pewną funkcją f : [0, w]×[0, h]→ [0, 1]. Wynikiem opisanego wyżejprzekształcenia będzie obraz g : [0, w]× [0, h]→ [0, 1] taki, że:

∀x∈[0, w], y ∈[0, h] g(x, y) = max{k · f(x, y), 1} (5.3)

Wzór opisujący analogiczne przekształcenie dla obrazu danego w postacimacierzy A = [aij ] o wymiarach h × w jest analogiczny – wynikiem prze-kształcenia będzie wówczas taka macierz B = [bij ] o wymiarach h × w,że:

∀i∈1 ...h, j ∈1 ...w bij = max{k · aij , 1} (5.4)

23 / 63

Page 24: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Należy zwrócić uwagę, że ze względu na konieczność normalizacji do prze-działu [0, 1] przy rozjaśnianiu, powyższy wzór nie zawsze da się zastąpićmnożeniem macierzy przez skalar.

Normalizacja do przedziału [0, 1]

W obrazach w skali szarości, w których najciemniejszy punkt nie jestwcale czarny lub najjaśniejszy punkt nie jest biały, czytelność obrazu mo-że zostać poprawiona poprzez poddanie jasności wszystkich punktów prze-kształceniu za pomocą takiej funkcji liniowej, która najciemniejszemu punk-towi przyporządkuje kolor czarny, zaś najjaśniejszemu - biały. Aby przed-stawione wzory miały sens, konieczne jest założenie, że istnieją pewne dwapunkty obrazu (albo pewne dwie komórki macierzy), które różnią się międzysobą jasnością, tak aby punkt najjaśniejszy miał jasność różną od punktunajciemniejszego.

Wzory opisujące to przekształcenie nie różnią się istotnie od wzorówprzedstawionych w poprzedniej sekcji pracy – wystarczy od jasności każdegopunktu odjąć jasność najciemniejszego punktu obrazu, a następnie dokonaćrozjaśnienia ze współczynnikiem k będącym odwrotnością różnicy międzyjasnością najjaśniejszego, a najciemniejszego punktu obrazu.

Niniejsze przekształcenie zostało zaimplementowane w projekcie progra-mistycznym jako metoda normalize klasy GrayscaleMatrix.

Poniższy przykład wygenerowany przez własną implementację omawia-nego przekształcenia ilustruje poprawę w czytelności obrazu. Normalizacjęmożna stosować z dużą swobodą, gdyż jeżeli interesują nas jedynie względ-ne różnice między jasnościami punktów, a nie bezwzględne wartości jasności- to w wyniku zastosowania tego filtru żadna cenna informacja nie jest tra-cona. Sposób wybierania współczynnika rozjaśnienia zapewnia, że jasnośćżadnego punktu nie zostanie „obcięta” przy rozjaśnianiu.

Rysunek 5.1: Przykładowy obraz przed i po normalizacji

24 / 63

Page 25: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Progowanie

W niniejszej sekcji opisane zostanie najprostsze, binarne progowanie, któ-rego skutkiem ma być przypisanie każdemu punktowi koloru czarnego albobiałego. Parametrem tego przekształcenia jest próg k ∈ [0, 1] – wszystkiepunkty o jasności mniejszej niż k w wyniku przekształcenia staną się czarne,zaś punkty o jasności większej lub równej k – białe.

Dla danego obrazu f : [0, w]× [0, h]→ [0, 1] wynikiem progowania jestobraz czarno-biały g : [0, w]× [0, h]→ {0, 1}, taki że:

∀x∈[0, w], y ∈[0, h] g(x, y) =

{0 dla f(x, y) < k

1 dla f(x, y) ­ k(5.5)

Obraz czarno-biały oczywiście można równie dobrze traktować jako ob-raz w skali szarości, zmieniając dziedzinę z opisu funkcji na jej nadzbiór.

Regułą przy działaniach na pojedynczych punktach jest prostota wska-zywania analogicznej funkcji dla postaci macierzowej. Z macierzy A = [aij ]o wymiarach h× w otrzymujemy macierz B = [bij ] (wymiary bez zmian),dla której:

∀i∈1 ...h, j ∈1 ...w bij =

{0 dla aij < k

1 dla aij ­ k(5.6)

Opisane powyżej progowanie na podstawie podanego progu zostało za-implementowane w konstruktorach klasy BoolMatrix, które jako argumentprzyjmują obiekt typu GrayscaleMatrix albo nazwę pliku z obrazem.

Poniższy przykład pokazuje jak dla przykładowego obrazu mogą wyglą-dać wyniki operacji progowania przy zastosowaniu coraz większej wartościprogu. Jak widać, na trzecim obrazku otrzymaliśmy białą dłoń ściśle oddzie-loną do ciemnego tła – otrzymywanie podobnych do tego wyników wymagajednak wyboru właściwej wartości progu, co zostanie omówione w dalszejczęści rozdziału.

Rysunek 5.2: Obraz oryginalny oraz wyniki jego próbkowania przy rosnącymprogu

25 / 63

Page 26: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

5.2.2 Splot obrazów

W tej sekcji zostaną opisane operacje znane jako splot funkcji oraz splotmacierzy. Operacja splotu obrazów jest bardzo ogólna i w niniejszej pracy niejest w zasadzie stosowana na parach obrazów wczytanych z plików – zawszejeden ze splatanych obrazów jest obrazem przetwarzanym, zaś drugi – pewnąstałą maską, od której zależy to, jaki sens będzie miał wynik przekształcenia.Jeżeli rozmiar maski zostanie potraktowany jako stała, to także w tym wy-padku złożoność obliczeniowa będzie wprost proporcjonalna do powierzchniobrazu.

Splot obrazów jest uniwersalnym narzędziem, które może zostać wyko-rzystane np. do rozmywania obrazu, wyostrzania, wykrywania krawędzi po-przez wyznaczanie laplasjanów albo wartości operatora Sobela, albo do na-noszenia na obraz efektów artystycznych (np. do wykonywania „płasko-rzeźb”). Obecność implementacji splotu macierzy w przygotowanym pro-jekcie programistycznym znacznie ułatwiła przygotowanie znacznej częścispośród wspomnianych filtrów. Uzupełnienie projektu o implementację po-zostałych z nich także byłoby bardzo proste (czyni to przygotowany projektprogramistyczny potencjalnie uniwersalnym narzędziem do obróbki obrazu).

Jeżeli splatana z obrazem maska jest znacznie mniejsza od samego ob-razu, to można zauważyć, że filtry oparte o taki splot polegają na prze-kształceniu jasności w poszczególnych punktach w oparciu o odpowiadająceim punkty oryginalnego obrazu oraz ich sąsiedztwa o niedużym promieniu.

Mając dane funkcje obrazów f : [0, w] × [0, h] → [0, 1] orazg : [0, v]× [0, u]→ [0, 1], splotowi obrazów będzie odpowiadała następującafunkcja s : [0, w + v]× [0, u + h]→ [0, 1]:

∀x∈[0, w + v], y ∈[0, u + h] s(x, y) =

=

min{y, h}∫max{0, y−u}

min{x,w}∫max{0, x−v}

f(z, t) · g(x− z, y − t) dz dt(5.7)

Odpowiednie granice całkowania stanowią rozwiązanie problemu brze-gu – przy określeniu ich w sposób zapisany we wzorze 5.7 zapewniamy,że we wszystkich rozważanych punktach funkcje f oraz g są określone, a za-tem powyższy wzór ma sens.

Gdyby zamiast „wszystkich” punktów płaszczyzny obrazu w analogicz-nym rozumowaniu brać pod uwagę tylko środki kwadratów reprezentowa-nych przez pola macierzy, to zamiast operacji podobnej do splotu funkcjiotrzymalibyśmy operację opartą na splocie macierzy (z dodatkowo uwzględ-nionym problemem brzegu). Rozważmy macierz A = [aij ] o wymiarachh× w oraz B = [bij ] o wymiarach u× v. Splot tych dwóch macierzy pikseli

26 / 63

Page 27: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

będziemy definiowali jako taką macierz C = [cij ] o wymiarach (h+ u− 1)×(w + v − 1), że:

∀i∈1 ...h + u − 1, j ∈1 ...w + v − 1 ci,j =

=min{i−1, h}∑

k= max{1, i−u}

min{j−1, w}∑m= max{1, j−v}

(ak,m · bi−k,j−m)

(5.8)

Tak ujęte wzory na splot obrazów po prostu nie uwzględniają w całka-ch/sumach punktów, które nie są opisane w danym obrazie. Oznacza to,że wyniki splotu będą zaciemnione w pobliżu brzegów wynikowego obrazu(brak uwzględniania jasności punktów spoza obrazu jest równoważny przy-jęciu, że są one czarne). Aby uniknąć tego problemu, można rozszerzyć jedenze splatanych obrazów poprzez powtórzenie punktów z jego krawędzi i ro-gów, a następnie wykadrować otrzymany splot tak, aby nadmiarowe danenie wpłynęły na jego rozmiar. Takie właśnie podejście zostało zastosowanew procedurze applyMask zaimplementowanej w ramach projektu programi-stycznego.

Poniżej przedstawiony jest przykładowy obraz, oraz wynik jego splo-tu z obrazem opisanym macierzą

[ 0 0 01 0 −10 0 0

]. Zastosowanie opisanej w po-

przednich rozdziałach normalizacji pozwoliło na uzyskanie czytelnego obra-zu, dzięki wyeliminowaniu wartości mniejszych od 0.

Rysunek 5.3: Płaskorzeźba: wynik splotu z odpowiednią macierzą 3×3 i nor-malizacji

5.2.3 Rozmycie Gaussa

Rozmycie obrazu przeważnie polega na tym, że jasność danego punk-tu obrazu zastępowana jest pewnego rodzaju uśrednioną wartością jasnościpunktów z jego otoczenia. Taka właśnie idea przyświeca stosowaniu rozmy-cia Gaussa – dla danego punktu rozważa się wszystkie możliwe przesunięciapłaszczyzny obrazu, z prawdopodobieństwami wynikającymi z dwuwymia-rowego rozkładu normalnego (Gaussa). Wynikiem przekształcenia jest war-tość oczekiwana jasności punktu po przesunięciu – oczywiście oznacza to,

27 / 63

Page 28: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

że najsilniej brane pod uwagę są obszary znajdujące się najbliżej rozważa-nego punktu. Specyficzny wzór na rozmycie Gaussa dla danej funkcji obrazuf : [0, w]× [0, h]→ [0, 1] można by zatem zapisać następująco:

∀x∈[0, w], y ∈[0, h] s(x, y) =h∫0

w∫0

f(z, t) · φµ,σ(x− z) · φµ,σ(y− t) dz dt

(5.9)

Funkcja gęstości dwuwymiarowego wektora losowego opisującego rozkładnormalny ma tę własność, że może zostać zastąpiona iloczynem dwóch funk-cji gęstości jednowymiarowych rozkładów normalnych, których argumentyzmieniają się proporcjonalnie do prostopadłych współrzędnych. Zatem dwu-wymiarowy rozkład normalny można potraktować jako koniunkcję dwóchniezależnych rozkładów jednowymiarowych – a ze względu na ich niezależ-ność, koniunkcja może zostać zastąpiona iloczynem.

Poza bezpośrednim podejściem do problemu rozmycia Gaussa, w takpostawionym rozumowaniu łatwo jest zauważyć równoważność z zagadnie-niem opisanego w poprzedniej sekcji splotu obrazów. Jeżeli zamiast funkcjiopisującej jeden z obrazów zastosujemy dwuwymiarowy rozkład normalny,to w wyniku otrzymamy właśnie opisane powyżej rozmycie Gaussa. Jedy-nym problemem pozostanie zastosowanie odpowiednich przesunięć i obcięć,gdyż teoretycznie dwuwymiarowy rozkład normalny, będący funkcją postacig : R2 → [0, 1], mógłby opisywać obraz nieograniczony (całą płaszczyznę).Pominięcie punktów najbardziej odległych od początku układu współrzęd-nych może jednak zostać uznane za bezpieczne – wystarczy umówić się na do-puszczalny błąd o wartości ε i wybrać z rozkładu normalnego ograniczonyobszar, z którego całka wyniesie co najmniej 1− ε.

Przybliżone rozmycie Gaussa dla macierzy można zatem zrealizować ja-ko splot macierzy obrazu z maską, która stanowi przekształcenie kwadra-towego, przeskalowanego fragmentu dwuwymiarowego rozkładu normalnegodo postaci macierzy pikseli, według postępowania opisanego wzorem 5.2.

W ten właśnie sposób zostało to zrealizowane w projekcie programistycz-nym przygotowanym w ramach pracy inżynierskiej – wyznaczanie rozmyciaGaussa o różnym stopniu przeskalowania rozkładu normalnego i odpowiada-jących mu kwadratowych masek o różnych rozmiarach zostało zaimplemen-towane w ramach funkcji applyBlur. Funkcja ta wykorzystuje wspomnianąwcześniej procedurę applyMask, zatem postępowanie następujące po wyge-nerowaniu macierzy maski jest zgodne ze wzorem 5.8. W celu samego wy-znaczania całek oznaczonych z rozkładu Gaussa po określonych obszarach,obliczane są po prostu różnice między wartościami dystrybuanty na koń-cach tych obszarów. Obliczanie samych wartości dystrybuanty jest ułatwio-ne dzięki obecności funkcji erf (funkcji błędu Gaussa) w bibliotece mate-matycznej języka C i C++.

28 / 63

Page 29: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

W wykonanej implementacji wybrane zostały parametry rozkładu µ = 0,σ = 1

2 . Rozkład jest skalowany tak, aby budować macierze o różnych rozmia-rach i dokonywać rozmyć o różnych pozornych promieniach. Skalowanie jestdobierane do żądanego rozmiaru maski w taki sposób, aby suma wartościwszystkich jej pól wynosiła nie mniej niż 0, 95.

Rysunek 5.4: Rozmycie Gaussa przy różnym skalowaniu dwuwymiarowegorozkładu normalnego

5.2.4 Wykrywanie spójnych składowych

W ramach dyskusji metod przekształcania i analizy obrazów, które zo-stały zastosowane w niniejszej pracy, należy wspomnieć o problemie wykry-wania spójnych obszarów o jednakowym kolorze (najczęściej będzie to do-tyczyło obrazów czarno-białych).

Przede wszystkim należy tutaj umówić się co do definicji spójnej składo-wej obrazu. W przypadku rozumienia obrazu jako funkcji oczywiście chodzio spójny podzbiór zbioru argumentów, dla którego wartości funkcji obrazuspełniają odpowiednie kryteria – można się tutaj odwołać do definicji zbioruspójnego, tzn. zbioru domkniętego, którego nie da się przedstawić w postacisumy dwóch rozłącznych i niepustych zbiorów domkniętych.

Znacznie ciekawszy jest istotny dla praktycznych rozważań przypadekmacierzy pikseli. Zdefiniujmy, że dla każdego piksela możemy mówićo „4-sąsiadach”, czyli pikselach mających z nim wspólny bok, oraz„8-sąsiadach” którzy mają z nim wspólny bok lub róg (odpowiada to ter-minom 4-neighbours i 8-neighbours stosowanym m. in. w [1, 3]). Spójnympodzbiorem zbioru pikseli będzie zatem taki zbiór, w którym każdą paręelementów da się połączyć taką ścieżką pikseli należących do tego zbio-ru, że następujące po sobie elementy ścieżki są odpowiednio 4-sąsiadamilub 8-sąsiadami. W niniejszej pracy określenie „spójna składowa” odnosisię do wersji z 4-sąsiadami, o ile nie jest zaznaczone inaczej. Oznacza to,że ukośna linia składająca się z kolejnych pikseli mających wspólne rogimoże rozdzielać dwie różne spójne składowe.

Takie definicje spójnych składowych są w pełni zgodne z teorią gra-fów, jeżeli macierz pikseli potraktujemy jako graf, w którym wierzchołkami

29 / 63

Page 30: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

są same piksele, zaś krawędziami połączone są wszystkie pary sąsiadów wy-branego rodzaju.

Dlatego do celu wykrywania „spójnych składowych obrazu” wykorzysta-ne są odpowiednio dostosowane implementacje algorytmów przeszukiwaniagrafu – najczęściej jest to przeszukiwanie grafu wszerz (BFS – breadth-firstsearch).

Wycinek 5.1: Przykład zastosowania przeszukiwania grafu// Zamalowywanie czarnego obszaru obrazu czarno−b i a l e g o na b i a l o// za pomoca przeszuk iwania gra fu wszerz .//// Zwracana wartosc : powierzchnia wypelnionego obszaru .unsigned i n t b f s F i l l ( BoolMatrix &bm, Point const &p) {

std : : vector<Point> th i sLayer , nextLayer ;unsigned i n t r e t = 0 ;

th i sLayer . push back (p ) ;r e t = bm[ p . y ] [ p . x ] ? 0 : 1 ;bm[ p . y ] [ p . x ] = true ;

whi l e ( ! th i sLayer . empty ( ) ) {nextLayer . c l e a r ( ) ;f o r ( unsigned i n t i = 0 ; i < th i sLayer . s i z e ( ) ; ++i ) {

// Gorny 4− s a s i adi f ( th i sLayer [ i ] . y > 0

&& ! bm[ th i sLayer [ i ] . y − 1 ] [ th i sLayer [ i ] . x ] ) {bm[ th i sLayer [ i ] . y − 1 ] [ th i sLayer [ i ] . x ] = true ;++re t ;nextLayer . push back ( Point ( th i sLayer [ i ] . x ,

th i sLayer [ i ] . y − 1 ) ) ;}

// Prawy 4− s a s i adi f ( th i sLayer [ i ] . x < bm. getCol s ( ) − 1

&& ! bm[ th i sLayer [ i ] . y ] [ th i sLayer [ i ] . x + 1 ] ) {bm[ th i sLayer [ i ] . y ] [ th i sLayer [ i ] . x + 1 ] = true ;++re t ;nextLayer . push back ( Point ( th i sLayer [ i ] . x + 1 ,

th i sLayer [ i ] . y ) ) ;}

// Dolny 4− s a s i adi f ( th i sLayer [ i ] . y < bm. getRows ( ) − 1

&& ! bm[ th i sLayer [ i ] . y + 1 ] [ th i sLayer [ i ] . x ] ) {bm[ th i sLayer [ i ] . y + 1 ] [ th i sLayer [ i ] . x ] = true ;++re t ;nextLayer . push back ( Point ( th i sLayer [ i ] . x ,

th i sLayer [ i ] . y + 1 ) ) ;}

// Lewy 4− s a s i adi f ( th i sLayer [ i ] . x > 0

&& ! bm[ th i sLayer [ i ] . y ] [ th i sLayer [ i ] . x − 1 ] ) {bm[ th i sLayer [ i ] . y ] [ th i sLayer [ i ] . x − 1 ] = true ;++re t ;nextLayer . push back ( Point ( th i sLayer [ i ] . x − 1 ,

th i sLayer [ i ] . y ) ) ;}

}th i sLayer . swap ( nextLayer ) ;

30 / 63

Page 31: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

}

r e turn r e t ;}

5.3 Metody wykrywania krawędzi

5.3.1 Operator Laplace’a

Jedną z miar pozwalających stwierdzić, w jakim stopniu prawdopodobnejest że dany punkt obrazu zalicza się do krawędzi znajdującego się na obrazieobiektu jest operator Laplace’a. Mamy do czynienia z układem kartezjań-skim, zatem wartość laplasjanu w określonym punkcie (o ile funkcja obrazujest w nim podwójnie różniczkowalna) może być obliczana ze wzoru:

∀x∈[0, w], y ∈[0, h] ∆f(x, y) =δ2f

δx2+

δ2f

δy2(5.10)

Zastosowanie operacji matematycznej bazującej na ciągłości funkcji możesię wydawać problematyczne, jeżeli mamy do czynienia z macierzą pikseli.Można się tutaj jednak odwołać do stojącej za laplasjanem intuicji – jestto miara tego, w jakim stopniu dany punkt różni się od swojego sąsiedz-twa. Występującą w literaturze metodą obliczania „dyskretnego operatoraLaplace’a” jest np. dokonanie splotu macierzy pikseli z macierzą postaci:

M =

1 1 11 − 8 11 1 1

(5.11)

Takie podejście ma jednak wadę polegającą na tym, że ten sam obraz mo-że dawać zupełnie różne co do znaczenia wyniki, jeżeli zmieniona zostaniejego rozdzielczość. Podejściem nieco bardziej uniwersalnym i adekwatnymdla dużych obrazów może być zatem stosowanie metody równoważnej za-stosowaniu macierzy nieco innej postaci: dla każdego punktu może zostaćwyznaczona różnica pomiędzy jego jasnością, a otrzymanym dla niego wy-nikiem rozmycia Gaussa o promieniu dostosowanym do rozmiarów obrazu.Metoda ta jest określana jako zastosowanie masek wyostrzających (USM –unsharp masking).

Poniżej przedstawiony jest przykład działania filtru wyznaczającego war-tości dyskretnego operatora Laplace’a, który został zaimplementowany w ra-mach projektu programistycznego.

31 / 63

Page 32: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Rysunek 5.5: Przykładowy obraz, operator Laplace’a i wartości bezwzględneoperatora Laplace’a

5.3.2 Operator Sobela

Operator Sobela jest narzędziem ściśle związanym z macierzami pikse-li, jednak nietrudno sobie wyobrazić jego rozwinięcie na potrzeby dowolnejfunkcji obrazu.

Rozumiana przeze mnie intuicja stojąca za operatorem Sobela polegana tym, aby dla danego punktu obrazu wyznaczać maksimum spośród war-tości pochodnych kierunkowych we wszystkich możliwych kierunkach. Ozna-cza to, że niezależnie od tego jak skierowana jest krawędź, w taki sam sposóbwpłynie ona na wartość operatora Sobela w punkcie przez który przechodzi.

W klasycznym przypadku, dotyczącym dostosowania tego rozumowaniado macierzy pikseli, operator Sobela oblicza się jako wartość tego spośródczterech splotów obrazu z poniższymi maskami, dla którego ma ona naj-większy moduł:

M1 =

1 2 10 0 0− 1 − 2 − 1

M2 =

0 1 1− 1 0 2− 2 − 1 0

M3 =

−1 0 1− 2 0 2− 1 0 1

M4 =

−2 − 1 0− 1 0 10 1 2

(5.12)

W projekcie programistycznym zaimplementowany został operator So-bela wykorzystujący powyższe macierze.

32 / 63

Page 33: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Rysunek 5.6: Przykładowy obraz, operator Sobela i wartości bezwzględneoperatora Sobela

5.3.3 Algorytm Canny’ego

Z ogólnie postawionym problemem wykrywania krawędzi często łączy sięsekwencja czynności określana jako algorytm Canny’ego. Kolejne czynnościwykonywane w ramach tego algorytmu mogłyby wyglądać następująco:

• Redukcja szumu – ten krok można zrealizować np. za pomocą opisa-nego w poprzednich sekcjach tego rozdziału rozmycia Gaussa.

• Szukanie punktów, które należą do krawędzi – miarą może tutaj byćwartość bezwzględna operatora Laplace’a lub operatora Sobela.

• Redukcja grubości krawędzi – ten krok jest podejmowany po to, abywyznaczone krawędzie miały „grubość” jednego piksela, oraz aby bar-dziej łagodne krawędzie były rozważane tylko raz.

• Usuwanie najmniej stromych krawędzi.

Tak zdefiniowany algorytm jest bardzo przydatny, jeżeli chcemy w ra-mach obrazu wyróżnić wszystkie najwyraźniejsze krawędzie widocznychna nim obiektów. Stosując tę metodę wybierania punktów krawędzi mamydo czynienia nie tylko z konturami obiektów, lecz możemy także obserwo-wać krawędzie znajdujące się wewnątrz nich – może to dotyczyć np. analizyodcisku dłoni.

Jednakże samo wyznaczenie konturu dłoni przy zapewnieniu, że dłoń jestwyraźnie największym jasnym obiektem który można wyróżnić na ciemnymtle, musi zostać rozwiązane w inny sposób. Okazuje się, że algorytm Can-ny’ego wcale nie ułatwia ustalenia, które krawędzie dotyczą granicy międzydłonią a ciemnym tłem, zaś które znajdują się wewnątrz bądź na zewnątrzdłoni. Oczywiście algorytm ten mógłby zostać zastosowany już po wyróżnie-niu dłoni, aby analizować szczegóły jej odcisku – w niniejszej pracy jednakjedyna interesująca nas krawędź dłoni zdefiniowana została jako linia sepa-rująca dłoń od tła, i do dalszej analizy biometrycznej wystarczy nam tylkoona.

33 / 63

Page 34: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Rozwiązaniem korzystającym z filtrów opisanych we wcześniejszych kro-kach, które jest znacznie prostsze i właściwsze dla problemu wyznaczaniasamego konturu dłoni, będzie specyficzny rodzaj progowania, którego szcze-góły opisane są w następnej sekcji.

5.3.4 Wyróżnienie dłoni poprzez selektywne progowanie

Jak pokazuje wygenerowany przez proste progowanie rysunek 5.2, w za-leżności od wybranego progu możemy wyróżnić spośród obrazu pewiennadzbiór dłoni, samą dłoń, albo najjaśniejszy podzbiór dłoni o zdeformowa-nym kształcie. Pierwszym krokiem postępowania, które okazało się skutecz-ne wobec postawionego problemu wykrywania konturu dłoni, będzie wyróż-nienie wszystkich punktów należących do dłoni, czyli jej sylwetki. Zostanieto dokonane poprzez specyficzne progowanie, w którym próg będzie zawszedostosowywany do danego obrazu. Będzie to jeden z etapów przetwarza-nia o złożoności O(w · h), gdzie w i h to wymiary obrazu. Dodatkowy kroko złożoności pesymistycznej zależnej co najwyżej liniowo od powierzchniprzetwarzanego obrazu oczywiście nie popsuje ogólnej złożoności pesymi-stycznej (a i tak nie będzie ona lepsza, gdyż nawet samo wczytywanie obrazudo pamięci ma taką złożoność).

Okazuje się, że dla każdego z rozważanych obrazów da się wskazać zado-walający próg, który w dobrym przybliżeniu pozwala oznaczyć punkty dłonijako białe i punkty tła jako czarne. Nieduże czarne obszary wewnątrz dłoni,które nie będą styczne z jej krawędzią, podobnie jak nie stykające się z dło-nią białe plamy w obrębie ciemnego tła są przy progowaniu nieuniknione– lecz problem ten może zostać wyeliminowany w dalszej części przetwarza-nia obrazu i nie musimy się nim teraz przejmować. Wystarczy wskazać takipróg, przy którym „niepasujące” plamki będą jak najmniejsze i jak najmniejliczne (tak aby ryzyko kolizji plamek z krawędzią było minimalne).

Wskazywanie właściwego progu opiera się na badaniu histogramu roz-mytego obrazu dłoni. Rozmycie sprawia, że wyeliminowane jest ryzyko przy-padkowych skoków wewnątrz histogramu, dzięki czemu dominują w nim dwawyraźnie rozdzielone rozkłady normalne – o maksimach w średnich warto-ściach jasności ciemnego punktu tła oraz jasnego punktu dłoni. Dzięki za-stosowaniu średniej kroczącej, rozwiązany zostaje też problem kwantyzacjikolorów obrazu wejściowego, która może być źródłem zakłóceń dla histogra-mu. Histogram budowany jest w oparciu o pewne wąskie przedziały liczbowe(jasność punktu nadal traktujemy jako liczbę z przedziału [0, 1]). Opisanaw poprzednich sekcjach normalizacja jasności wszystkich punktów obrazu,wykonywana pomiędzy rozmyciem a badaniem historgramu, zapewnia że na-wet skrajne spośród badanych przedziałów nie będą puste – warto tutaj za-uważyć, że ze względu na specyfikę badanych obrazów, po rozmyciu Gaussaobraz nie zawiera punktów dokładnie białych, zatem normalizacja zawszerozjaśnia dłoń i przyciemnia tło.

34 / 63

Page 35: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Histogram przekształconego w opisany sposób obrazu może wyglądaćnastępująco:

0

500

1000

1500

2000

2500

3000

3500

0 0.2 0.4 0.6 0.8 1

Licz

ba p

unkt

ów

Poziom jasności

Rysunek 5.7: Histogram rozmytego i znormalizowanego obrazu

Aby zredukować liczbę znajdujących się blisko siebie maksimów lokal-nych, na histogramie można zastosować ważoną średnią kroczącą, w którejwartości poszczególnych wag przypominają rozkład normalny (w istocie jestto równoważne z omawianym wcześniej rozmyciem Gaussa, lecz tym razemoperacja wykonywana jest w jednym wymiarze).

Po rozpoznaniu położenia środków dwóch dominujących rozkładów nor-malnych, których sumą jest badany histogram, poziom jasności stanowiącyminimum z histogramu pomiędzy tymi środkami stanowi dobry próg do roz-dzielenia dłoni od tła. Dzięki zastosowaniu rozmycia, takie minimum niepowinno się znaleźć pomiędzy jasnościami punktów należących do dłoni anido tła. Proces dobierania odpowiedniego progu wykonywany jest przez pro-cedurę calculateLevel, zaimplementowaną w ramach projektu programistycz-nego.

Wybranie odpowiedniego poziomu progowania pozwala doprowadzićdo sytuacji, w której najistotniejszym białym obszarem pośródczarno-białego obrazu jest właśnie dłoń.

35 / 63

Page 36: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Rysunek 5.8: Wynik selektywnego progowania

5.3.5 Budowanie sekwencji punktów należących do krawędzi

Po wykonaniu operacji opisanej w poprzedniej sekcji, otrzymujemy obrazw którym najistotniejszym białym fragmentem powinna być dłoń. Niestetynadal brakuje nam obiektywnej miary pozwalającej stwierdzić, co w tymwypadku znaczy zrozumiałe dla człowieka sformułowanie „najistotniejszy”.

Zastosowana metoda wykorzystuje fakt, że badane dłonie skierowanesą w lewą stronę - tzn. prawa krawędź obrazu zawiera dwa jasne punk-ty należące do konturu dłoni lub nadgarstka. Zaimplementowany algorytmszuka najdłuższej takiej ścieżki punktów należących do krawędzi pewnegobiałego obszaru, której oba końce znajdują się w ostatniej kolumnie ma-cierzy pikseli. Jako punkty należące do krawędzi pewnego białego obszaruwybierane są te białe punkty, które posiadają czarnego 4-sąsiada. Zastosowa-ny algorytm rozważa wiele ścieżek (uzyskane w wyniku progowania obrazyrzadko są aż tak proste w przetwarzaniu, aby szukana ścieżka była jedy-na). W przypadku rozwidlenia ścieżek, rozważane są wszystkie możliwości,a na końcu najdłuższa z nich jest sklejana z fragmentem, który prowadziłod prawej krawędzi obrazu do rozwidlenia. Opisane podejście wymaga odpo-wiedniej kolejności przeszukiwania kolejnych potencjalnych punktów ścieżki(jest to podejście oparte na przeszukiwaniu grafu wszerz) – podobna meto-da została opisana w [1] pod nazwą Global Processing via Graph-TheoreticTechniques. Dla danego punktu, jego 8-sąsiedzi mogą być odwiedzani w ko-lejności zgodnej lub przeciwnej do ruchu wskazówek zegara. Gdy łączonesą dwie ścieżki wychodzące z różnych punktów prawej krawędzi obrazu, któ-re spotykają się końcami – jedna z nich jest odwracana, tak aby rozważaneścieżki zawsze były spójne.

Zbudowany w opisany powyżej sposób ciąg punktów stanowi szukanąkrawędź dłoni w postaci ścieżki, tzn. takiej sekwencji kolejnych punktów,że każdy kolejny jest przynajmniej 8-sąsiadem poprzedniego. Przygotowanenarzędzie pozwala na tworzenie prostych animacji „obrysowywania” dłoni,poprzez pokazywanie coraz większej liczby punktów ścieżki – poniżej przed-stawiono kilka jej klatek.

36 / 63

Page 37: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Rysunek 5.9: Odrysowywanie krawędzi przykładowej dłoni

37 / 63

Page 38: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Rozdział 6

System identyfikacjiczłowieka

6.1 Wstęp

Ten rozdział poświęcony jest opisowi kwestii związanych z systememidentyfikacji człowieka, który wykorzystuje próbki biometryczne w postacisekwencji punktów należących do konturu dłoni. Taka postać jest uzyskiwa-na na podstawie zdjęcia dłoni, za pomocą metod opisanych w poprzednimrozdziale. Dalsze etapy potrzebne do działania systemu identyfikacji i weryfi-kacji użytkowników obejmują: wyznaczanie wektorów cech odpowiadającychposzczególnym próbkom, oraz zadanie klasyfikacji w zbiorze wektorów po-chodzących do wielu użytkowników systemu.

6.2 Opisywanie konturu dłoni za pomocą wektoracech

6.2.1 Interpretacja danych wejściowych

Przy wykorzystaniu metod opisanych w poprzednim rozdziale, na pod-stawie spełniającego kilka prostych założeń zdjęcia ludzkiej dłoni otrzy-mywany jest opis jej konturu, w postaci ciągu par współrzędnych kolej-nych punktów. Tak zdefiniowana krawędź dłoni jest oczywiście równoważnaczarno-białej mapie bitowej, na której krawędź ta jest przedstawiona. Jed-nakże w tym wypadku rozważanie mapy bitowej nie będzie nam potrzebnew do zastosowania metod przetwarzania obrazu, ale raczej po to aby mócrozważać zbiór pikseli jako przestrzeń metryczną. Odległości najczęściej bę-dą rozumiane według definicji znanych z metryki euklidesowej w R2, gdziewspółrzędne punktów będą równoważne parze (numer kolumny, numer wier-sza) w macierzy pikseli. Jednostką odległości będzie zatem długość bokukwadratu opisywanego przez jeden piksel. Odległość między punktami moż-na będzie zatem wyznaczać za pomocą obecnej w bibliotece matematycznejjęzyków C/C++ funkcji hypot.

38 / 63

Page 39: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

6.2.2 Wyznaczanie punktów charakterystycznych

Mając daną macierz bitową, na której wartościami 1 oznaczone są tylkopunkty należące do krawędzi dłoni, możemy w prosty sposób „zamalować”wnętrze dłoni jedynkami, wykorzystując metodę opisaną w sekcji 5.2.4. Takaoperacja może się wydawać redundantna, gdyż jest to powrót do postaci któ-ra była wyznaczana w pamięci programu w ramach działania poprzedniegomodułu – jednakże alokacja tej pamięci i działanie na macierzach bitowychi tak będą w tym module potrzebne, chociażby przy okazji wyznaczaniapól powierzchni fragmentów dłoni. Aby uzyskać sylwetkę dłoni przy użyciuwspomnianej metody, wystarczy wybrać czarny punkt początkowy, któryna pewno należy do wnętrza dłoni, a nie do obszaru poza dłonią – takimpunktem na pewno jest środek odcinka łączącego końce ścieżki opisującejkrawędź dłoni (tak zdefiniowany punkt powinien znajdować się pomiędzyśrodkiem nadgarstka a środkiem dłoni). W ten sposób możemy otrzymaćbiałą sylwetkę dłoni na czarnym tle – podobnie jak po selektywnym pro-gowaniu, lecz że tym razem już nie będziemy mieli do czynienia z żadnymiczarnymi punktami wewnątrz dłoni ani białymi poza dłonią.

Pierwszym zupełnie nowym zagadnieniem wprowadzonym w ramach te-go rozdziału będzie szukanie punktu intuicyjnie związanego ze środkiem syl-wetki dłoni – będzie on od tej pory, dla uproszczenia, nazywany centroidemdłoni. Punkt ten nie powinien znajdować się w obrębie palców, lecz bliżejmiejsca które potocznie rozumielibyśmy jako „środek dłoni”. Spełniającyto założenie centroid jest wyznaczany jako punkt, który zostanie odwiedzo-ny jako ostatni przez procedurę BFS (przeszukiwanie grafu wszerz), któraprzeszukuje całą dłoń począwszy od jej konturu. Wracając do interpretacjimacierzy pikseli jako grafu, w którym 4-sąsiedzi są połączeni krawędziami,można powiedzieć że taki centroid jest najdalszym punktem od krawędzi dło-ni w sensie sortowania topologicznego. Opisana metoda jest zaimplemento-wana w ramach funkcji findCentroid, która jest obecna jako funkcja pomoc-nicza w pliku describe.cpp (plik ten jest kompilowany do postaci narzędziagenerującego wektor cech na podstawie konturu dłoni).

Taki właśnie sposób wybierania centroidu jest istotny, gdyż zapewnia,że uzyskany punkt będzie się znajdował we wnętrzu dłoni. Dla porównaniamoże zostać rozważony stosowany w podobnych przypadkach środek masy,którego poszczególne współrzędne stanowią średnie arytmetyczne odpowied-nich współrzędnych wszystkich należących do figury punktów. W przypadkudługich palców, środek masy dłoni mógłby się teoretycznie znajdować po-za dłonią (środek masy figury wklęsłej nie musi do niej należeć). Ponadtobędą nas interesowały odległości poszczególnych punktów konturu dłoni odwskazanego centroidu – a przedstawiona metoda stanowi pewne podejściedo maksymalizacji odległości pomiędzy centroidem a najbliższym mu punk-tem konturu. Asymptotyczna złożoność zastosowanej procedury BFS jestwprost proporcjonalna do powierzchni dłoni, czyli równie dobra co w przy-

39 / 63

Page 40: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

padku szukania środka masy.

Rysunek 6.1: R - środek masy sylwetki przedstawionej dłoni, C - zastoso-wany centroid

Jak widzimy, zdefiniowany powyżej centroid znajduje się dalej od pal-ców, niż rozważany jako alternatywa środek masy. Należy zwrócić uwagę,że w myśl definicji opartej o algorytm BFS, wybrany przez nas centroidznajduje się w środku największej kuli w metryce miejskiej, która może zo-stać narysowana wewnątrz dłoni. Wynika to z faktu, że w zdefiniowanymprzez nas grafie łączącym 4-sąsiadów, odległość topologiczna między wierz-chołkami jest równoważna odległości w metryce miejskiej między pikselamiobrazu. Na powyższej ilustracji została zaznaczona także ta kula. Wyni-kające wprost z kształtu ludzkiej dłoni położenie punktów styczności kuliz konturem dłoni sprawia, że położenie centroidu praktycznie nie zależyod tego, w którym miejscu dłoń przecina się z granicą kadru. Widocznośćwiększej części nadgarstka nie spowoduje żadnej zmiany, podobnie jak ukry-cie większej części dłoni (o ile tylko punkty styczności konturu dłoni z kuląbędą zawarte w kadrze obrazu). Dla porównania, każde przesunięcie dłoniwzględem granicy obrazu będzie powodowało zmiany położenia środka ma-sy sylwetki – jest to jedna z kluczowych przyczyn, dla których zdefiniowanyprzez nas centroid jest lepszy.

Wyznaczenie środka dłoni pozwala potraktować sekwencję punktów opi-sujących krawędź dłoni w ciekawy sposób, który znacznie ułatwi nam wska-zanie pewnych punktów charakterystycznych. Dla każdego punktu krawędzidłoni (przy uwzględnieniu ich kolejności w ciągu) rozważmy jego odległośćod centroidu w metryce euklidesowej. Zależność pomiędzy odległością a in-deksem punktu w ciągu przedstawia wykres zamieszczony poniżej.

40 / 63

Page 41: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

30

40

50

60

70

80

90

100

0 100 200 300 400 500

Odl

egło

ść o

d ce

ntro

idu

Numer punktu

Punkty krawędzi

Rysunek 6.2: Wykres przedstawiający odległości kolejnych punktów konturuod centroidu

Na wykonanym dla przykładowej dłoni wykresie łatwo zaobserwowaćpięć wyraźnie oddzielonych maksimów lokalnych – zgodnie z pewną zwią-zaną z ich znaczeniem intuicją, punkty reprezentowane przez te maksimabędą dalej nazywane „czubkami palców”. Aby ostatecznie zakończyć kwe-stię porównywania skutków zastosowania zdefiniowanego przez nas centroiduzamiast środka masy sylwetki, zaobserwujmy jak wyglądałby analogicznywykres w przypadku zastosowania właśnie środka masy.

25

30

35

40

45

50

55

60

65

70

75

0 100 200 300 400 500

Odl

egło

ść o

d śr

odka

mas

y sy

lwet

ki

Numer punktu

Punkty krawędzi

Rysunek 6.3: Wykres przedstawiający odległości kolejnych punktów konturuod środka masy

41 / 63

Page 42: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Jak można wywnioskować z powyższych wykresów, analiza zależnościodległości punktów konturu od centroidu jest znacznie wygodniejsza, niżbyłoby to w przypadku środka masy.

Wszystkie rozważane dane dotyczą prawych dłoni, dzięki czemu łatwojest zorientować ciąg punktów konturu tak, aby kciuk był ostatnim ob-rysowywanym palcem (jak łatwo odgadnąć, także wykres 6.2 opisuje ta-ki właśnie przypadek). Po zastosowaniu średniej kroczącej, która redukujewiększość niepożądanych maksimów lokalnych (podobną metodę zastoso-wano w sekcji 5.3.4), łatwo wskazać punkty odpowiadające czubkom pal-ców: F1 = (64, 124), F2 = (45, 104), F3 = (37, 84), F4 = (40, 58) orazF5 = (85, 20).

Punktami wyróżnionymi dla dalszych rozważań będą także odstępy mię-dzy palcami – czyli minima odległości od centroidu znajdujące się pomiędzykolejnymi czubkami palców. W tym wypadku odpowiadają one punktomH1 = (91, 100), H2 = (82, 87), H3 = (79, 70) oraz H4 = (103, 50).

Rysunek 6.4: Wybrane punkty charakterystyczne

Warto zwrócić uwagę, że przedstawione powyżej współrzędne oraz obra-zy załączone do tekstu pracy dotyczą rozdzielczości mniejszej niż rozdziel-czość obrazów z bazy BIT, na których testowany jest projekt programistycz-ny. Rozdzielczość została zmniejszona czterokrotnie, aby uzyskać kompromispomiędzy łatwością ilustrowania operacji na pojedynczych punktach i li-niach o grubości jednego piksela, a czytelnością prezentowanych kształtówdłoni. Do masowego wyznaczania konturów dłoni, budowania bazy danychoraz wykonywania związanych z nią testów oczywiście stosowano wyłącznieoryginalne, większe rozdzielczości.

6.2.3 Proporcje geometryczne i pola powierzchni

W celu wygenerowania zestawów cech opisujących każdy kontur dłoni,tak aby ten sam użytkownik przy każdej z wykonanych prób skutkował osią-gnięciem podobnego wektora cech, wyznaczane są pewne proporcje pomię-

42 / 63

Page 43: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

dzy odległościami oraz polami powierzchni fragmentów dłoni zdefiniowanychpoprzez wskazane w poprzedniej sekcji punkty charakterystyczne.

Dla każdego z czterech punktów reprezentujących odstęp między palcami– Hi – została wzięta pod uwagę odległość od czubka palca znajdującego siępo lewej (Fi) oraz po prawej (Fi+1) stronie. Daje to 8 rozważanych długościodcinków, które zostały zaznaczone na poniższej ilustracji.

Rysunek 6.5: Odcinki, których długości będą rozważane

Kolorem czerwonym zaznaczono odcinki łączące odstępy z czubkami pal-ców po lewej stronie (odcinek ai dla i = 1 . . . 4 łączy punkt Fi z Hi), zaśbłękitnym – z czubkami palców po prawej (odcinek ai dla i = 5 . . . 8 łączypunkt Hi−4 z Fi−3).

Kolejne brane pod uwagę cechy są związane z polami powierzchni spe-cyficznych obszarów. Aby obliczyć pole powierzchni palca, potrzebujemypewnego sposobu rozróżnienia punktów należących do palca od pozostałychpunktów dłoni. I tak np. linia oddzielająca środkowy palec będzie rozumia-na jako jedna spośród najkrótszych ścieżek pikseli należących do sylwetkidłoni, która prowadzi od punktu H2 do H3. Ponadto, ścieżka powinna jaknajbardziej przypominać odcinek łączący te punkty. Aby osiągnąć tak zdefi-niowaną ścieżkę, stosowany jest algorytm przeszukiwania wszerz z określonąkolejnością przeszukiwania sąsiadów – najwyższy priorytet mają sąsiedzi,którzy są najbliżej (w sensie odległości euklidesowej) od punktu docelowe-go. W związku z tym środkowy palec może zostać zdefiniowany jako obszarograniczony opisaną powyżej linią oraz krawędzią dłoni. Powierzchnia tegoobszaru obliczana jest po prostu jako liczba należących do niego pikseli –palec jest czarną spójną składową, którą można przeszukać stosując po razkolejny metodę BFS, tym razem w celu policzenia osiągalnych z pewnegopunktu palca wierzchołków. Pola powierzchni palców oznaczymy jako S2 dlapalca serdecznego, S3 dla środkowego oraz S4 dla wskazującego.

Wyznaczanie linii oddzielającej palec serdeczny oraz wskazujący prze-biega analogicznie jak w przypadku palca środkowego. Problem występujew przypadku małego palca oraz kciuka, gdzie punkty oddzielające Hi wy-

43 / 63

Page 44: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

stępują tylko po jednej ze stron każdego z tych palców. Aby wyodrębnićobszary tych palców, wprowadzone zostały dodatkowe punkty pomocniczenależące do konturu dłoni – H ′1 oraz H ′4, takie aby punkt F1 leżał na syme-tralnej odcinka H ′1H1, zaś F5 – na symetralnej odcinka H ′4H4. Takie punktymożna równoważnie zdefiniować jako punkty przecięcia odpowiednich okrę-gów o środkach w F1 i F5 z krawędzią dłoni – dotyczący tego geometrycznyzamysł został zilustrowany poniżej:

Rysunek 6.6: Punkty pomocnicze po zewnętrznych stronach skrajnych pal-ców

Numeryczne określenie współrzędnych tych punktów jest bardzo proste –połączenie szacowania początkowego połączenia szukanych punktów z prze-szukiwaniem konturu pozwala wskazać taki punkt konturu dłoni, dla któ-rego odległość od odpowiedniego czubka palca jest najbliższa oczekiwanej.Wykonywane jest to w bardzo niewielkiej liczbie iteracji. Dla rozważanegoprzypadku otrzymano H ′1 = (99, 115) i H ′4 = (118, 30).

Ostatecznie, dzięki punktom pomocniczym, możliwe jest wyznaczeniepola powierzchni każdego palca. Wszystkie pola Si dla i = 1 . . . 5 zaznaczonesą na poniższej ilustracji:

Rysunek 6.7: Wyznaczane pola powierzchni

44 / 63

Page 45: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Zauważmy, że rozważone dotychczas cechy oznaczane jako ai były dłu-gościami. Aby wszystkie rozważane cechy były wyrażone w jednostkach dłu-gości, oznaczmy ai =

√(Si−8) dla i = 9 . . . 13. W ten sposób otrzymamy

trzynastkę długości opisujących daną próbkę (a1 . . . a13). Okazuje się jed-nak, że tak zdefiniowane cechy mają wartości wprost proporcjonalne do roz-dzielczości obrazu. Znaczenie może mieć także odległość dłoni od urządzeniapobierającego obraz. Aby wyniki były niezmienne przy wszelkiego rodzajuprzeskalowaniu dłoni, wystarczy zacząć rozważać stosunki między poszcze-gólnymi parami długości ai, zamiast samych ich wartości. Rozwiązaniemmogłoby być podzielenie wszystkich wartości przez a1 (albo inną wybranądługość) – jednak wówczas błąd przy wyznaczaniu tej konkretnej długościmógłby uczynić cały wektor cech bezużytecznym (nie zaś tylko pojedyn-czą współrzędną której dotyczy błąd). Problem ten został jednak unikniętypoprzez dzielenie każdej długości przez średnią geometryczną wyciągniętąze wszystkich długości, które są rozważane. Ostatecznie dłoń jest opisanaza pomocą takiego wektora liczb x1 . . . x13, że:

∀i=1...13 xi =ai

13√a1 · a2 · . . . · a13

(6.1)

Oczywiście tak określone wektory cech są redundantne, gdyż każda poje-dyncza cecha mogłaby zostać pominięta i wywnioskowana na podstawie po-zostałych. Jednakże, aby wszystkie rozważane cechy miały jednakowy wpływna odległość między wektorami cech, dane zostały pozostawione w takiejwłaśnie formie. Odległości między wektorami cech będą obliczane wedługmetryki euklidesowej w R13.

6.3 Zagadnienie klasyfikacji

6.3.1 Specyfika systemu identyfikacji

System identyfikacji oraz weryfikacji tworzony w ramach niniejszej pracybędzie działał na samych wektorach cech, wygenerowanych w sposób opisa-ny w poprzedniej sekcji. Rozwiązanie zostało zaimplementowane w sposóbna tyle elastyczny, że nawet liczba cech nie jest odgórnie narzucona – miarątego, jak bardzo dwie próbki różnią się od siebie, będzie po prostu odległośćeuklidesowa w Rn.

W systemie wykorzystana zostanie baza danych zawierająca próbki zgro-madzone od wielu użytkowników. Zaproponowane zostaną rozwiązania pro-blemów weryfikacji oraz identyfikacji. Weryfikacja oznacza ustalenie, czy dlapodanej próbki oraz podanego loginu użytkownika faktycznie użytkownikjest tym, za kogo się podaje. Próbka będąca częścią zapytania oczywiściemusi pochodzić spoza bazy, zaś baza musi zawierać pewne próbki opisująceweryfikowanego użytkownika. Jak zostanie pokazane, podobne metody po-

45 / 63

Page 46: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

zwalają rozwiązywać problem identyfikacji, w którym na podstawie samejpróbki spoza bazy należy ustalić, do którego użytkownika najprawdopodob-niej ona należy. Do rozstrzygania takich problemów potrzebne jest wpro-wadzenie miary, która pozwoli stwierdzić, jak bardzo badana próbka jestpodobna do zbiorów próbek przyporządkowanych poszczególnym użytkow-nikom. Konkretne klasyfikatory stanowią różne podejścia do sformalizowaniatej miary.

Różne metody weryfikacji i identyfikacji testowane są w ten sam sposób,zaimplementowany w pliku testclassifiers.cpp. Testy wykonywane są przywykorzystaniu całej bazy danych (98 użytkowników) – na początku budo-wana jest baza danych zawierająca wszystkie zgromadzone próbki. Test po-jedynczego zapytania polega na tym, że wybrana próbka jest usuwana z ba-zy danych, klasyfikator wykorzystujący bazę danych jest odpytywany przyużyciu tej próbki, zaś po przetworzeniu zapytania próbka jest z powrotemdodawana do bazy.

Testy metod weryfikacji wykonywane są w dwóch fazach. Pierwsza z nichpozwala na dokładne zbadanie współczynnika niesłusznych odrzuceń (FRR- false reject rate) – dla każdej próbki z bazy wykonywany jest test zapytaniaz właściwym dla tej próbki loginem. Prawidłową odpowiedzią klasyfikatorajest w tym wypadku udzielenie autoryzacji, lecz oczywiście zdarzają się tak-że niesłuszne odrzucenia. Współczynnik FRR obliczany jest jako stosunekliczby odrzuceń w tej fazie testów do liczby wykonanych w niej prób. Pro-blem niesłusznych odrzuceń powinien być jak najsilniej zredukowany, leczjest to przede wszystkim kwestia wygody użytkowania systemu – po nie-słusznym odrzuceniu, wystarczy powtórzyć próbę dostania się do systemuz nową próbką od tego samego użytkownika. Prawdopodobieństwo zajściakonieczności powtarzania próby po raz kolejny maleje wykładniczo w zależ-ności od liczby wykonywanych prób.

Drugi etap testów weryfikacji polega na badaniu współczynnika niesłusz-nych akceptacji (FAR - false accept rate). Wykonanie wszystkich możliwychprób byłoby czasochłonne, dlatego wykonywana jest taka sama liczba za-pytań jak w pierwszej fazie – tym razem jednak wynik nie będzie deter-ministyczny. Każde zapytanie polega na tym, że wybrana losowo próbkajest łączona w jednym zapytaniu z losowym loginem użytkownika innegoniż prawdziwy właściciel próbki. W tej sytuacji każda udzielona autoryzacjajest błędem – i to dużo poważniejszym, niż niesłuszne odrzucenie, gdyż po-tencjalnie dającym nieuprawnionej osobie dostęp do systemu. Analogiczniedo FRR, współczynnik FAR obliczany jest jako stosunek liczby udzielonychautoryzacji w tej fazie testów do liczby wszystkich prób.

Testy metod identyfikacji są znacznie prostsze – zapytania generowanesą dla wszystkich próbek z bazy, a za sukces uznawane jest wskazanie pra-widłowego numeru użytkownika, od którego w istocie pochodziła próbka.Oczywiście jak opisano powyżej, na czas przeprowadzania testu konkretnapróbka zostaje wyłączona z bazy danych – w przeciwnym wypadku testy

46 / 63

Page 47: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

byłyby trywialne.

6.3.2 Szybka weryfikacja oparta o próg

Możliwym rozwiązaniem samego problemu weryfikacji jest porównywa-nie podanej próbki tylko z próbkami zgromadzonymi dla danego użytkow-nika, bez uwzględniania jakichkolwiek innych danych z bazy. W tym roz-wiązaniu użytkownik otrzyma autoryzację wtedy i tylko wtedy, gdy pośródzgromadzonych dla podanego przez niego loginu danych będzie występo-wał taki wektor cech, który znajduje się w pewnym ustalonym promieniuod wektora podanego w zapytaniu. Maksymalna odległość, która musi zo-stać osiągnięta dla przynajmniej jednego wektora z bazy, będzie nazywanaprogiem. Wadą niniejszej metody jest właśnie konieczność dobrania arbi-tralnego progu – także wartość wyznaczona doświadczalnie może okazać sięspecyficzna dla testowego zbioru danych.

Ważną zaletą tego rozwiązania jest świetna wydajność obliczeniowa(znaczna część bazy wcale nie jest rozważana). Ponadto, wyniki działaniatego rozwiązania są w zasadzie niezależne od rozmiaru bazy danych. W przy-padku dużych baz, może się okazać że pewna próbka pozwala zalogować sięna wielu użytkowników – lecz ich odsetek powinien być bardzo niewielkii niezależny od bezwzględnego rozmiaru bazy.

Poniżej zamieszczony jest wykres przedstawiający wartości współczyn-ników FAR oraz FRR w zależności od dobranego progu. Wynik dotyczykompletnej bazy danych wygenerowanej w oparciu o zdjęcia dłoni z pro-jektu BIT. Wartości progu dotyczą euklidesowych miar odległości międzywektorami cech zdefiniowanymi w poprzedniej części tego rozdziału.

0

0.1

0.2

0.3

0.4

0.5

0.6

0.08 0.1 0.12 0.14 0.16 0.18 0.2

War

atoś

ć w

spół

czyn

nika

Próg odległości między próbkami

Weryfikator oparty o próg

FARFRR

Rysunek 6.8: FRR i FAR dla szybkiej weryfikacji opartej o próg

47 / 63

Page 48: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Klasyfikatory o regulowanych parametrach umożliwiają badanie odpo-wiadających im krzywych ROC (receiver operating characteristic), które ob-razują zależność współczynnika słusznych akceptacji (TAR = 1 − FRR)od współczynnika niesłusznych akceptacji (FAR). Krzywa ta powinna sięznajdować powyżej linii TAR = FAR, która opisuje klasyfikator losowoudzielający autoryzacji, przy różnych stałych prawdopodobieństwach. Polepowierzchni pod krzywą ROC może stanowić miarę jakości danego klasyfi-katora, która pozwala porównywać między sobą różne metody.

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

Wsp

ółcz

ynni

k pr

awid

łow

ych

akce

ptac

ji

Współczynnik niesłusznych akceptacji (FRR)

Krzywa ROC dla weryfikatora opartego o próg odległości

Klasyfikator losowyMetoda z progiem

Rysunek 6.9: Krzywa ROC dla szybkiej weryfikacji opartej o różne progi

Opisana metoda dotyczy wyłącznie weryfikacji i nie istnieje prosty spo-sób zmodyfikowania jej, który pozwoliłby na rozwiązywanie problemu iden-tyfikacji. Klasyfikatory opisane w dalszych sekcjach będą umożliwiały za-równo weryfikację jak i identyfikację – dla każdego z nich obie czynnościdokonywane będą za pomocą przynajmniej częściowo wspólnych algoryt-mów.

Metoda z niniejszej sekcji została zaimplementowana w projekcie pro-gramistycznym, w ramach klasy TresholdVerifier.

6.3.3 Prosty klasyfikator odległościowy

W ramach niniejszej pracy zaprojektowany został klasyfikator o prostejzasadzie działania, który może posłużyć do rozważań teoretycznych i porów-nań z innymi klasyfikatorami. Zaproponowana metoda pozwala na dokony-wanie identyfikacji oraz weryfikacji.

48 / 63

Page 49: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

W przeciwieństwie do metod opisanych w poprzedniej oraz następnejsekcji, nie występuje tutaj żadna możliwość regulowania czułości klasyfika-tora – dlatego zamiast wykresów przedstawione zostaną pojedyncze liczbowewyniki, które zostały uzyskane dla testowej bazy.

Podstawowym wynikiem działania prezentowanej metody jest identyfi-kacja użytkownika na podstawie próbki. Dla każdego użytkownika obliczanajest wartość średnia spośród zgromadzonych dla niego próbek (dla każdejwspółrzędnej wyznaczona zostaje średnia geometryczna ze współrzędnychwszystkich próbek – dzięki temu otrzymana średnia sama w sobie posia-da wszystkie własności pojedynczej próbki). Następnie dla próbki podanejw zapytaniu badana jest odległość od średnich dla każdego z użytkowni-ków, dzięki czemu może zostać wybrany użytkownik którego średnia jestnajbliższa danej próbce. Wynikiem procedury identyfikacji jest wskazaniewłaśnie tego użytkownika. Podstawową cechą niniejszego klasyfikatora jestzatem działanie tylko na wartościach średnich opisujących poszczególnychużytkowników, nie zaś na kompletnym zbiorze próbek.

Problem weryfikacji rozwiązywany jest przy wykorzystaniu dokładnie te-go samego mechanizmu – system udziela użytkownikowi autoryzacji wtedy,gdy jego login jest zgodny z wynikiem procedury identyfikacji przeprowa-dzonej dla próbki.

Złożoność obliczeniowa metod związanych z identyfikacją użytkownikówjest obciążona przez konieczność przejrzenia całej bazy. W przypadku tegokonkretnego rozwiązania problem można nieznacznie zredukować poprzezobliczenie wszystkich wartości średnich wcześniej. Dodatkową możliwościąpoprawy złożoności obliczeniowej algorytmów identyfikacji jest zastosowaniedrzew wyszukiwania. Ze względu na liczbę wymiarów większą od 1, musia-łyby to być drzewa kd (drzewa k-wymiarowe), w których dla dużej bazy da-nych złożoność wyszukiwania byłaby wprost proporcjonalna do pierwiastkakwadratowego z liczby próbek.

Ten klasyfikator jest z natury dość restrykcyjny, tzn. prawdopodobień-stwo odrzucenia jest duże nawet jeśli użytkownik w istocie powinien otrzy-mać autoryzację. Oznacza to wysoką wartość współczynnika FRR oraz małąwartość FAR. Takie przewidywanie znajduje odzwierciedlenie w wynikachpomiarów wykonanych dla tego klasyfikatora – FRR wynoszącym niemal42, 9% oraz FAR około 0, 5%. Identyfikacja została przeprowadzona prawi-dłowo w 57, 1% przypadków.

Opisane powyżej wartości współczynników nie są wcale złe, a bardzoniski współczynnik FAR mógłby nawet sugerować, że opisany system jestbezpieczny. Zauważmy jednak, że próbka pobrana nawet od osoby z pozabazy danych zawsze pozwoli na otrzymanie autoryzacji dla któregoś z za-wartych w bazie loginów. Im mniej użytkowników zawiera baza danych, tymłatwiej wykorzystać tą podatność na uzyskanie nieupoważnionego dostępu.Ze względu na ten problem warto się zastanowić, czy metoda z niniejszejsekcji mogłaby zostać zastosowana do celów innych niż rozważania teore-

49 / 63

Page 50: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

tyczne.

6.3.4 Metoda k najbliższych sąsiadów

Klasyfikatorem, który pozwala oceniać, czy próbka pasuje do klasy pró-bek należących do danego użytkownika, może być algorytm k najbliższychsąsiadów (k-NN - k nearest neighbours). Metoda ta jest często stosowanaw biometrii, ze względu na jakość pozwalającą używać jej w praktyce, przyjednoczesnej prostocie opisywanego przez nią algorytmu. Ponadto, w za-leżności od dobranych parametrów, klasyfikator k-NN może być elastyczny– im bardziej restrykcyjne ustawienie zostanie wybrane, tym mniejszy bę-dzie współczynnik FAR, kosztem zwiększenia FRR. Metoda k-NN pozwalana rozwiązywanie problemów weryfikacji oraz identyfikacji.

Identyfikacja użytkownika za pomocą algorytmu k-NN polega na tym,że dla podanej w zapytaniu próbki wybierane jest k najpodobniejszychdo niej próbek z bazy (czyli k najbliższych w sensie odległości euklidesowejmiędzy wektorami). W wyniku identyfikacji wskazywany jest użytkownik, doktórego należy najwięcej spośród k wybranych próbek. Kryterium ex aequo,stosowanym w przypadku równych liczb próbek dla wielu użytkowników, jestodległość pomiędzy próbką z zapytania a najbliższą jej próbką wybieranegoużytkownika.

Poniżej zamieszczony został wykres przedstawiający zależność pomiędzyskutecznością identyfikacji a liczbą badanych sąsiadów k. Na osi pionowejzaznaczony został stosunek liczby udanych identyfikacji do liczby wszystkichprzeprowadzonych testów.

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0 5 10 15 20 25 30 35 40

Praw

idło

we

iden

tyfi

kacj

e

Liczba badanych sąsiadów (k)

Identyfikacja przy użyciu k-nn

Rysunek 6.10: Identyfikacja metodą k-NN

50 / 63

Page 51: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Identyfikacja jest najbardziej skuteczna, gdy rozważane są małe liczbysąsiadów (k). Wynika to ze specyfiki wygenerowanej na potrzeby pracy ba-zy danych – gdyby każdemu użytkownikowi przypisane było więcej próbek,przypuszczalnie wynik okazałby się inny.

Problem weryfikacji został rozwiązany w prosty sposób, który opierasię na wprowadzeniu dodatkowego parametru – liczby pasujących sąsiadów,która będzie oznaczana jako n. Weryfikacja udzielana jest wtedy, gdy przy-najmniej n spośród k rozważanych sąsiadów podanej w zapytaniu próbkipochodzi od wskazanego użytkownika. Ze względu na to, że niektórzy użyt-kownicy posiadają w bazie tylko 4 próbki, rozważane są tylko przypadkin ∈ {1, 2, 3}. Każdy z tych przypadków może zostać potraktowany jakoosobny klasyfikator.

Poniżej przedstawiono uzyskane współczynniki FAR i FRR w zależnościod k, przy różnych wyborach parametru n.

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

5 10 15 20 25 30 35 40

War

atoś

ć w

spół

czyn

nika

Liczba badanych najbliższych próbek (k)

FRR i FAR dla n=1

FARFRR

Rysunek 6.11: FRR i FAR w metodzie opartej o k-NN dla n = 1

51 / 63

Page 52: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

5 10 15 20 25 30 35 40

War

atoś

ć w

spół

czyn

nika

Liczba badanych najbliższych próbek (k)

FRR i FAR dla n=2

FARFRR

Rysunek 6.12: FRR i FAR w metodzie opartej o k-NN dla n = 2

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

5 10 15 20 25 30 35 40

War

atoś

ć w

spół

czyn

nika

Liczba badanych najbliższych próbek (k)

FRR i FAR dla n=3

FARFRR

Rysunek 6.13: FRR i FAR w metodzie opartej o k-NN dla n = 3

Łatwo wyciągnąć wniosek, że wartości FAR dla n = 1 rosną tak szybko,że rozwiązanie to ma sens tylko przy bardzo małych k. Najbezpieczniejszepod względem małego FAR jest n = 3, lecz wtedy współczynnik FRR jest

52 / 63

Page 53: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

na tyle wysoki, że korzystanie z systemu może się okazać niewygodne.Aby porównać poszczególne przypadki, można stworzyć wspólny wykres

przedstawiający opisujące je krzywe ROC – został on przedstawiony poniżej.

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

Wsp

ółcz

ynni

k pr

awid

łow

ych

akce

ptac

ji

Współczynnik niesłusznych akceptacji (FRR)

Krzywe ROC

Klasyfikator losowyn=1n=2n=3

Rysunek 6.14: Krzywe ROC dla różnych k przy metodzie k-NN

Okazuje się, że z największym polem powierzchni pod krzywą ROC ma-my do czynienia w przypadku n = 1 – zatem wszystko wskazuje na to że wła-śnie ta konfiguracja, w połączeniu z małymi wartościami parametru k, da dlarozważanej bazy danych najbardziej deterministyczne rezultaty. Zastosowa-nie takiej konfiguracji w praktyce może być jednak rozważane jako małobezpieczne – przecież wtedy dowolna (nawet nienależąca do bazy) próbkapozwalałaby osiągnąć autoryzację na login każdego z posiadaczy k najbliż-szych próbek. Ten problem bezpieczeństwa przypomina problem prostegoklasyfikatora opisanego w poprzedniej sekcji. Dlatego pomimo mniej korzyst-nych krzywych ROC, rozważanie przypadków n = 2 oraz n = 3 pozostajeuzasadnione. Przypadek n = 2 jest pod względem pola powierzchni podkrzywą ROC porównywalny z szybką weryfikacją opartą o próg.

Wyniki zapewne byłyby lepsze i wskazywałyby na optymalność krzywejROC dla nieco większego n, gdyby dla każdego użytkownika baza zawieraławięcej niż 4-6 próbek, z którymi mamy do czynienia w przypadku zastoso-wanego zbioru danych.

Rozważmy najlepsze przypadki spełniające warunek FAR ¬ 1%. Dlan = 1 dotyczy to konfiguracji z k = 2 z FRR=28, 6% i FAR≈1, 0%. W przy-padku n = 2 warunek ten jest spełniony dla k = 7 z FRR=34, 4%i FAR≈1, 0%. Klasyfikator z parametrem n = 3 przy k = 13 pozwala osią-

53 / 63

Page 54: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

gnąć FRR=51, 6% i FAR=0, 9%. Wybór konkretnej opcji nie jest oczywistyi zależy od specyfiki konkretnych zastosowań – wysoki FRR okazuje się mniejistotny, gdy weźmie się pod uwagę możliwość powtórzenia próby. Współ-czynniki FAR istotnie niższe od 1% są praktycznie nieosiągalne dla n = 1,podczas gdy dla większych n można je uzyskać, kosztem wysokiego FRR.

54 / 63

Page 55: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Rozdział 7

Podsumowanie

Sens stosowania metod biometrycznych jako zamiennika bądź uzupeł-nienia standardowych pytań o hasło nie pozostawia wątpliwości, ze wzglę-du na potencjalną poprawę jakości zabezpieczeń oraz wygody użytkowaniasystemów decydujących o udzieleniu użytkownikowi dostępu do zasobów.Zastosowane rozwiązanie, czyli budowa systemu identyfikacji i weryfikacjiczłowieka opartego o geometrię dłoni, wyróżnia się łatwością w gromadze-niu próbek – wystarczą do tego powszechnie dostępne aparaty lub kamerycyfrowe.

Cel pracy został w znacznym stopniu osiągnięty – w oparciu o autorskierozwiązania, począwszy od bardzo niskiego poziomu interpretacji danych,został zbudowany system identyfikacji, którego jakość umożliwia rozważa-nie zastosowania go w praktyce. Jakkolwiek wyniki dotyczące współczynni-ków FAR i FRR osiągniętych przez projekty wspomniane w literaturze byłyprzeważnie lepsze, system stworzony w ramach niniejszej pracy może zostaćokreślony jako wystarczająco sprawny.

Bardzo istotnym sukcesem jest osiągnięty stopień realizacji celu pra-cy związanego z algorytmami wykrywania krawędzi dłoni. Przygotowanyzestaw narzędzi do przetwarzania obrazu reprezentowanego w postaci ma-cierzy liczb zmiennoprzecinkowych pozwala na realizację wszystkich zadańpotrzebnych w ramach niniejszej pracy.

Wybór wydajnych obliczeniowo technologii oraz jakość przygotowanegoprojektu programistycznego to zalety, które mogą się okazać istotne w per-spektywie dalszego rozwoju badań w tej samej dziedzinie. Przygotowanyprojekt programistyczny może stanowić podstawowy zestaw narzędzi do im-plementacji bardziej zaawansowanych systemów – i nie wymagałoby to wcalewielu modyfikacji.

Przykładową drogą do rozszerzenia zakresu badań jest tworzenie syste-mu, który poza krawędzią dłoni będzie analizował jej odcisk – taka rozbudo-wa systemu biometrycznego powinna znacznie poprawić osiągnięte wyniki.Innym pomysłem (który wcale nie wyklucza się z poprzednim) jest dokony-wanie analizy dowolnych obrazów, która pozwalałaby rozpoznawać dłoniew różnym kontekście, w szczególności bez założeń co do czystego, ciemnegotła.

Kolejną możliwością poprowadzenia dalszych badań w dziedzinie niniej-

55 / 63

Page 56: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

szej pracy jest analiza działania innego rodzaju klasyfikatorów, które mo-głyby zostać porównane z zaprezentowanymi – być może któraś ze znanychmetod okazałaby się jeszcze lepsza niż k-NN. Zastosowanie klasyfikatoraopartego na maszynie wektorów nośnych (SVM - support vector machine)lub sieci neuronowych mogłoby dać ciekawe wyniki.

Ze względu na szerokie i interesujące możliwości prowadzenia dalszychrozważań w dziedzinach poruszonych w niniejszej pracy, autor planuje two-rzenie kolejnych prac, opartych o rozszerzony zakres badań.

56 / 63

Page 57: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

57 / 63

Page 58: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Literatura

[1] Rafael C. Gonzalez, Richard E. Woods, Digital Image Processing. Pear-son Education Inc., New Jersey, Third edition, 2008.

[2] Anil K. Jain, Patrick Flynn, Arun A. Ross, Handbook of Biometrics.Springer Science+Business Media, LLC, Nowy York, 2008.

[3] E. R. Davies, Machine Vision: Theory, Algorithms, Practicalities. Mor-gan Kaufmann Publishers, San Francisco, 3rd edition, 2005.

[4] R. Gross, Y. Li, L. Sweeney, X. Jiang, W. Xu, D. Yurovsky, RobustHand Geometry Measurements for Person Identification using Active Ap-pearance Models. Carnegie Mellon Univ., Pittsburgh, 27-29 sierpnia 2007.www.thoughtfill.com/docs/biometrics07.pdf.

[5] G. Amayeh, G. Bebis, A. Erol, M. Nicolescu, Peg-Free Hand Shape Veri-fication Using High Order Zernike Moments. Nowy York, czerwiec 2006.

[6] G. Boreki, A. Zimmer, Hand geometry feature extraction through curva-ture profile analysis. UNICENP – Centro Universitario Positivo – Com-puter Engineering Department.

[7] Y. Bulatov, S. Jambawalikar, P. Kumar, S. Sethia, Hand recognitionusing geometric classifiers. Hong Kong, czerwiec 2004.

[8] D. L. Woodard, P. J. Flynn, Personal Identification Utilizing FingerSurface Features. University of Notre Dame – Department of ComputerScience and Engineering, czerwiec 2005.

[9] S. Gonzalez, C. M. Travieso, J. B. Alonso, M. A. Ferrer, Automatic bio-metric identification system by hand geometry. Universidad de Las Palmasde Gran Canaria, październik 2003.

[10] A. K. Jain, N. Duta, Deformable matching of hand shapes for verifica-tion. Michigan State University – Department of Computer Science andEngineering, październik 1999.

[11] A. K. Jain, A. Ross, S. Pankanti, A Prototype Hand Geometry-basedVerification System. Waszyngton, D.C., marzec 1999.

58 / 63

Page 59: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

[12] A. Kumar, D. C. M. Wong, H. C. Shen , A. K. Jain, Personal Verifi-cation using Palmprint and Hand Geometry Biometric. Hong Kong Uni-versity of Science and Technology – Department of Computer Science,czerwiec 2003.

[13] C. Oden, A. Ercil, V. T. Yıldız, H. Kırmızıta, B. Bukeı. Hand Re-cognition Using Implicit Polynomials and Geometric Features. Bo aziciUniversity, Stambuł, czerwiec 2001.

[14] R. Sanchez-Reillo, Hand geometry pattern recognition through Gaussianmixture modelling. Universidad Politecnica de Madrid – E.T.S.I. Teleco-munication, rok 2000.

[15] R. Sanchez-Reillo, C. Sanchez-Avila, A. Gonzalez-Marcos, BiometricIdentification through Hand Geometry Measurements. IEEE Transactionson Pattern Analysis and Machine Intelligence, vol. 22, no. 10, październik2000.

[16] R. Veldhuis, A. Bazen, W. Booij, A. Hendrikse, A Comparison of Hand-Geometry Recognition Methods Based on Low- and High-Level Features.University of Twente – Department of Electrical Engineering, rok 2004.

[17] E. Yoruk, E. Konukoglu, B. Sankur, J. Darbon, Shape-Based Hand Re-cognition. IEEE Transactions on Image Processing, vol. 15, no. 7, czerwiec2006.

59 / 63

Page 60: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Spis rysunków

3.1 Przebieg przetwarzania danych w systemie biometrycznymwykorzystującym geometrię dłoni . . . . . . . . . . . . . . . . 10

3.2 Przykładowa fotografia dłoni oraz wyznaczone na jej podsta-wie: sylwetka i kontur . . . . . . . . . . . . . . . . . . . . . . 11

4.1 Zależności pomiędzy plikami źródłowymi, z których składasię projekt w języku C++ . . . . . . . . . . . . . . . . . . . . 19

5.1 Przykładowy obraz przed i po normalizacji . . . . . . . . . . 245.2 Obraz oryginalny oraz wyniki jego próbkowania przy rosną-

cym progu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.3 Płaskorzeźba: wynik splotu z odpowiednią macierzą 3 × 3

i normalizacji . . . . . . . . . . . . . . . . . . . . . . . . . . . 275.4 Rozmycie Gaussa przy różnym skalowaniu dwuwymiarowego

rozkładu normalnego . . . . . . . . . . . . . . . . . . . . . . . 295.5 Przykładowy obraz, operator Laplace’a i wartości bezwzględ-

ne operatora Laplace’a . . . . . . . . . . . . . . . . . . . . . . 325.6 Przykładowy obraz, operator Sobela i wartości bezwzględne

operatora Sobela . . . . . . . . . . . . . . . . . . . . . . . . . 335.7 Histogram rozmytego i znormalizowanego obrazu . . . . . . . 355.8 Wynik selektywnego progowania . . . . . . . . . . . . . . . . 365.9 Odrysowywanie krawędzi przykładowej dłoni . . . . . . . . . 37

6.1 R - środek masy sylwetki przedstawionej dłoni, C - zastoso-wany centroid . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.2 Wykres przedstawiający odległości kolejnych punktów kontu-ru od centroidu . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.3 Wykres przedstawiający odległości kolejnych punktów kontu-ru od środka masy . . . . . . . . . . . . . . . . . . . . . . . . 41

6.4 Wybrane punkty charakterystyczne . . . . . . . . . . . . . . . 426.5 Odcinki, których długości będą rozważane . . . . . . . . . . . 436.6 Punkty pomocnicze po zewnętrznych stronach skrajnych palców 446.7 Wyznaczane pola powierzchni . . . . . . . . . . . . . . . . . . 446.8 FRR i FAR dla szybkiej weryfikacji opartej o próg . . . . . . 476.9 Krzywa ROC dla szybkiej weryfikacji opartej o różne progi . 486.10 Identyfikacja metodą k-NN . . . . . . . . . . . . . . . . . . . 506.11 FRR i FAR w metodzie opartej o k-NN dla n = 1 . . . . . . . 516.12 FRR i FAR w metodzie opartej o k-NN dla n = 2 . . . . . . . 52

60 / 63

Page 61: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

6.13 FRR i FAR w metodzie opartej o k-NN dla n = 3 . . . . . . . 526.14 Krzywe ROC dla różnych k przy metodzie k-NN . . . . . . . 53

61 / 63

Page 62: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Spis wzorów

5.1 Budowanie macierzy pikseli z funkcji obrazu przez próbkowanie 225.2 Budowanie macierzy pikseli z funkcji obrazu przez uśrednianie . 225.3 Rozjaśnienie obrazu jako funkcji . . . . . . . . . . . . . . . . . 235.4 Rozjaśnienie macierzy pikseli . . . . . . . . . . . . . . . . . . . 235.5 Progowanie obrazu jako funkcji . . . . . . . . . . . . . . . . . . 255.6 Progowanie macierzy pikseli . . . . . . . . . . . . . . . . . . . . 255.7 Splot obrazów w sensie funkcji dwóch zmiennych . . . . . . . . 265.8 Splot obrazów w sensie macierzy pikseli . . . . . . . . . . . . . 275.9 Rozmycie Gaussa dla funkcji obrazu (podejście niezależne od splo-

tu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285.10 Operator Laplace’a dla funkcji obrazu . . . . . . . . . . . . . . 315.11 Maska dla splotu pozwalającego wyznaczyć dyskretny operator

Laplace’a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.12 Macierze dla operatora Sobela . . . . . . . . . . . . . . . . . . . 326.1 Wartości współrzędnych wektora opisującego próbkę . . . . . . 45

62 / 63

Page 63: Zastosowanie metod wykrywania krawędzi do identyfikacji ...€¦ · Praca inżynierska Warto jednak wspomnieć o istnieniu technologii tworzącej obrazy trójwy-miarowe za pomocą

Praca inżynierska

Spis fragmentów programów

4.1 Demonstracja biblioteki ImageMagick . . . . . . . . . . . . . 164.2 Plik Makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.1 Przykład zastosowania przeszukiwania grafu . . . . . . . . . . 30

63 / 63