Latest commit

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DADM

Density-Aware Diffusion Model for Efficient Image Dehazing

1. Our Result comparison with other methods.

Guided by the haze density, our DADM can handle images with dense haze and complex environments.

Image Dehazing

2. Overview of our DADM.

  • For image dehazing, the haze image can be considered as noisy data, while the clear haze-free image is the target data. By training a diffusion model, we can learn a mapping from haze images to haze-free images. The diffusion model contains a forward diffusion process and a reverse diffusion process.
  • In the reverse diffusion process of our DADM, we introduce a density-aware dehazing network (DADNet) to estimate the noise in the input image and recover a haze-free image from a haze image (considered as a noisy state).

DADM

3. The haze density of the mage.

The dark channel value of noise areas is also very low, resulting in the inability to extract accurate haze density information. We introduce a cross-feature density extraction module (CDEModule) to optimize the dark channel map and obtain the accurate haze density for the image.

haze density mage

4. Analysis of the test sampling process on four datasets.

The dehazing results have achieved an optimum at some intermediate time point, while the image quality may instead degrade as the dehazing process continues.

Analysis of the test sampling process on four datasets.

5. Statistics on Datasets.

We evaluate all the sampling results at various time steps using the PSNR values against the ground truth. Based on the mean value $t_2$ and the variance $\sigma$ of the distribution, we can plot the corresponding normal distribution curves $c \sim \mathcal{N}(t_2, \sigma^2)$. Next, we set a criterion that the area under the corresponding normal distribution curve from $t_1$ to $t=0$ is 90% of the total area.

Statistics on

6. Sampling process for testing.

We use $t_1$ as the dividing time point. t > $t_1$ is the first stage, while t ≤ $t_1$ is the second stage. These two stages use different sampling methods.

Sampling process for testing.

7. Analysis of xt on four datasets.

We evaluate the PSNR vaules between $x_t$ and ground-truth for each time step on four datasets.

Analysis of xt on four datasets

8. Visual Comparison with IR-SDE.

We compared our methods with IR-SDE.

Visual Comparison with IR-SDE

Dependenices Version

  • OS: Ubuntu 20.04.6
  • nvdia: 11.6
  • python: 3.7.1
  • pytorch: 1.13.0

How to train?

datasets preparation and parameters configuration

You can directly configure the hazy and GT paths of the dataset and other parameters in the corresponding files under the Option folder. We have configured four different types of processing methods for different types of data sets hazy image and gt image formats.

  • indoor
  • outdoor
  • NH_Haze
  • NH-Haze2

train

bash train.sh

test

bash test.sh

About

Density-Aware Diffusion Model for Efficient Image Dehazing

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DADM

Density-Aware Diffusion Model for Efficient Image Dehazing

1. Our Result comparison with other methods.

Guided by the haze density, our DADM can handle images with dense haze and complex environments.

Image Dehazing

2. Overview of our DADM.

  • For image dehazing, the haze image can be considered as noisy data, while the clear haze-free image is the target data. By training a diffusion model, we can learn a mapping from haze images to haze-free images. The diffusion model contains a forward diffusion process and a reverse diffusion process.
  • In the reverse diffusion process of our DADM, we introduce a density-aware dehazing network (DADNet) to estimate the noise in the input image and recover a haze-free image from a haze image (considered as a noisy state).

DADM

3. The haze density of the mage.

The dark channel value of noise areas is also very low, resulting in the inability to extract accurate haze density information. We introduce a cross-feature density extraction module (CDEModule) to optimize the dark channel map and obtain the accurate haze density for the image.

haze density mage

4. Analysis of the test sampling process on four datasets.

The dehazing results have achieved an optimum at some intermediate time point, while the image quality may instead degrade as the dehazing process continues.

Analysis of the test sampling process on four datasets.

5. Statistics on Datasets.

We evaluate all the sampling results at various time steps using the PSNR values against the ground truth. Based on the mean value $t_2$ and the variance $\sigma$ of the distribution, we can plot the corresponding normal distribution curves $c \sim \mathcal{N}(t_2, \sigma^2)$. Next, we set a criterion that the area under the corresponding normal distribution curve from $t_1$ to $t=0$ is 90% of the total area.

Statistics on

6. Sampling process for testing.

