How chemai-lab/vir-olo works
vIR-OLO is a PyQt5 desktop application for annotating infrared-spectrum images and running YOLO peak detection. The user launches the GUI, creates or opens an image project, annotates spectra manually or with model predictions, reviews and edits boxes and labels, and saves annotations in YOLO format. The App controller coordinates the GUI, image handling, annotation canvas, inference, and model downloads. The README documents several capabilities whose detailed implementations are not fully excerpted; links for those are limited to documented relationships.
Main entry points: spectrai.py App controller · cli.py CLI launcher · canvas_widget.py Annotation canvas · box_manager.py Box manager
Components 16
Application
- CLI launcher
src/virolo/cli.py - App controller
src/virolo/spectrai.py - Main window UI
src/virolo/ui/main_ui.py
Annotation
- Annotation canvas
src/virolo/ui/canvas_widget.py - Box manager
src/virolo/ui/box_manager.py - Bounding box
src/virolo/ui/bounding_box.py - Label editor dialog
src/virolo/ui/label_editor_dialog.py - Label edit form
src/virolo/ui/label_edit.py - New label dialog
src/virolo/ui/label_new_dialog.py - New label form
src/virolo/ui/label_new.py
Models and inference
- YOLO predictor
src/virolo/models/predict.py - Default model downloader
src/virolo/tools/donwload_default_models.py - Hugging Face
Image and project data
- Image manager
src/virolo/tools/image_loader.py - Project images and annotations
src/virolo/spectrai.py
Other components
- Researcher
Connections 14
- Researcher → CLI launcher: launches
README.md - CLI launcher → App controller: creates App
src/virolo/cli.py - App controller → Main window UI: configures UI
src/virolo/spectrai.py - App controller → Image manager: loads images
src/virolo/spectrai.py - App controller → Annotation canvas: coordinates annotation
src/virolo/spectrai.py - App controller → YOLO predictor: runs prediction
README.md - App controller → Default model downloader: downloads models
README.md - App controller → Project images and annotations: saves annotations
src/virolo/spectrai.py - Image manager → Project images and annotations: reads images
src/virolo/tools/image_loader.py - Annotation canvas → Box manager: adds or removes boxes
src/virolo/ui/canvas_widget.py - Box manager → Bounding box: manages instances
src/virolo/ui/box_manager.py - Label editor dialog → Label edit form: uses form
src/virolo/ui/label_editor_dialog.py - New label dialog → New label form: uses form
src/virolo/ui/label_new_dialog.py - Default model downloader → Hugging Face: downloads from
src/virolo/tools/donwload_default_models.py