5th Workshop on Maritime Computer Vision (MaCVi)

MaCVi @ WACV 2027

Tuesday, January 5, 2027, afternoon (Orlando local time), per WACV’s draft schedule. Exact times and room to be confirmed.

Challenges / EURS

EURS: Embedded Underwater Restoration and Segmentation

Challenge deadlines and author metadata (Teams & paper)

Challenge summary paper. To be considered as a co-author, form your team and confirm your author details on Teams & paper by October 23, 2026, 23:59 AoE. You can keep submitting while you do this.
Teams & paper

Underwater imagery is degraded by color distortion, light scattering, and low visibility, which makes downstream perception tasks — like identifying and localizing marine life — substantially harder than on clean images. EURS combines two coupled tasks into a single challenge: restoring a degraded underwater image, and segmenting it into marine-relevant classes.

EURS pipeline: a degraded underwater image is restored, then segmented into background, coral, fish, elasmobranch, and other classes.

Challenge Schedule

Provisional: the challenge dates below are our planning schedule and may change as track-specific evaluation timelines are confirmed. The WACV publication deadlines of November 2 and November 20 are fixed.
Event Date
Author details and active OpenReview profiles confirmed October 23, 2026, 23:59 AoE
All challenges close (final submission deadline) October 27, 2026, 23:59 AoE
Final results and winner notification October 30, 2026

EURS schedule (Track 1 and Track 2)

Event Date
EURS testing phase starts October 20, 2026, 00:00 AoE
EURS testing phase ends; all challenges close October 27, 2026, 23:59 AoE
EURS codebase and method description due October 28, 2026, 23:59 AoE
EURS evaluation period October 28–30, 2026
Provisional EURS ranking released; final EURS leaderboard and rankings announced by the end of the day October 30, 2026, by 23:59 AoE

Details of the testing phase and of the final evaluation are on the EURS challenge page. All dates and deadlines are AoE.

Challenge summary paper. All potential challenge-summary coauthors must be in their team and confirm their publication details and have an active OpenReview profile by October 23, before winners are selected. Completing these details does not guarantee inclusion in the summary paper.
Teams & paper

You can begin developing and submitting challenge results before completing author metadata. Already have an OpenReview account? Find your profile link at openreview.net/profile. Need one? Create an OpenReview account now: activation can take up to two weeks.

AoE means Anywhere on Earth (UTC−12). The organizers will hand off the summary paper's final metadata by November 2, 2026. The archival camera-ready deadline is November 20, 2026, 23:59 Pacific Time (PST, UTC−8). See the paper publication schedule for details.

Testing phase and final evaluation

Testing phase: October 20, 2026 (00:00 AoE) to October 27, 2026 (23:59 AoE). Only submissions made during the testing phase count towards the final EURS ranking. Development-phase results stay on the leaderboards for reference but are not ranked.

How the testing phase works

Final evaluation

  1. Final ranking is based solely on testing-phase submissions and on whether your results can be reproduced. Development-phase scores do not count.
  2. Report your best submissions. In your team's metadata you report your best testing-phase submission in each track (the submission IDs from the leaderboards). This is a single team-level entry that covers both tracks, not a separate procedure per track.
  3. Reproducibility. By October 28, 2026 (23:59 AoE) every team hands in its codebase, trained weights and a method description, as listed in the schedule above. During the evaluation period (October 28–30) the organizers re-run the submissions you reported. The reproduced results must reflect the same metrics as the ones you reported and as shown on the testing-phase leaderboards, within normal run-to-run variation on different machines; results that cannot be reproduced are not ranked.
  4. Both tracks and the weights. The EURS ranking combines Track 1 and Track 2. To be ranked, a team needs a reproduced testing-phase result in both tracks. For each track, the reproduced score of the team's reported best submission (the primary score of that track's leaderboard) is min-max normalised across these teams, so the best team in a track gets 1 and the lowest gets 0. The final score is F = 0.70 × (Track 2 normalised score) + 0.30 × (Track 1 normalised score), and teams are ranked by F. Ties are broken by the Track 2 score, then the Track 1 score.
  5. Summary paper. Teams that do not submit to the testing-phase leaderboard are not eligible for the challenge summary paper. Completing the author details by October 23 is still required, and does not by itself guarantee inclusion.

The final EURS leaderboard and rankings are announced by October 30, 2026 (AoE). Questions about the testing phase? Ask on Discord.

Track 1: Public Dev-Set Leaderboard

Quick links: Dataset download Submit Leaderboard Ask for help

Overview

Both restoration and segmentation are scored against the same Dev-split ground truth, so a submission needs to get both the pixel-level restoration and the semantic understanding right. This leaderboard runs entirely server-side against the public Dev split, with no device or power constraints and no submission limit beyond a daily cap — use it to iterate while developing. It does not require any special hardware and carries less weight than Track 2 towards final standings. From October 20 this leaderboard is scored on the testing-phase images instead; see Testing phase and final evaluation.

Task

Given a degraded underwater image, participants must produce two outputs for it:

Dataset

The dataset consists of real underwater scenes, each provided as one clean ground-truth image/mask pair and multiple synthetically degraded versions of that scene (simulating different water conditions and depths). The Dev split — the split scored by this leaderboard — is available as a direct download:

Download the EURS Dev-split dataset

Evaluation Metrics

This leaderboard's primary ranking metric is the same composite score used by Track 2:

composite = 0.6 × Qseg + 0.3 × (0.45 × PSNRnorm + 0.45 × SSIM + 0.10 × sharpness_ratio) + 0.1 × NRquality

where Qseg = F1 × mIoU × coverage_penalty rewards submissions that get both segmentation coverage (F1) and per-class accuracy (mIoU) right, and NRquality is the mean of UIQM/UCIQE/CCF, each normalized over an empirically-observed range (see Track 2's Evaluation Metrics for the full rationale, including why that no-reference group is capped at a small combined weight). The full set of metrics reported:

Submission Zipfile Preparation Guidelines

Participate

To participate in the challenge follow these steps:

  1. Download the EURS Dev-split dataset (during the testing phase: the testing-phase images, linked in Testing phase and final evaluation).
  2. Train a model (or pipeline) that restores the degraded input and predicts a per-pixel class mask. You may use additional publicly available training data, but must disclose it at submission time.
  3. Generate restored/ and seg_masks/ outputs for every image of the current phase, following the format above.
  4. Run resize_for_submission.py on your outputs — this is mandatory, not optional; the evaluator rejects any output whose size doesn't exactly match what it expects, and this script is the supported way to get that right without computing it yourself.
  5. Package both resized folders into a single .zip with restored/ and seg_masks/ at the archive root (no extra nesting).
  6. Upload your .zip file on the upload page. You'll need to register to submit.
    • Evaluation runs on the server and typically takes 10–20 minutes for a full submission. Refresh the dashboard page to see results; it will also show details on any failed submission (hover over the error icon).
    • During the development phase you may submit at most 10 times per day to the public leaderboard; during the testing phase (from October 20) the limit is 3 times per day. Submissions that fail do not count towards this limit, but double-check your archive format before uploading to save yourself the wait.

Terms and Conditions


Track 2: Embedded (Jetson AGX Orin)

Quick links: Submit Leaderboard Self-check your model's GFLOPs/params Ask for help

Overview

Track 2 runs your submitted ONNX model itself — not pre-computed prediction images — directly on our judging hardware: a Jetson AGX Orin, locked to JetPack/L4T 7.2.1 (r39.2.1), stock nvpmodel MODE_30W, with a 16GB memory cap. The same environment and thresholds apply to every submission, published here so everyone targets the same bar. The exact model you submit produces the restored/ and seg_masks/ outputs used for accuracy scoring and is the thing timed and power-measured for the efficiency metrics — this ties both scores to the same artifact, so a fast dummy model paired with offline-computed predictions can't game the efficiency numbers. Accuracy is scored on a private, held-out Test split (never used by Track 1's Dev-split leaderboard), so repeated Track 1 iteration can't leak information about Track 2's scoring data.

Because evaluation involves compiling and running your model on real physical hardware, results are not immediate — a submission typically takes 15–20 minutes to come back (one to one and a half hours in the testing phase, which uses a larger test set) (engine compile, a sustained-load measurement window, then real inference over the full Test split). Refresh the dashboard to see results once ready.

Submission Format

ONNX I/O Contract

Your model must expose exactly these input/output tensors. This is now checked and rejected before your submission ever reaches the judging hardware, with a specific error naming exactly what's wrong — but matching it up front saves you a submission slot, since Track 2 allows only one per day.

Design-Space Cap (checked before your model ever touches the hardware)

Your submitted graph's total compute and parameter count are checked statically, before anything runs on the Jetson:

Run the same check yourself locally, on your own machine — wherever you already exported the ONNX file — before submitting, so you don't spend a submission slot on a model that would fail this stage: download check_submission_flops.py, install its one dependency (pip install onnx), then run python check_submission_flops.py --onnx your_model.onnx (defaults already match the locked caps above). It's a plain static analysis of the ONNX graph — no GPU, no Jetson, and no server round-trip needed to use it. A local PASSED only means your model clears this one design-space gate — it doesn't run your model, so it can't tell you anything about accuracy or real-hardware speed/energy. Those only come back from an actual Track 2 submission.

Evaluation Pipeline

Every submission goes through the same stages, in order, stopping at the first failure:

  1. Static compute/parameter check — the GFLOPs/params cap above. Fails fast, before your model ever reaches the Jetson.
  2. I/O contract check — validates the input/output tensor names, shapes, and channel count above. Also fails fast, before your model reaches the Jetson.
  3. TensorRT engine compile on the judging hardware — fails if your ONNX graph doesn't compile for the target TensorRT version.
  4. Quick throughput check — a short sanity pass.
  5. Sustained-load measurement — throughput and energy-per-frame under continuous real load, not a single burst.
  6. Real inference over the private Test split's degraded images, run directly on the Jetson.
  7. Accuracy scoring of those on-device outputs against ground truth.
  8. A combined result is returned: either full scores, or a rejection naming the exact stage and reason.

Evaluation Metrics

Track 2's primary ranking metric is the composite score:

composite = 0.6 × Qseg + 0.3 × (0.45 × PSNRnorm + 0.45 × SSIM + 0.10 × sharpness_ratio) + 0.1 × NRquality

where Qseg = F1 × mIoU × coverage_penalty (the same per-class IoU floor as Track 1 — drives Qseg to exactly 0 if any present class is essentially ignored), PSNRnorm normalizes PSNR over a 15–35dB window, and NRquality is the mean of UIQM/UCIQE/CCF, each normalized over an empirically-observed range. This no-reference group is deliberately capped at a small combined weight: no-reference image quality metrics are known to be gameable (e.g. via contrast/saturation stretching) without reflecting genuine restoration quality — confirmed on our own data, where CCF actually scores higher on degraded inputs than on an honestly restored image. The full set of metrics reported:

Participate

  1. Train your model as for Track 1, then export it to a single self-contained .onnx file with a static input shape.
  2. Run check_submission_flops.py locally and confirm it prints PASSED.
  3. Upload the .onnx file directly on the upload page. You'll need to register to submit.
    • During the testing phase (from October 20) you may submit at most 1 scored submission per team per day. During the development phase you may submit at most 3 times per day to this track — it runs on a single physical judging device, so slots are limited. Only fully evaluated submissions count towards this limit; failed or rejected ones do not, but each one still takes time on the device, so self-check locally first.
    • Only one submission per team can be waiting or running at a time, so a new upload is refused until the previous one has finished or failed.
    • Results are asynchronous and typically take 15–20 minutes during development and one to one and a half hours during the testing phase. Refresh the dashboard page to see them; it will also show the failing stage and reason for any rejected submission.

Terms and Conditions

Data provenance and citation

The synthetically degraded versions of each scene in the EURS dataset (shared by both tracks) are generated with RSUIGM, our image-formation-model-based method for realistic synthetic underwater image generation, published in ACM Transactions on Multimedia Computing, Communications, and Applications. If you use the EURS dataset, please cite:

@article{desai2025rsuigm,
  title   = {{RSUIGM}: Realistic Synthetic Underwater Image Generation with Image Formation Model},
  author  = {Desai, Chaitra and Benur, Sujay and Patil, Ujwala and Mudenagudi, Uma},
  journal = {ACM Transactions on Multimedia Computing, Communications, and Applications},
  volume  = {21},
  number  = {1},
  pages   = {1--22},
  year    = {2025},
  doi     = {10.1145/3656473},
  url     = {https://dl.acm.org/doi/10.1145/3656473}
}
In case of any questions regarding the challenge dataset or submission, please join the MaCVi Discord community.

This Challenge is hosted by Center for Visual Intelligence, KLE Technological University, Hubballi, INDIA in collaboration with University of Tuebingen and Manipal Academy of Higher Education, Bengaluru
kletech kletech unituebingen mahe