We use $t_1$ as the dividing time point. t > $t_1$ is the first stage, while t ≤ $t_1$ is the second stage. These two stages use different sampling methods.

Sampling process for testing.

7. Analysis of xt on four datasets.

We evaluate the PSNR vaules between $x_t$ and ground-truth for each time step on four datasets.

Analysis of xt on four datasets

8. Visual Comparison with IR-SDE.

We compared our methods with IR-SDE.

Visual Comparison with IR-SDE

Dependenices Version

  • OS: Ubuntu 20.04.6
  • nvdia: 11.6
  • python: 3.7.1
  • pytorch: 1.13.0

How to train?

datasets preparation and parameters configuration

You can directly configure the hazy and GT paths of the dataset and other parameters in the corresponding files under the Option folder. We have configured four different types of processing methods for different types of data sets hazy image and gt image formats.

  • indoor
  • outdoor
  • NH_Haze
  • NH-Haze2

train

bash train.sh

test

bash test.sh

About

Density-Aware Diffusion Model for Efficient Image Dehazing

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DADM

Density-Aware Diffusion Model for Efficient Image Dehazing

1. Our Result comparison with other methods.

Guided by the haze density, our DADM can handle images with dense haze and complex environments.

Image Dehazing

2. Overview of our DADM.

  • For image dehazing, the haze image can be considered as noisy data, while the clear haze-free image is the target data. By training a diffusion model, we can learn a mapping from haze images to haze-free images. The diffusion model contains a forward diffusion process and a reverse diffusion process.
  • In the reverse diffusion process of our DADM, we introduce a density-aware dehazing network (DADNet) to estimate the noise in the input image and recover a haze-free image from a haze image (considered as a noisy state).

DADM

3. The haze density of the mage.

The dark channel value of noise areas is also very low, resulting in the inability to extract accurate haze density information. We introduce a cross-feature density extraction module (CDEModule) to optimize the dark channel map and obtain the accurate haze density for the image.

haze density mage

4. Analysis of the test sampling process on four datasets.

The dehazing results have achieved an optimum at some intermediate time point, while the image quality may instead degrade as the dehazing process continues.

Analysis of the test sampling process on four datasets.

5. Statistics on Datasets.

We evaluate all the sampling results at various time steps using the PSNR values against the ground truth. Based on the mean value $t_2$ and the variance $\sigma$ of the distribution, we can plot the corresponding normal distribution curves $c \sim \mathcal{N}(t_2, \sigma^2)$. Next, we set a criterion that the area under the corresponding normal distribution curve from $t_1$ to $t=0$ is 90% of the total area.

Statistics on

6. Sampling process for testing.

We use $t_1$ as the dividing time point. t > $t_1$ is the first stage, while t ≤ $t_1$ is the second stage. These two stages use different sampling methods.

Sampling process for testing.

7. Analysis of xt on four datasets.

We evaluate the PSNR vaules between $x_t$ and ground-truth for each time step on four datasets.

Analysis of xt on four datasets

8. Visual Comparison with IR-SDE.

We compared our methods with IR-SDE.

Visual Comparison with IR-SDE

Dependenices Version

  • OS: Ubuntu 20.04.6
  • nvdia: 11.6
  • python: 3.7.1
  • pytorch: 1.13.0

How to train?

datasets preparation and parameters configuration

You can directly configure the hazy and GT paths of the dataset and other parameters in the corresponding files under the Option folder. We have configured four different types of processing methods for different types of data sets hazy image and gt image formats.

  • indoor
  • outdoor
  • NH_Haze
  • NH-Haze2

train

bash train.sh

test

bash test.sh

About

Density-Aware Diffusion Model for Efficient Image Dehazing

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DADM

Density-Aware Diffusion Model for Efficient Image Dehazing

1. Our Result comparison with other methods.

Guided by the haze density, our DADM can handle images with dense haze and complex environments.

Image Dehazing

2. Overview of our DADM.

  • For image dehazing, the haze image can be considered as noisy data, while the clear haze-free image is the target data. By training a diffusion model, we can learn a mapping from haze images to haze-free images. The diffusion model contains a forward diffusion process and a reverse diffusion process.
  • In the reverse diffusion process of our DADM, we introduce a density-aware dehazing network (DADNet) to estimate the noise in the input image and recover a haze-free image from a haze image (considered as a noisy state).

