Pure C++ implementation of SRCNN (Super-Resolution Convolutional Neural Network)
We provide two ways to build this project: CMake and QMake
If you just want to build the program and quickly test it, type these:
$ mkdir build && cd build && cmake .. && make && cd ..
$ SRCNN_cpp <input image path>
If you want much faster speed with OpenMP, follow these steps:
- Set
i_want_openmp
fromOFF
toON
inCMakeLists.txt
. - Follow the usual CMake building steps then run it.
Just run the SRCNN-cpp.pro
. Also, the OpenMP option in QMake is set to ON by default.
This implementation uses 9-5-5 architecture.
- 9-5-5 means f1 = 9, f2 = 5, f3 = 5.
- You can see the explanation in Section 4.3.2 in SRCNN paper.
-
im2col
- validate convolution using this image
- padding feature
- The weight format is CHWN. For more information, download the author's
training code here.
- The weight format conversion and storing code is in
saveFilters.m
.
- The weight format conversion and storing code is in