EVDI - Unifying Motion Deblurring and Frame Interpolation with Events训练自己的数据集

Environment setup 环境部分
Python 3.7
Pytorch 1.4.0
opencv-python 3.4.2
NVIDIA GPU + CUDA
numpy, argparse

配置基本环境:

conda create -n evdi python=3.7
conda activate evdi
git clone git@github.com:XiangZ-0/EVDI.git
cd EVDI
pip install -r requirements.txt
cd codes

测试部分(运用给的数据集和模型测试):
Test on GoPro data

python Test.py --test_ts=0.5 --model_path=./PreTrained/EVDI-GoPro.pth --test_path=./Database/GoPro/ --save_path=./Result/EVDI-GoPro/ 

Test on HQF data

python Test.py --test_ts=0.5 --model_path=./PreTrained/EVDI-HQF.pth --test_path=./Database/HQF/ --save_path=./Result/EVDI-HQF/ 

Test on RBE data

python Test.py --test_ts=0.5 --model_path=./PreTrained/EVDI-RBE.pth --test_path=./Database/RBE/ --save_path=./Result/EVDI-RBE/

Main Parameters:

--test_ts : reconstruction timestamp, normalized in [0,1].
--model_path : path of pretrained model.
--test_path : path of test dataset.
--save_path : path of reconstruction results.

Train(训练自己的数据集):
数据集结构

<project root>
  |-- Database
  |     |-- Raw
  |     |     |-- Events.txt
  |     |     |-- Exposure_start.txt
  |     |     |-- Exposure_end.txt
  |     |     |-- Blur
  |     |     |     |-- 000000.png
  |     |     |     |-- 000001.png
  |     |     |     |-- ...

其中
Events.txt contains event data in (t,x,y,p) format with t in ns and p in {-1, 1}.
Exposure_start.txt contains the start timestamp of each blurry image in ns.
Exposure_end.txt contains the end timestamp of each blurry image in ns.

数据准备部分(数据一定要是统一大小的,而且记得更改代码中对应的两处数据集大小的位置):

python Prepare_data.py --input_path=./Database/Raw/ --save_path=./Database/train/

训练

python Train.py

Main Parameters:

--model_path : model save path.
--train_path : path of train datasets.
--num_epoch : number of epoch.
--loss_wei : weights for loss functions [blur-sharp, blur-event, sharp-event].
--num_frames : the number of reconstructions per input, i.e., 'N' in paper (recommended N>= 25).
--bs : batch size.
--lr : initial learning rate.

遇到问题:
1、用自己的数据集制作成需要的形式,但是有assert的错误,之前找不到原因就直接注释掉了,结果训练的时候一直warning,报错,生成的唯一一个模型跑出来图像是全黑的,然后发现5组数据中,有一组数据跟其他的大小不一样,所以直接删掉了那组数据,然后在数据生成部分就没有问题了,训练的时候也没有问题,但是我刚开始设置学习率是1e-8,然后训练了10个epoch,结果图像是纯灰色的……

训练自己的数据集:

## parameters
    parser = argparse.ArgumentParser(description="Train EVDI")
    parser.add_argument("--model_path", type=str, default="./PreTrained/mine/", help="model saving path")
    parser.add_argument("--temp_path", type=str, default="./TempRes/EVDI/", help="path to save temporal result")
    parser.add_argument("--save_int", type=int, default=50, help="epoch interval for saving temporal reconstruction result")
    parser.add_argument("--train_path", type=list, default=["E:/Packed/00001/0001/"], help="path of training datasets")
    parser.add_argument("--conTrain", type=int, default=0, help="continue training (1) or not (0)")
    parser.add_argument("--conTrain_path", type=str, default="./PreTrained/EVDI-GoPro.pth", help="path to load model")
    parser.add_argument("--num_epoch", type=int, default=100, help="number of epoch")
    parser.add_argument("--loss_wei", type=list, default=[1,256,1e-1], help="weights for loss functions: [blur-sharp, blur-event, sharp-event]")
    parser.add_argument("--num_frames", type=int, default=49, help="recover how many frames per input, i.e., 'N' in paper.\
                        We observe that higher N leads to better performance but will need more training time (recommended N>=25). ")
    parser.add_argument("--bs", type=int, default=1, help="batch size")
    parser.add_argument("--lr", type=float, default=1e-3, help="learning rate")

测试:

 ## parameters
    parser = argparse.ArgumentParser(description="Test EVDI")
    parser.add_argument("--model_path", type=str, default="./PreTrained/mine/epoch_0001.pth", help="path of pretrained model")
    parser.add_argument("--test_path", type=str, default=["E:/Packed/00001/0002/"], help="path of test data")
    parser.add_argument("--save_path", type=str, default="./Result/mine/", help="saving path")
    parser.add_argument("--test_ts", type=float, default=0.5, help="test timestamp in [0,1]")
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值