/Eye-Blinker

:wink: Desktop application which helps user to reduce eye strain using opencv

Primary LanguagePython

Eye-Blinker

Software for reducing eye strain which occurs due to constantly staring at digital screen for long periods of time. Normallly a human blinks about to 10-20 times per minute but due to constant staring at screens this number reduces to about 3-8 times a minute. Eye-Blinker is designed to prevent this very scenario.

Features of Eye-Blinker are:

1.Three different levels of warnings.

  • Level 1: Issuing warning stating your blink rate is low.
  • Level 2: Adjusting brightness as blink rate is lower than usual.
  • Level 3: Prompting the user to look away from the screen for 15 seconds as blink rate is critically low.

2.Script runs in the backgroud while working offline.

3.Generation of graphical model on the basis of blink rate of 15 seconds for further analysis.

How to install:

  1. Clone the repository and cd into Eye-blinker.
  2. Check opencv version using
    $ python3
    >>> import cv2
    >>> cv2.__version__
  3. If not present then install opencv using:
    pip install opencv-python for python 2
    pip3 install opencv-python for python 3
  4. Install dlib using:
    pip install dlib for python 2
    pip3 install dlib for python 3
  5. Install PyQt using:
    sudo apt-get install python-qt5 for python 2
    sudo apt-get install python3-qt5 for python 3
  6. Run driver.py as:
    python3 driver.py

File Description:

1.driver.py:Runs the python GUI using multithreading.
2. detect_blinks: Detects the eyes of the reader and calculates the blinks for each minute.
3. generate_reports: Generate graph for each session on the basis of blinks.
4. bright.py: Tweaks the brightness of the screen in level 2.
5. level3.py: Prompts the user to look away and calculates the time where he looks away in level 3.