Skip to content

Multi Class Object Detector

Multi Class Object Detector is used when you want to detect and identify multiple classes of objects in one or more images.

Multi-class Object Detection (Source)

In Xailient Console, you can train two popular multi-class object detectors:

  1. SSD
  2. YOLO

To train a multi-class object detector with SSD architecture, you can either use the default training setting or define your own.

The training configuration file gives you full control of the hyperparameters for the trainng.

These are the settings you can modify:

  • batch_size: The batch size is a number of samples processed before the model is updated. The size of a batch must be more than or equal to one and less than or equal to the number of samples in the training dataset.

  • epochs: The number of epochs is the number of complete passes through the training dataset. The number of epochs can be set to an integer value between one and infinity.

  • augment_multiplier: You can use this setting to augment your training data. 1 means add 1x to the dataset (double it). 2 means add 2x (triple it).

We recommend keeping all the other setting to default.

SSD

Here is a sample configuration for the SSD architeture.

data:
  reshape_dim: 300
  tile_dim: 300

train:
  model_arch: 'MobileNetV2SSD'
  batch_size: 32
  epochs: 200
  augment_multiplier: 0 # 1 means add 1x to the dataset (double it). 2 means add 2x (triple it).
  classes: 'all'
  encoding_iou_threshold: 0.5  # The IoU that will be used to match ground truth to priors when encoding
  min_area: 0
  # one of the aspect ratios has to be 1, the aspect ratios determine how many
  # anchor boxes will be generated for each location on every prediction feature map
  aspect_ratios: [1.0, 2.0, 0.5, 3.0, 0.3]  # The aspect ratios implemented in the original SSD paper.
  l2_regularization: 1.0e-3

loss:
  neg_pos_ratio: 3  # Used for hard negative mining. Ratio of negatives to positives.
  alpha: 1.0  # Used as a factor to multiply localization loss by in multi-box loss.

optimizer:
  name: 'Adam'
  params:
    lr: 1.0e-3

inference:
  probability_threshold: 0.1
  nms_max_iou: 0.45

YOLO

Here is a sample configuration for the YOLO architeture.

train:
  batch_size: 64
  epochs: 12
  generate_anchor: false