Skip to main content

Library for drowsiness detection using deep learning

Project description

This library uses deep learning to detect drowsiness of a person

Before using this library make sure you have installed following libraries which are needed

  1. Tensorflowpip install tensorflow
  2. keras pip install keras
  3. pyaudio
    • For windows users
      • First install pipwin pip install pipwin
      • then install pyaudio with pipwin install pyaudio
    • For linux users
         sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0
         sudo apt-get install ffmpeg libav-tools
         sudo -s
         pip install pyaudio
      
  4. pyttsx3 pip install pyttsx3

To use this library just follow the steps

This library creates a new process by forking to perform predictions , but in windows process creation takes place differently by importing the script and executing it again so to avoid infinite loop initialize detector inside main condition as shown below

if __name__ == "__main__":
        initialize the detector here
        ......
        ....
        
  1. import it in your project

    from DrowsinessDetection.DrowsinessDetector import  getDetector
    
  2. initializing the detector

    detector = getDetector()(Audio="path to audio file, completely optional",UseAssistant=True)
    
  3. starting the detector in separate thread

    detector.start()
    
  4. Do any task and wait for detector to finish using join method , this is a blocking call

    detector.join()
    

if you want to listen for changing state of person then set a callback function which will take boolean as argument and this function will get fired every time person drowsy state changes , it will trigger true for sleeping and false for awake

def My_Callback(sleep):
        print("recieved status sleeping --> "+str(sleep))

d = getDetector()(UseAssistant=True)
d.setCallbackForStateChange(My_Callback)

If you want to control the behaviour programmatically then there are few methods on detector object

  1. for setting sensitivitydetector.setSensitivity(any integer)
  2. for closing the detectordetector.quit()
  3. for observing state changesdetector.setCallbackForStateChange(My_Callback)

Use Voice Assistant to control the sensitivity of detector and for quiting

voice commands are

  1. sensitivity low
  2. sensitivity medium
  3. sensitivity high
  4. quit

one sample script

from DrowsinessDetection.DrowsinessDetector import   getDetector

if __name__ == "__main__":

    def My_Callback(sleep):
        print("recieved "+str(sleep))

    d = getDetector()(audio="audio-file-path",UseAssistant=True)
    d.setCallbackForStateChange(My_Callback)
    d.start()
    d.join()


# press q to quit the script

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

python-DrowsyDetection-0.1.4.tar.gz (30.7 MB view details)

Uploaded Source

File details

Details for the file python-DrowsyDetection-0.1.4.tar.gz.

File metadata

  • Download URL: python-DrowsyDetection-0.1.4.tar.gz
  • Upload date:
  • Size: 30.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.1

File hashes

Hashes for python-DrowsyDetection-0.1.4.tar.gz
Algorithm Hash digest
SHA256 6f72590a10fe92732db3ca8e3aef1590937d62399756d1f02bfb262e07bbd07a
MD5 f8e098a38a421548e293c2a8c77dde6d
BLAKE2b-256 f60e0415be514e5d5d616296ba038bed58f71b1d945053c6416a032799874bf4

See more details on using hashes here.

Supported by

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