Identifikace osob pomocí oční duhovky Person identification using iris recognition

Podobné dokumenty
Roman Juránek. Fakulta informačních technologíı. Extrakce obrazových příznaků 1 / 30

Analýza a zpracování digitálního obrazu

Jasové transformace. Karel Horák. Rozvrh přednášky:

SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Fakulta informačních technologíı. Extrakce obrazových příznaků 1 / 39

1. Náhodný vektor (X, Y ) má diskrétní rozdělení s pravděpodobnostní funkcí p, kde. p(x, y) = a(x + y + 1), x, y {0, 1, 2}.

Počítače a grafika. Ing. Radek Poliščuk, Ph.D. Přednáška č.7. z předmětu

LBP, HoG Ing. Marek Hrúz Ph.D. Plzeň Katedra kybernetiky 29. října 2015

ELIMINACE VLIVU DRUHÉ ROTACE PŘI AFINNĚ INVARIANTNÍM 2D ROZPOZNÁVÁNÍ

VE 2D A 3D. Radek Výrut. Abstrakt Tento článek obsahuje postupy pro výpočet Minkowského sumy dvou množin v rovině a pro výpočet Minkowského sumy

ROZ1 CVIČENÍ VI. Geometrická registrace (matching) obrazů

TSO NEBO A INVARIANTNÍ ROZPOZNÁVACÍ SYSTÉMY

13 Barvy a úpravy rastrového

Grafika na počítači. Bc. Veronika Tomsová

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)

Zpracování digitalizovaného obrazu (ZDO) - Analýza pohybu

Operace s obrazem I. Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno. prezentace je součástí projektu FRVŠ č.

Algoritmizace prostorových úloh

Substituce ve vícenásobném integrálu verze 1.1

1. Vlastnosti diskretních a číslicových metod zpracování signálů... 15

Požadavky ke zkoušce

10 Funkce více proměnných

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Aplikace obrazové fúze pro hledání vad

VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)

Operace s obrazem II

DETEKCE HRAN V BIOMEDICÍNSKÝCH OBRAZECH

2D grafika. Jak pracuje grafik s 2D daty Fotografie Statické záběry Záběry s pohybem kamery PC animace. Počítačová grafika, 2D grafika 2

Příklady pro předmět Aplikovaná matematika (AMA) část 1

Úvod do zpracování signálů

Souřadnicové prostory

Algoritmy a struktury neuropočítačů ASN - P11

Globální matice konstrukce

Zpracování obrazů. Honza Černocký, ÚPGM

Úloha - rozpoznávání číslic

21. Úvod do teorie parciálních diferenciálních rovnic

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Geometrické transformace pomocí matic

Extrémy funkce dvou proměnných

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

aneb jiný úhel pohledu na prvák

Pokročilé operace s obrazem

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

iphone 7 a Canon 70D Pavel Kocur úterý 18. října 2016

ANALÝZA BIOLOGICKÝCH A KLINICKÝCH DAT V MEZIOBOROVÉM POJETÍ

Metamorfóza obrázků Josef Pelikán CGG MFF UK Praha

Tento dokument obsahuje zadání pro semestrální programy z PAA. Vypracování. vypracovanou úlohu podle níže uvedených zadání. To mimo jiné znamená, že

DIGITÁLNÍ FOTOGRAFIE

Úvodní informace. 17. února 2018

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Numerická matematika 1

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář,

Aplikovaná numerická matematika - ANM

GIS Geografické informační systémy

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)

Frekvenční analýza optických zobrazovacích systémů

Restaurace (obnovení) obrazu při známé degradaci

Požadavky k písemné přijímací zkoušce z matematiky do navazujícího magisterského studia pro neučitelské obory

kamerou. Dle optických parametrů objektivu mohou v získaném obraze nastat geometrická

Vyplňování souvislé oblasti

Rozvoj tepla v betonových konstrukcích

Defektoskopie. 1 Teoretický úvod. Cíl cvičení: Detekce měřicího stavu a lokalizace objektu

Aplikovaná numerická matematika

Odhad stavu matematického modelu křižovatek

5. Umělé neuronové sítě. Neuronové sítě

Laplaceova transformace

PARCIÁLN LNÍ ROVNICE

UNIVERZITA PARDUBICE. 4.4 Aproximace křivek a vyhlazování křivek

Odečítání pozadí a sledování lidí z nehybné kamery. Ondřej Šerý

VYUŽITÍ MATLABU PRO VÝUKU NUMERICKÉ MATEMATIKY Josef Daněk Centrum aplikované matematiky, Západočeská univerzita v Plzni. Abstrakt

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Kristýna Bémová. 13. prosince 2007

SIC1602A20. Komunikační protokol

Automatizace je proces při němž je řídicí funkce člověka nahrazována činností

Měření průtoku kapaliny s využitím digitální kamery

Definice globální minimum (absolutní minimum) v bodě A D f, jestliže X D f

PŘEDNÁŠKA 6 INTEGRACE POMOCÍ SUBSTITUCE

Vojtěch Franc. Biometrie ZS Poděkování Janu Šochmanovi za slajdy vysvětlující AdaBoost

SIGNÁLY A SOUSTAVY, SIGNÁLY A SYSTÉMY

CW01 - Teorie měření a regulace

5. Lokální, vázané a globální extrémy

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni

Semestrální projekt. Vyhodnocení přesnosti sebelokalizace VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií

MATEMATIKA II - vybrané úlohy ze zkoušek v letech

Popis objektů. Karel Horák. Rozvrh přednášky:

Zpracování digitalizovaného obrazu (ZDO) - Popisy III

2. úkol MI-PAA. Jan Jůna (junajan)

Úlohy k přednášce NMAG 101 a 120: Lineární algebra a geometrie 1 a 2,

ANALÝZA JASOVÝCH PROFILŮ PŘI EXCENTRICKÉ FOTOREFRAKCI - POROVNÁNÍ ALGORITMŮ PRO LOKALIZACI ZORNICE

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

Zpracování digitalizovaného obrazu (ZDO) - Segmentace

P R O M Í T Á N Í. rovina π - průmětna vektor s r - směr promítání. a // s r, b// s r,

Přehled vhodných metod georeferencování starých map

D E T E K C E P O H Y B U V E V I D E U A J E J I C H I D E N T I F I K A C E

Rovinný průtokoměr. Diplomová práce Ústav mechaniky tekutin a termodynamiky, Jakub Filipský

Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64, 37021

Úvod do biometrie. Vladimír Lieberzeit UPEK Inc.

Transkript:

České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Identifikace osob pomocí oční duhovky Person identification using iris recognition 2013 Petr Jaškovský

Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů, zejména skutečnost, že České vysoké učení technické v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle 60 odst. 1 autorského zákona. V Praze 5. května 2013.............................

Rád bych na tomto místě poděkoval především panu Ing. Danielu Sýkorovi, Ph.D., že dal mému tématu reálnější podobu i za jeho rady a pomoc. Děkuji také své rodině a přítelkyni, za neustálou podporu při studiu, rovněž tak i u těch nejtěžších životních zkoušek.

Abstrakt Ve své diplomové práci se věnuji biometrické autentizaci osob pomocí oční duhovky. Prostudoval jsem již existující algoritmy a vytvořil jejich rešerši. Navrhl a naimplementoval jsem program pro identifikaci osob pomocí duhovky, jako osobitou kombinaci různých postupů a metod. Vytvořil jsem systém, který mi umožnil vznik nové databáze za pomocí vlastní techniky. Svůj algoritmus jsem následně otestoval na vlastní i rozsáhlejší databázi. Klíčová slova: Biometrie, Duhovka, Identifikace, Databáze Abstract My diploma thesis is devoded to iris recognition and classification of human beings. I went through already existing algorithms and created their summary. I designed and implemented a program for human identification using iris patterns as a combination of different approaches and methods. I designed a system, which allowed me to develop a new database using my own technology. I evaluated my algorithm on large database so as on my own. Keywords: Biometrics, Iris, Identification, Database

Seznam použitých zkratek a symbolů USB Universal Serial Bus EOS Electro-Optical System DSLR Digital Single-Lens Reflex camera App An Aplication SIFT Scale Invariant Feature Transform SURF Speeded-Up Robust Features UPA Univerzita Palackého v Olomouci BRIEF Binary Robust Independent Elementary Features IEEE The Institute of Electrical and Electronics Engineers Mpix Megapixel

