Classification layer for region proposal networks (RPNs)


A region proposal network (RPN) classification layer classifies image regions as either object or background by using a cross entropy loss function. Use this layer to create a Faster R-CNN object detection network.



layer = rpnClassificationLayer
layer = rpnClassificationLayer('Name',Name)


layer = rpnClassificationLayer creates a two-class classification layer for a Faster R-CNN object detection network.


layer = rpnClassificationLayer('Name',Name) creates a two-class classification layer and sets the optional Name property.


expand all

Layer name, specified as a character vector or a string scalar. 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.

Data Types: char | string

Number of inputs of the layer. This layer accepts a single input only.

Data Types: double

Input names of the layer. This layer accepts a single input only.

Data Types: cell


collapse all

Create an RPN softmax layer with the name 'rpn_softmax'.

rpnSoftmax = rpnSoftmaxLayer('Name','rpn_softmax')
rpnSoftmax = 
  RPNSoftmaxLayer with properties:

    Name: 'rpn_softmax'

Create an RPN classification layer with the name 'rpn_cls'.

rpnClassification = rpnClassificationLayer('Name','rpn_cls')
rpnClassification = 
  RPNClassificationLayer with properties:

    Name: 'rpn_cls'

Add the RPN softmax and RPN classification layers to a Layer array, to form the classification branch of an RPN.

numAnchors = 3;
rpnClassLayers = [
rpnClassLayers = 
  3x1 Layer array with layers:

     1   'conv1x1_box_cls'   Convolution                 6 1x1 convolutions with stride [1  1] and padding [0  0  0  0]
     2   'rpn_softmax'       RPN Softmax                 rpn softmax
     3   'rpn_cls'           RPN Classification Output   cross-entropy loss with 'object' and 'background' classes

Introduced in R2018b