HINet

HINet: Half Instance Normalization Network for Image Restoration 论文复现

官方源码

AI Studio项目地址

1. 简介

HINet创新性地将Instance Normalization的方法应用到图像复原这种low-level的任务上,提出了HIN Block并以此构建了多阶段网络,以提高图像复原的质量,并达到了SOTA。

2. 复现精度

原文结果:SIDD PSNR: 39.99 SSIM: 0.958

复现结果:SIDD PSNR: 39.91 SSIM: 0.958

3. 数据集

SIDD(Smartphone Image Denoising Dataset)数据集是CVPR2018的一篇论文提出的,用于手机相机降噪研究的数据集。SIDD用了5种不同的手机拍摄了10个场景下,总共30000张在不同光照条件下的带噪声的图像,同时也还有对应的“无噪声”的真实图像

数据集处理参考链接

4.文件结构

hinet_paddle|-- dataloaders|-- SIDD_Data|-- train                 # SIDD-Medium 训练数据|-- val                   # SIDD 测试数据|-- SIDD_patches|-- train_mini            # 小训练数据,用于TIPC测试|-- val_mini              # 小测试数据,用于TIPC测试|-- logs                       # 训练日志|-- test_tipc                  # TIPC: Linux GPU/CPU 基础训练推理测试|-- networks|-- hinet_arch.py       # HINet模型代码|-- pretrained_models          # 预训练模型|-- utils                      # 一些工具代码|-- config.py                  # 配置文件|-- export_model.py            # 预训练模型的导出代码|-- infer.py                   # 模型推理代码|-- LICENSE                    # LICENSE文件|-- losses.py                  # 损失函数|-- predict.py                 # 模型预测代码|-- README.md                  # README.md文件|-- sidd_data_preprocessing.py # SIDD数据预处理代码|-- test_denoising_sidd.py     # 测试SIDD数据上的指标|-- train.py                   # TIPC训练测试代码|-- train_denoising_1card.py   # 单机单卡训练代码|-- train_denoising_4cards.py  # 单机多卡训练代码|-- training_1card.yml         # 单机单卡训练配置文件|-- training_4cards.py         # 单机多卡训练配置文件

5. 环境依赖

PaddlePaddle == 2.3.0

6. 快速开始

安装相关包

!pip install yacs
!pip install natsort
!pip install scikit-image==0.19.2
!pip install reprod_log
!pip install https://paddleocr.bj.bcebos.com/libs/auto_log-1.2.0-py3-none-any.whl

准备数据集

import os
os.chdir('hinet_paddle')
os.mkdir('SIDD_Data')
os.chdir('SIDD_Data')
!unzip ~/data/data149460/SIDD.zip
os.chdir('..')
os.chdir('SIDD_Data/train')
!mv gt_crops groundtruth
!mv input_crops input
os.chdir('../..')
os.chdir('SIDD_Data/val')
!mv gt_crops groundtruth
!mv input_crops input
os.chdir('../..')

拷入预训练模型

os.mkdir('pretrained_models')
!mv ~/data/data152642/model_best.pdparams pretrained_models/

训练注意事项

GPU数量改变时,须保证

total_batchsize*iter == 8gpus*8bs*400000iters

与官方保持一致

训练代码

!python train_denoising_1card.py

测试代码

!python test_denoising_sidd.py --weights ./pretrained_models/model_best.pdparams

推理代码

!python predict.py --model_ckpt ./pretrained_models/model_best.pdparams --data_path ./SIDD_patches/val_mini/ --save_path results/ --save_images

7. 心得

之前一直习惯用别的深度学习框架,利用这次难得的机会,正好学习一下paddle的框架,体验下来感觉基本上是无缝切换了,用起来也比较简单,上手很快。经历了整个复现的过程,感觉不仅仅是对复现的论文有了更深入的理解,而且也学会了paddle基础的使用,给自己的技能库又增加了一项,挺有收获的。

另外感谢HINet-official与MIRNet_paddle分享了他们的代码,在本次复现过程中提供了帮助,以及AI Studio提供的算力与答疑支持。

此文章为搬运
原项目链接

论文复现-Half Instance Normalization Network相关推荐

  1. 论文笔记 Multiple Instance Detection Network with Online Instance Classifier Refinement - CVPR 2017

    Multiple Instance Detection Network with Online Instance Classifier Refinement 华中科大Peng Tang, Xingga ...

  2. 论文笔记 Object-Aware Instance Labeling for Weakly Supervised Object Detection - ICCV 2019

    Object-Aware Instance Labeling for Weakly Supervised Object Detection Kosugi ICCV, 2019 (PDF) (Citat ...

  3. 论文复现:Learning Efficient Convolutional Networks through Network Slimming

    论文核心 论文提出了一种结构化剪枝策略,剪枝对象为 channel ,对 channel 重要性的评价标准使用的是 Batch Normalization 层中的缩放因子,这不会给网络带来额外的开销. ...

  4. Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization论文阅读笔记

    Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization论文阅读笔记 目录 Arbitrary Style ...

  5. AdaIN(Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization)——论文阅读

    1. Introduction 在这篇文章中,作者提出了一种简单但是有效的方用来首次实现任意样式的实时风格转换,方法的核心是加入了一个adaptive instance normalization ( ...

  6. 《Parallel Instance Query Network for Named Entity Recognition》论文阅读

    来源:ACL 2022 论文认为存在的问题: 当前的NER任务被转换为MRC任务,但是存在以下问题: 每次一个问题只能抽取到一种类型的实体,效率不够高 不同实体之间抽取是分割,没有考虑到实体之间的依赖 ...

  7. 【PaddlePaddle论文复现营】Temporal Pyramid Network for Action Recognition

    [PaddlePaddle论文复现营]Temporal Pyramid Network for Action Recognition 写在前面的话 论文简介 从视频分类领域中的一个痛点谈起 相关工作 ...

  8. 飞浆论文复现:用于图像到图像翻译的具有自适应层实例化的非监督的生成对抗网络

    Unsupervised generative attentional networks with adaptive layer-instance normalization for image-to ...

  9. 【PaddlePaddle】【论文复现】U-GAT-IT

    [PaddlePaddle][论文复现]Unsupervised Generative Attentional Networks with Adaptive Layer-Instance Normal ...

最新文章

  1. 小型工作室创业项目_为什么新开发人员应该在小型创业公司工作
  2. 边缘计算 — 与 5G
  3. assignment mismatch: 1 variable but uuid.NewV4 returns 2 values
  4. 只能输入字母的c语言程序设计教程课后答案,c语言程序设计基础教程_习题答案20120319...
  5. Tomcat——目录结构
  6. 实验四 恶意代码
  7. 计算机网络按拓扑结构可分为三种基本型,2012年计算机三级网络技术基本概念与名词解释(3)...
  8. 从零开始学前端:css3新属性scss和less --- 今天你学习了吗?(CSS:Day22)
  9. 在ibatis中做等值判断(if-else)
  10. C++中用两个栈实现一个队列
  11. 对接企业微信3:网页授权登录
  12. 平面几何----笛沙格定理及其应用
  13. windows 查询域名DNS解析
  14. 弄明白了清华校训“自强不息 厚德载物”的来龙去脉
  15. 遗传算法:交叉操作 Inver-over 算子
  16. 等级考试三级(分形盒)
  17. 游戏计算机的显示器,玩游戏用多大显示器好?聊聊电脑显示器多大尺寸合适
  18. 科技现代闪耀上海秀场 北京现代在上海车展上演转型之姿
  19. 什么是云计算?IDC服务器托管和云服务器(云主机)哪个更划算?
  20. html 可脱机浏览,如何脱机浏览Web页面

热门文章

  1. Python 去除空格的方法
  2. oracle怎么创建登录用户,Oracle学习第一课(登录oracle和创建用户)
  3. Git - 常用命令使用教程
  4. VMware安装CentOS7(零基础版附镜像)
  5. (附源码)计算机毕业设计SSM基于推荐算法的鞋服代购平台
  6. 0-01--python3 logging基本用法
  7. Oculus Home 客户端安装教程
  8. Linux 安装、卸载Nginx详细教程
  9. css 鼠标滚动事件,js监听鼠标的滚轮滚动事件教程
  10. 配置中心—nacos配置中心