OBSAH 1 Obsah 1 Úvod 7 1.1 Biometrie..................................... 8 1.2 Duhovka...................................... 8 2 Rešerše předchozích prací 11 2.1 Detekce duhovky................................. 12 2.1.1 Houghova transformace......................... 12 2.1.2 Daugmanův integro-diferenciální operátor............... 13 2.1.3 Metoda aktivních tvarů......................... 13 2.2 Normalizace.................................... 15 2.2.1 Pseudo-polární transformace...................... 15 2.2.2 Registrace obrazu............................ 16 2.3 Extrakce charakteristických rysů........................ 17 2.3.1 2-D Gaborův filtr............................. 17 2.3.2 1-D vlnová transformace......................... 18 2.3.3 SURF detektor.............................. 20 3 Podrobný popis navrženého algoritmu 23 3.1 Lokalizace..................................... 23 3.2 Normalizace.................................... 24 3.3 Extrakce charakteristických rysů........................ 26 3.3.1 BRIEF deskriptor............................ 26 4 Databáze osob 29 4.1 Databáze CANON................................ 29 4.2 Databáze UPO.................................. 30 5 Implementace 31 5.1 Lokalizace duhovky................................ 31 5.1.1 Detekce vnitřního okraje duhovky................... 31 5.1.2 Detekce vnějšího okraje duhovky.................... 35 5.1.3 Normalizace................................ 37 5.1.4 Párování................................. 37 5.2 O programu.................................... 39

2 OBSAH 6 Vyhodnocení 45 6.1 Úspěšnost lokalizace duhovky.......................... 45 6.2 Vliv hodnoty prahu při identifikaci....................... 46 6.3 Vliv míry potlačení shodných deskriptorů při identifikaci........... 48 6.4 Časová náročnost................................. 51 7 Závěr 53 8 Literatura 55 Přílohy 57 A Appendix 59 A.1 Tabulky...................................... 59 A.2 Seznam souborů na přiloženém CD....................... 60

SEZNAM TABULEK 3 Seznam tabulek 1 Časová náročnost algoritmu........................... 51 2 Tabulka úspěšnosti lokalizace algoritmu.................... 59 3 Tabulka vlivu hodnoty prahu - CANON den.................. 59 4 Tabulka vlivu hodnoty prahu - CANON noc.................. 59 5 Tabulka vlivu hodnoty prahu - UPO...................... 60 6 Tabulka eliminace nalezených shod klíčových bodů - CANON den..... 60 7 Tabulka eliminace nalezených shod klíčových bodů - CANON noc...... 60 8 Tabulka eliminace nalezených shod klíčových bodů - UPO.......... 60

4 SEZNAM TABULEK

SEZNAM OBRÁZKŮ 5 Seznam obrázků 1 Lidské oko..................................... 7 2 Metoda aktivních tvarů (převzato z [17]).................... 14 3 Normalizace (převzato z [16]).......................... 15 4 Ukázka 2-D Gaborového filtru (převzato z [26])................ 17 5 Demodulační schéma spolu s grafy reálné a imaginární složky Gaborového filtru (převzato z [22]).............................. 18 6 Aproximace druhých derivací box filtrem.................... 21 7 Příklad SURF................................... 21 8 Fáze procesu................................... 23 9 Nalezení parametrů elipsy vnějšího okraje duhovky.............. 24 10 Proces hledání bodů na hranici pupily a duhovky jež použil Tisse...... 25 11 Detekce obličeje a očí v okně živého náhledu.................. 30 12 Lokalizace vnitřního okraje duhovky CANON................. 33 13 Lokalizace vnitřního okraje duhovky UPO................... 34 14 Lokalizace vnějšího okraje UPO......................... 36 15 Lokalizace vnějšího okraje CANON....................... 37 16 Proces identifikace duhovky........................... 38 17 Ukázka párování - CANON........................... 39 18 Ukázka párování - UPO............................. 39 19 Hlavní okno aplikace - Vstup.......................... 41 20 Hlavní okno aplikace - Nový uživatel...................... 42 21 Analýza databáze................................. 43 22 Úspěšnost lokalizace (tabulka č. 2)....................... 46 23 Vliv hodnoty prahu - CANON den (tabulka č. 3)............... 47 24 Vliv hodnoty prahu - CANON noc (tabulka č. 4)............... 47 25 Vliv hodnoty prahu - UPO (tabulka č. 5)................... 48 26 Eliminace shodných klíčových bodů - CANON den (tabulka č. 6)...... 49 27 Eliminace shodných klíčových bodů - CANON noc (tabulka č. 7)...... 50 28 Eliminace shodných klíčových bodů - UPO (tabulka č. 8).......... 50

6 SEZNAM OBRÁZKŮ

7 1 U vod Lidske oko je nejen du lez ity m orga nem pro nas i orientaci a interakci s okolı m, ale z pohledu biometrie je to take orga n, jehoz souc a stı je unika tnı plote nkovity u tvar - duhovka. Odl es kbl es k u Pupi l a Duhov k a S k l i v ec Ví č k a Obra zek 1: Lidske oko Z vne js ı ho pohledu se duhovka nacha zı mezi sklivcem a pupilou viz obra zek c. 1. Jejı jedinec na textura va s doka z e zaujmout a ohromit, a nebo mu z e take odemykat poc ı tac ove syste my. I dı ky nı, kdyz potka te velmi blı zkou osobu po mnoha letech, kdy se jiz c as projevil na jejı m zevnejs ku si r eknete, z e ty oc i jsou va m pove dome. Tu osobu pr ece zna te. Pr ed mnoha lety jste se do te ch oc ı denne dı vali. Duhovka totiz zu sta va be hem te me r cele ho z ivota stejna. Vy voj techniky tyto pocity me nı v rea lna data, ktera doka z ou spolehlive identifikovat lidskou bytost. Tato diplomova pra ce si klade za cı l sezna mit se s existujı cı mi algoritmy umoz n ujı cı mi identifikovat osoby pomocı databa ze oc nı ch duhovek a vybrat vhodny algoritmus pro na slednou implementaci. Cı lem je take ove r enı jeho robustnosti a funkc nosti na rozsa hlejs ı databa zi oc nı ch duhovek.

8 1.1 Biometrie 1.1 Biometrie Biometrie je vědní obor, zabývající se unikátními fyzickými charakteristickými rysy jedinců a jedinečnými rysy jejich chování. U rysů fyzických (stabilních) se jedná například o otisky prstů, otisky dlaní, tvar ruky, rozpoznávání obličejových rysů, rozpoznávání jedinečné textury duhovky, analýzy sítnice, rozpoznávání tvaru ucha, analýzy vzorků DNA a rozpoznávání hlasu. U chování můžeme rovněž mluvit o dynamických rysech, které mohou zahrnovat například psané písmo (vlastnoruční podpis), pohyby při chůzi nebo analýzu stisku tlačítek. Těchto vlastností se využívá k jednoznačné identifikaci osob (autentizaci). Rychlým vývojem technologií a internetu spolu se zvýšeným rizikem narušení bezpečnosti v posledních dvaceti letech došlo k tomu, že mnoho biometrických systémů kombinuje různé biometrické znaky fyzických osob s jinými technologiemi identifikace nebo autentizace. Přiřazení jednoznačné identity anonymnímu uživateli se uplatňuje nejen ve sféře World Wide Web, ale právě také v reálném světě pomocí biometrie. Cestovní pasy, vstupy do firem nebo střežených objektů či bezpečné přístupy do systémů jsou typickými příklady, kde je třeba znát totožnost pro zaručení bezpečnosti osob, majetku a informačních aktiv. V minulých letech došlo ve světě k zavedení biometrických pasů založených na rysech duhovky, tváře a otisku prstů pro zlepšení kontroly na hranicích mezi státy. České úřady začaly vydávat biometrické pasy v září roku 2006. Biometrické technologie otevírají nové možnosti komfortnější a zároveň bezpečnější identifikace. V budoucnu by se mohlo například platit v obchodech pouhým přiložením prstu ke snímači nebo identifikací člověka pomocí duhovky, ke které bude přiřazené bankovní konto. V případě řízení přístupu k aplikacím, databázím nebo přihlašování k počítači se může využívat například kombinace hesla spolu s analýzou prodlev mezi stisky kláves. Pro prolomení by tedy už nestačilo jen uhádnout heslo. 1.2 Duhovka Duhovku tvoří frontálně postavená cirkulární ploténka, v jejímž centru je otvor - zornička neboli pupila. Duhovka dělí zadní a přední komoru oční. Nachází se mezi zadní stěnou rohovky a přední stranou čočky. Pupila není uložena v přesném geometrickém středu duhovky, ale najdeme ji většinou posunutou mírně nasálně (směrem k nosu). Je lemována tmavým proužkem (viditelným zejména u modrookých).

1.2 Duhovka 9 Duhovku tvoří variabilní, individuálně charakteristické řasy a hlubší jamky (krypty). Zbarvení duhovky je individuální - v závislosti na množství pigmentu (u albínů bez pigmentu je duhovka červená od prosvítajících krevních cév). Pigment se nachází v nejširší vrstvě duhovky, která je složena z řídkého vaziva. Jsou v ní přítomny pigmentové buňky (jejich množství ovlivňuje barvu duhovky). Zadní (hluboká) vrstva duhovkové tkáně obsahuje svaly jejichž souhrou je měněna velikost pupily podle množství dopadajícího světla (zúžení nebo rozšíření). [1] Duhovka se začíná formovat od třetího až do osmého měsíce těhotenství, ovšem změna barvy duhovky může probíhat až do jednoho roku po narození. Duhovka se zároveň během lidského života samovolně nemění. Při rozpoznávání vzorů duhovky využíváme velkou variabilitu - okolo 250 až 260 stupňů volnosti, což z ní dělá extrémní zdroj entropie pro autentizaci. Dokonce ani jednovaječná dvojčata nemají stejné vzory, stejně tak se liší i duhovka každého oka i samotného člověka. Tuto část lidského těla lze tedy využít pro biometrické procesy díky své komplexnosti. [2]

10 1.2 Duhovka

11 2 Rešerše předchozích prací V nedávné době se v literatuře objevilo mnoho způsobů pro rozpoznávání a klasifikování duhovky. Pánové Flom a Safir si nechali patentovat rozpoznávání duhovky již v roce 1987 [3]. Od té doby se již několika výzkůmníkům podařilo dosáhnout velkého vývoje. Při používání bezpečnostního systému jako je identifikace osob pomocí duhovky hraje významnou roli čas zpracování. Je závislý na jednotlivých procesech. Základem je kvalitní reprodukovatelné pořizování snímků oka, dále pak detekce duhovky a normalizace, která připravuje data pro porovnávání v databázi. Lidé z celého světa se snaží o co nejlepší výkonnost svých algoritmů při zachování co nejmenšího počtu falešných identifikací. Mezi překážky, se kterými je třeba se vypořádat, patří například překryv duhovky víčky, odlesky okolí nebo i fakt, že duhovka má většinou tvar elipsy než kruhu. V této kapitole je nejprve uveden stručný přehled základních prací a následně představeny nejpoužívanější algoritmy pro detekci, normalizaci a identifikaci. Daugman ve své práci [5] využil 2-D Gaborového filtru. Získal tím informaci o fázích v textuře zakódovanou do 2048-bitového vektoru. Pro porovnávání v databázi využívá Hammingové vzdálenosti mezi bitovými vektory. Wildes [11] ve svém výzkumu navrhl využití reprezentace textury duhovky pomocí 4-úrovňové Laplaceovy pyramidy a využil normalizovanou korelaci pro porovnávání. Bole a Boashash [12] reprezentovali texturu pomocí kalkulace průchodů nulou v 1-D vlnové transformaci s různým rozlišením soustředných kružnic snímků duhovky. Lim a kol. [7] rozložili snímek duhovky do čtyř úrovní pomocí 2-D Haarovy vlnové transformace a extrahovali čtvrtou vysokofrekvenční informaci utvářející 87-bitový vektor. Pro klasifikaci využili přizpůsobivou neuronovou sít. Tisse a kol. [8] analyzovali charakteristiky duhovky za použití analytického obrázku zkonstruovaného pomocí aplikace Hilbertovy transformace původního obrázku. Podobně jako Daugman, využili porovnávání pomocí Hammingovy vzdálenosti, ovšem binární vektor obsahoval navzorkované jedinečné frekvence funkce. Park a kol. [13] vyvinuli systém založený na souboru filtrů pro dekomponování snímku duhovky do osmi směrových podpásmových výstupů a extrahovali normalizovanou směrovou energii. Těmito rysy pak reprezentovali duhovku samotnou. Klasifikaci provedli porovnáváním Euklidových vzdáleností. Kumar a kol. [9] využili korelační filtry pro měření konzistence snímků. Korelační filtr každé třídy byl vytvořen za použití 2-D Fourierovy transformace cvičných obrázků. Jestliže korelace mezi inverzní Fourierovou transformací a korelačním filtrem vykazovala jeden významný vrchol, duhovka byla autorizována.

12 2.1 Detekce duhovky 2.1 Detekce duhovky Pokud se podaří překonat technickou překážku ohledně kvalitního a ostrého pořízení snímku oka, přichází na řadu detekce duhovky. Stěžejním úkolem je správná lokalizace duhovky spolu se získáním přesných parametrů popisujících její tvar. V publikovaných článcích se zejména využívá reprezentace pomocí jednoduchých geometrických útvarů. Tvary pupily a duhovky jsou většinou detekovány pomocí Houghovy transformace jako kružnice a tvary víček jako parabolické oblouky. Jelikož tyto reprezentace nejsou dokonalé, jsou vyvíjeny nové, přesnější metody jako např. metoda aktivních tvarů [17] nebo metoda využívající integro-diferenciální operátor [5]. 2.1.1 Houghova transformace Houghova transformace se stala již standardním nástrojem pro detekci křivek v obrázcích, jež mohou být vyjádřeny parametricky jako přímky, polynomy či kružnice. Například Wildes [11], Tisse [8], Ma [10] ve svých algoritmech využívají Houghovy transformace pro lokalizaci duhovky. Tato lokalizační metoda je podobná metodě jež používá Daugman [5], která je založena na detekci hran pomocí prvních derivací obrázku. Vstupem do metody je tzv. mapa hran. Tu lze získat různými způsoby. Například prahováním obrázku ve stupních šedi a následnou detekcí zlomů. Poté je použita v hlasovacím procesu maximalizace Houghovy Transformace pro nalezení žádoucího tvaru. Definice 2.1 Předpokládejme hraniční body (x i, y j ), kde i, j = 1, 2,...n, m, r - značí poloměr hledané kružnice, pak Houghovou transformaci můžeme zapsat jako H(r) = n m h(x i, y j, r) i=1 j=1 kde 1 intenzity, jestliže g(x i, y j, r) = 0, h(x i, y j, r) = 0 intenzity, jinak. Vnější i vnitřní okraj duhovky je modelován kružnicí g, která je definována jako: g(x i, y j, r) = (x x i ) 2 + (y y j ) 2 r 2

2.1 Detekce duhovky 13 Poloha maximální intenzity v H(r) je považována za pravděpodobný střed kružnice o poloměru r. U neznámého poloměru postupujeme iterováním přes všechny možné r a hledáním globálního maxima. 2.1.2 Daugmanův integro-diferenciální operátor Daugman prezentoval využití integro-diferenciálního operátoru v publikaci [5]. Předpokládá kruhový tvar pupily a duhovky. Pro detekci víček používá lehké modifikování integrodiferenciálního operátoru z kruhového na více eliptický. Je definován jako: max(r, x 0, y 0 ) G σ(r) r (r,x 0,y 0 ) I(x, y) 2πr ds, kde I(x, y) je snímek oka, r je hledaný poloměr, G ρ (r) značí gaussovské konvoluční jádro jehož velikost je regulována vstupními parametry. A s zastupuje kruhový tvar definovaný pomocí r, x 0, y 0. Tento operátor projde vstupním obrázkem I(x, y) pixel po pixelu, hledajíc přitom cestu ve tvaru kružnice, kde se nachází ty největší změny intenzit. Operátor je použit opakovaně s postupně se snižujícím faktorem rozmazání σ ve snaze dosažení přesnější lokalizace. Víčka jsou nalezena podobným způsobem, ovšem hledaná cesta nemá tvar kružnice, ale oblouku. Tato metoda je jistou variací Houghovy transformace viz kapitola 2.1.1, jelikož také využívá prvních derivací s následným hledáním geometrických tvarů. Avšak ani tato metoda není dokonalá a může selhat na četných odlescích, jelikož funguje jen lokálně. 2.1.3 Metoda aktivních tvarů Segmentaci pomocí diskrétních kruhových aktivních tvarů použili ve svém návrhu Ritter a Cooper [17]. Tento model využívá k detekci hranic pupily a duhovky aktivování a kontrolování aktivních tvarů za pomocí dvou sil: vnitřní a vnější síly. V jejich návrhu jsou vnitřní síly spojovány s expanzí tvarů do dokonalých polygonů s poloměrem δ. Tyto síly aplikujeme postupně na každý uzel F int,i = V i V i, kde V i zastupuje očekávanou pozici uzlu v dokonalém polygonu. Tuto hodnotu získáme vzhledem k průměrnému poloměru C r v současném tvaru, přičemž střed C definujeme jako bod, jež je průměrem všech uzlů:

