• Stars
    star
    140
  • Rank 261,473 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created over 4 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

一个图像复原或分割的统一框架,可以用于去雾🌫、去雨🌧、去模糊、夜景🌃复原、超分辨率👾、像素级分割等等。

cv_template

  一个图像复原或分割的统一框架,可以用于去雾🌫、去雨🌧、去模糊、夜景🌃复原、超分辨率👾、像素级分割等等。

  preview

Highlights

  • 特色功能
    • 快速搭建baseline,只需生成输入和标签对应的txt文件,无需修改任何代码即可运行
    • (参数控制)多模型
    • 训练过程监控
    • 命令行日志记录
    • 支持TTA

环境需求

python >= 3.6
torch >= 1.0
tensorboardX >= 1.6
utils-misc >= 0.0.5
mscv >= 0.0.3
opencv-python==4.2.0.34  # opencv>=4.4需要编译,建议安装4.2版本
opencv-python-headless==4.2.0.34
albumentations>=0.5.1 

使用方法

训练和验证模型

① 生成输入图片和标签对应的train.txt和val.txt

  新建一个datasets文件夹,制作文件列表train.txt和val.txt并把它们放在datasets目录下,train.txt和val.txt需要满足这样的格式:每行是一对样本的输入和标签的绝对路径,用空格隔开。如下所示:

# datasets/train.txt
/home/xhy/datasets/RESIDE/ITS_v2/images/94_4.png /home/xhy/datasets/RESIDE/ITS_v2/labels/94.png
/home/xhy/datasets/RESIDE/ITS_v2/images/687_6.png /home/xhy/datasets/RESIDE/ITS_v2/labels/687.png
/home/xhy/datasets/RESIDE/ITS_v2/images/441_3.png /home/xhy/datasets/RESIDE/ITS_v2/labels/441.png
/home/xhy/datasets/RESIDE/ITS_v2/images/102_7.png /home/xhy/datasets/RESIDE/ITS_v2/labels/102.png
/home/xhy/datasets/RESIDE/ITS_v2/images/988_2.png /home/xhy/datasets/RESIDE/ITS_v2/labels/988.png
/home/xhy/datasets/RESIDE/ITS_v2/images/860_8.png /home/xhy/datasets/RESIDE/ITS_v2/labels/860.png

  如果输入图片和标签是一一对应的并且存放在两个文件夹中,可以使用下面的脚本生成:

# !- bash
python utils/make_filelist.py --input datasets/images/ --label /datasets/labels --val_ratio 0.1 --out datasets

  生成好train.txt和val.txt后目录结构是这样的:

cv_template
    └── datasets
          ├── train.txt      
          └── val.txt    

② 训练模型

CUDA_VISIBLE_DEVICES=0 python train.py --tag ffa --model FFA --epochs 20 -b 2 --lr 0.0001 # --tag用于区分每次实验,可以是任意字符串

  训练的中途可以在验证集上验证,添加--val_freq 10参数可以指定10个epoch验证一次,添加--save_freq 10参数可以指定10个epoch保存一次checkpoint。

③ 验证训练的模型

CUDA_VISIBLE_DEVICES=0 python eval.py --model FFA -b 2 --load checkpoints/ffa/20_FFA.pt

  验证的结果会保存在results/<tag>目录下,如果不指定--tag,默认的tagcache

④ 恢复中断的训练

CUDA_VISIBLE_DEVICES=0 python train.py --tag ffa_resume --model FFA --epochs 20 -b 2 --lr 0.0001 --load checkpoints/ffa/10_FFA.pt --resume

  --load的作用是载入网络权重;--resume参数会同时加载优化器参数和epoch信息(继续之前的训练),可以根据需要添加。

⑤ 在测试集上测试

CUDA_VISIBLE_DEVICES=0 python submit.py --model FFA --load checkpoints/ffa/20_FFA.pt

记录和查看日志

  所有运行的命令和运行命令的时间戳会自动记录在run_log.txt中。

  不同实验的详细日志和Tensorboard日志文件会记录在logs/<tag>文件夹中,checkpoint文件会保存在checkpoints/<tag>文件夹中。

参数说明

--tag参数是一次操作(traineval)的标签,日志会保存在logs/标签目录下,保存的模型会保存在checkpoints/标签目录下。

--model是使用的模型,所有可用的模型定义在network/__init__.py中。

--epochs是训练的代数。

-b参数是batch_size,可以根据显存的大小调整。

-w参数是num_workers,即读取数据的进程数,如果需要用pdb来debug,将这个参数设为0。

--lr是初始学习率。

--load是加载预训练模型。

--resume配合--load使用,会恢复上次训练的epoch和优化器。

--gpu指定gpu id,目前只支持单卡训练。

另外还可以通过参数调整优化器、学习率衰减、验证和保存模型的频率等,详细请查看python train.py --help

清除不需要的实验记录

  运行 python clear.py --tag <your_tag> 可以清除不需要的实验记录,注意这是不可恢复的,如果你不确定你在做什么,请不要使用这条命令。

如何添加新的模型:

如何添加新的模型:

① 复制network目录下的FFA文件夹,改成另外一个名字(比如MyNet)。

② 仿照FFA的model.py,修改自己的网络结构、损失函数和优化过程。

③ 确认network/<MyNet>/model.py正确,现在network下的目录会被自动检测到,不再需要手动添加。

④ 运行 python train.py --model MyNet 看能否正常训练

More Repositories

1

easy_detection

一个简单方便的目标检测框架(PyTorch环境可直接运行,不需要cuda编译),支持Faster_RCNN、Cascade_RCNN、Yolo系列、SSD等经典网络。
Python
257
star
2

AliProducts

一个通用的图像分类模板,天池/CVPR AliProducts挑战赛 3/688
Python
82
star
3

find_corpus

英语写作语料搜索🔍神器!CVPR中所有出现过的搭配和词句用法搜索,支持模糊查询。
Python
11
star
4

leetcode

使用Python的LeetCode解题笔记,详情访问 http://leetcode.xyu.ink/
JavaScript
10
star
5

captcha_recog

Character Captcha Recognition based on CNN.
Python
6
star
6

workflow

A configurable workflow for image operations.
Python
5
star
7

torch_template

A python package for commonly used pytorch models, data loaders and utils.
Python
4
star
8

text-classification-cnn

基于cnn的中文文本分类
Python
4
star
9

torch_image_template

A template for pytorch image handling project.
Python
3
star
10

misc_utils

A Python package of misc system utils & decorators.
Python
3
star
11

flask_website

基于Flask和Mysql,使用Python快速搭建你的网站。
JavaScript
2
star
12

Penguin_Engine

A 2-D C++ game framework based on DirectX
C++
2
star
13

tf-faster-rcnn

A TensorFlow implementation of Faster R-CNN
Python
1
star
14

cs231n_assignment

cs231n_assignment
Python
1
star
15

ctr

Python
1
star
16

WindowControl

C++
1
star
17

tf_image_template

A template for tensorflow image handling project
Python
1
star
18

CGDI

a simple GDI lib for vs2013
C++
1
star
19

UIGenerator

C++
1
star
20

cifar10_cnn

CNN model trained&tested on cifar-10 dataset
Python
1
star
21

tf_ops

Several commonly used TensorFlow ops in jupter notebook format.
Jupyter Notebook
1
star
22

mscv

MSCV is a foundational python library for computer vision research.
Python
1
star