Developing a robust tool for iris image analysis and recognition, including planned features such as advanced extraction and comparison of iris data, performance optimization using Random Forest Classifiers over keypoints, improvements for challenging conditions and database control. See for more, https://github.com/elymsyr/iris-recognition.
Project description
Iris Recognition System
The Iris Recognition System is a project aimed at developing a robust tool for iris image analysis and recognition. It includes planned features such as advanced extraction and comparison of iris data, performance optimization using Random Forest Classifiers over keypoints, and improvements for challenging conditions. The system includes a database for efficient data management and possible future enhancements for real-time applications with a GUI or mobile app. Forked from andreibercu/iris-recognition, the project has been updated to Python 3.9.x and is designed to enhance iris recognition accuracy and speed.
Table of Contents
Development
- Improved Iris Analysis: Improving analysis speed and extraction of features from iris images and creating a dictionary for recognition. Iris recognition accuracy is planned to be improved through keypoint classifying using Random Forest Classifiers or else, see Match or No Match: Keypoint Filtering Based on Matching Probability Youtube Video and Keypoint Recognition Using Random Forests and Random Ferns by V. Lepetit & P. Fua. In order to create a test data, functions is applied, see Usage
- Performance Improvements: Enhancements for recognition performance and speed, especially under suboptimal camera conditions.
- Database Integration: Save and retrieve iris data using a database.
- Optimization for faster query.
- Future Developments: Plans to create a GUI or mobile app for dynamic and in real-time use.
Installation
For the latest release:
pip install iris_recognition_system
or
1. Clone the repository:
git clone https://github.com/elymsyr/iris-recognition.git
cd iris-recognition
1. Create a virtual environment:
conda create -n venv_name python=3.9
1. Install the required dependencies:
pip install -r requirements.txt
Usage
IrisSystem
Class: This class provides a comprehensive solution for managing an iris recognition database, including the storage, analysis, and comparison of iris data.
Example Usage for Creating Iris Database
from iris_system.iris_database import IrisSystem
from iris_system.iris_recognition import IrisRecognizer
from os.path import exists
parameters = {
'detector': 'ORB',
'kp_size_min': 0,
'kp_size_max': 100
}
db_path = f"Database/iris_db_syn_{parameters['detector'].lower()}_{parameters['kp_size_min']}_{parameters['kp_size_max']}"
recognizer = IrisRecognizer(**parameters)
system = IrisSystem(db_path=db_path, recognizer=recognizer)
if not exists(db_path):
system.create_tables()
system.process_and_store_iris(path='IrisDB/CASIA-Iris-Syn/')
-
IrisSystemOptimizationTest
Class: This class extends theIrisSystem
to provide advanced optimization testing for iris recognition parameters. It includes functionality to:-
Randomly select and analyze iris data from the database.
-
Test various parameters to identify optimal settings for improved iris recognition accuracy.
-
Process and analyze test results to determine the best configuration.
-
Key Methods:
random_iris_tag(iris_id: int)
: Retrieves a random iris tag associated with a given ID.optimization_test(...)
: Conducts optimization tests by analyzing random selections from the current database or images.read_results(results: dict)
: Analyzes and interprets the optimization test results.get_unique_iris_ids()
: Retrieves a list of unique iris IDs from the database.key_points_classify(...)
: Classifies key points and prepares data for export.
-
Example Usage for Creating Test Data
from iris_system.iris_database import IrisSystemOptimizationTest
from iris_system.iris_recognition import IrisRecognizer
import json, csv
recognizer = IrisRecognizer()
system = IrisSystemOptimizationTest(db_path='Database/iris_db_syn_orb_0_100', recognizer=recognizer)
parameters = {
"test_size_diff" : 100,
"test_size_same" : 100,
"dratio_list" : [0.92, 0.88, 0.7],
"stdev_angle_list" : [5, 10, 15],
"stdev_dist_list": [0.08, 0.1]
}
results = system.optimization_test(**parameters)
# with open(f'test.json', 'w') as json_file:
# json.dump(results, json_file, indent=4)
# system.read_results({'results':results})
test = system.key_points_classify(results, 0)
with open('test.csv', 'w') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames = test[0].keys())
writer.writeheader()
writer.writerows(test)
See iris_system.iris_database
for more...
IrisRecognizer
Class: This class focuses on detecting and analyzing the iris and pupil from eye images using advanced image processing techniques. It provides several methods to handle the entire process of iris recognition, from loading images to detecting boundaries and finding key points.
See iris_system.iris_recognition
for more...
Contributing
Contributions are welcome! Please submit a pull request with your changes or improvements. Ensure that you follow the project's coding standards and provide relevant documentation. See the CONTRIBUTING file for details.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Contact
For questions or further information, please contact [orhun868@gmail.com].
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file iris_system-0.1.0.tar.gz
.
File metadata
- Download URL: iris_system-0.1.0.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f47071fee6a7d0962215a5482eb083aae1b003ba75b79ae3fefc4ce9c4c4f31 |
|
MD5 | beb9969749fa32631f9389ed190b24d4 |
|
BLAKE2b-256 | f9864eff8fa71d92807c9967ffadc1eeba50f1077b6167c7a1c15a42480d0d37 |
File details
Details for the file iris_system-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: iris_system-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6d2ce90388e6d300b0972c9e6319c9b13e130cd3c249880b4e45a216ab5fcb6 |
|
MD5 | 3f34fc2e68188086dc25090d9f69033e |
|
BLAKE2b-256 | 08cd3dcc08b6a9f25d9ca9092425ae3b00ddda2ab6ef8979f6a7ee1ed071babe |