Creates a keras model of the deep back-project network for image super resolution. More information is provided at the authors' website:

createDeepBackProjectionNetworkModel2D(
  inputImageSize,
  numberOfOutputs = 1,
  numberOfBaseFilters = 64,
  numberOfFeatureFilters = 256,
  numberOfBackProjectionStages = 7,
  convolutionKernelSize = c(12, 12),
  strides = c(8, 8),
  lastConvolution = c(3, 3),
  numberOfLossFunctions = 1
)

Arguments

inputImageSize

Used for specifying the input tensor shape. The shape (or dimension) of that tensor is the image dimensions followed by the number of channels (e.g., red, green, and blue).

numberOfOutputs

number of outputs (e.g., 3 for RGB images).

numberOfBaseFilters

number of base filters.

numberOfFeatureFilters

number of feature filters.

numberOfBackProjectionStages

number of up-/down-projection stages. This number includes the final up block.

convolutionKernelSize

kernel size for certain convolutional layers. This and strides are dependent on the scale factor discussed in original paper. Factors used in the original implementation are as follows: 2x --> convolutionKernelSize = c( 6, 6 ), 4x --> convolutionKernelSize = c( 8, 8 ), 8x --> convolutionKernelSize = c( 12, 12 ). We default to 8x parameters.

strides

strides for certain convolutional layers. This and the convolutionKernelSize are dependent on the scale factor discussed in original paper. Factors used in the original implementation are as follows: 2x --> strides = c( 2, 2 ), 4x --> strides = c( 4, 4 ), 8x --> strides = c( 8, 8 ). We default to 8x parameters.

lastConvolution

the kernel size for the last convolutional layer

numberOfLossFunctions

the number of data targets, e.g. 2 for 2 targets

Value

a keras model defining the deep back-projection network.

Details

    \url{https://www.toyota-ti.ac.jp/Lab/Denshi/iim/members/muhammad.haris/projects/DBPN.html}

with the paper available here:

    \url{https://arxiv.org/abs/1803.02735}

This particular implementation was influenced by the following keras (python) implementation:

    \url{https://github.com/rajatkb/DBPN-Keras}

with help from the original author's Caffe and Pytorch implementations:

    \url{https://github.com/alterzero/DBPN-caffe}
    \url{https://github.com/alterzero/DBPN-Pytorch}

Author

Tustison NJ

Examples

model = createDeepBackProjectionNetworkModel2D(c(25, 25, 1))
#> Error in py_discover_config(required_module, use_environment): Python specified in RETICULATE_PYTHON (/Users/ntustison/anaconda3/envs/antsx/bin/python3) does not exist
rm(model); gc()
#> Warning: object 'model' not found
#> used (Mb) gc trigger (Mb) limit (Mb) max used (Mb) #> Ncells 2501655 133.7 4570014 244.1 NA 4570014 244.1 #> Vcells 4404614 33.7 10146329 77.5 65536 6714963 51.3