Eduard Bakštein, eduard.bakstein@fel.cvut.cz. 3. ledna 2013



Podobné dokumenty
Úloha: Verifikace osoby pomocí dynamického podpisu

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

BPC2E_C08 Parametrické 3D grafy v Matlabu

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

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

11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina.

1 Tabulky Příklad 3 Access 2010

DOKUMENTACE Identifikace pomocí otisků prstů

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

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

Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence

Základy zpracování obrazu

1 Jasové transformace

Úvod do zpracování signálů

Matematická morfologie

Vyhodnocení experimentálního měření kmitání vibrační třídičky pomocí optické metody

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

WhyCon: Přesný, rychlý a levný lokalizační systém

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

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

oblasti je znázorněn na obr Komplexní obálku můžeme rozepsat na její reálnou a

Algoritmizace a programování

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

Rosenblattův perceptron

13 Barvy a úpravy rastrového

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

DETEKCE HRAN V BIOMEDICÍNSKÝCH OBRAZECH

Cvičení ze statistiky - 3. Filip Děchtěrenko

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

( ) ( ) ( ) Tečny kružnic I. Předpoklady: 4501, 4504

BPC2E_C09 Model komunikačního systému v Matlabu

Microsoft Office. Excel vyhledávací funkce

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

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

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

Operace s obrazem II

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

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

KOMPRESE OBRAZŮ. Václav Hlaváč, Jan Kybic. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání.

KOMPRESE OBRAZŮ. Václav Hlaváč. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání. hlavac@fel.cvut.

3.2. ANALYTICKÁ GEOMETRIE ROVINY

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Obsah. Úvod 11. Poděkování 9. Použité konvence 12. KAPITOLA 1 Poznáváme Zoner Photo Studio 13

Úvod do zpracování obrazů. Petr Petyovský Miloslav Richter

Experimentáln. lní toků ve VK EMO. XXX. Dny radiační ochrany Liptovský Ján Petr Okruhlica, Miroslav Mrtvý, Zdenek Kopecký.

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

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

Programátorská dokumentace

MS Word pro administrátory projektů Pokročilí

Komplexní obálka pásmového signálu

MATEMATIKA V MEDICÍNĚ

PREZENTACE 1.22 HYPERTEXTOVÉ ODKAZY

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

Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Katedra počítačů, Computational Intelligence Group

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

y (5) (x) y (4) (x) + 4y (3) (x) 12y (x) 45y (x) 27y(x) (horní indexy značí derivaci) pro 3. y(x) = x sin 3x 4. y(x) = x cos 3x 9.

Hammingovy kódy. dekódování H.kódů. konstrukce. šifrování. Fanova rovina charakteristický vektor. princip generující a prověrková matice

zdroj světla). Z metod transformace obrázku uvedeme warping a morfing, které se

Asociativní sítě (paměti) Asociace známého vstupního vzoru s daným výstupním vzorem. Typická funkce 1 / 44

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ

PRACUJEME S TSRM. Modul Samoobsluha

CVIČNÝ TEST 5. OBSAH I. Cvičný test 2. Mgr. Václav Zemek. II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

Pokročilé operace s obrazem

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

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

DIGITÁLNÍ OBRAZ. Obrázky (popř. slajdy) převzaty od

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

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází

(Auto)korelační funkce Statistické vyhodnocování exp. dat M. Čada ~ cada

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Obsah. Zdroj vlastní

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

Odpřednesenou látku naleznete v kapitole 3.3 skript Diskrétní matematika.

Návod na obsluhu softwaru Amobile Sale objednávkový a prodejní software pro PDA a tablety s OS Android.

Shodnostní Helmertova transformace

Pracovní text a úkoly ke cvičením MF002

Úvod do programu STATISTICA. Mgr. Pavel Zahradníček

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

Návod - katalog. ANTEE s.r.o. - tel.: , fax: , helpdesk: ,

NPGR032 CVIČENÍ III. Šum a jeho odstranění teorie&praxe. Adam Novozámský (novozamsky@utia.cas.cz)

1. Umístěte kurzor do sloupce Datový typ na řádek s polem, ve kterém vytvořit chcete seznam.

Hammingův odhad. perfektní kódy. koule, objem koule perfektní kód. triviální, Hammingův, Golayův váhový polynom. výpočet. příklad

do magisterské etapy programu ELEKTRONIKA A KOMUNIKACE

Zpracování obrazu v FPGA. Leoš Maršálek ATEsystem s.r.o.

pracovní list studenta

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

1 Linearní prostory nad komplexními čísly

Kreslení elipsy Andrej Podzimek 22. prosince 2005

pracovní list studenta

M E T O D Y R O Z P O Z NÁNÍ OB J E K T Ů V O B R A Z U

Tabulkový procesor. Základní rysy

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

12 Metody snižování barevného prostoru

Word Lekce III. a IV.

Hough & Radon transform - cvičení

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.

Dotaz se souhrny a dotaz křížový

Kybernetika a umělá inteligence, cvičení 10/11

Transkript:

Cvičení z předmětu Biometrie Úloha 3: Rozpoznávání duhovky Eduard Bakštein, eduard.bakstein@fel.cvut.cz 3. ledna 2013 Úvod Rozpoznávání duhovky je vysoce přesná biometrická metoda s celou řadou praktických, využívaná na letištních kontrolách, v přístupových systémech i humanitárních misích. Mezi její hlavní výhody patří robustnost a stabilita duhovky po celý život jedince, stejně jako možnost odečítat duhovku z větší vzdálenosti. Základními prvky systému rozpoznávání duhovky jsou snímání, segmentace (nalezení oblasti duhovky), rozbalení ( unwrapping ) a kódování. Cílem úlohy je vyzkoušet v praxi metody, používané pro rozpoznávání duhovky. Úloha je složena z následujících částí: 1. Implementace kódu pro segmentaci oblasti duhovky pomocí Houghovy transformace 2. Přiřazení zadaných obrázků oka k iriscodes v databázi 3. Bonusová úloha: zpracování obrázků vlastní duhovky, útoky na systém. Řešení bude probíhat formou implementace požadovaných funkcí do existujícího Iris Toolboxu, který je ke stažení na stránkách cvičení. Jedním z výstupů úlohy bude vámi zpracovaný stručný protokol, do kterého vložíte zejména ty části které jsou vyžadovány v textu zadání. Jednotlivé body stručně okomentujte (především pro vaší vlastní orientaci) Předpokládá se samostatná práce na úloze. Cvičení využívá zdrojové kódy Libora Maška z University of Western Australia. Úloha 3, Duhovka - extrakce příznaků a porovnávání iriscode (20 bodů) Pokyny k odevzdání Úloha se odevzdává na posledním cvičení bloku cvičícímu. Stručně popíšete zdrojový kód Vaší implementace a předvedete funkci na zadaných testovacích obrázcích. Grafy a obrázky z jednotlivých kroků zpracování se odevzdávají v krátkém reportu se stručným popisem a zodpovězením 1

