composer.models.ssd.utils#

SSD 300 utils adapted from MLCommons.

Based on MLCommons Reference Implementation here

Functions

dboxes300_coco

composer.models.ssd.utils.dboxes300_coco

Classes

Encoder

Inspired by https://github.com/kuangliu/pytorch-ssd Transform between (bboxes, lables) <-> SSD output.

SSDTransformer

SSD Data Augumentation, according to original paper Composed by several steps:

class composer.models.ssd.utils.Encoder(dboxes)[source]#

Inspired by https://github.com/kuangliu/pytorch-ssd Transform between (bboxes, lables) <-> SSD output.

dboxes: default boxes in size 8732 x 4,

encoder: input ltrb format, output xywh format decoder: input xywh format, output ltrb format

encode:

input : bboxes_in (Tensor nboxes x 4), labels_in (Tensor nboxes) output : bboxes_out (Tensor 8732 x 4), labels_out (Tensor 8732) criteria : IoU threshold of bboexes

decode:

input : bboxes_in (Tensor 8732 x 4), scores_in (Tensor 8732 x nitems) output : bboxes_out (Tensor nboxes x 4), labels_out (Tensor nboxes) criteria : IoU threshold of bboexes max_output : maximum number of output bboxes

scale_back_batch(bboxes_in, scores_in)[source]#

Do scale and transform from xywh to ltrb suppose input Nx4xnum_bbox Nxlabel_numxnum_bbox.

class composer.models.ssd.utils.SSDCropping(num_cropping_iterations=1)[source]#

Cropping for SSD, according to original paper Choose between following 3 conditions:

  1. Preserve the original image

  2. Random crop minimum IoU is among 0.1, 0.3, 0.5, 0.7, 0.9

  3. Random crop

Reference to https://github.com/chauhan-utk/ssd.DomainAdaptation

class composer.models.ssd.utils.SSDTransformer(dboxes, size=(300, 300), val=False, num_cropping_iterations=1)[source]#

SSD Data Augumentation, according to original paper Composed by several steps:

Cropping Resize Flipping Jittering

composer.models.ssd.utils.calc_iou_tensor(box1, box2)[source]#

Calculation of IoU based on two boxes tensor, Reference to https://github.com/kuangliu/pytorch-ssd.