(Not recommended) Create reorganization layer for YOLO v2 object detection network
YOLOv2ReorgLayer function is not recommended. Use
yolov2ReorgLayer function creates a
YOLOv2ReorgLayer object, which represents the reorganization layer for
you look only once version 2 (YOLO v2) object detection network. The reorganization layer
reorganizes the high-resolution feature maps from a lower layer by stacking adjacent features
into different channels. The output of reorganization layer is fed to the depth concatenation
layer. The depth concatenation layer concatenates the reorganized high-resolution features
with the low-resolution features from a higher layer.
creates the reorganization layer for YOLO v2 object detection network. The layer
reorganizes the dimension of the input feature maps according to the step size specified
layer = yolov2ReorgLayer(
stride. For details on creating a YOLO v2 network with
reorganization layer, see Design a YOLO v2 Detection Network with a Reorg Layer.
stride— Step size for traversing input
Step size for traversing the input vertically and horizontally, specified as a
2-element vector of positive integers in form
a is the vertical step size and
b is the
horizontal step size.
layerName— Name of reorganization layer
Name of reorganization layer, specified as a character vector or string scalar.
This input argument sets the
Name property of the layer. If you
do not specify the name, then the function automatically sets
Name— Layer name
''(default) | character vector
Layer name, specified as a character vector. To
include a layer in a layer graph, you must specify a nonempty unique layer name. If
you train a series network with the layer and
Name is set to
'', then the software automatically assigns a name to the layer
at training time.
NumInputs— Number of inputs
Number of inputs of the layer. This layer accepts a single input only.
InputNames— Input names
Input names of the layer. This layer accepts a single input only.
NumOutputs— Number of outputs
Number of outputs of the layer. This layer has a single output only.
OutputNames— Output names
Output names of the layer. This layer has a single output only.
Specify the step size for reorganising the dimension of input feature map.
stride = [2 2];
Create a YOLO v2 reorganization layer with the specified step size and the name as "yolo_Reorg".
layer = yolov2ReorgLayer(stride,'Name','yolo_Reorg');
Inspect the properties of the YOLO v2 reorganization layer.
layer = YOLOv2ReorgLayer with properties: Name: 'yolo_Reorg' Hyperparameters Stride: [2 2]
You can find the desired value of
The reorganization layer improves the performance of the YOLO v2 object detection network by facilitating feature concatenation from different layers. It reorganizes the dimension of a lower layer feature map so that it can be concatenated with the higher layer feature map.
Consider an input feature map of size [H W C], where:
H is the height of the feature map.
W is the width of the feature map.
C is the number of channels.
The reorganization layer chooses feature map values from locations based on
the step sizes in
stride and adds those feature values to the third
dimension C. The size of the reorganized feature map from the
reorganization layer is
[floor(H/stride(1)) floor(W/stride(2)) C×stride(1)×stride(2)].
For feature concatenation, the height and width of the reorganized feature map must match with the height and width of the higher layer feature map.
 Joseph. R, S. K. Divvala, R. B. Girshick, and F. Ali. "You Only Look Once: Unified, Real-Time Object Detection." In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 779–788. Las Vegas, NV: CVPR, 2016.
 Joseph. R and F. Ali. "YOLO 9000: Better, Faster, Stronger." In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 6517–6525. Honolulu, HI: CVPR, 2017.
To generate CUDA® or C++ code by using GPU Coder™, you must first construct and train a deep neural network. Once the network is trained and evaluated, you can configure the code generator to generate code and deploy the convolutional neural network on platforms that use NVIDIA® or ARM® GPU processors. For more information, see Deep Learning with GPU Coder (GPU Coder).
For this layer, you can generate code that takes advantage of the NVIDIA
CUDA deep neural network library (cuDNN), NVIDIA
TensorRT™ high performance inference library, or the ARM
Compute Library for Mali GPU.
This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).