Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.
AI & ML

Fundus Photo Quality Gate for Diabetic Eye Screening Camps

A final year project that checks retinal photos at the moment of capture during diabetic eye screening camps and tells the operator whether the image is good enough to be graded, and why not. It is a non-diagnostic quality aid: you train an image quality model on public data, explain its reasons and test it on a phone.

Difficulty

Intermediate

A small team, or one strong student willing to learn something new.
Effort

2 semesters · 2 to 3 students

Deliverables

6 to ship

3 optional extras

Suggested stack

PythonPyTorchtimmONNX RuntimeFlutterFastAPIGrad-CAM
A suggestion, not a requirement. Swap anything for what you already know.

What you should ship

  • A quality classifier trained on the public EyeQ dataset (Good, Usable, Reject) with results reported on its official test split.
  • Reason heads or rules that name the likely problem: too dark, blurred, off-centre, eyelash or eyelid artefact, small pupil.
  • An on-device version exported to ONNX or TensorFlow Lite that runs on a mid-range Android phone in under one second per image.
  • A capture app screen that shows the verdict and the reason immediately after each photo, with a prompt to retake when needed.
  • Saliency maps (Grad-CAM) for a sample of decisions so clinicians can check the model looks at sensible regions.
  • An evaluation report including a small external test set from a different camera, and a clear non-diagnostic statement in the app and the report.

If you have time left

  • Calibrate the model on images from a smartphone fundus adapter and report how much fine-tuning is needed.
  • Queue and sync gradable images to a reading centre when connectivity returns.
  • A per-operator dashboard showing retake rates over a camp day, useful for training.

The problem screening camps have with image quality

Diabetic retinopathy screening works by photographing the back of the eye and having a trained grader, or an approved AI system, read the image later. Outreach camps in rural areas and small towns use portable or handheld cameras operated by technicians who may have had little training. The weak link is often the photo, not the reading. If an image is blurred, too dark or off-centre, the grader cannot use it, and by the time anyone finds out the patient has gone home and may never come back.

Published studies show how much this varies: one screening study with portable cameras found 17.6 percent of images could not be graded by the specialist reader, and the same paper cites a rural India experience of 34 percent. A quality check at the moment of capture, while the patient is still in the chair, directly reduces lost screenings.

What already exists and the gap

  • Eyenuk's EyeArt and Digital Diagnostics' LumineticsCore (formerly IDx-DR) are regulated autonomous diagnostic systems; they report ungradable images, but as part of a paid diagnostic workflow, usually after upload.
  • Remidio makes smartphone-based fundus cameras with built-in AI, tied to its own hardware.
  • Academic image quality models such as those trained on the EyeQ dataset (28,792 EyePACS images labelled Good, Usable or Reject) are published as research code, not as a tool an operator can use offline in a camp.

The gap is a hardware-independent, offline, explainable quality gate that tells the operator what to fix. It deliberately does not diagnose anything.

What you build

A quality model and a capture companion app. The model takes a fundus image and returns a quality grade plus one or more reasons. You can train reasons in two ways: label a few hundred images yourself with reason tags and add small classification heads, or compute simple image measures (brightness histogram, blur via Laplacian variance, optic disc position) and combine them with the learned grade. Comparing the two is a good experiment.

The app runs the model on the phone. The operator photographs, sees "Retake: image too dark, increase illumination" or "Good", and moves on. Images are stored with their grade for later upload.

The technically interesting part

Generalising across cameras. EyeQ comes from desktop cameras in the EyePACS programme. Handheld and smartphone cameras produce different colours, fields of view and artefacts. Your key experiment is domain shift: train on EyeQ, test on an external set from a different camera (several public fundus datasets exist, or partner with an eye hospital for a small anonymised set under their approval), measure the drop, then try mitigations such as colour augmentation, histogram normalisation or fine-tuning on a small labelled set. Report how many target-domain labels you need to recover most of the lost accuracy. That answer is exactly what a real deployment needs to know.

Also show your evaluator why the model decides what it does, using Grad-CAM overlays reviewed by at least one optometrist or ophthalmology resident.

How to evaluate it

  • Accuracy and macro F1 on the EyeQ test split, and the confusion between Usable and Reject.
  • Performance on the external camera set before and after adaptation.
  • Reason tag precision on a labelled sample of at least 200 images.
  • On-device latency and model size on a named mid-range phone.
  • A simulated capture session with volunteers (using a teaching fundus model eye or recorded images) measuring retakes and time per patient with and without the gate.

Suggested plan

  1. Month 1: literature review, EyeQ download, baseline training.
  2. Month 2: reason labelling and reason heads versus hand-made measures.
  3. Month 3: external set and domain adaptation experiments.
  4. Month 4: model export and on-device testing.
  5. Month 5: capture app and saliency review with a clinician.
  6. Month 6: simulated session, write-up and ethics section.

Path to a product

The first customer is an NGO or hospital outreach programme that runs screening camps with mixed camera hardware. Offer it free for pilots and charge an annual licence per device for programmes, or sell it to camera makers as an SDK. Because the tool is non-diagnostic and does not give clinical findings, it sits in a lighter regulatory position than diagnostic AI, but check local rules with your partner before any real deployment and never present it as a diagnosis.

Scope warning

Do not detect or grade retinopathy, and do not show any disease output to operators or patients. Do not use real patient images without formal approval from the partner institution. Do not build camera hardware. The project is a quality gate, measured well.

Learn what you need on Sefism

Get help with this idea

Health projects need extra care on ethics, data approval and wording. A mentor can help you set a safe, non-diagnostic scope and plan the external test set. Bring your draft scope, the dataset you plan to use and your evaluation table, and we can look at them together. The build is yours; the guidance is on scope, stack and how to measure it. If you are new here, create a free account first.

Ideas and guidance, not finished projects

These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.

Not sure this one fits you?

I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.

Discuss this idea
Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.