14 2.1 Detekce duhovky V i = ( C x + (C r + δ)cos ( ) 2πi ; C y + (C r + δ)sin n C(x C, y C ) = 1 n n V i, i=1 ( )) 2πi, n a poloměr definujeme jako průměrnou vzdálenost bodů polygonu od středu C C r = 1 n n V i C. i=1 Vnitřní síly mají za úkol působit na uzly odstředivě, zatímco vnejší síly jsou navrženy tak, aby působily dostředivě. Jejich velikost je počítána z obrázku intenzit: F ext,i = I(V i ) I(V i + F ext,i ), kde I(V i ) značí intenzitu nejbližšího okolí V i. F ext,i značí směr pro každý uzel polygonu: F ext,i = C V i C V i. Kombinací těchto dvou sil vznikne výsledná síla, jež iterativně pohybuje s uzly: V i (t + 1) = V i (t) + βf int,i + (1 β)f ext,i, kde β značí parametr, jež vyvažuje vnitřní a vnější sílu. Tento proces je zobrazen na obrázku č. 2. Obrázek 2: Metoda aktivních tvarů (převzato z [17])

2.2 Normalizace 15 Výsledný střed a poloměr získáme po zkonvergování algoritmu. 2.2 Normalizace Jak bylo naznačeno v kapitole 1.2, pupila se adaptuje na své okolí bud smrštěním nebo roztažením. Abychom mohli duhovky vzájemně porovnávat, je třeba je znormalizovat. Wildes a kol. [11] tento problém vyřešili registrací vstupního obrázku modelovým obrázkem. Daugman [5, 6] využil transformace z kartézského do 2-D pseudo-polárního souřadnicového systému. Tento postup dokonale eliminuje problém nasálního posunutí pupily. Daugman ve své publikaci neprozradil příliš detailů a tak se jednotlivé implementace mohou lišit například volbou počátečního bodu polární transformace. 2.2.1 Pseudo-polární transformace Metodu využívající pseudo-polární transformace poprvé publikoval Daugman [6], která spočívá v inteligentním přemapování. Ve své publikaci ovšem nezachází do přílišných detailů (zřejmě pro zachování svého know-how). Závoj nejasností poodhaluje ve své publikaci Tisse [8]. Poté co nalezne střed pupily a parametry kružnic vnitřního a vnějšího okraje duhovky, použije transformaci do polárních souřadnic s pevně daným rozlišením. Touto metodou se kompenzují různé změny velikosti duhovky. Textura nesoustředného mezikruží se rozvine pokaždé do stejně velkého obdélníka viz obrázek č. 3. Obrázek 3: Normalizace (převzato z [16]) Polární souřadný systém je popsán parametry Θ (0, 2π) a ρ (0, 1) a rovnicemi:

16 2.2 Normalizace I(x(ρ, Θ), y(ρ, Θ)) I(ρ, Θ): x(ρ, Θ) = (1 ρ) x p (Θ) + ρ x d (Θ) y(ρ, Θ) = (1 ρ) y p (Θ) + ρ y d (Θ) Hraniční body pupily (x p (Θ), y p (Θ)) jsou počítány: x p (Θ) = S px + cos(θ) R p y p (Θ) = S py + sin(θ) R p Hraniční body duhovky (x d (Θ), y d (Θ)) jsou počítány: x d (Θ) = S dx + cos(θ) R d y d (Θ) = S dy + sin(θ) R d Kde S p a S d jsou souřadnice středu pupily, respektive duhovky, R p a R d značí poloměr pupily, respektive duhovky. Tato metoda má ovšem jeden nedostatek. Nepočítá s rotací textury. Tento problém je třeba vzít v potaz při extrakci charakteristických rysů a u párování. 2.2.2 Registrace obrazu Jak již bylo zmíněno, Wildes a kol. [11] použili techniku, která využívá modelového obrázku z databáze I d (x, y) pro registraci nového obrazu I a (x, y). Použitím mapovací funkce (u(x, y), v(x, y)), se zarovnají tak, aby hodnoty intenzit byly blízko sebe. Mapovací funkce (u, v) musí minimalizovat (I d (x, y) I a (x u, y v)) 2 dxdy x y a zároveň zaznamenávat podobnostní transformace souřadnic obrázku (x, y) na ( x, ỹ): ( ) ( ) ( ) x x x = sr(φ), ỹ y y kde s je faktor měřítka a R(φ) je matice rotace o úhel φ. Algoritmus postupuje iterativně a jeho výstupem jsou parametry deformace s a úhel φ.

2.3 Extrakce charakteristických rysů 17 2.3 Extrakce charakteristických rysů V této kapitole jsou představeny některé vyspělé algoritmy pro rozpoznávání a identifikaci obrázků. 2.3.1 2-D Gaborův filtr Gaborovy filtry jsou nám schopny poskytnout optimální reprezentaci signálů ve frekvenční a prostorové oblasti. Tuto metodu v souvislosti s rozpoznáváním duhovky poprvé použil Daugman [5] v roce 1993. Příklad konvoluce 2-D Gaborova filtru s texturou duhovky je vidět na obrázku č. 4. Obrázek 4: Ukázka 2-D Gaborového filtru (převzato z [26]) Daugman využívá 2-D Gaborového filtru k zakódování duhovkové textury, který je definován jako: [ ] G(x, y) = e π (x x 0 ) 2 α 2 + (y y 0 )2 β 2 e 2 π ı [u 0 (x x 0 )+v 0 (y y 0 )], kde (x 0, y 0 ) určuje pozici v obrázku, (α, β) značí šířku, respektive výšku obrázku a (u 0, v 0 ) reprezentuje modulaci s prostorovou frekvencí ω 0 = u 2 0 + v2 0 a směrem θ 0 = arctan(v 0 /u 0 ). Následnou demodulací se snažil o komprimaci dat. Toho dosáhl kvantováním fázové informace reálné i imaginární složky do čtyř úrovní: 1 jestliže Re ρ h Re = 0 jestliže Re ρ φ eıω(θ 0 φ) e (r 0 ρ) 2 α 2 φ eıω(θ 0 φ) e (r 0 ρ) 2 α 2 e (θ 0 φ) 2 β 2 I(ρ, φ) ρ dρdφ 0, e (θ 0 φ) 2 β 2 I(ρ, φ) ρ dρdφ < 0.

18 2.3 Extrakce charakteristických rysů 1 jestliže Im ρ h Im = 0 jestliže Im ρ φ eıω(θ 0 φ) e (r 0 ρ) 2 α 2 φ eıω(θ 0 φ) e (r 0 ρ) 2 α 2 e (θ 0 φ) 2 β 2 I(ρ, φ) ρ dρdφ 0, e (θ 0 φ) 2 β 2 I(ρ, φ) ρ dρdφ < 0. Každá z těchto úrovní je reprezentována dvojicí bitů. Na obrázku č. 5 je zobrazena ukázka reálné a imaginární složky Gaborova filtru spolu se znázorněním demodulačních fází. [22] Obrázek 5: Demodulační schéma spolu s grafy reálné a imaginární složky Gaborového filtru (převzato z [22]) Po této operaci vznikne z normalizované textury duhovky bitový vektor vhodný pro párování binární metodou XOR. 2.3.2 1-D vlnová transformace Ma a kol. [10] představil svůj postup jak extrahovat rysy z normalizované textury duhovky do binárního vektoru o průměrné délce 660 bitů. V prvé řadě vytvořili 1-D intenzitní vektor. Uvědomili si totiž, že detaily duhovky se nachází zejména v radiálním směru a tedy

2.3 Extrakce charakteristických rysů 19 v úhlovém směru je mnohem větší hustota informací než v jiných směrech. Proto vyzkoušeli zprůměrovat vždy několik řádků normalizované textury s tím, že příliš informací neztratí a vylepší tím výpočetní čas. S i = 1 M M I (i 1) M+j kde i = 1, 2,...N, j=1 I 1. I =.. I K = (I1 T,..., IK) T T, kde I je normalizovaný obrázek o rozlišení K L, I x značí intenzitu pixelu v x-té řadě obrázku I, M je celkový počet řádků ze kterých se skládá signál S i, N je celkový počet 1-D signálů a každý z nich je tedy kombinací M řádků jež reflektují lokální detaily v horizontálním směru. Dyadická vlnová tranformace se nyní používá na mnoha místech jako detekce hran, komprese dat a analýza textur. Rozkládá signál informací, které se objevují v různých měřítcích. Snaží se lokalizovat místa největších odchylek, které tak zachycují důležité informace v obrázku. Dyadická vlnová transformace signálu S(x) v měřítkách 2 j, kterou definujeme v konvoluční formě: W T 2 js(x) = 1 2 j ( x X S(X)ψ 2 j ) dx, kde ψ(x/2 j ) je vlnová funkce v měřítku 2 j a ψ(x) je kvadratický spline. Následným prahováním dojde k eliminaci nevýrazných rysů. Jestliže rozdíl amplitud dvou přilehlých lokálních extrémů je menší než zvolená hodnota prahu, tak jsou tyto body považovány za příliš nevýrazné a jsou potlačeny. Pro každý z intenzitních signálů S i jsou spojeny vektory vytvořenými z různých měřítek: f i = [d 1, d 2,...d i,...d m ; d m+1, d m+2,...d m+n ; p 1, p 2 ], kde prvních m prvků pochází z prvního měřítka a dalších n prvků pochází z druhého měřítka. Hodnoty d i jsou pozice náhlých změn intenzit signálu a p 1 a p 2 obsahují vlastnosti první náhlé změny v měřítku. Jestliže hodnota prvního bodu d 1, respektive d m+1 je zároveň lokálním minimem vlnové transformace a p 1, respektive p 2 jsou nastaveny na 1, v opačném

20 2.3 Extrakce charakteristických rysů případě -1. Výsledný binární vektor použitý při párování pomocí XOR operace je vytvořen spojením rysů ze všech 1-D intenzitních signálů: f = [f 1, f 2,...f i,...f N ]. Ma a spol. tak vytvořili velmi robustní algoritmus jež dokázal maximalizovat výkonnost systému. Pro detailnější informace o jejich implementaci viz [10]. 2.3.3 SURF detektor Algoritmus SURF (Speeded-Up Robust Features) prezentovali Bay a kol. [20] na konferenci Computer Vision v roce 2008. Jedná se o metodu, která popisuje obrázek pomocí klíčových bodů a jejich deskriptorů. Tyto rysy jsou invariantní vůči rotaci, posunu, změně měřítka, změnám osvětlení a 3-D pozice kamery. Původ této metody můžeme hledat u algoritmu SIFT (Scale Invariant Feature transform), která byla vytvořena Davidem Lowe [18, 19] již v roce 1999. Uplatnění SURF můžeme najít například pro klasifikaci obrázků, rekonstrukci 2-D a 3-D scén, kalibrace kamer či při registraci obrazu. Použitím integrálních obrázků bylo dosaženo malé časové složitosti. Tento detektor je sice založen na Hessově matici, ale využívá pouze aproximací, stejně jako SIFT detektor využívá aproximaci Laplaciánu rozdílem Gausiánů. Deskriptor zkoumá a popisuje odezvy Haarovy vlnky na přilehlé okolí klíčových bodů. Postup lze rozdělit do dvou fází: Nalezení klíčových bodů Vytvoření deskriptorů 2.3.3.1 Klíčové body Klíčové body se nacházejí na významných místech v obrázku. Při jejich detekci je obzvlášt důležité, aby postup bylo možné reprodukovat s cílem nalézt stejné klíčové body za odlišných podmínek. Jak již bylo zmíněno, detektor pracuje s Hessovou maticí a jeho determinantem-hessiánem. Hessova matice H(x, σ) je definována: [ ] L xx (x, σ) L xy (x, σ) H(x, σ) =, L yx (x, σ) L yy (x, σ) kde x = I(x, y), L xx (x, σ) značí druhou derivaci gaussovského konvolučního jádra 2 g(σ) x 2 s obrázkem I v bodě x atd.. Namísto velmi náročného počítání parciálních derivací druhého řádu je použita aproximace za pomocí box filtru (viz obrázek č. 6).

2.3 Extrakce charakteristických rysů 21 Obrázek 6: Zleva doprava: Parciální derivace druhého řádu Gaussova konvolučního jádra s parametrem σ = 1.2 v y-směru a xy-směru a jejich aproximace box filtrem. Šedé oblasti se rovnají nule. (převzato z [20]) Škálování je obvykle implementováno pyramidovými obrázky. Opakovaně jsou Gaussově rozostřovány a následně navzorkovány ve smyslu dosáhnutí vyšší pyramidy. Díky box filtru a integrálních obrázků se nemusí znova aplikovat filtr na obrázek z předešlé úrovně, ale může se aplikovat sada filtrů různých velikostí přímo na originální obrázek. Škálování tedy není dosaženo změnou velikosti obrázku, ale zvětšováním filtru (9 9, 15 15, 21 21, 27 27 atd.). Obrázek 7: Vlevo: Klíčové body na poli slunečnic. Vpravo: Typy Haarovy vlnky pro SURF. (převzato z [20]) Pro nalezení klíčových bodů v pyramidovém obrázku bylo použito hledání ve svém nejbližším okolí 3 3 3. Maxima determinantu Hessovy matice jsou interpolovány v různých škálách metodou publikovanou pány Brown a Lowe [21]. Na obrázku č. 7 je vidět příklad detekce klíčových bodů detekovaných pomocí Hessovy matice. [20]

22 2.3 Extrakce charakteristických rysů 2.3.3.2 SURF deskriptor V další fázi je potřeba vytvořit tzv. deskriptory ke každému klíčovému bodu. Každý deskriptor musí být jedinečný, robustní vůči šumu a geometrickým deformacím. Deskriptor představený v [20] vychází z poznatků SIFT deskriptoru a přestože SIFT deskriptor již prokázal svou funkčnost a kvalitu, SURF deskriptor si dovoluje jít ještě trochu dále a dokonce je i rychlejší. Zpočátku je třeba klíčovým bodům přiřadit jejich orientaci a získat odezvy Haarovy vlnky viz obrázek č. 7, a to v kruhovém okolí významného bodu. Zároveň se v daném měřítku spočítají vlnové odezvy. Jelikož se zvětšujícím se měřítkem také rostou vlnky, přichází opět na řadu integrální obrázky pro urychlení filtrování. Jakmile jsou získány vlnové odezvy, jsou jim přiřazeny váhy podle gaussova rozdělení se středem ve význačném bodu. Tyto odezvy jsou reprezentovány vektory s horizontálními a vertikálními váhami. Výsledná orientace je přibližně spočítána ze sumy všech vektorů nacházející se vždy v určitém rozmezí úhlů. Po sečtení vznikne nový vektor. Největší z nich bude přiřazen klíčovému bodu jako jeho orientace. Dále je nutno vypočítat hodnoty vektoru deskriptoru, abychom v něm obsáhli další informace o okolí význačného bodu pro invariantní párování. Získáme je vytvořením obdélníkových oblastí ve směru orientace bodů. Z každé z těchto oblastí o velikosti 4 4 jsou extrahovány odezvy Haarovy vlnky pro rovnoměrně rozdělené vzorky bodů. Pro jednoduchost se horizontální odezvy značí d x a vertikální d y. Tyto odezvy jsou následně sečteny v každém regionu. Pro získání polarity změn intenzit obrázku jsou sečteny i absolutní hodnoty d x, respektive d y. Každý region má ve výsledku svůj čtyř dimenzionální vektor v. Deskriptor je souhrnem vektorů ze všech regionů o celkové délce 64 bytů. ( v = dx, d y, d x, ) d y [20] Pro párování deskriptorů se většinou využívá Manhattanská nebo Eucleidovská vzdálenost mezi vektory.

