- New filesystem.py: make_fs() factory (returns s3fs.S3FileSystem or None),
plus fsjoin/fsstem/fsname path helpers
- config.py: storage field is now required ('local' or 's3'); load_config
raises a clear ValueError when it is missing
- video_loader, clip_selector, annotator: thread fs through all file I/O;
local paths unchanged, S3 paths use fs.open/fs.exists/fs.pipe
- annotation_script: load .env via python-dotenv at startup, create fs from
config and pass to Annotator
- Add .env.example with SwitchEngines endpoint and AWS checksum env vars
- pyproject.toml: add s3fs and python-dotenv dependencies
- Reduce default mask alpha from 40% to 15%
- Update example clip names to colon-separated timestamps
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
67 lines
1.8 KiB
YAML
67 lines
1.8 KiB
YAML
# For local storage, set data_dir and out_dir to file-system paths:
|
|
storage: local # 'local' (default) or 's3'
|
|
data_dir: data/filtered_data
|
|
out_dir: data/annotation_results
|
|
# For S3 storage, set storage: s3 and use bucket/prefix paths:
|
|
# storage: s3
|
|
# data_dir: my-bucket/clips
|
|
# out_dir: my-bucket/annotation_results
|
|
# Credentials are read from env vars (copy .env.example to .env):
|
|
# S3_ACCESS_KEY, S3_SECRET_ACCESS_KEY, S3_ENDPOINT_URL
|
|
clips_file: config/clips.txt
|
|
optical_flow_config_file: config/optical_flow_config.yaml
|
|
|
|
display_max: 720
|
|
fps_fallback: 25
|
|
max_frames: 100
|
|
|
|
questions:
|
|
- section: River
|
|
items:
|
|
- key: flow
|
|
label: Flow Regime
|
|
options: [Turbulent, Laminar, Uncertain]
|
|
default: Laminar
|
|
- key: shadows
|
|
label: Strong Shadows
|
|
options: [Yes, No, Uncertain]
|
|
default: No
|
|
- key: artifacts
|
|
label: Artifacts on River
|
|
options: [Yes, No, Uncertain]
|
|
default: No
|
|
- section: Scene
|
|
items:
|
|
- key: lighting
|
|
label: Lighting
|
|
options: [Day, Night, Uncertain]
|
|
default: Day
|
|
- key: exposure
|
|
label: Exposure
|
|
options: [Overexposed, Underexposed, Both, Normal, Uncertain]
|
|
default: Normal
|
|
- section: Weather
|
|
items:
|
|
- key: snowing
|
|
label: Snowing
|
|
options: [Yes, No, Uncertain]
|
|
default: No
|
|
- key: snow_on_ground
|
|
label: Snow on Ground
|
|
options: [Yes, No, Uncertain]
|
|
default: No
|
|
|
|
filenames:
|
|
video_in_zip: left.mp4
|
|
video_tmp_suffix: .mp4
|
|
zip_extension: .zip
|
|
mask: mask.png
|
|
metadata: metadata.json
|
|
frame: frame.png
|
|
overlay: overlay.png
|
|
mask_vis: mask_vis.png
|
|
gif_original_hires: video_original_hires.gif
|
|
gif_original_lowres: video_original_lowres.gif
|
|
gif_overlay_hires: video_overlay_hires.gif
|
|
gif_overlay_lowres: video_overlay_lowres.gif
|