DADM

3. The haze density of the mage.

The dark channel value of noise areas is also very low, resulting in the inability to extract accurate haze density information. We introduce a cross-feature density extraction module (CDEModule) to optimize the dark channel map and obtain the accurate haze density for the image.

haze density mage

4. Analysis of the test sampling process on four datasets.

The dehazing results have achieved an optimum at some intermediate time point, while the image quality may instead degrade as the dehazing process continues.

Analysis of the test sampling process on four datasets.

5. Statistics on Datasets.

We evaluate all the sampling results at various time steps using the PSNR values against the ground truth. Based on the mean value $t_2$ and the variance $\sigma$ of the distribution, we can plot the corresponding normal distribution curves $c \sim \mathcal{N}(t_2, \sigma^2)$. Next, we set a criterion that the area under the corresponding normal distribution curve from $t_1$ to $t=0$ is 90% of the total area.

Statistics on

6. Sampling process for testing.

We use $t_1$ as the dividing time point. t > $t_1$ is the first stage, while t ≤ $t_1$ is the second stage. These two stages use different sampling methods.

Sampling process for testing.

7. Analysis of xt on four datasets.

We evaluate the PSNR vaules between $x_t$ and ground-truth for each time step on four datasets.

Analysis of xt on four datasets

8. Visual Comparison with IR-SDE.

We compared our methods with IR-SDE.

Visual Comparison with IR-SDE

Dependenices Version

  • OS: Ubuntu 20.04.6
  • nvdia: 11.6
  • python: 3.7.1
  • pytorch: 1.13.0

How to train?

datasets preparation and parameters configuration

You can directly configure the hazy and GT paths of the dataset and other parameters in the corresponding files under the Option folder. We have configured four different types of processing methods for different types of data sets hazy image and gt image formats.

  • indoor
  • outdoor
  • NH_Haze
  • NH-Haze2

train

bash train.sh

test

bash test.sh

About

Density-Aware Diffusion Model for Efficient Image Dehazing

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DADM

Density-Aware Diffusion Model for Efficient Image Dehazing

1. Our Result comparison with other methods.

Guided by the haze density, our DADM can handle images with dense haze and complex environments.

Image Dehazing

2. Overview of our DADM.

  • For image dehazing, the haze image can be considered as noisy data, while the clear haze-free image is the target data. By training a diffusion model, we can learn a mapping from haze images to haze-free images. The diffusion model contains a forward diffusion process and a reverse diffusion process.
  • In the reverse diffusion process of our DADM, we introduce a density-aware dehazing network (DADNet) to estimate the noise in the input image and recover a haze-free image from a haze image (considered as a noisy state).

DADM

3. The haze density of the mage.

The dark channel value of noise areas is also very low, resulting in the inability to extract accurate haze density information. We introduce a cross-feature density extraction module (CDEModule) to optimize the dark channel map and obtain the accurate haze density for the image.

haze density mage

4. Analysis of the test sampling process on four datasets.

The dehazing results have achieved an optimum at some intermediate time point, while the image quality may instead degrade as the dehazing process continues.

Analysis of the test sampling process on four datasets.

5. Statistics on Datasets.

We evaluate all the sampling results at various time steps using the PSNR values against the ground truth. Based on the mean value $t_2$ and the variance $\sigma$ of the distribution, we can plot the corresponding normal distribution curves $c \sim \mathcal{N}(t_2, \sigma^2)$. Next, we set a criterion that the area under the corresponding normal distribution curve from $t_1$ to $t=0$ is 90% of the total area.

Statistics on

6. Sampling process for testing.

We use $t_1$ as the dividing time point. t > $t_1$ is the first stage, while t ≤ $t_1$ is the second stage. These two stages use different sampling methods.

Sampling process for testing.

7. Analysis of xt on four datasets.

We evaluate the PSNR vaules between $x_t$ and ground-truth for each time step on four datasets.

Analysis of xt on four datasets

8. Visual Comparison with IR-SDE.

We compared our methods with IR-SDE.

Visual Comparison with IR-SDE