23 3 Podrobný popis navrženého algoritmu Po provedení rešerše předchozích prací a získání lepšího nadhledu nad různými způsoby identifikace duhovky, jsem se rozhodl vydat svou vlastní cestou a vytvořit tak algoritmus, jako osobitou kombinaci metod uvedených v kapitole 2, vedoucí k úspěšné identifikaci osob. Jak již bylo zmíněno, celý postup lze rozdělit do tří fází. Pro lokalizaci duhovky jsem vybral algoritmus využívající Houghovu transformaci (kapitola 2.1.1). Pro normalizaci duhovek jsem použil pseudo-polární transformaci (kapitola 2.2.1). Identifikace je založena na porovnávání klíčových bodů získaných SURF detektorem (kapitola 2.3.3). V následujících kapitolách jsou tyto algoritmy a jejich modifikace podrobněji popsány. Jednotlivé kroky algoritmu jsou popsány v kapitole 5 o implementaci. Obrázek 8: Fáze procesu 3.1 Lokalizace V kapitole 2.1 byly představeny ty nejpoužívanější algoritmy pro přesnou detekci vnějších a vnitřních okrajů duhovky. V této práci je pro lokalizaci pupily využívána Houghova transformace s detekcí kružnic viz kapitola 2.1.1. Vstupem do této metody je tzv. mapa hran. Lze ji získat například iterováním všech pixelů v binárním obrázku a hledáním přechodů mezi bílou a černou. Jelikož duhovka lidského oka tvarem spíše připomíná elipsu než kruh, můžeme použít Houghovu transformaci pro detekci elips. Algoritmus pro hledání eliptického tvaru má ale řádově větší složitost (polynomiální) než algoritmus hledání kružnic s lineární složitostí.

24 3.2 Normalizace Pro úsporu výpočetního času jsem navrhl modifikovaný algoritmus pro detekci eliptického tvaru pomocí Houghovy transformace založené na detekci kružnic. R el y R L R R (x L,y L ) (x R,y R ) R el x S el Obrázek 9: Nalezení parametrů elipsy vnějšího okraje duhovky Nejprve je obrázek duhovky rozdělen na dvě poloviny a aplikováním Houghovy transformace jsou nalezeny parametry dvou kružnic viz obrázek č. 9. Jejich sjednocení do výsledné elipsy probíhá následovně: [ xl + x r S el (x, y) =, y ] l + y r, 2 2 [ Rl + R r R el (x, y) = 2 ] + x l x r, max(r l, R r ), kde (x l, y l ) a (x r, y r ) jsou souřadnice středu kružnice získané z levé, respektive pravé poloviny. S el (x, y) značí nové souřadnice středu elipsy, R el (x) značí délku hlavní poloosy a R el (y) značí délku vedlejší poloosy viz obrázek č. 9. 3.2 Normalizace U automatizovaného snímání musíme počítat s tím, že duhovky mohou být nasnímány pokaždé v různých velikostech z důvodu variabilního osvětlení (dilatace pupily) nebo vzdálenosti fotoaparátu od oka. Takové deformování duhovky pak může ovlivnit samotné rozpoznávání a je třeba je kompenzovat.

3.2 Normalizace 25 V kapitole 2.2 byly představeny základní metody pro normalizaci duhovkové textury. Mnou navrhované řešení využívá Dagmanovy pseudo-polární transformace [6] z kapitoly 2.2.1 s upřesněním od Tisse [8]. Obrázek 10: Proces hledání bodů na hranici pupily a duhovky jež použil Tisse Při pokusu jej implementovat jsem zjistil, že jejich řešení není vůbec logické a při normalizaci dochází k velkým deformacím při výraznějším excentrickém posunutí pupily. Tisse si při řešení uvedeného problému zvolil nejtriviálnější cestu. Místo toho, aby si zvolil jednotný souřadný střed (střed pupily nebo střed duhovky), nezvolil si žádný a ulehčil si tak v mnohém proces normalizace. Problémy jež mohou nastat zobrazuje obrázek č. 10. A proto přicházím se svým navrženým algoritmem pro počítání hraničních bodů duhovky (x d (Θ), y d (Θ)): Středem souřadného systému je střed pupily (S px, S py ), od kterého je v úhlu Θ (0, 2π) proti směru hodinových ručiček rozbalena textura duhovky. Pokud se jedná o kruhový tvar duhovky, je počítán průnik za pomocí analytického vyjádření přímky a kružnice. Pokud se jedná o eliptický tvar duhovky, je počítán průnik za pomocí analytického vyjádření přímky a elipsy.

26 3.3 Extrakce charakteristických rysů Přímka: y = tgθ x Kružnice: Elipsa: (x O x ) 2 + (y O y ) 2 = R 2 k (x O x ) 2 R el (x) 2 + (y O y) 2 R el (y) 2 = 1 kde R el (x) značí délku hlavní poloosy elipsy, R el (y) značí délku vedlejší poloosy elipsy, R k značí poloměr kružnice, S el jsou souřadnice středu duhovky, S p jsou souřadnice středu pupily, O x je S px S el (x) a O y je S py S el (y). S takto definovanou pseudo-polární transformací dojde ke spolehlivé normalizaci duhovky. 3.3 Extrakce charakteristických rysů V kapitole 2.3 byly představeny základní algoritmy pro popsání rysů normalizovaných textur. V této práci je použit SURF detektor klíčových bodů [20]. Jak bylo podrobně vysvětleno v kapitole 2.3.3, tato extrakce se skládá ze dvou fází: nalezení význačných bodů v obrázku a poté vytvoření deskriptorů pro zaznamenání základních rysů jejich okolí. Při implementaci programu nebylo využito klasického SURF deskriptoru, nýbrž algoritmu, který byl publikován panem Calonderem a kol. [25] nazývaným BRIEF (Binary Robust Independent Elementary Features). 3.3.1 BRIEF deskriptor BRIEF deskriptor [25] posouvá hranice možností SURF deskriptoru [20]. Byl navržen, aby urychlil proces identifikace a párování klíčových bodů. Calonder ukázal, že vektor deskriptoru může být zredukován na binární řetězec s minimální, nebo žádnou ztrátou informací. Tyto binární řetězce mohou být následně porovnávány v databázi počítáním jejich Hammingovy vzdálenosti. Jelikož se binární operace XOR dnes nachází v základní sadě instrukcí procesorů, její počítání je velmi rychlé. Popis binárním řetězcem je vytvořen řadou binárních testů na rozostřených okolích klíčových bodů. Test τ na okolí p o velikosti S S definujeme jako: 1 jestliže p(x) < p(y), τ(p; x, y) = 0 jinak,

3.3 Extrakce charakteristických rysů 27 kde p(x) značí intenzitu pixelu p o souřadnicích x = (u, v). Charakteristický vektor je výsledkem n binárních testů: f n (p) = 2 i 1 τ(p; x i, y i ). 1 i n Přesnost BRIEF deskriptoru závisí na velikosti n (např. 128, 256 nebo 512), kdy je třeba najít kompromis mezi výpočetním časem a pamět ovou náročností. Deskriptor BRIEF bývá také označován jako BRIEF-k, kde k = n/8 značí velikost deskriptoru v bytech (BRIED-16, BRIEF-32, BRIEF-64). Calonder se svým týmem také ukázal, že jejich deskriptor BRIEF-16 je přibližně 40 krát rychlejší a dosahuje lepších rozpoznávacích schopností než SURF-64. Deskriptory založené na binárních řetězcích využívající Hammingovy místo Euklidovy vzdálenosti pro porovnávání v databázi, otevřely cestu k real-time aplikacím. [25]

28 3.3 Extrakce charakteristických rysů

