Improved Daugman’s Method Team Beta Bryan Chamberlain Kyle Barkes Daniel Lohmer Patrick Braga-Henebry CSE30332 Programming Paradigms Professor Patrick Flynn Outline • • • • • • Problem statement Literature Review Improved Daugman’s Algorithm Implementation Details Experimental Results Conclusions and Comments Problem Statement • Our team sought to create an efficient iris localization algorithm through both research and self-testing. Literature Review • How Iris Recognition Works (John Daugman) • Image understanding for iris biometrics: A survey (Kevin W. Bowyer, Karen Hollingsworth, Patrick J. Flynn) • An Improved Method for Daugman's Iris Localization Algorithm (Xinying Ren, Zhiyong Peng, Qinging Zeng, Chaonan Peng, Jianhua Zhang, Shuicai Wu, Yanjun Zeng) • Efficient Iris Recognition through Improvement of Feature Vector and Classifier (Shinyoung Lim, Kwanyong Lee, Okhwan Byeon, and Taiyun Kim) • Iris recognition: An emerging biometric technology (Richard P. Wildes) • Iris segmentation methodology for non-cooperative recognition (Hugo Proença, Luís A, Alexandre) Iris segmentation methodology for noncooperative recognition • Extension of Wilde’s method • Fuzzy k-means clustering An Improved Method for Daugman's Iris Localization Algorithm • Localization of pupillary boundary – Coarse, then fine • Localization of limbus boundary – Coarse, then fine, based on right and left canthus • Localization of upper and lower eyelid boundaries – excludes area most likely to be noise Concerns • With pupil boundary detection: – Ability to set accurate threshold value • With limbus boundary detection: – Noise getting in the way of edge detection on either side of the eye • With eyelid exclusion: – Loss of valid data – Inability to detect extreme rotation Implementation • Utilized: Python, OpenCV, Google Code, SVN • Pupil – Coarse and Fine combined • Limbus – Coarse – Fine • Main – Combines all functions – A variety of output options Pupilic Localization • • • • L= DC 2 DC 128 5 128 Threshold as defined in paper: 128 proved to be a bad value DC L= 2 DC x 5 Solved for new values x and y: y With a high average gray value(DC): DC = 190, L = 55 : y = 110 190 x 85 • With a low average gray value(DC): DC = 120, L = 30 : y = 60 120 x 30 • Solved for new threshold equation: DC L= x = -8 y = 257 2 DC + 8 5 257 Pupilic Localization Cont'd • Compare each pixel, to threshold value • If I(x,y) < L, then it is considered to be in the pupil • Radius is determined using the number of pixels found and the area of a circle r = A / π • Center coordinates are found by calculating the average x and y values of every pixel • The integro-differential operator is then used for fine-localization Pupilic Localization Cont'd • f (I ) = |I (x, y) − I (x − 1, y − 1)| + |I (x, y) − I (x, y − 1)| + |I (x, y) − I (x + 1, y − 1)| + |I (x, y) − I (x − 1, y)| + |I (x, y) − I (x + 1, y)| + |I (x, y) − I (x − 1, y + 1)| + |I (x, y) − I (x, y + 1)| + |I (x, y) − I (x + 1, y + 1)| • ΔL = f I / 2 • If f(I) < ΔL , it is still in the pixel Integro-differential operator dr Coarse Limbic • Uses pupilic (x,y,r) to find limbic for L/R arcs • Increments radius, keeps max(IDO) • Averages L/R (x,y,r) Fine Limbic • Searches around coarse (x±9,y±8,r±9) for better fit Fine Coarse Search Space Result Experiments • 51 Images, provided by Dr. P.J. Flynn • Center: Euclidean Distance • Radii: Absolute Difference Experiment Data Centers: Euclidean Distances Radii Difference Limbic Pupillic Limbic Pupillic Median 10.22 4.06 6.00 6.82 Mean 15.93 10.80 13.56 10.69 Std Dev 15.82 14.69 16.78 2.00 Conclusions and comments • OO • C++ vs. Python • What worked well? – Integro-differential operator – Threshold evaluator • What didn’t work well? – Delta(intensity) check on coarse pupil