Skip to main content

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

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 the IrisSystem 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iris_system-0.1.0.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

iris_system-0.1.0-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

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

Hashes for iris_system-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4f47071fee6a7d0962215a5482eb083aae1b003ba75b79ae3fefc4ce9c4c4f31
MD5 beb9969749fa32631f9389ed190b24d4
BLAKE2b-256 f9864eff8fa71d92807c9967ffadc1eeba50f1077b6167c7a1c15a42480d0d37

See more details on using hashes here.

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

Hashes for iris_system-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d6d2ce90388e6d300b0972c9e6319c9b13e130cd3c249880b4e45a216ab5fcb6
MD5 3f34fc2e68188086dc25090d9f69033e
BLAKE2b-256 08cd3dcc08b6a9f25d9ca9092425ae3b00ddda2ab6ef8979f6a7ee1ed071babe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page