29 4 Databáze osob Pro účely testování a vyhodnocení bylo nutné vyzkoušet implementaci na rozsáhlejším souboru duhovek. Pro tyto potřeby byla zvolena databáze duhovek z Univerzity Palackého v Olomouci [24] (nadále zmiňována pod zkratkou UPO). Tvorba vlastní databáze (dále zmiňovaná pod názvem CANON) byla spojena s mnohými problémy snímání a nastavení fotografované scény. 4.1 Databáze CANON Při tvorbě autorské databáze jsem se v prvé řadě zajímal o možnosti vzdáleného ovládání fotoaparátu Canon EOS 450D počítačem. Profesionální utility jako Canon EOS Remote App nebo DSLR Remote Pro dovolují ovládání fotoaparátu na dálku přes USB kabel, ovšem nelze je použít jako stavební kámen mé aplikace z hlediska drahých licencí a uzavřenosti kódu. Nakonec balíček PiggyPhoto [14] z webu Magic Lantern poskytuje kýžené rozhranní v programovacím jazyce Python. Bohužel zde není k dispozici automatické, ale pouze manuální ostření a vzhledem k tomu, že aplikace by měla být soběstačná a bez vnějšího zásahu schopná pořídit snímek a identifikovat člověka, kompenzuji tento nedostatek pomocí detekce obličeje v okně živého náhledu. Další otázkou byla volba a nastavení snímané scény. Požadavky byly jasné. Vytvořit podmínky, za kterých fotografie lidského oka bude ostrá a dostatečně velká s co nejméně rušivými elementy, jako překryv řasami nebo odlesk okolí. Nakonec jsem zvolil kruhový blesk MeiKe FC100, který potlačí nežádoucí odlesky okolí a dovolí fotoaparátu pořizovat snímky s nastavením f/7.1, 1/100sec a ISO 800 při ohniskové vzdálenosti 18 mm. Odlesk blesku vznikne jednak v koutcích oka, ale zejména pak uvnitř pupily, čehož využívám k prvotní aproximaci polohy duhovky. Soubory v databázi jsou uloženy ve formátu: X XC P P.jpg, kde X X zastupuje jméno osoby, C označuje číslo snímku, P P značí případnou poznámku u snímku. Ukládáno je vždy pravé oko uživatele. Pro rozpoznání obličeje jsem využil implementace algoritmu Haar Feature-based Cascade klasifikátor pro detekci objektů [15], jež je volně dostupný v knihovně OpenCv v2.1 pro Python 2.7. Stejný algoritmus lze použít pro přibližnou lokalizaci očí (viz obrázek č. 11).

30 4.2 Databáze UPO Jakmile je osoba dostatečně blízko fotoaparátu (detekovaný obličej má učitou velikost), nachází se osoba v předem definované hloubce ostrosti a je pořízen snímek. Aproximace polohy očí v tomto případě slouží k ořezu a uložení obrázku. Obrázek 11: Detekce obličeje a očí v okně živého náhledu 4.2 Databáze UPO Duhovky z databáze Univerzity Palackého v Olomouci byly naskenovány optickým zařízením TOPCON TRC50IA propojeným s kamerou SONY DXC-950P 3CCD. Kvalitou výrazně převyšují záznamy v databázi CANON. Názvy souborů jsou ve formátu: XXXS C.png, kde XXX (001; 064) označuje číslo osoby, S informuje zda-li se jedná o snímek P - pravého oka, respektive L-levého oka a C {1, 2, 3} je číslo udávající o který snímek se jedná.

31 5 Implementace Tato kapitola je věnována všem důležiým informacím ohledně samotné implementace, následného zpracování a identifikace. Má diplomová práce se snaží o vývoj automatické identifikace člověka pomocí duhovky za využití běžně dostupné technologie a již publikovaných metod. Veškerý vývoj probíhal pod operačním systémem Ubuntu 12.10 ve skriptovacím programovacím jazyce Python 2.7. a nezaručuji jeho funkčnost v jiném prostředí. 5.1 Lokalizace duhovky Procesy lokalizace duhovky jsou u obou databází velmi podobné a liší se pouze v detailech. Snímky v databázi UPO jsou ve velkém rozlišení s velmi detailními texturami. Překážkami jsou například neostré odlesky blesku, eliptické duhovky či černé okraje. Snímky duhovek z databáze CANON jsou sice v relativně malém rozlišení, ale na druhou stranu netrpí zmíněnými problémy. Pro tyto případy je nutno algoritmy lehce přizpůsobovat daným podmínkám. Tato kapitola shrnuje tyto implementační detaily a přináší náhled do celého procesu lokalizace. 5.1.1 Detekce vnitřního okraje duhovky Cílem této kapitoly je seznámit čtenáře s implementovaným algoritmem pro detekci vnitřního okraje duhovky (pupily). 1. V prvním kroku je přistoupeno k převedení barevného obrázku do stupní šedi lineární kombinací tří základních barev RGB (obrázek 12a, 13a). 2. U databáze UPO je poloha pupily aproximována rychlým nalezením extrémů intenzit. Tento postup není možný u databáze CANON kvůli četným odleskům v koutcích oka. V dalších krocích algoritmus pracuje již jen s výřezem (obrázek 13b) kvůli úspoře výpočetního času. 3. Nežádoucí odlesk blesku musí být eliminován, aby algoritmus přesně našel hranice pupily. Prahováním je získán binární obrázek odlesku (obrázek 12b, 13c).

32 5.1 Lokalizace duhovky 4. V této fázi je třeba získat mapu hran viz obrázek č. 12c a 13d. Jednak bychom mohli projít binární obrázek pixel po pixelu a kontrolovat, zdali se v jeho okolí nenachází zlom mezi bílou a černou barvou, nebo použít např. algoritmu Cannyho hranového detektoru [23] volně dostupného v knihovně OpenCV 2.1. V mé implementaci byla použita druhá varianta, jelikož se ukázalo, že jednoduchá detekce zlomů v Pythonu je přibližně stokrát pomalejší nežli použití výše uvedeného Cannyho detektoru. 5. Mapa hran je vstupní proměnnou do metody detekce kružnic - Houghovy transformace viz obrázek 12d a 13e. Tento algoritmus je rovněž volně dostupný v knihovně OpenCV 2.1, ale neposkytuje požadovanou volnost a přesnost. Přistoupil jsem tedy k vlastní implementaci. 6. Po získání parametrů kružnice je odlesk vybarven neutrální/tmavou barvou (obrázek 12e, 13f), čehož bude využito v dalším kroce. 7. Díky eliminování veškerých vysokých intenzit můžeme nyní zvýšit kontrast ekvalizací histogramu výřezu viz obrázek 12f a 13g, jehož algoritmus je dostupný v knihovně OpenCV 2.1. 8. V této fázi máme již vše připraveno pro detekci samotné pupily. Prahováním získáme binární obrys pupily (obrázek 12g, 13h). 9. Cannyho detektorem získáme mapu hran (obrázek 12h, 13i), která přímo vstupuje do následujícího kroku. 10. K vypočítání souřadnic středu a poloměru pupily použijeme Houghovou transformaci (obrázek 12i, 13j). 11. Na obrázcích 12j a 13k jsou ukázány úspěšné lokalizace pupily z databáze CANON, respektive UPO.

5.1 Lokalizace duhovky 33 Marek2_noc Marek2_noc a) j) b) c) d) e) f) g) h) i) Obrázek 12: Lokalizace vnitřního okraje duhovky CANON: (a) RGB Gray; (b) Prahování odlesku; (c) Canny detektor hran odlesku; (d) Houghova transformace a nalezení parametrů odlesku; (e) Vybarvení odlesku tmavou barvou; (f) Ekvalizace histogramu obrázku pupily; g) Prahování pupily; h) Canny detektor hran pupily; i) Houghova transformace a nalezení parametrů pupily; j) Úspěšná detekce pupily

34 5.1 Lokalizace duhovky 22L_1_UPO a) b) c) d) e) f) g) h) i) j) k) Obrázek 13: Lokalizace vnitřního okraje duhovky UPO: (a) RGB Gray; (b) Aproximace polohy pupily; (c) Prahování odlesku; (d) Canny detektor hran odlesku; (e) Houghova transformace a nalezení parametrů odlesku; (f) Vybarvení odlesku neutrální barvou; (g) Ekvalizace histogramu obrázku pupily; h) Prahování pupily; i) Canny detektor hran pupily; j) Houghova transformace a nalezení parametrů pupily; k) Úspěšná detekce pupily

5.1 Lokalizace duhovky 35 5.1.2 Detekce vnějšího okraje duhovky Tato kapitola seznámí čtenáře s implementovaným algoritmem pro detekci vnějšího okraje duhovky. 1. U lokalizace duhovky na snímcích z databáze UPO: první krok začíná obrázkem ve stupních šedi (viz obrázek 14a). Lokalizace duhovky u snímků z databáze CANON: první krok začíná u ekvalizovaného obrázku s eliminovaným odleskem blesku viz obrázek 12f, respektive 15a. 2. U snímků z obou databází lze přímo prahovat duhovku s experimentálně zjištěnou hodnotou, jak je vidět na obrázku 14b a 15b. 3. V dalším kroku u snímků UPO několikanásobně zmenšíme rozlišení, čímž napomůžeme ke značnému zkrácení výpočetního času. Snímky z databáze CANON není třeba dále zmenšovat, jelikož již pracujeme pouze s malým výřezem. Cannyho detekcí hran získáme mapu zlomů viz obrázek 14c a 15c. 4. Nyní, oproti CANON databázi, se u snímků UPO musí nejprve maskou odstranit hrany, jež nezachycují duhovku a následně je třeba aplikovat algoritmus podle postupu uvedeném v kapitole 3.1 o modifikované Houghově transformaci pro detekci elipsy. Mapa hran je zde nejprve rozdělena na dvě poloviny viz obrázek 14d. 5. Houghovou transformací získáme u snímků UPO souřadnice a poloměr kružnic z obou polovin (obrázek 14e, respektive 14f). U snímků z databáze CANON se spokojíme pouze s detekcí kruhové duhovky Houghovou transformací (viz obrázek 15d), nikoliv eliptické, z důvodu nízké kvality snímků. 6. U snímků z databáze CANON jsme uvedeným postupem úspěšně detekovali duhovku (obrázek 15g), kdežto u detekce duhovky snímků UPO je třeba algoritmem uvedeným v kapitole 3.1 vypočítat parametry výsledné elipsy viz obrázek 14g.

36 5.1 Lokalizace duhovky 22L _1_UPO a ) b) c ) d) 22L _1_UPO e) 22L _1_UPO f ) g) Obra zek 14: Lokalizace vne js ı ho okraje UPO: (a) RGB Gray; (b) Prahova nı ; (c) Cannyho detekce hran; (d) Pu lenı obra zku; (e) Houghova transformace detekce kruz nic; (f) Kruz nice obou polovin; g) U spe s na detekce elipticke hranice duhovky

5.1 Lokalizace duhovky 37 a) b) c) d) e) Obrázek 15: Lokalizace vnějšího okraje CANON: (a) Obrázek duhovky z 12f; (b) Prahování duhovky; (c) Cannyho detekce hran duhovky; (d) Houghova transformace detekce kružnic; g) Úspěšná detekce duhovky 5.1.3 Normalizace V předchozí kapitole byl představen postup pro detekci hranic duhovky. Detekovaný eliptický okraj duhovky u snímků z UPO databáze je zohledněn při normalizaci (viz kapitola 3.2). Algoritmus v tomto případě iteruje přes θ s krokem 0.8 stupňů a přes ρ s krokem 1/100 a vytvoří obrázek v rozlišení 450x100 pixelů. Pro zdůraznění kontrastu je použita ekvalizace histogramu. Různé ukázky normalizace jsou vidět na obrázku č. 16b. 5.1.4 Párování Pro extrakci klíčových bodů byl použit volně dostupný algoritmus SURF [20] a deskriptor BRIEF-64 [25] z knihovny OpenCV v2.3. Na obrázku č. 16c jsou barevně označeny klíčové body. K párování je použit algoritmus taktéž z Opencv v2.3, který je vysoce paralelizován. Z množiny nalezených párů jsou nakonec odstraněny páry, jejichž vzdálenost deskriptorů je menší než ω násobek střední hodnoty všech vzdáleností mezi deskriptory ve shodě (viz obrázky č. 17 a 18).

38 5.1 Lokalizace duhovky 22L _1_UPO 34R_3_UPO Pet r 6_Ca non b) c ) a ) Ma r c y 6_Ca non b) c ) a ) Obra zek 16: Proces identifikace duhovky (UPO a CANON): a) Lokalizace duhovky; b) Normalizace; c) Extrakce charakteristicky ch rysu

5.2 O programu 39 Obrázek 17: Ukázka párování - CANON Obrázek 18: Ukázka párování - UPO 5.2 O programu V této kapitole se věnuji zejména uživatelskému rozhranní aplikace na identifikaci osob pomocí duhovky. Před samotnou implementací bylo třeba zohlednit požadavky na aplikaci a její chod: Pro koho bude aplikace určena? Z hlediska uživatelského je program vytvořen pro pozici bezpečnostní ostrahy nebo vrátného na recepci firmy. fyzicky zabezpečený počítač v oddělené místnosti bez připojení do sít ě jednoduché ovládání Jaká budou vstupní data? Jak již bylo zmíněno, program bude odebírat živý přenos z kamery a v případě potřeby pořídí snímek a analyzuje jej. vhodné propojení počítač - kamera

40 5.2 O programu Funkce programu? program zvládne samostatně pořídit snímek osoby a ověřit přístup program zvládne načíst externí databázi a provádět samostatné analýzy na pokyn uživatele možnost přidat nového uživatele do databáze grafické zobrazení výsledků Program nesoucí název DIP - Jaskope1 je vytvořen ve vyspělém skriptovacím programovacím jazyce Python 2.7. Je obohacen o širokou škálu důležitých knihoven, jako jsou například Tkinter obstarávající grafické uživatelské rozhranní, PiggyPhoto poskytující rozhranní mezi kamerou a počítačem, PyGame umožňující živý náhled obrazu, Threading umožňující paralelizaci některých grafických prvků, OpenCV poskytující algoritmy pro zpracování obrazu atd.. Hlavní menu obsahuje dva podstromy: Soubor Analyzovat databázi - umožní uživateli provádět vlastní testování výběrem snímků z databáze CANON nebo UPO viz obrázek č. 21 Konec - ukončí program Informace O programu Hlavní okno aplikace, analyzující vstupní obraz, můžete vidět na obrázku č. 19 a okno pro zadávání nového uživatele vyžadující 3 fotografie levého oka je k vidění na obrázku č. 20.

5.2 O programu 41 Obrázek 19: Hlavní okno aplikace - Vstup

42 5.2 O programu Obrázek 20: Hlavní okno aplikace - Nový uživatel

5.2 O programu 43 Obrázek 21: Analýza databáze

44 5.2 O programu

45 6 Vyhodnocení V této kapitole je provedeno základní vyhodnocení implementovaného algoritmu a prezentace dosažených výsledků. Jak již bylo zmíněno, kvalitu implementace můžeme hodnotit s ohledem na všechny jeho dílčí komponenty. V našem případě fázi lokalizace, normalizace a identifikace. Pro testování posloužily snímky: Databáze CANON den snímky pořízené v interiéru nebo exteriéru za denního osvětlení celkem 15 lidí celkem 45 snímků (každý člověk = 3 fotky levého oka) Databáze CANON noc snímky pořízené v interiéru nebo exteriéru za umělého nebo žádného osvětlení celkem 15 lidí celkem 45 snímků (každý člověk = 3 fotky levého oka) Databáze UPO snímky pořízené za kontrolovaných podmínek celkem 64 lidí celkem 384 snímků (každý člověk = 3 fotky levého a 3 fotky pravého oka) 6.1 Úspěšnost lokalizace duhovky Klíčovou fází je úspěšná lokalizace duhovky, jak vnitřního, tak i vnějšího okraje. Použitý algoritmus je dostatečně robustní a velmi úspěšný při použití kvalitních fotografií. Při testování na méně kvalitních snímcích algoritmus vykazuje menší či větší nepřesnosti. Výsledek testování shrnuje následující graf na obrázku č. 22.

46 6.2 Vliv hodnoty prahu při identifikaci Obrázek 22: Úspěšnost lokalizace (tabulka č. 2) 6.2 Vliv hodnoty prahu při identifikaci Další klíčovou fází je samotné porovnávání snímků v databázi (identifikace). Tento proces založený na hledání klíčových bodů je možné otestovat na vhodnost nastavení tzv. prahu přijetí. Pokud je nalezena shoda se snímkem v databázi, je znám i počet korespondujících klíčových bodů a jejich deskriptorů. Pokud je tato hodnota nižší nez zvolený práh, je uživatel označen negativně. Analýzou křivek true negative a false positive, s různými prahovými hodnotami, lze najít optimální hodnotu prahu. True negative - značí absolutní počet snímků, jež jsou sice v databázi, ale program je označí negativně False positive - značí absolutní počet snímků, jež jsou sice v databázi a program je označí pozitivně, ale jako jinou osobu Testování probíhalo s nastaveným koeficientem potlačení shodných deskriptorů ω = 0.4 (viz kapitola 5.1.4).