All Projects → HymEric → Vsr Duf Reimplement

HymEric / Vsr Duf Reimplement

Licence: apache-2.0
It is a re-implementation of paper named "Deep Video Super-Resolution Network Using Dynamic Upsampling Filters Without Explicit Motion Compensation" called VSR-DUF model. There are both training codes and test codes about VSR-DUF based tensorflow.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Vsr Duf Reimplement

Ilo
Official implementation: Intermediate Layer Optimization for Inverse Problems using Deep Generative Models
Stars: ✭ 71 (-29.7%)
Mutual labels:  super-resolution
Cfsrcnn
Coarse-to-Fine CNN for Image Super-Resolution (IEEE Transactions on Multimedia,2020)
Stars: ✭ 84 (-16.83%)
Mutual labels:  super-resolution
Super Resolution Videos
Applying SRGAN technique implemented in https://github.com/zsdonghao/SRGAN on videos to super resolve them.
Stars: ✭ 91 (-9.9%)
Mutual labels:  super-resolution
Torch Srgan
torch implementation of srgan
Stars: ✭ 76 (-24.75%)
Mutual labels:  super-resolution
Ashpy
TensorFlow 2.0 library for distributed training, evaluation, model selection, and fast prototyping.
Stars: ✭ 82 (-18.81%)
Mutual labels:  training
Trainingdays
Azure Developer College's application development training days content.
Stars: ✭ 86 (-14.85%)
Mutual labels:  training
Electron
This is the repository for my course, Electron: Building Cross Platform Desktop Apps on LinkedIn Learning and Lynda.com.
Stars: ✭ 69 (-31.68%)
Mutual labels:  training
3d Gan Superresolution
3D super-resolution using Generative Adversarial Networks
Stars: ✭ 97 (-3.96%)
Mutual labels:  super-resolution
Yolo resnet
Implementing YOLO using ResNet as the feature extraction network
Stars: ✭ 82 (-18.81%)
Mutual labels:  training
Awesome Computer Vision
Awesome Resources for Advanced Computer Vision Topics
Stars: ✭ 92 (-8.91%)
Mutual labels:  super-resolution
Facegrab
A tool to collect public images from Facebook and create an image dataset for training computer vision applications like gender recognition, and face detection
Stars: ✭ 76 (-24.75%)
Mutual labels:  training
Seranet
Super Resolution of picture images using deep learning
Stars: ✭ 79 (-21.78%)
Mutual labels:  super-resolution
Excelcy
Excel Integration with spaCy. Training NER using Excel/XLSX from PDF, DOCX, PPT, PNG or JPG.
Stars: ✭ 89 (-11.88%)
Mutual labels:  training
Go Collection
🌷 awesome awesome go, study golang from basic to proficient
Stars: ✭ 1,193 (+1081.19%)
Mutual labels:  training
Latest Development Of Isr Vsr
Latest development of ISR/VSR. Papers and related resources, mainly state-of-the-art and novel works in ICCV, ECCV and CVPR about image super-resolution and video super-resolution.
Stars: ✭ 93 (-7.92%)
Mutual labels:  super-resolution
Scn matlab
Matlab reimplementation of SCNSR
Stars: ✭ 70 (-30.69%)
Mutual labels:  super-resolution
Pytoflow
The py version of toflow → https://github.com/anchen1011/toflow
Stars: ✭ 83 (-17.82%)
Mutual labels:  super-resolution
Hackerone Lessons
Transcribed video lessons of HackerOne to pdf's
Stars: ✭ 101 (+0%)
Mutual labels:  training
Diycode
A third-party Android client of DiyCode.
Stars: ✭ 94 (-6.93%)
Mutual labels:  training
H4cker
This repository is primarily maintained by Omar Santos and includes thousands of resources related to ethical hacking / penetration testing, digital forensics and incident response (DFIR), vulnerability research, exploit development, reverse engineering, and more.
Stars: ✭ 10,451 (+10247.52%)
Mutual labels:  training

Introdction

It is a re-implementation of paper named "Deep Video Super-Resolution Network Using Dynamic Upsampling Filters Without Explicit Motion Compensation" called VSR-DUF model. There are both training codes and test codes about VSR-DUF based tensorflow.

