Iris recognition using variants of the triplet loss.
For starters the implementation uses Keras and Tensorflow, other needed packages include numpy, opencv, matplotlib among others.
The losses borrow heavily from the omoindrot triplet loss implementations.
The recognition pipeline works on the outputs of the segmentation pipeline. It needs square images with irises in the center. The background is set to black. This implementation uses a custom Keras generator, the data format is in this format:
Left and right irises are different classes due to them being statistically different.
The testing pipeling requires a single folder with iris images with the Notre Dame format. The provided script outputs visualizations such as correlation between feature vectors and histogram of distances. Other visualizations such as tsne are still pending. The Notre Dame iris dataset file format : "02463d1000l.png", where 02463 is the subject number, 1000 is the image number and l signifies the left iris.
There are two plots of note which the code outputs.
Histogram of distances for the ND dataset:
FAR/FRR plot for the ND dataset:
If you use this repository consider citing our paper
@INPROCEEDINGS{9185998, author={S. {Ahmad} and B. {Fuller}},
booktitle={2019 IEEE 10th International Conference on Biometrics Theory, Applications and Systems (BTAS)},
title={ThirdEye: Triplet Based Iris Recognition without Normalization},
year={2019},
volume={},
number={},
pages={1-9},
doi={10.1109/BTAS46853.2019.9185998}}