Skip to content

Releases: pierluigiferrari/ssd_keras

Keras SSD v0.9.0

06 May 16:47
Compare
Choose a tag to compare

Release 0.9.0

Breaking Changes

  • None

Major Features and Improvements

  • Added a new, flexible Evaluator class that computes average precision scores. Among other things, it can compute average precisions according to both the Pascal VOC pre-2010 and post-2010 algorithms.
  • Added two new features to DataGenerator:
    1. Convert the dataset into an HDF5 file: This stores the images of a dataset as uncompressed arrays in a contiguous block of memory within an HDF5 file, which requires a lot of disk space but reduces the image loading times during the batch generation.
    2. Load the entire dataset into memory: This loads all images of a dataset into memory, thereby eliminating image loading times altogether. Requires enough memory to hold the entire dataset.

For several minor other improvements please refer to the commits since the last release (v0.8.0).

Bug Fixes and Other Changes

  • Fixed a bug in DataGenerator.parse_xml(): Before the fix there were cases in which the XML parser would parse the wrong bounding boxes for some objects. The only known situation in which this bug occurred is for the 'person' class of the Pascal VOC datasets, where the ground truth provides not only a bounding box for the person itself, but also additional bounding boxes for various body parts such. Depending on the order of these ground truth boxes within the XML files, the parser would sometimes parse the bounding box of a body part instead of the bounding box of the person. The parser now loads the correct bounding boxes in these cases.
  • Provided a better training/validation split for the Udacity traffic dataset. The new split is much more balanced than the old one.

API Changes

  • None

Known Issues

  • None

Keras SSD v0.8.0

19 Apr 23:18
Compare
Choose a tag to compare

Release 0.8.0

Breaking Changes

  • None

Major Features and Improvements

  • Improved the matching algorithm. While the previous version had a few flaws, the new version is identical to the matching in the original Caffe implementation. Training a model with this new version reproduces the mAP results of the original Caffe SSD models exactly.
  • Added two new data augmentation chains: One for variable-size input images that produces effects similar to the original SSD data augmentation chain, but is a lot faster, and a second one for bird's eye-view datasets.

API Changes

  • None

Known Issues

  • None

Keras SSD v0.7.0

26 Mar 00:24
Compare
Choose a tag to compare

Release 0.7.0

Breaking Changes

  • Introduced a new data generator.

Major Features and Improvements

  • Introduced a new data generator that has several advantages over the old data generator:
    • It can replicate the data augmentation pipeline of the original Caffe SSD implementation.
    • It's very flexible: Image transformations are no longer hard-coded into the generator itself. Instead, the generator takes a list of transformation objects that it applies to the data. This allows you to realize arbitrary image processing chains. In particular, you can now put transformations in any order or even have multiple parallel transformation chains from which one chain is randomly chosen. The generator comes with a number of useful image transformation classes that can be used out of the box. Among them are most common photometric and geometric transformations, and, in particular, many useful patch sampling transformations.

API Changes

The API of the new data generator is not compatible with the old data generator.

Known Issues

None

Keras SSD v0.6.0

05 Mar 15:41
Compare
Choose a tag to compare

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

Keras SSD v0.5.0

04 Mar 17:17
Compare
Choose a tag to compare

Release 0.5.0

Breaking Changes

None

Major Features and Improvements

  • Ports of the weights of all trained original models
  • Evaluation results on Pascal VOC
  • Tools for evaluation on Pascal VOC and MS COCO
  • Tutorials for training, inference, evaluation, and weight sub-sampling

Bug Fixes and Other Changes

  • Fixed random sampling in the weight sub-sampling procedure

API Changes

None

Known Issues

None