Commit 92266ff3 authored by yongshk's avatar yongshk
Browse files

Initial commit

parent 77faab78
Pipeline #634 canceled with stages
FROM image.sourcefind.cn:5000/dcu/admin/base/tensorflow:1.15.1-centos7.6-dtk-22.10.1-py37-latest
COPY requirements.txt requirements.txt
RUN source /opt/dtk-22.10/env.sh
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
ENV LANG C.UTF-8
RUN pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
# LapSRN # LAPSRN
## 模型介绍
LapSRN是一种用于超分辨率重建的神经网络模型。它可以将低分辨率的图像增强到高分辨率,从而提高图像的质量和清晰度。 ## 论文
` Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution `
- https://openaccess.thecvf.com/content_cvpr_2017/papers/Lai_Deep_Laplacian_Pyramid_CVPR_2017_paper.pdf
## 模型结构 ## 模型结构
LapSRN模型主要有两个部分,即拉普拉斯金字塔预测模型和残差学习模型。 LapSRN模型主要有两个部分,即拉普拉斯金字塔预测模型和残差学习模型。
![](D:\git上传前\lapsrn_tensorflow\doc\模型结构.png)
## 算法原理
该模型是一个图像超分辨率模型,通过逐步放大结构,包括特征提取和图像重建,在每个阶段通过卷积和转置卷积层实现对图像的逐级提升。
![](D:\git上传前\lapsrn_tensorflow\doc\模型原理.png)
## 环境配置
### Docker(方法一)
此处提供[光源](https://www.sourcefind.cn/#/service-details)拉取docker镜像
```
docker pull docker pull image.sourcefind.cn:5000/dcu/admin/base/tensorflow:1.15.1-centos7.6-dtk-22.10.1-py37-latest
docker run -it --network=host --name=bert_prof --privileged --device=/dev/kfd --device=/dev/dri --ipc=host --shm-size=32G --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -u root --ulimit stack=-1:-1 --ulimit memlock=-1:-1 image.sourcefind.cn:5000/dcu/admin/base/tensorflow:1.15.1-centos7.6-dtk-22.10.1-py37-latest
```
### Dockerfile(方法二)
dockerfile使用方法
```
docker build --no-cache -t lapsrn:latest .
docker run -dit --network=host --name=lapsrn --privileged --device=/dev/kfd --device=/dev/dri --ipc=host --shm-size=16G --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -u root --ulimit stack=-1:-1 --ulimit memlock=-1:-1 lapsrn:latest
docker exec -it lapsrn /bin/bash
pip install -r requirements.txt
```
### Anaconda(方法三)
关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.hpccube.com/tool/)开发者社区下载安装。
```
DTK驱动:dtk22.10
python:python3.7
tensorflow==1.15.1+gitf56f27ab.dtk2210
```
`Tips:以上dtk驱动、python等DCU相关工具版本需要严格一一对应`
其它非深度学习库参照requirements.txt安装:
```
pip install -r requirements.txt
```
## 数据集 ## 数据集
数据集下载地址:DIV2K
https://data.vision.ee.ethz.ch/cvl/DIV2K/ `模型使用数据为 DIV2K `
## 训练及推理 - https://data.vision.ee.ethz.ch/cvl/DIV2K/
### 环境配置
加载环境变量 项目中已提供用于试验训练的迷你数据集,训练数据目录结构如下,用于正常训练的完整数据集请按此目录结构进行制备:
export PATH={PYTHON3_install_dir}/bin:$PATH ```
── datasets
│   ├── DIV2K_train_HR
│    ├── xxx.png
│    ├── xxx.png
│ └── ...
│   └── DIV2K_train_LR_bicubic
│    ├── xxx.png
│    ├── xxx.png
│ └── ...
│   └── DIV2K_valid_HR
│    ├── xxx.png
│    ├── xxx.png
│ └── ...
│   └── DIV2K_valid_LR_bicubic
│    ├── xxx.png
│    ├── xxx.png
│ └── ...
```
export LD_LIBRARY_PATH={PYTHON3_install_dir}/lib:$LD_LIBRARY_PATH
python依赖安装:
tensorflow==1.15.1
### 训练
训练命令:
config.valid.hr_folder_path = '/../LapSRN/data/DIV2K_valid_HR/' ## 训练
config.valid.lr_folder_path = '/../LapSRN/data/DIV2K_train_LR_bicubic/X4/' ### 单机单卡
python main.py
```
python main.py
```
### 测试 ## 推理
测试命令:
python main.py -m test \ python main.py -m test \
-f TESTIMAGE -f TESTIMAGE
## result
测试图
![](D:\git上传前\lapsrn_tensorflow\datasets\DIV2K_valid_HR\0801.png)
### 精度
测试数据:https://data.vision.ee.ethz.ch/cvl/DIV2K/ ,使用的加速卡:Z100L。
根据测试结果情况填写表格:
| LAPSRN | loss | 速度 |
| :----: | :---: | :---: |
| DIV2K | 0.461 | 4it/s |
## 应用场景
### 算法类别
`图像超分`
### 热点应用行业
`设计`
## 源码仓库及问题反馈 ## 源码仓库及问题反馈
* [https://github.com/zjuela/LapSRN-tensorflow](https://github.com/zjuela/LapSRN-tensorflow)
## 参考 * https://github.com/zjuela/LapSRN-tensorflow
* [https://github.com/zjuela/LapSRN-tensorflow](https://github.com/zjuela/LapSRN-tensorflow) ## 参考资料
* https://github.com/zjuela/LapSRN-tensorflow
# 模型唯一标识
modelCode = 167
# 模型名称
modelName=LapSRN_tensorflow
# 模型描述
modelDescription=LapSRN是一种用于超分辨率重建的神经网络模型,全称为Laplacian Pyramid Super-Resolution Network。它可以将低分辨率的图像增强到高分辨率,从而提高图像的质量和清晰度。LapSRN模型基于图像金字塔理论,采用多级金字塔结构,通过渐进性的上采样和细节增强,逐步提高图像分辨率。
# 应用场景
appScenario=推理,训练,图像超分,设计
# 框架类型
frameType=tensorflow
...@@ -627,7 +627,7 @@ def load_npz(path='', name='model.npz'): ...@@ -627,7 +627,7 @@ def load_npz(path='', name='model.npz'):
# print('Loading %s, %s' % (key, str(val.shape))) # print('Loading %s, %s' % (key, str(val.shape)))
# return params # return params
## if save_npz save params into a list ## if save_npz save params into a list
d = np.load( path+name ) d = np.load( path+name, allow_pickle=True, encoding='latin1')
# for val in sorted( d.items() ): # for val in sorted( d.items() ):
# params = val # params = val
# return params # return params
......
import scipy import scipy
import numpy as np import numpy as np
import imageio
# def get_imgs_fn(file_name):
# return imageio.imread(file_name, pilmode='RGB')
def get_imgs_fn(file_name): def get_imgs_fn(file_name):
return scipy.misc.imread(file_name, mode='RGB') return scipy.misc.imread(file_name, mode='RGB')
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment