Новости: Drunet
Современная дженечная производительность
Можно использовать для восстановления образа образа и игры

https://github.com/cszn/dpir/blob/master/main_dpir_denoising.py
I recommend to use the PyTorch code for training and testing. The model parameters of MatConvnet and PyTorch are same.
main_train_dncnn.py
main_test_dncnn.py
main_test_dncnn3_deblocking.py
import torch
import torch . nn as nn
def merge_bn ( model ):
''' merge all 'Conv+BN' (or 'TConv+BN') into 'Conv' (or 'TConv')
based on https://github.com/pytorch/pytorch/pull/901
by Kai Zhang ([email protected])
https://github.com/cszn/DnCNN
01/01/2019
'''
prev_m = None
for k , m in list ( model . named_children ()):
if ( isinstance ( m , nn . BatchNorm2d ) or isinstance ( m , nn . BatchNorm1d )) and ( isinstance ( prev_m , nn . Conv2d ) or isinstance ( prev_m , nn . Linear ) or isinstance ( prev_m , nn . ConvTranspose2d )):
w = prev_m . weight . data
if prev_m . bias is None :
zeros = torch . Tensor ( prev_m . out_channels ). zero_ (). type ( w . type ())
prev_m . bias = nn . Parameter ( zeros )
b = prev_m . bias . data
invstd = m . running_var . clone (). add_ ( m . eps ). pow_ ( - 0.5 )
if isinstance ( prev_m , nn . ConvTranspose2d ):
w . mul_ ( invstd . view ( 1 , w . size ( 1 ), 1 , 1 ). expand_as ( w ))
else :
w . mul_ ( invstd . view ( w . size ( 0 ), 1 , 1 , 1 ). expand_as ( w ))
b . add_ ( - m . running_mean ). mul_ ( invstd )
if m . affine :
if isinstance ( prev_m , nn . ConvTranspose2d ):
w . mul_ ( m . weight . data . view ( 1 , w . size ( 1 ), 1 , 1 ). expand_as ( w ))
else :
w . mul_ ( m . weight . data . view ( w . size ( 0 ), 1 , 1 , 1 ). expand_as ( w ))
b . mul_ ( m . weight . data ). add_ ( m . bias . data )
del model . _modules [ k ]
prev_m = m
merge_bn ( m )
def tidy_sequential ( model ):
for k , m in list ( model . named_children ()):
if isinstance ( m , nn . Sequential ):
if m . __len__ () == 1 :
model . _modules [ k ] = m . __getitem__ ( 0 )
tidy_sequential ( m )Simpleenn версия
Dagnn версия
[demos] Demo_test_DnCNN-.m .
[модели], включая обученные модели для гауссового денирования; Единственная модель для гауссовского денизинного, одноэтажного супер-разрешения (SISR) и деблокирования.
[Яичники] BSD68 и SET10 для оценки гауссовой денорирования; Наборы данных SET5, SET14, BSD100 и URBAN100 для оценки SISR; Classic5 и Live1 для JPEG Image Deblocking Оценка.
Я обучил новые гибкие модели DNCNN (FDNCNN) на основе FFDNET.
Fdncnn может обрабатывать диапазон уровня шума [0, 75] через одну модель.
Demo_fdncnn_gray.m
Demo_fdncnn_gray_clip.m
Demo_fdncnn_color.m
Demo_fdncnn_color_clip.m
Сетевая архитектура

Нормализация партии и остаточное обучение полезны для гауссовского денирования (особенно для одного уровня шума). Остаток шумного изображения, поврежденного аддитивным белым гауссовым шумом (AWGN), следует за постоянным гауссовым распределением, которое стабилизирует нормализацию пакетов во время тренировки.


Прогнозирование остатка можно интерпретировать как выполнение одного шага вывода спуска градиента в отправной точке (то есть шумное изображение).
Параметры в DNCNN в основном представляют приоры изображения (независимые от задач), поэтому можно изучить одну модель для различных задач, таких как денообразование изображения, супер-разрешение изображения и деблокирование изображения JPEG.
Слева-это входное изображение, поврежденное различными деградациями, справа-восстановленное изображение DNCNN-3.


