This project is an implementation of iris dataset identification using edge detection, Hough transform, and Daugman normalization. We also employ a Siamese network with contrastive loss for identification.
Our implementation follows the following steps:
-
🎨 Data preprocessing: We preprocess the iris dataset using edge detection, Hough transform, and Daugman normalization to enhance the images and prepare them for identification.
-
🤖 Siamese network: We implement a Siamese network for identification, using contrastive loss to train the network.
-
📈 Visualization and Results: We present the results of our identification model, including accuracy and comparison with other methods.
In order to enhance the iris images for identification, we employ three methods: edge detection, Hough transform, and Daugman normalization.
We use Canny edge detection to extract the edges of the iris image, which can help to remove noise and enhance the features of the iris.
We use the Hough transform to detect the circular shape of the iris, which is important for accurate identification.
I implemented the hough transform algorithm using Numpy broadcasting and vectorizing, also by some modifications could achieve better speed and lower computations.
I use Daugman normalization to transform the iris image into a polar representation, which makes it easier to compare with other iris images.
We implement a Siamese network for identification, which takes in two iris images and outputs a similarity score. We use contrastive loss to train the network, which helps to optimize the similarity scores.
Consider that I didn't train classifer on the learned representations by siamese you can use this repository to preprocess and learn representations of your dataset and by training a classifier get better results.
To get started with our iris dataset identification project, follow these steps:
- 🔗 Clone this repository:
https://github.com/sobhanshukueian/Iris-Identification.git
- 🖼️ Run the preprocessing:
preprocess.ipynb
- 🤖 Train the Siamese network:
Siamese Identification.ipynb
We visualize the iris images before and after preprocessing, as well as examples of the Siamese network's similarity scores.
♾️
If you found this project useful or interesting, please consider giving it a star on GitHub! This helps other users discover the project and provides valuable feedback to the maintainers.
Thank you for your support!