Keras SSD v0.6.0
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 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