If you are interested in Image Super-rerolution(ISR) or Video Super-resolution(VSR), you maybe know there is paper author github: https://github.com/yhjo09/VSR-DUF/ about VSR-DUF, but it's only can be tested with your Low-resolution frames and can't be trained. Therefor, I try to re-implement this paper based above github repository. I hope this will be helpful for you.

If you think it is useful, please star it. Thank you.

Note

If your environment is different with mine,you might encounter the error of large image size e.g. 480x270 in reference stage where the output has a black-border (0 value border). Unfortunately, I still havn't find the solution to address it. But this is a simple way to handle it by dividing the matrix before tf.matmul in DynFilter3D function in utils.py. Thanks to beichengding for his observation and solution.

def DynFilter3D(x, F, filter_size):
    '''
    3D Dynamic filtering
    input x: (b, t, h, w)
          F: (b, h, w, tower_depth, output_depth)
          filter_shape (ft, fh, fw)
    '''
    # make tower
    filter_localexpand_np = np.reshape(np.eye(np.prod(filter_size), np.prod(filter_size)), (filter_size[1], filter_size[2], filter_size[0], np.prod(filter_size)))
    filter_localexpand = tf.Variable(filter_localexpand_np, trainable=False, dtype='float32',name='filter_localexpand') 
    x = tf.transpose(x, perm=[0,2,3,1])   # [  1, 270, 480,  1] -> [  1, 270, 480,  1] 
    x_localexpand = tf.nn.conv2d(x, filter_localexpand, [1,1,1,1], 'SAME') # b, h, w, 1*5*5   result([  1, 270, 480,  25])
    x_localexpand = tf.expand_dims(x_localexpand, axis=3)  # b, h, w, 1, 1*5*5

    ##########   modification  ##############
    #   divide the large matrix into two small matrixs before tf.matmul operation

    num = 240                                        # e.g. num=240 free to change
    xl = x_localexpand[:,:,:num,:,:]                 #  left
    xr = x_localexpand[:,:,num:,:,:]                 #  right
    fl = F[:,:,:num,:,:]                             #  left
    fr = F[:,:,num:,:,:]                             #  right
    outl = tf.matmul(xl, fl) 
    outr = tf.matmul(xr, fr) 
    out = tf.concat([outl, outr], axis = 2)          #  cancat

    ##########   modification  ##############
    out = tf.squeeze(out, axis=3) # b, h, w, R*R

    return out

Environments

TensorFlow:1.8.0
pillow:5.3.0
numpy:1.15.4

Data-preparation

The directory tree

The data tree

Data folder

Low-resolution:
./data/x_train_data4x/: The scaled frames by 4x which will be used in train stage
./data/x_valid_data4x/: The scaled frames by 4x which will be used in valid stage
./data/x_test_data4x/: The scaled frames by 4x which will be used in test stage

Original-resolution:
./data/y_train_data/: The HR frames which will be used in train stage coresponde to ./data/x_train_data4x/
./data/y_valid_data/: The HR frames which will be used in valid stage coresponde to ./data/x_valid_data4x/

Another folders

Results of output:
./result_test/: The output frames after VSR-DUF processing

./checkpoint/: save ckpt
./model/: save pb model
./logs/: save graph and variables

Attention

Before run train and test, your should prepare your datasets and check your environments if you want to run it successfully.
Please, remind that the performence will be determined by your selected training datasets. Good training datasets good performence!
Recommend: try to use public video dataset like http://toflow.csail.mit.edu, even though the performance may not be exactly the same as in the paper

And when you are runing mytest.py, you maybe need to modify it as you need to choose a trined .pb model to test.

Run

Training: python mytrain.py
Testing: python mytest.py

If you want to improve it or change something according your requirements, just feel free to modify it!

Other:

This is another repository about ISR/VSR Latest-development-of-ISR-VSR., it's updating with the conference...

Author

EricHym (Yongming He)
Interests: CV and Deep Learning
If you have or find any problems, this is my email: [email protected]. And I'm glad to reply it. Thanks.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].