Releases: pierluigiferrari/ssd_keras
Releases · pierluigiferrari/ssd_keras
Keras SSD v0.9.0
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
:- 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.
- 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
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
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
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 theDetectionOutput
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 thedecode_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 withDecodeDetections
, a second versionDecodeDetections2
has been added. It follows the exact procedure ofdecode_y2()
and is significantly faster thanDecodeDetections
, 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:training
: The default mode. Produces the same models as before, where the model outputs the raw predictions that need to be decoded bydecode_y()
ordecode_y2()
.inference
: Adds aDecodeDetections
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 betop_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.inference_fast
: Same asinference
, but using aDecodeDetections2
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 newmode
parameter andconfidence_thresh
,iou_threshold
,top_k
, andnms_max_output_size
parameters, all of which assume default values.mode
defaults totraining
, in which case the resulting model is the same as before, so this is not a breaking change.mode
can also be set toinference
orinference_fast
upon creation of the model though, in which case the resulting model has theDecodeDetections
orDecodeDetections2
layer as its last layer.
Known Issues
None
Keras SSD v0.5.0
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