otázek, položených v zadání. K započtení bodů za úlohu je také nutno odeslat zdrojový kód (pouze zazipovaný adresář ToDo) do odevzdávacího systému (deadline v den cvičení do půlnoci). 1 Segmentace oblasti duhovky pomocí Houghovy transformace K úspěšnému zakódování informace, obsažené ve struktuře duhovky, je nezbytné nalézt a oddělit (segmentovat) oblast duhovky od okolí (bělma, víčka atd.). Nejjednodušším způsobem je aproximace oblasti duhovky jako mezikruží. K nalezení oblasti duhovky pak můžeme použít Houghovu transformaci (HT) pro kruh (Viz přednáška 9). Při této metodě se nejprve pomocí hranového detektoru naleznou v obrázku hrany a následně se každý nalezený hranový bod projektuje do prostoru parametrů. Projekce pak probíhá přičtením pevně dané konstanty na všechna místa prostoru parametrů, kterými prochází pomyslná kružnice se středem ve zvoleném hranovém bodě a s daným poloměrem. Za předpokladu známého poloměru se v bodě středu hledaného kruhu v prostoru parametrů vyskytne maximum. Postup pro neznámý poloměr je obdobný: provede se projekce pro hodnoty poloměru ve zvoleném rozsahu a následně se hledá maximální hodnota přes celý prostor parametrů. Parametrický prostor Mějme obrázek velikosti x krát y pixelů. Hledáme-li kružnici o neznámém poloměru v rozsahu r R, R = {r min, r min + 1,..., r max } se středem v libovolném bodě obrázku, bude naším výchozím parametrickým prostorem nulová matice o rozměrech (y + 2 r max ) (x + 2 r max ) R, kde R značí kardinalitu množiny R, zde tedy počet pozorovaných poloměrů 1. Do jednotlivých vrstev parametrického prostoru pak vepisujeme kružnice o poloměru odpovídajícím dané vrstvě se středy postupně ve všech hranových bodech. Při vykreslování kružnice můžete vyjít z analytické rovnice pro kružnici (x a) 2 + (y b) 2 = r 2, (1) z níž si vyjádříte jednu ze souřadnic a přes druhou můžete tudíž snadno iterovat. Nejjednodušším způsobem vytvoření souřadnic na kružnici je funkce circlecoords, obsažená v iris toolboxu, která vrací přímo souřadnice bodů na křužnici o zadaných parametrech (tady se může hodit funkce sub2ind 2, pozor také na konvenci [radeksloupec] vs. [xy])). Další možností je pak např. využití goniometrických funkcí. 1 Použijete-li pro vytvoření níže uvedenou funkci circlecoords, která dokáže omezit body na zadaný rozsah, není rozšíření parametrického prostoru v rozměru x y potřeba a parametrický prostor bude mít rozměr y x R 2 Pokud v Matlabu zadáte jako indexy matice dva vektory, bude použit jejich kartézský součin, nikoliv jednotlié páry [řádek sloupec]! Funkce sub2ind() převede takovéto páry na lineární indexy, které lze již použít jako vektor. Př: a = magic(3); r = 1 : 3; c = r; a(r, c) =?; a(sub2ind(size(a), r, c)) =? 2

Stručný popis použití iris toolboxu naleznete na konci tohoto zadání v příloze. Kostry funkcí, které máte za úkol implementovat, naleznete v adresáři ToDo. Úkol: 1. Implemetujte funkci [circlepupil, circleiris] = findirisannulus(uint8 iris_image), založenou na Houghově transformaci (HT). circlepupil a circleiris jsou vektory parametrů nalezených kružnic [x, y, poloměr] pro zornici a duhovku. Rozsahy parametrů HT pro prohledávání vhodně zvolte tak, aby nebyla nutná jejich úprava pro jednotlivé Vám přidělené obrázky. 2. Funkci využijte spolu se zbytkem Iris Toolboxu pro zakódování zadaných obrázků duhovky. 3. Obrázky mezivýsledků (detekce hran, nalezené kružnice, parametrický prostor) přidejte do zprávy. Poté, co implementujete funkci FindIrisAnnulus, můžete spustit toolbox na libovolný Vámi zvolený obrázek (stačí změnit název ukázkového obrázku v iris demo.m na cestu k vybranému souboru). Iris toolbox, konkrétně obalová funkce createiristemplate provede rozbalení vámi segmentovaného mezikruží do pseudopolárních souřadnic a zakódování duhovky pomocí kvantizace fáze Gaborových filtrů (viz přednášky). Poznámky k implementaci: Pro detekci hran použijte funkci edge(i, canny, thres). Funkce nejprve vypočítá gradientní pole obrázku a následně vyprahuje za použití parametru thres. Experimentujte s prahem, snadno dosáhnete odstranění části nadbytečných hranových bodů, čímž můžete významně urychlit a zpřesnit výpočet. Pro odstranění vysokofrekvenčních složek obrázku, které vedou k velkému počtu neužitečných hranových bodů (řasy apod). Výsledek můžete vylepšit předzpracováním obrázku ještě před hranovou detekcí, a to např. úpravou jasových hodnot (úpravou jasu a kontrastu) nebo gaussovskou filtrací ( rozmazáním ). Nejprve vytvoříte masku filtru pomocí f special, kterou následně aplikujete na obrázek: G = fspecial( gaussian,[a a],sigma); Ig = imfilter(image,g); Proměnná a určuje velikost vytvořené masky, sigma směrodatnou odchylky vypočítaného 2D gaussovského rozdělení. 3

