Skip to content

Repository files navigation

Eyedentify-AI: Conjunctivitis Detection Using Deep Learning

** Status:** In Progress — Expected Completion: End July, 2025
Update: Completed MVP on July 24, 2025!

Eyedentify-AI is a tool that classifies red eye (conjunctivitis) from patient-submitted images. It combines image preprocessing, signal-based blur detection, and deep learning-based classification.
The goal is to build a fully functional and explainable AI workflow — from raw images to web deployment — tailored for real-world use. https://mariamh1121-eyedentify-ai.hf.space


Tech Stack

Layer Technologies
Data & EDA Python, OpenCV, NumPy, pandas, Matplotlib
Detection MediaPipe, ResNet18, Roboflow annotations
Classification PyTorch, Torchvision (ResNet18)
Explainability Grad-CAM++ via pytorch_grad_cam
Web Interface Flask, MediaPipe, HTML/CSS, JavaScript
State & Storage SQLite or JSON files for session & log tracking
DevOps Git, virtualenv, Docker, CI/CD (GitHub Actions)

Folder Structure

.
├── .vscode/
│   └── settings.json            # VS Code workspace settings
├── data/
│   ├── raw/                     # Original patient images
│   ├── filtered/                # Images that passed blur & quality filters
│   ├── flagged/                 # Images flagged for manual review
│   ├── processed/               
│   └── split/            
├── eyedentify-ai-app/           # Flask web app (see its own README)
├── logs/
│   ├── blurry_images.csv        
│   └── filtered_images.csv      
├── notebooks/
│   ├── 01_explore_preprocess.ipynb  # Image stats & blur detection
│   ├── 02_split_double_eyes.ipynb   
│   └── 03_Cropping_Model.ipynb      
├── plots/
│   ├── fft_sharpness_histogram.png  # Sharpness distribution by class
│   └── gradcam_visualizations.png   # Sample Grad-CAM++ heatmaps
├── resnet_weights/
│   └── resnet18_weights.pth      # Trained ResNet-18 checkpoint
├── runs/                         
├── scripts/
│   ├── gradcam.py                # Standalone Grad-CAM++ visualization script
│   └── old_webcam.py             # Legacy webcam-capture demo
├── utils/
│   ├── __pycache__/              # Python cache (auto-generated)
│   └── preprocessing.py          # Resize, normalize, blur–filter functions
├── .gitignore                    # Files/folders to ignore in Git
├── conjunctivitis.zip            # Raw dataset
├── README.md                     # This file: project overview & structure
└── requirements.txt              # `pip install -r requirements.txt`

Sample Output

Sample Output


Conjunctivitis Web App

Here’s the end‐to‐end screening pipeline:

flowchart TD
    A["Capture webcam image"] --> B@{ label: "Click ANALYZE" }
    B --> C["MediaPipe detects eye regions"]
    C --> D["Preprocess: resize to 224×224 & normalize"]
    D --> E["ResNet18 inference → P(infected)"]
    E --> F{"P(infected) ≥ 60%?"} & K["Generate Grad-CAM++ heatmap"]
    F -- Yes --> G["Likely Conjunctivitis"]
    F -- No --> H{"P(infected) ≥ 40%?"}
    H -- Yes --> I["Near threshold: monitor or consult"]
    H -- No --> J["Likely Normal"]
    K --> L["Overlay heatmap & display results"]
Loading

License

This is a private project under active development by Mariam Husain as part of an independent initiative to build deployable, explainable AI tools for healthcare.

All rights reserved © 2025 Mariam Husain. Unauthorized use, copying, or distribution is strictly prohibited.

For academic use, licensing, or collaboration: Contact Me

This project is actively evolving. Logs, plots, and notebooks are structured for traceability and can be extended for medical imaging beyond conjunctivitis.

About

an AI-powered tool to diagnose and track ocular diseases

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages