Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

Repository files navigation

DailyHackEPS2023

What is DailyHack?

Welcome to the DailyHackEPS2023 repository! This project is an integral part of a challenge to gear up for HackEPS, a thrilling event that showcases the prowess of developers and problem solvers.

For an in-depth understanding of the challenge and its nuances, please refer to the challenge description (in Catalan).

Important info about this project

How to use the app

You'll be prompted with a camera, and an input asking for a set of characters you want to express.

For instance if you want to express the word Hello, it is 4 chars length.

Since our latin alphabet has 26 chars, we'll need 2 photos per char to decide which char we're going to use.

The following schema is used to compute the alphabet using the images:

 alphabet = {
    "FIST": 0,
    "INDEX_FINGER": 1,
    "L_SHAPE": 2,
    "OK_SHAPE": 3,
    "C_SHAPE": 4,
    "PALM": 5,
    "THUMB_FINGER": 6,
    "FIST_MOVED": 7,
    "PALM_MOVED": 8,
    "PALM_DOWN": 9
}

And you'll be thiking, why this order? Well, I thought I'd the easiest to learn, since we can remember thanks to this mnemotecnic:

  1. With out fist (puny en català) we count as 0 when we were kids
  2. With our index finger we start to count
  3. Making an L shape uses 2 fingers
  4. An ok hand gesture uses 3 straight fingers
  5. In spanish the 4 is spelled CUATRO
  6. The palm has clearly 5 fingers
  7. The first finger when we need to count >5 (6 is the firsts) with our hands 7,8,9 High numbers which you'll need to remember :D (come on, there are only 3 numbers with no reason, JUST 3!)

Once the alphabet is encoded using UNICODE, take in mind that A=00, B=01, C=02 .... Z=26

You can use this as a reference:

A = 1
B = 2
C = 3
D = 4
E = 5
F = 6
G = 7
H = 8
I = 9
J = 10
K = 11
L = 12
M = 13
N = 14
O = 15
P = 16
Q = 17
R = 18
S = 19
T = 20
U = 21
V = 22
W = 23
X = 24
Y = 25
Z = 26

Little disclaimer

The model is trained under low-light levels, so try to recreate the model's enviroment to take photos, otherwise it won't work.

Model reference

Please reffer to this Kaggle link to see more about how the model was trained

Architecture

Project Overview

DailyHackEPS2023 is built using Python3 and the Eel library to create a desktop application. The structure is centered around the core.py script, supplemented by predict.py (using a Keras AI model) and captureImgs.py to save images to the local disk.

Core Components

1. core.py

The core.py script serves as the backbone, orchestrating fundamental functionalities.

2. predict.py

Empowered by a Keras AI model, predict.py adds intelligent capabilities for predictive tasks.

3. captureImgs.py

The captureImgs.py script facilitates seamless image capture and storage on the user's machine.

Python and Eel Synergy

Python3, coupled with the Eel library, efficiently powers the desktop application, bridging the gap between front-end and back-end development.

Development Deploy

To begin with DailyHackEPS2023:

  1. Clone the repository.
  2. Ensure Python3 is installed.
  3. Create a virtualenv virtualenv env and enter it soruce env/bin/activate
  4. Install dependencies with pip install -r requirements.txt.
  5. Execute python3 core.py to launch the application.
  6. Hurray! The app will pop up!

Contribution Guidelines

Contributions are welcome. Review our contribution guidelines before getting started.


Production Deploy

Sorry ran out of time, if you want you can build it, but make sure it builds along with the web folder, the models folder, and the core.py, captureImgs.py, predict.py, as well as all pip requirements and reserves and empty folder called captured-imgs, where snaped photos will pop up.

Some documentation that might help:

Eel build documentation

PyInstaller documentation

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages