This document describes the organized file structure of the Facebeak project.
All GUI applications and interactive tools:
batch_image_reviewer.py- Main image labeling interfaceapply_model_gui.py- GUI for applying trained modelstrain_crow_classifier_gui.py- Training interface with real-time metricsextract_training_gui.py- GUI for extracting training data from videoskivy_*.py- Alternative Kivy-based GUI implementationsunsupervised_gui_tools.py- Tools for unsupervised learning workflows
Production-ready utilities and commonly used scripts:
extract_crops_cli.py- Command-line crop extractionextract_crops_cli_memory_optimized.py- Memory-efficient versiontrain_crow_classifier.py- Core training scriptapply_model_to_unlabeled.py- Batch model applicationevaluate_model_fixed.py- Model evaluation utilitiescleanup_training_output.py- Training cleanup utilitiescolor_normalization.py- Image preprocessing utilitiesextract_training_data.py- Training data preparationpragmatic_detection_runner.py- Detection pipeline runner
Development utilities, debugging tools, and migration scripts:
debug_*.py- Various debugging utilitiestest_*.py- Test scriptscleanup_orphaned_labels.py- Database cleanup toolconsolidate_crops.py- Data migration toolcrop_migration_tool.py- Crop directory migrationemergency_recovery.py- Data recovery utilitiesbrowse_ec2_images.py- Remote image browsingpng_to_ico.py- Icon conversion utility
Essential system components that other modules depend on:
main.py- Main video processing pipelinefacebeak.py- Core application entry pointdetection.py- Bird detection algorithmstracking.py- Crow tracking and ID assignmentdb.py- Database interface and managementdataset.py- Dataset handling and loadingmodel.py- Neural network model definitionsaudio.py- Audio processing componentscrow_clustering.py- Clustering algorithmssuspect_lineup.py- Crow identification interface
# From project root
python gui/batch_image_reviewer.py
python gui/train_crow_classifier_gui.py
python gui/apply_model_gui.py# From project root
python utilities/extract_crops_cli.py --help
python utilities/train_crow_classifier.py --help
python utilities/apply_model_to_unlabeled.py --help# From project root
python tools/debug_labels.py
python tools/cleanup_orphaned_labels.py --helpWhen importing from these directories in your code:
# For utilities
from utilities.train_crow_classifier import train_model
from utilities.extract_crops_cli import extract_crops
# For GUI components (if needed)
from gui.batch_image_reviewer import BatchImageReviewer
# For tools (rarely needed in production code)
from tools.debug_labels import debug_labels- GUI - Interactive applications with user interfaces
- Utilities - Reusable, production-ready scripts and modules
- Tools - Development aids, debugging, and one-time migration scripts
- Root - Core system components that form the foundation of the application
This structure makes it easier to:
- Find the right tool for the job
- Understand what each component does
- Maintain and update the codebase
- Onboard new developers