Giter VIP home page Giter VIP logo

2106785142 / iris-recognition-registration-database-system Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aaahmedms/iris-recognition-registration-database-system

0.0 0.0 0.0 76.99 MB

An Iris Recognition Registration System, that uses computer vision technology to do facial recognition to capture the IRIS of an individual, and store their information in a database.

License: MIT License

Python 100.00%

iris-recognition-registration-database-system's Introduction

Iris-Recognition-Registration-Database-System

An Iris Recognition Registration System, that uses computer vision technology to do facial recognition to capture the IRIS of an individual, and store their information in a database for biometric authentication. The DLIB library is used to detect and recognize the face structure to pinpoint the eyes, and then capture the eyes through openCV's video capturing functions. The captured IRIS is stored into an image along with input from the user. During verification an associated ID inputted by the user is entered when verifying the IRIS. The IRIS is captured through the video feed, and sent to a pattern feature-like matching system setup using ORB's detector. The detector does pattern matching of both the user's IRIS through the feed, and the stored image of the user's IRIS from the keypoints. A test is done by the program to check for a match using a matching ratio value assigned by the program.


Python Editor Used:

  • IDLE

Platform Test:

  • Windows

Equipment:

  • Laptop/Desktop running program
  • High Definition camera (or mobile phone/device running camera through an RTSP server)

Installation: Setting Up Python 3.X with OpenCV and External Libraries:

1. Download python 3 here, in this case it was python-3.6.4-amd64 for windows: https://www.python.org/downloads/release/python-364/

2. To install python libraries on windows:

  • Open up installation directory and run cmd on directory.
  • cd D:\Python3\Scripts
  • cmd on toolbar
  • pip install [LibraryName]

3. Install the following libraries:

  • OpenCV (pip3 install opencv-python)
  • numpy (pip install numpy)
  • Pillow (pip install pillow)
  • PyQT5 (pip install pyqt5)
  • CMAKE (pip install cmake - this is required to install dlib)
  • DLIB (pip install dlib)
  • DateTime (pip install datetime)
  • (X) SIFT (pip install opencv-contrib-python) - REMOVED, the library is patented so its no longer used for Iris Matching but opencv-contrib-python has other useful libraries so its worth installing

To generate gui file as python:

  • navigate to folder of gui file and type cmd
  • in command terminal type the following:
pyuic5 -x guiIRRDN.ui -o guiIRRD.py
pyuic5 -x guiIPopUp.ui -o guiIPopUp.py


Registering the IRIS:

Once the register button is pressed, the program will halt and open a prompt asking for user input. The input is stored along with the image. The captured IRIS portfolios are stored under the database folder.



Viewing Registered Users in the Database:

All users registered with the system can be viewed using the "show registered users" button. This will open up a table of all registered users with each cell corresponding to the inputted data from the individual users registered. The IRIS registered by each user can also be viewed by pressing the "INFO" button configured in the cell of the table.



User Verification with Associated ID:

User verification is done by first scanning the users facial features using DLIBS landmark detector, and pinpointing where the eyes are located. The camera then captures the eyes and hones in on the IRIS. When verifiying, a prompt asking for user ID will show. Once the user's ID is inputted, the captured IRIS is scanned and pattern matched with the registered ID with the same ID as the user input.

The verification process involves using ORB's image matching library. The image of the user's IRIS captured live during the verification screening is fed through the method iris_match_res(), along with the registered captured IRIS with the ID the user inputted. If there is a match using ORB's brute force matching, then the user entry for the registered user and their information will be shown in a dialog. The match_rate conditional statement will have to be adjusted based on what video capture system is used. For stronger cameras, a match rate greater then 50% will work. For weaker camera devices such as a wireless webcam, a lower value such as 35% should be considered.

The main components have been broken up and placed into the "IndividualProgs" folder. This is to see the basic form of the core features that makeup this program.


A couple of things to note:

  • The CAMERA must take high definition photos for ORB detector to find keypoints for IRIS matching. If camera image isnt high enough quality then the message "Image Quality is low definition, unable to verify. please use a stronger camera.", will show up in the console when doing user verification.
  • ID association is done in this project as it saves on computational power although an ID number during verification is not needed for matching. The image can be iteratively compared with all eyes in the filesystem until a match is found using ORB detection if the code is modified.
  • An ID associated with the iris captured is beneficial with a database comprised of over 1000 people who are registered, which is why for this project that route was taken. The code can be easily modified to ignore id input and just pattern match with all registered user iris's.

iris-recognition-registration-database-system's People

Contributors

aaahmedms avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.