Joint image restoration and contour detection using Discrete Mumford-Shah with Ambrosio-Tortorelli penalization
Hoang Trieu Vy Le, Nelly Pustelnik, Marion Foare, Proximal based strategies for solving Discrete Mumford-Shah with Ambrosio-Tortorelli penalization on edges, IEEE Signal Processing Letters, vol. 29, pp. 952- 956, 2022. Download
Install
Clone the repository and install requirements.txt in a Python>=3.7.0 environment,
git clone https://github.com/HoangTrieuVy/GGS-DMS # clone
cd your_repo
pip install -r requirements.txt # install
Denoisers
Denoising with discrete Mumford-Shah functional:$$ \begin{equation} \min_{x,e} \frac{1}{2} \Vert A x - z \Vert_2^2 + \beta \Vert (1-e)\odot Dx \Vert_2^2 + \lambda h(e) \end{equation} $$
Remarks:
- Input degraded images can be in standard image format (.png, .jpeg,...) or .mat file (where the noisy image shuld be denoted by 'z').
- As an option, the original image can be specified allowing to find the optimal
$\lambda$ and$\beta$ hyperparameters minimizing the PSNR. - The penalization over the edges variable can be either the
$\ell_1$ -norm or Ambrosio-Tortorelli penalization. - The default method is PALM with
$h = \Vert \cdot \Vert_1$ . - The default parameter for Ambrosio-Tortorelli is eps = 0.02.
- SLPAM with Ambrosio-Tortorelli penalization is numerically costly.
optional arguments:
-h, --help show this help message and exit
--z Z noisy image path
--x X original image path
--b B beta
--l L lambda
--algo ALGO PALM, SLPAM,PALM-eps-descent,SLPAM-eps-descent
--norm NORM l1, AT
--eps EPS epsilon in the Ambrosio-Tortorelli penalization
--eps EPS minimum epsilon when using AT eps decreasing to 0
--it IT number of iteration
cd examples
python dms_denoiser.py --z 10081_noisy.jpg
python dms_denoiser.py --z 10081_noisy.jpg --algo PALM --norm AT --b 4 --l 1e-2 --eps 0.02
python dms_denoiser.py --z 10081_noisy.jpg --algo PALM-eps-descent --norm AT --b 4 --l 3e-3 --eps 0.02 --eps_AT_min 0.002
Comparison of several DMS strategies on a synthetic noisy image degraded with white Gaussian noise
Running DMS with different schemes on Python
cd SPL-fig4
python dms_spl_fig4.py
Running Home et al. on matlab
cd SPL-fig4
matlab -nodisplay -r "./setPath ; exit"
matlab -nodisplay -r "./hohm_ggs ; exit"
Comparison of several DMS strategies on several realization of synthetic noisy and blur images.
Running DMS with different schemes on Python
cd SPL-fig5
python dms_ggs # running different schemes on dms
python trof_ggs # TV and T-ROF
Running Hohm et al. on matlab
cd SPL-fig5
matlab -nodisplay -r "./setPath ; exit"
matlab -nodisplay -r "./hohm_ggs ; exit"
Comparison of several DMS strategies on real images from BSDS500 dataset.
Running DMS with different schemes on Python
cd SPL-fig6
python dms_real_std_0_05
python trof_ggs_real_std_0_05
Running Hohm et al. on matlab
cd SPL-fig6
matlab -nodisplay -r "./setPath ; exit"
matlab -nodisplay -r "./hohm_figure6_std_0_05 ; exit"