Средние результаты PSNR (DB) различных методов в наборе данных BSD68.
| Уровень шума | BM3d | Wnnm | Epll | MLP | CSF | Tnrd | Dncnn | Dncnn-b | Fdncnn | Drunet |
|---|---|---|---|---|---|---|---|---|---|---|
| 15 | 31.07 | 31.37 | 31.21 | - | 31.24 | 31.42 | 31.73 | 31.61 | 31.69 | 31.91 |
| 25 | 28.57 | 28.83 | 28.68 | 28.96 | 28.74 | 28.92 | 29,23 | 29.16 | 29,22 | 29,48 |
| 50 | 25.62 | 25,87 | 25.67 | 26.03 | - | 25,97 | 26.23 | 26.23 | 26.27 | 26.59 |
Визуальные результаты
Слева-шумное изображение, испорченное AWGN, середина-это денурированное изображение DNCNN, правое-территория земли.









Средние результаты PSNR (DB)/SSIM различных методов для гауссовского обезболивания с уровнем уровня шума 15, 25 и 50 на наборе данных BSD68, Single Image Super-Resolution с факторами масштабирования 2, 3 и 40 на SET5, SET14, BSD100 и DataSets Urban100, изображение JPEG Deblocking с качественными факторами 10, 30, 30 и 40 на классических и в прямом эфире.
| Набор данных | Уровень шума | BM3d | Tnrd | DNCNN-3 |
|---|---|---|---|---|
| 15 | 31,08 / 0,8722 | 31,42 / 0,8826 | 31,46 / 0,8826 | |
| BSD68 | 25 | 28,57 / 0,8017 | 28,92 / 0,8157 | 29,02 / 0,8190 |
| 50 | 25,62 / 0,6869 | 25,97 / 0,7029 | 26,10 / 0,7076 |
| Набор данных | Фактор повышения масштаба | Tnrd | VDSR | DNCNN-3 |
|---|---|---|---|---|
| 2 | 36,86 / 0,9556 | 37,56 / 0,9591 | 37,58 / 0,9590 | |
| Set5 | 3 | 33,18 / 0,9152 | 33,67 / 0,9220 | 33,75 / 0,9222 |
| 4 | 30,85 / 0,8732 | 31,35 / 0,8845 | 31,40 / 0,8845 | |
| 2 | 32,51 / 0,9069 | 33,02 / 0,9128 | 33,03 / 0,9128 | |
| Set14 | 3 | 29,43 / 0,8232 | 29,77 / 0,8318 | 29,81 / 0,8321 |
| 4 | 27,66 / 0,7563 | 27,99 / 0,7659 | 28,04 / 0,7672 | |
| 2 | 31,40 / 0,8878 | 31,89 / 0,8961 | 31,90 / 0,8961 | |
| BSD100 | 3 | 28,50 / 0,7881 | 28,82 / 0,7980 | 28,85 / 0,7981 |
| 4 | 27,00 / 0,7140 | 27,28 / 0,7256 | 27,29 / 0,7253 | |
| 2 | 29,70 / 0,8994 | 30,76 / 0,9143 | 30,74 / 0,9139 | |
| Urban100 | 3 | 26,42 / 0,8076 | 27,13 / 0,8283 | 27,15 / 0,8276 |
| 4 | 24,61 / 0,7291 | 25,17 / 0,7528 | 25,20 / 0,7521 |
| Набор данных | Фактор качества | AR-CNN | Tnrd | DNCNN-3 |
|---|---|---|---|---|
| Классик5 | 10 | 29,03 / 0,7929 | 29,28 / 0,7992 | 29,40 / 0,8026 |
| 20 | 31,15 / 0,8517 | 31,47 / 0,8576 | 31,63 / 0,8610 | |
| 30 | 32,51 / 0,8806 | 32,78 / 0,8837 | 32,91 / 0,8861 | |
| 40 | 33,34 / 0,8953 | - | 33,77 / 0,9003 | |
| Live1 | 10 | 28,96 / 0,8076 | 29,15 / 0,8111 | 29,19 / 0,8123 |
| 20 | 31,29 / 0,8733 | 31,46 / 0,8769 | 31,59 / 0,8802 | |
| 30 | 32,67 / 0,9043 | 32,84 / 0,9059 | 32,98 / 0,9090 | |
| 40 | 33,63 / 0,9198 | - | 33,96 / 0,9247 |
Или просто Matlab R2015B, чтобы проверить модель.
Dncnn/demo_test_dncnn.m
Строки от 64 до 65 в 4A4B5B8
@article { zhang2017beyond ,
title = { Beyond a {Gaussian} denoiser: Residual learning of deep {CNN} for image denoising } ,
author = { Zhang, Kai and Zuo, Wangmeng and Chen, Yunjin and Meng, Deyu and Zhang, Lei } ,
journal = { IEEE Transactions on Image Processing } ,
year = { 2017 } ,
volume = { 26 } ,
number = { 7 } ,
pages = { 3142-3155 } ,
}
@article { zhang2020plug ,
title = { Plug-and-Play Image Restoration with Deep Denoiser Prior } ,
author = { Zhang, Kai and Li, Yawei and Zuo, Wangmeng and Zhang, Lei and Van Gool, Luc and Timofte, Radu } ,
journal = { arXiv preprint } ,
year = { 2020 }
}==========================================================================
@Inbook{zuo2018convolutional,
author={Zuo, Wangmeng and Zhang, Kai and Zhang, Lei},
editor={Bertalm{'i}o, Marcelo},
title={Convolutional Neural Networks for Image Denoising and Restoration},
bookTitle={Denoising of Photographic Images and Video: Fundamentals, Open Challenges and New Trends},
year={2018},
publisher={Springer International Publishing},
address={Cham},
pages={93--123},
isbn={978-3-319-96029-6},
doi={10.1007/978-3-319-96029-6_4},
url={https://doi.org/10.1007/978-3-319-96029-6_4}
}
В то время как изображение, разжигающее для удаления AWGN, было хорошо изучено, не было сделано небольшая работа на реальном раззоре изображения. Основная трудность возникает из -за того, что реальные звуки гораздо сложнее, чем AWGN, и нелегко оценить производительность денообразного. На рис. 4.15 показаны четыре типичных типа шума в реальном мире. Можно видеть, что характеристики этих шумов очень разные, и одного уровня шума может быть недостаточно для параметризации этих типов шума. В большинстве случаев денозер может хорошо работать только под определенной моделью шума. Например, двойная модель, обученная для удаления AWGN, не эффективна для смешанного гауссового и пуассонского удаления шума. Это интуитивно разумно, потому что методы на основе CNN можно рассматривать как общий случай уравнения. (4.3) и важный термин точности данных соответствует процессу деградации. Несмотря на это, изображение, обезболивающее для удаления AWGN, является ценным по следующим причинам. Во-первых, это идеальный тестовый стенд для оценки эффективности различных методов денизины на основе CNN. Во -вторых, при развертываемом выводе с помощью методов расщепления переменных множество задач восстановления изображений можно решить, последовательно решением серии гауссовых деноризированных подпрограмм, которые дополнительно расширяют поля приложения.

Чтобы улучшить практичность Denoiser CNN, возможно, наиболее простым способом является захват достаточного количества реальных шумных тренировочных пар для обучения для обучения, чтобы можно было покрыть реальное пространство деградации. Это решение имеет преимущество в том, что нет необходимости знать сложный процесс деградации. Однако получение соответствующего чистого изображения шумного, не является тривиальной задачей из-за необходимости тщательных этапов после обработки, таких как пространственное выравнивание и коррекция освещения. В качестве альтернативы, можно имитировать процесс реальной деградации, чтобы синтезировать шумные изображения для чистого. Тем не менее, нелегко точно смоделировать сложный процесс деградации. В частности, модель шума может отличаться в разных камерах. Тем не менее, практически предпочтительнее, чтобы примерно моделировать определенный тип шума для обучения, а затем использовать учентную модель CNN для совместного использования типов.
Помимо учебных данных, надежная архитектура и надежное обучение также играют жизненно важную роль для успеха CNN Denoiser. Для надежной архитектуры проектирование глубокой многомасштабной CNN, которая включает в себя грубую процедуру, является многообещающим направлением. Ожидается, что такая сеть будет наследовать достоинства MultiScale: (i) уровень шума уменьшается в больших масштабах; (ii) повсеместный низкочастотный шум может быть облегчен с помощью многомасштабной процедуры; и (iii) снижение изображения перед денозированием может эффективно увеличить подачу в рецептив. Для надежного обучения эффективность денообразного, обученного генеративным состязательным сетям (GAN) для реального разжигания имиджа, по -прежнему остается дальнейшим расследованием. Основная идея обезболивания на основе Gan заключается в том, чтобы ввести состязательную потерю для улучшения качества восприятия двойного изображения. Кроме того, отличительным преимуществом GAN является то, что он может проводить неконтролируемое обучение. Более конкретно, шумное изображение без наземной правды можно использовать в обучении. До сих пор мы предоставили несколько возможных решений для улучшения практичности CNN Denoiser. Следует отметить, что эти решения могут быть объединены, чтобы еще больше улучшить производительность.