Join the Competition

Brillouin Microscopy — Blind Reconstruction Challenge

What is the Blind Reconstruction Challenge?

The Blind Reconstruction Challenge tests your algorithm's ability to reconstruct signals from measurements with unknown mismatch parameters. In real-world imaging, the actual system parameters often differ from the assumed ideal model. Your task is to produce high-quality reconstructions despite this model mismatch.

Scoring: 0.4 × PSNR_norm + 0.4 × SSIM + 0.2 × (1 − ‖y − Ĥx̂‖/‖y‖)

How to Participate

1

Test on Public Dataset

Free

Download the Public tier dataset which includes measurements, ground truth, and true spec parameters. Run your reconstruction algorithm locally and compute your PSNR / SSIM scores. Then report your score to PWM so we can track your progress.

What you get: Measurements (y), ideal forward model (H), spec ranges, ground truth (x), and true spec parameters.
View Public Tier →
2

Submit Reconstruction on Dev Dataset

Free

Download the Dev tier dataset (no ground truth provided). Run your algorithm and submit the reconstructed result as an HDF5 file containing x_hat. PWM will evaluate your reconstruction and return your score.

What you get: Measurements (y), ideal forward model (H), and spec ranges. No ground truth — you must estimate the parameters and reconstruct blindly.
View Dev Tier →
3

Submit Algorithm for Hidden Evaluation

10 Credits

When you are confident in your method, submit your algorithm (Python script or archive) to PWM. We will run it on the hidden dataset with undisclosed mismatch parameters. This is the final evaluation that determines your leaderboard ranking.

Cost: Each hidden tier evaluation costs 10 credits from your account. New accounts start with 100 free credits. Credits are refunded if your submission is rejected.
View Hidden Tier →

Examples & Starter Code

Download baseline algorithms and example datasets to get started quickly. These examples use small 32×32 images so you can test the full pipeline in seconds.

CT

Baseline: Filtered Back-Projection

Show code preview
# ct_baseline_algorithm.py — key reconstruction logic

def fbp_reconstruct(sinogram, angles, img_size=None):
    """Filtered Back-Projection reconstruction."""
    n_angles, n_det = sinogram.shape
    # 1. Apply ramp filter in frequency domain
    freqs = np.fft.fftfreq(n_det)
    ramp = np.abs(freqs)
    for i in range(n_angles):
        proj_fft = np.fft.fft(sinogram[i])
        filtered[i] = np.real(np.fft.ifft(proj_fft * ramp))
    # 2. Back-project at each angle
    for i, angle in enumerate(angles):
        rotated = ndrotate(proj_img, angle, ...)
        recon += rotated
    return recon * np.pi / (2 * n_angles)

def estimate_center_offset(sinogram):
    """Compare 0° and 180° projections to find shift."""
    ...
Dependencies: numpy h5py scipy
python ct_baseline_algorithm.py challenge.h5 submission.h5
MRI

Baseline: Zero-Filled IFFT + ISTA

Show code preview
# mri_baseline_algorithm.py — key reconstruction logic

def iterative_soft_threshold(y_kspace, mask, n_iter=30):
    """ISTA: iterative soft-thresholding with data consistency."""
    kspace_mag = np.expm1(y_kspace) * mask
    x = zero_filled_ifft(y_kspace, mask)
    for _ in range(n_iter):
        kx = np.fft.fftshift(np.fft.fft2(x))
        # Data consistency: keep measured k-space lines
        kx_dc = kx * (1 - mask) + kspace_mag * mask
        x = np.abs(np.fft.ifft2(np.fft.ifftshift(kx_dc)))
        x = soft_threshold(x, lam=0.005)
    return x

def estimate_b0_inhomog(x_hat):
    """Estimate B0 from spatial intensity variation."""
    ...
Dependencies: numpy h5py scipy
python mri_baseline_algorithm.py challenge.h5 submission.h5

Example Data Files

Small 32×32 HDF5 files demonstrating the exact challenge format. Use these to test your pipeline before downloading the full datasets.

File Tier Contents
ct_example_public.h5 Public y, H_ideal, x_true, spec_ranges, true_spec Download
ct_example_dev.h5 Dev y, H_ideal, spec_ranges (no ground truth) Download
ct_example_submission.h5 Submission x_hat, corrected_spec Download
mri_example_public.h5 Public y, H_ideal, x_true, spec_ranges, true_spec Download
mri_example_dev.h5 Dev y, H_ideal, spec_ranges (no ground truth) Download
mri_example_submission.h5 Submission x_hat, corrected_spec Download

Quick Solver Upload

Upload your solver file directly. For detailed submission options, use the step-specific buttons above.

Sign in to upload a solver.

CLI alternative (advanced users)

# 1. Scaffold your solver

pwm scaffold solver my_solver

# 2. Implement solve() in contrib/solvers/my_solver/solver.py

# 3. Test locally

pwm evaluate --modality brillouin --solver my_solver --scenes 3 --emit-certificate

# 4. View results

pwm view run_brillouin_my_solver_*/

# 5. Submit for competition

pwm submit run_brillouin_my_solver_*/

Back to Brillouin Microscopy