Vyzkoušejte, zda lépe funguje Vaše detekce pro vnější nebo vnitřní hranu duhovky a tuto detekci provádějte jako první. Nalezené parametry pak můžete s výhodou použít pro omezení druhé vyhledávané kružnice (např: střed kruhu ohraničujícího duhovku zvenčí by měl ležet uvnitř nalezené zornice apod.) Může se hodit pro vnitřní a vnější hranu použít různá nastavení předzpracování obrázku. Každé rozumné omezení počtu prohledávaných parametrů razantně snižuje dobu, potřebnou pro výpočet. 2 Nalezení zadaných obrázků v databázi Tato část úlohy simuluje proces identifikace na základě duhovky tak, jak probíhá v reálném prostředí. Neznámé osobě jsou nejprve sejmuty fotografie duhovky (zde: zadané obrázky), které jsou zakódovány shodným způsobem, jako zbytek databáze. Následně se v databázi vyhledává uložený vzorek, který je právě sejmutému vzorku nejpodobnější. Tímto způsobem je v databázi nalezen nejpravděpodobnější subjekt. K porovnání dvou iriscodes se používá Hammingovy vzdálenosti (Hamming distance - HD), normované počtem překrývajících se použitelných bitů v maskách obou Iris-kódů: HD = (codea codeb) maska maskb, (2) maska maskb kde je logický XOR operátor, logický AND a norm operátor 3 - počet jedničkových bitů v daném řetězci. CodeA a codeb jsou porovnávané iris kódy a maska a maskb příslušné šumové masky (zde 1 je užitečný signál, 0 šum. Pozor: v Iris toolboxu je konvence opačná!) Aby se předešlo nežádoucímu vlivu rotace duhovky (naklopení hlavy) na výsledek porovnání, používá se vzájemný bitový posun iris kódů vůči sobě ve zvoleném rozsahu a výpočet Hammingovy vzdálenosti pro každý posun. Jako výsledek porovnání se pak bere nejlepší shoda - tedy nejmenší dosažená vzdálenost. Úkol: 1. Implementujte funkci HD = irishammingdistance(codea,codeb, maska, maskb) pro porovnání dvou iris kódů na základě vzorce (2). Implementujte vzájemný bitový posun iris kódů, rozsah posunů volte ±12 bitů 4, hodit se může funkce circshif t(). 3 Pozor: norm operátor zde operuje v binárním oboru - vrací tedy počet jedniček - narozdíl od Matlabovské funkce norm(), která vrací vždy euklidovskou vzdálenost od počátku a je tedy pro tyto účely nevhodná! Účelu poslouží funkce sum(). 4 Uvědomte si, kolik bitů zároveň je zakódováno během kvantování fáze (viz přednášky), upravte podle toho krok posunu a ušetřete si podstatnou část porovnání! 4

