Skip to content

Add stitched stereo import - #2019

Merged
BryonLewis merged 8 commits into
mainfrom
dev/stitched-stereo
Oct 5, 2026
Merged

BryonLewis merged 8 commits into
mainfrom
dev/stitched-stereo

Conversation

@mattdawkins

@mattdawkins mattdawkins commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

Stitched stereo = one image sequence or video whose frames hold the left camera in the left half and the right camera in the right half. New Stitched option in the Stereo import dialog loads it as a normal left/right stereo dataset.

Desktop (media is never copied or re-encoded)

  • Both cameras reference the same source; each camera carries stitchedSide.
  • Image/video annotators show their half via the geojs quad source crop; review chips and aligned/ghost overlays read the same half.
  • Pipelines and search indexing pass the stitched media itself plus inputN:video_reader:image_list:crop_<side>=true and inputN:video_reader:vidl_ffmpeg:crop_<side>=true, so the same pipes run on stitched and separate-camera data and keep their own reader config.
  • Interactive service requests (segmentation, stereo, text query) carry paths tagged #stitched=<side>, which VIAME's services crop on load.
  • Requires the crop_left/crop_right options on kwiver's image-list and vidl_ffmpeg readers and VIAME's viame.core.stitched_media (in progress, not yet merged).

Web

  • The stitched media is uploaded to each camera folder; postprocess takes stitchedSide and a new split_stitched_media job crops/transcodes in place, so the stored dataset is ordinary stereo.

Notes

  • Odd-width frames drop the middle column so both halves match.
  • Web uploads the source twice (once per camera).
  • Not exercised in a running desktop/web app yet — unit tests, typecheck and lint, plus the kwiver readers and VIAME service loaders run directly on synthetic stitched media.

🤖 Generated with Claude Code

Load side-by-side stereo media as a left/right stereo dataset.
Desktop reads the shared media in place and crops per camera; VIAME jobs and the interactive service get split halves on demand.
Web uploads to each camera and a server job keeps that camera's half.
Jobs pass the stitched media with VIAME's stitched_side reader settings; tagged paths go to the interactive services unchanged.
Removes the ffmpeg split cache and per-frame crops.
Jobs set inputN:video_reader:image_list:crop_left/right, keeping each pipe's own reader config.
Pipelines and indexing on stitched video are refused until VIAME's video reader can crop.
@mattdawkins

Copy link
Copy Markdown
Member Author

@BryonLewis
BryonLewis force-pushed the dev/stitched-stereo branch from fb48b25 to 2a2c985 Compare October 5, 2026 18:45
@BryonLewis
BryonLewis force-pushed the dev/stitched-stereo branch from 2a2c985 to 3f09a6a Compare October 5, 2026 18:52
@BryonLewis
BryonLewis self-requested a review October 5, 2026 19:48

@BryonLewis BryonLewis left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

esktop vs Web processing for stitched stereo / multicam

On desktop, we keep the local files in place and pass a crop parameter into VIAME when pipelines run against each camera. That works well for the single-user desktop case.

On web, that work runs as a post-processing step instead. I also updated the other multicamera imports to follow the same pattern. Previously, the browser UI blocked while multicam datasets were being transcoded or processed. Import now returns the dataset list immediately and shows a processing indicator.

This should also make future import-related tasks easier to plug into the same flow.

@BryonLewis
BryonLewis merged commit cf69037 into main Oct 5, 2026
6 of 9 checks passed
@BryonLewis
BryonLewis deleted the dev/stitched-stereo branch October 5, 2026 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants