Skip to content

Keras SSD v0.6.0

Compare
Choose a tag to compare
@pierluigiferrari pierluigiferrari released this 05 Mar 15:41
· 166 commits to master since this release

Release 0.6.0

Breaking Changes

  • Changed the repository structure: Modules are now arranged in packages.

Major Features and Improvements

  • Introduced a new DecodeDetections layer type that corresponds to the DetectionOutput layer type of the original Caffe implementation. It performs the decoding and filtering (confidence thresholding, NMS, etc.) of the raw model output and follows the exact procedure of the decode_y() function. The point is to move the computationally expensive decoding and filtering process from the CPU (decode_y()) to the GPU for faster prediction. Along with DecodeDetections, a second version DecodeDetections2 has been added. It follows the exact procedure of decode_y2() and is significantly faster than DecodeDetections, but potentially at the cost of lower prediction accuracy - this has not been tested extensively. The introduction of this new layer type also means that the API of the model builder functions has been expanded: Models can now be built in one of three modes:
    1. training: The default mode. Produces the same models as before, where the model outputs the raw predictions that need to be decoded by decode_y() or decode_y2().
    2. inference: Adds a DecodeDetections layer to the model as its final layer. The resulting model outputs predictions that are already decoded and filtered. However, since tensors are homogeneous in size along all axes, there will always be top_k predictions for each batch item, regardless of how many objects actually are in it, so the output still needs to be confidence-thresholded to remove the dummy entries among the predictions. The inference tutorials show how to do this.
    3. inference_fast: Same as inference, but using a DecodeDetections2 layer as the model's last layer.

Bug Fixes and Other Changes

  • Changed the repository structure: Modules are now arranged in packages.

API Changes

  • With the introduction of the new DecodeDetections layer type, the API of all model builder functions has changed to include a new mode parameter and confidence_thresh, iou_threshold, top_k, and nms_max_output_size parameters, all of which assume default values. mode defaults to training, in which case the resulting model is the same as before, so this is not a breaking change. mode can also be set to inference or inference_fast upon creation of the model though, in which case the resulting model has the DecodeDetections or DecodeDetections2 layer as its last layer.

Known Issues

None