Python / Computer Vision Developer: Optical Flow & Occlusion Processing for Synthetic Video Data
Budget: -
HOURLY / PART_TIME
⭐ 5.00 (9)
USA
numpy, python, computer-vision, machine-learning
Preferred qualifications
- Experience: Intermediate
Project type: Fixed-price, milestone-based · Experience level: Expert
Description
We are building highly-structured synthetic video datasets in Unreal Engine 5 for machine learning research. Our UE5 pipeline already exports the raw render data. We’re looking for a developer to build the offline Python tools that turn that raw data into ground-truth motion and occlusion annotations.
This is a data processing role, not an Unreal role. You won’t need to touch the engine.
What you’ll build:
1.Forward and backward optical flow. Generate dense flow maps in both directions from our source data. We’re open to your approach and want your proposal on method. Getting the flow geometrically accurate, including at occlusion and disocclusion boundaries, matters more than anything else here.
2. Occluder attribution. For every tracked object in every frame, determine which other objects are occluding it.
3. Visibility processing:
Visibility fraction (visible area relative to the full amodal extent, 0–1)
Per-frame visibility state: visible / partial / occluded / out_of_frame / behind_camera
Visibility episodes (the frame intervals during which each object is in view)
Exit and reentry events, including frames elapsed since an object was last visible
What you’ll be working with:
-Multi-pass EXR sequences, including depth, Cryptomatte, normals, and other passes
-Per-object amodal masks, delivered as black-and-white PNGs
-Camera data (intrinsics and extrinsics, per frame) in Parquet, for two camera trajectory variants rendered from the same scene
-Per-object transform and metadata in JSON. Moving parts, such as a door on a cabinet, are tracked as separate objects.
-Clips are about 60 seconds at 60 fps (around 3,600 frames per camera variant) with roughly 30 tracked objects, so the tools need to be reasonably efficient
Shortlisted candidates will receive sample data under NDA.
Requirements:
-Strong Python, with numpy at the vectorized/array level, not loops over pixels
-Hands-on experience with optical flow, depth-based reprojection, or multi-view geometry
-Comfortable with camera models, coordinate transforms, and projection math
-Experience working with EXR, segmentation/ID passes, and mask data
-Attention to edge cases: anti-aliased boundaries, thin objects, objects leaving the frame or passing behind the camera
-Writes clean, documented, testable code that someone else can run and maintain
Nice to have:
-Experience with synthetic data, rendering pipelines, or Cryptomatte decoding
-Familiarity with pyarrow/Parquet
-Background in video tracking, amodal segmentation, or object permanence research
Deliverables and engagement:
-Python tools that run locally from the command line, with documentation and tests. Cloud deployment will come later as a separate task.
-We’ll define fixed-price milestones together after initial scoping, so please don’t quote a single total in your proposal. Do share how you’d break the work into phases.
-There’s potential for follow-on work (validation tooling, coordinate conversion, cloud operability). It isn’t guaranteed.
-Partial working-hour overlap with Pacific Time is preferred.
To apply, start your proposal with the word “BACKWARD” so we know you read the post. Then briefly describe the most relevant geometry or vision project you’ve shipped.
Open job
AI proposal draft
Generate a short cover letter to copy into the offer. Says you are interested and ready to work.
Sign in to generate an AI proposal draft.
Log in