Dependenices Version

  • OS: Ubuntu 20.04.6
  • nvdia: 11.6
  • python: 3.7.1
  • pytorch: 1.13.0

How to train?

datasets preparation and parameters configuration

You can directly configure the hazy and GT paths of the dataset and other parameters in the corresponding files under the Option folder. We have configured four different types of processing methods for different types of data sets hazy image and gt image formats.

  • indoor
  • outdoor
  • NH_Haze
  • NH-Haze2

train

bash train.sh

test

bash test.sh

About

Density-Aware Diffusion Model for Efficient Image Dehazing

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DADM

Density-Aware Diffusion Model for Efficient Image Dehazing

1. Our Result comparison with other methods.

Guided by the haze density, our DADM can handle images with dense haze and complex environments.

Image Dehazing

2. Overview of our DADM.

  • For image dehazing, the haze image can be considered as noisy data, while the clear haze-free image is the target data. By training a diffusion model, we can learn a mapping from haze images to haze-free images. The diffusion model contains a forward diffusion process and a reverse diffusion process.
  • In the reverse diffusion process of our DADM, we introduce a density-aware dehazing network (DADNet) to estimate the noise in the input image and recover a haze-free image from a haze image (considered as a noisy state).

DADM

3. The haze density of the mage.

The dark channel value of noise areas is also very low, resulting in the inability to extract accurate haze density information. We introduce a cross-feature density extraction module (CDEModule) to optimize the dark channel map and obtain the accurate haze density for the image.

haze density mage

4. Analysis of the test sampling process on four datasets.

The dehazing results have achieved an optimum at some intermediate time point, while the image quality may instead degrade as the dehazing process continues.

Analysis of the test sampling process on four datasets.

5. Statistics on Datasets.

We evaluate all the sampling results at various time steps using the PSNR values against the ground truth. Based on the mean value $t_2$ and the variance $\sigma$ of the distribution, we can plot the corresponding normal distribution curves $c \sim \mathcal{N}(t_2, \sigma^2)$. Next, we set a criterion that the area under the corresponding normal distribution curve from $t_1$ to $t=0$ is 90% of the total area.

Statistics on

6. Sampling process for testing.

We use $t_1$ as the dividing time point. t > $t_1$ is the first stage, while t ≤ $t_1$ is the second stage. These two stages use different sampling methods.

Sampling process for testing.

7. Analysis of xt on four datasets.

We evaluate the PSNR vaules between $x_t$ and ground-truth for each time step on four datasets.

Analysis of xt on four datasets

8. Visual Comparison with IR-SDE.

We compared our methods with IR-SDE.

Visual Comparison with IR-SDE

Dependenices Version

  • OS: Ubuntu 20.04.6
  • nvdia: 11.6
  • python: 3.7.1
  • pytorch: 1.13.0

How to train?

datasets preparation and parameters configuration

You can directly configure the hazy and GT paths of the dataset and other parameters in the corresponding files under the Option folder. We have configured four different types of processing methods for different types of data sets hazy image and gt image formats.

  • indoor
  • outdoor
  • NH_Haze
  • NH-Haze2

train

bash train.sh

test

bash test.sh

About

Density-Aware Diffusion Model for Efficient Image Dehazing

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DADM

Density-Aware Diffusion Model for Efficient Image Dehazing

1. Our Result comparison with other methods.

Guided by the haze density, our DADM can handle images with dense haze and complex environments.

Image Dehazing

2. Overview of our DADM.

  • For image dehazing, the haze image can be considered as noisy data, while the clear haze-free image is the target data. By training a diffusion model, we can learn a mapping from haze images to haze-free images. The diffusion model contains a forward diffusion process and a reverse diffusion process.
  • In the reverse diffusion process of our DADM, we introduce a density-aware dehazing network (DADNet) to estimate the noise in the input image and recover a haze-free image from a haze image (considered as a noisy state).

DADM

3. The haze density of the mage.

The dark channel value of noise areas is also very low, resulting in the inability to extract accurate haze density information. We introduce a cross-feature density extraction module (CDEModule) to optimize the dark channel map and obtain the accurate haze density for the image.

haze density mage

4. Analysis of the test sampling process on four datasets.

The dehazing results have achieved an optimum at some intermediate time point, while the image quality may instead degrade as the dehazing process continues.