2. Projděte databázi uložených iris kódu (database.mat) a najděte takovou osobu, od které Vám přidělený obrázek duhovky nejpravděpodobněji pochází. Nejnižší nalezené hodnoty Hammingových vzdáleností pro jednotlivé, Vám zadané obrázky, vložte do zprávy, stejnětak jako informaci, které osoby (a oči) jste na základě obrázků dohledali. K načtení a procházení databáze můžete pro usnadnění použít připravený skript walkdatabase.m 3. Projděte databázi ještě jednou a nyní porovnejte všechny záznamy se všemi, přičemž rozdělte ty, u kterých se porovnávaly iris kódy stejného oka (=stejné oko stejné osoby) a ostatní. Obě sady hodnot vykreslete do společného histogramu. Jaké vycházejí Hammingovy vzdálenosti pro porovnání stejných a různých očí. Kam byste umístili rozhodovací práh (zvolte)? Jaký by měl tento práh FAR a FRR? A Co nám výsledný graf vypovídá o naší metodě? Graf s krátkým komentářem a odpověd mi na otázky zaneste do zprávy. 3 Bonusové úlohy V rámci těchto nepovinných úloh máte možnost využít Vámi implementovaných funkcí. Jejich zpracování nezabere příliš času a umožní Vám pochopit a prakticky si vyzkoušet další aspekty rozpoznávání duhovky. Bonus: zpracování vlastních obrázků duhovky Pomocí kamery pro snímání duhovky vyfotografujte vlastní duhovky obou očí. Parametry iris toolboxu upravte tak, aby dobře vyhovovaly ke zpracování obrázků použité kamery. Pravděpodobně bude třeba upravit parametr irisconfig.lonoisethreshold v iris demo.m, určující práh pro řasy (oblasti tmavší než zadaný práh jsou označeny jako šum). Aktuální hodnota prahu je nastavena pro výchozí databázi. Pořízené snímky převed te na iris kódy a uložte do vlastní databáze. Jaká je hammingova vzdálenost mezi fotografiemi obou Vašich očí? Jaký je vztah této hodnoty k Vámi zvolenému prahu z předchozího úkolu a k hodnotám porovnání stejných a rozdílných očí? Výsledky uved te do zprávy a komentujte. Bonus: Útok na systém pomocí vytištěných snímků duhovky K útoku použijeme běžné fotografie duhovky. Poskytnuté fotografie duhovky, vytištěné na laserové tiskárně i ty, vzniklé klasickým fotografickým osvitem, nasnímejte iris kamerou. Snímky, sejmuté kamerou, segmentujte, převed te na iris kódy a porovnejte se zadanými iris kódy, vzniklými přímo sejmutím oka 5

kamerou. Jak se liší, jaká je jejich hammingova vzdálenost? Byl by takový systém úspěšný? Vyzkoušejte detekci tohoto útoku pomocí 2D Fourierovy transformace: porovnejte spektra přímého a podvrženého obrázku. Jak se tato spektra liší? Je nějaký rozdíl mezi obrázkem z laserové tiskárny a fotografickým osvitem? Jaký? Jak by bylo možné útok detekovat a který z obrázků ke pro detekci obtížnější? Závěr Blahopřejeme, právě jste naimplementovali významnou část systému pro rozpoznávání duhovky. Vyzkoušeli jste, co obnáší předzpracování a segmentace a prozkoumali různé vlastnosti porovnávání pomocí normované Hammingovy vzdálenosti. Zobrazili jste histogramy pro porovnání mezi obrázky stejných a různých očí a zhodnotili statisticky kvality Vašeho systému. Ten funguje obdobně, jako systémy po celém světě, používané na letištích a bezpečnostních kontrolách. Navíc doufáme, že až si budete chtít vzpomenout, jak jsem to vlastně dělal, pomůže vám výsledný protokol. Poděkování Vytvoření této úlohy bylo podpořeno Ministerstvem Školství, Mládeže a Tělovýchovy grantem FRVŠ 2529/2012. 6

Příloha: Stručný přehled Iris Toolboxu Představu o funkci toolboxu si uděláte spuštěním iris demo.m. Při spuštění dema se zobrazí hodnoty předem předpočítané a uložené v cache. Hlavní funkcí, zodpovědnou za extrakci příznaků, je createiristemplate.m Pro nastavení parametrů a přidání adresářů do PATH matlabu slouží iris init.m. Zde lze nastavit mj. hodnotu prahu pro vlastní obrázky duhovky. Kostry funkcí, které máte za úkol naimplementovat, najdete v adresáři ToDo. Sem ukládejte veškeré kódy, které během práce na úloze vytvoříte. Vám zadané obrázky naleznete v adresáři Images. Struktura dat Zakódované obrázky a příslušné masky se nacházejí v souboru database.mat, obsahujícím stejnojmenné pole struktur - celkem 30 pro 30 osob, uložených v databázi. Každá osoba pak obsahuje pole struktur R a L s různým počtem uložených kódů. Ty jsou v polích template, příslušné šumové masky v poli mask. Příklad: k iris kódu, odpovídajícímu 3. obrázku pro levé oko osoby č. 12 se dostanete přes database(12).r(3).template, k příslušné masce pak přes database(12).r(3).mask. Procházení databáze je pro vás však připraveno ve funkci walkdatabase.m 7