Skip to content

AI-based hemoglobin (Hb) prediction from blood-drop microscope images — PyTorch + FastAPI + minimal UI.

License

Notifications You must be signed in to change notification settings

kumaran4002/hb-prediction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hb Prediction from Blood Drop Images

Predict hemoglobin (Hb) from blood-drop slide images using deep learning.
Supports regression (Hb value) and WHO anemia classification (6 classes).

Project Structure

hb-cnn/
├─ data/
│  ├─ raw/                 # original images (cell types)
│  ├─ bloodcell_pretrain/  # pretraining dataset
│  ├─ slide_raw/           # your blood-drop images
│  ├─ images/              # cropped & normalized ROIs
│  └─ manifest.csv
├─ src/
│  ├─ data/
│  │  ├─ ingest_pretrain.py
│  │  ├─ preprocess.py
│  │  └─ dataset.py
│  ├─ train/
│  │  ├─ pretrain.py
│  │  └─ finetune.py
│  ├─ eval/
│  │  ├─ evaluate.py
│  │  └─ fairness_checks.py
│  ├─ export/
│  │  └─ export_onnx.py
│  └─ deploy/
│     └─ serve.py
├─ experiments/
├─ docs/
│  ├─ protocol.md
│  ├─ model_card.md
│  └─ benchmark_report.md
├─ requirements.txt
└─ README.md

Setup

  1. Create virtual environment:
python -m venv .venv
.\.venv\Scripts\Activate.ps1   # Windows
# source .venv/bin/activate    # Linux/macOS
  1. Install dependencies:
pip install -r requirements.txt
  1. Prepare datasets:
  • Place raw blood-cell images in data/raw/
  • Place your slide images in data/slide_raw/
  • Run ingestion & preprocessing:
python src/data/ingest_pretrain.py --raw_dir data/raw --out_dir data/bloodcell_pretrain --size 224
python src/data/preprocess.py --raw data/slide_raw --out data/images --manifest data/manifest.csv

Training

  • Pretrain backbone:
python src/train/pretrain.py --data data/bloodcell_pretrain --epochs 30 --out experiments/pretrain
  • Fine-tune on slide images:
python src/train/finetune.py --manifest data/manifest.csv --imgroot data/images --epochs 60 --out experiments/finetune

Evaluation

python src/eval/evaluate.py --manifest data/manifest.csv --imgroot data/images --checkpoint experiments/finetune/best_finetune.pth

ONNX Export & Quantization

python src/export/export_onnx.py --checkpoint experiments/finetune/best_finetune.pth --out models/hbnet.onnx

Deployment (FastAPI)

uvicorn src.deploy.serve:app --reload --port 8000

Test:

curl -X POST "http://127.0.0.1:8000/predict" -F "file=@slide_image.jpg"

Project Goals

  • Predict Hb (g/dL) from slide images
  • WHO anemia classification (4 classes)
  • ONNX quantized model < 100MB, latency ≤ 800ms on mobile CPU
  • Regression MAE ≤ 1.5 g/dL, WHO class accuracy ≥ 85%

About

AI-based hemoglobin (Hb) prediction from blood-drop microscope images — PyTorch + FastAPI + minimal UI.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published