EyE Annotation Tool

EyE Annotation Tool
PyPI version Downloads License Zenodo DOI Code on GitHub

Throughout my PhD I kept needing accurate, pixel-level annotations of eye features — pupil, limbus (iris), eyelid, and corneal-reflection glints. So over the last few years I’ve been working on this tool every now and then, growing it from a quick-and-dirty annotation script into a proper Qt desktop app.

It supports monocular and binocular projects with per-eye overrides for ROI, defaults, and carry behavior. The built-in auto-detectors — 8+ pupil detectors so far, a glint detector, and several limbus detectors — all come from Cheshm, my detection library. Project sessions remember your defaults, with undo, a review mode, and a CLI for batch jobs.

Here’s the main annotation view:

EyE Annotation Tool main interface

You can also add your own detectors. Drop a .py file into ~/.config/eye_annotation_tool/plugins/ (or any directory listed in the EYE_ANNOTATION_PLUGINS env var) that exports a PLUGINS = [DetectorPlugin(...)] list, and your detector shows up alongside the built-in ones.

Code: github.com/mh-salari/eye_annotation_tool