Keras SSD v0.6.0
·
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
DecodeDetectionslayer type that corresponds to theDetectionOutputlayer 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 versionDecodeDetections2has 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 aDecodeDetectionslayer 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_kpredictions 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 aDecodeDetections2layer 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
DecodeDetectionslayer type, the API of all model builder functions has changed to include a newmodeparameter andconfidence_thresh,iou_threshold,top_k, andnms_max_output_sizeparameters, all of which assume default values.modedefaults totraining, in which case the resulting model is the same as before, so this is not a breaking change.modecan also be set toinferenceorinference_fastupon creation of the model though, in which case the resulting model has theDecodeDetectionsorDecodeDetections2layer as its last layer.
Known Issues
None