Analysis of the test sampling process on four datasets.

5. Statistics on Datasets.

We evaluate all the sampling results at various time steps using the PSNR values against the ground truth. Based on the mean value $t_2$ and the variance $\sigma$ of the distribution, we can plot the corresponding normal distribution curves $c \sim \mathcal{N}(t_2, \sigma^2)$. Next, we set a criterion that the area under the corresponding normal distribution curve from $t_1$ to $t=0$ is 90% of the total area.

Statistics on

6. Sampling process for testing.

We use $t_1$ as the dividing time point. t > $t_1$ is the first stage, while t ≤ $t_1$ is the second stage. These two stages use different sampling methods.

Sampling process for testing.

7. Analysis of xt on four datasets.

We evaluate the PSNR vaules between $x_t$ and ground-truth for each time step on four datasets.

Analysis of xt on four datasets

8. Visual Comparison with IR-SDE.

We compared our methods with IR-SDE.

Visual Comparison with IR-SDE

Dependenices Version

  • OS: Ubuntu 20.04.6
  • nvdia: 11.6
  • python: 3.7.1
  • pytorch: 1.13.0

How to train?

datasets preparation and parameters configuration

You can directly configure the hazy and GT paths of the dataset and other parameters in the corresponding files under the Option folder. We have configured four different types of processing methods for different types of data sets hazy image and gt image formats.

  • indoor
  • outdoor
  • NH_Haze
  • NH-Haze2

train

bash train.sh

test

bash test.sh

About

Density-Aware Diffusion Model for Efficient Image Dehazing

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

DADM

Density-Aware Diffusion Model for Efficient Image Dehazing

1. Our Result comparison with other methods.

Guided by the haze density, our DADM can handle images with dense haze and complex environments.

Image Dehazing

2. Overview of our DADM.

  • For image dehazing, the haze image can be considered as noisy data, while the clear haze-free image is the target data. By training a diffusion model, we can learn a mapping from haze images to haze-free images. The diffusion model contains a forward diffusion process and a reverse diffusion process.
  • In the reverse diffusion process of our DADM, we introduce a density-aware dehazing network (DADNet) to estimate the noise in the input image and recover a haze-free image from a haze image (considered as a noisy state).

DADM

3. The haze density of the mage.

The dark channel value of noise areas is also very low, resulting in the inability to extract accurate haze density information. We introduce a cross-feature density extraction module (CDEModule) to optimize the dark channel map and obtain the accurate haze density for the image.

haze density mage

4. Analysis of the test sampling process on four datasets.

The dehazing results have achieved an optimum at some intermediate time point, while the image quality may instead degrade as the dehazing process continues.

Analysis of the test sampling process on four datasets.

5. Statistics on Datasets.

We evaluate all the sampling results at various time steps using the PSNR values against the ground truth. Based on the mean value $t_2$ and the variance $\sigma$ of the distribution, we can plot the corresponding normal distribution curves $c \sim \mathcal{N}(t_2, \sigma^2)$. Next, we set a criterion that the area under the corresponding normal distribution curve from $t_1$ to $t=0$ is 90% of the total area.

Statistics on

6. Sampling process for testing.

We use $t_1$ as the dividing time point. t > $t_1$ is the first stage, while t ≤ $t_1$ is the second stage. These two stages use different sampling methods.

Sampling process for testing.

7. Analysis of xt on four datasets.

We evaluate the PSNR vaules between $x_t$ and ground-truth for each time step on four datasets.

Analysis of xt on four datasets

8. Visual Comparison with IR-SDE.

We compared our methods with IR-SDE.

Visual Comparison with IR-SDE

Dependenices Version

  • OS: Ubuntu 20.04.6
  • nvdia: 11.6
  • python: 3.7.1
  • pytorch: 1.13.0

How to train?

datasets preparation and parameters configuration

You can directly configure the hazy and GT paths of the dataset and other parameters in the corresponding files under the Option folder. We have configured four different types of processing methods for different types of data sets hazy image and gt image formats.

  • indoor
  • outdoor
  • NH_Haze
  • NH-Haze2

train

bash train.sh

test

bash test.sh

About

Density-Aware Diffusion Model for Efficient Image Dehazing

Resources

Stars

9 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages