Project-MONAI / Project-MONAI/MONAI

Restormer Implementation for MONAI: High-Resolution Image Restoration

Open
#8,261 15 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
8.7k
Forks
1.6k
Avg merge
5d 1h
Merged PRs (30d)
20

Description

Is your feature request related to a problem? Please describe.

I've noticed that MONAI currently lacks dedicated models for image denoising and restoration tasks. While MONAI provides excellent tools for medical image analysis, having specialized architectures for improving image quality would be valuable for preprocessing pipelines and enhancing low-quality medical images (microscopy, X-ray, scans...).

Describe the solution you'd like

I have implemented a well-documented version of the Restormer model (https://arxiv.org/abs/2111.09881) that could be contributed to MONAI. The implementation includes key components like:

  • Multi-DConv Head Transposed Self-Attention (MDTA) for efficient attention computation
  • Gated-DConv Feed-Forward Network (GDFN) for refined feature selection
  • Modular architecture allowing easy extension and modification
  • Support for flash attention when available
  • Comprehensive documentation of components and architecture

Describe alternatives you've considered

The implementation is already structured in a modular way with clear separation of components. I'm willing to:

  • Refactor the code to meet MONAI coding standards
  • Add appropriate type hints and docstrings
  • Include unit tests
  • Provide example notebooks demonstrating usage
  • Add benchmarks comparing performance

Additional context

The code is currently functional and tested. It supports both standard and dual-pixel tasks, with configurable parameters for network depth, attention heads, and feature dimensions. The implementation prioritizes efficiency through features like flash attention support while maintaining flexibility for different use cases.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the Restormer paper and the existing implementation described in the issue, then compare its components and configurable modes with MONAI's model conventions. Define the integration scope, coding standards, unit tests, documentation, examples, and benchmarks needed for the contribution to be complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
computer-vision, machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.