Does the current SSDAnchorGenerator plugin support assymentric (different width height) feature maps ?
I’ve been experimenting with different sizes and only symmetric ones give correct results.
To further explain,
I’ve created my own prior box plugin parser
PriorBox = gs.create_node(
"PriorBox",
numLayers=6,
minScale=0.1,
maxScale=0.9,
aspectRatios=[1.0, 2.0, 0.5, 3.0, 0.33],
layerVariances=[0.1, 0.1, 0.2, 0.2],
featureMapShapesWidth=[240, 120, 60, 30, 15, 7],
featureMapShapesHeight=[135, 68, 34, 17, 9, 4])
When the width matches the height feature map (for the correct sized frozen_inference_graph) i get the correct results, when they dont i the result x0 and x1 saturated to 1.
If this is an open bug with the SSDAnchorGenerator it would be great to know so i don’t spend any more time here.
I have noticed the exact same problem with the plugin, if I use the same width and height as input dimensions everything works as expected, but as soon as I try other resolutions (e.g. 1920x1080) I get strange/wrong coordinate outputs. If someone could shed some light on this would be great.
To be more specific i created a custom parser following the ssd example to parse assymetric feature maps so i can input resolutions of 1920x1080. The feature maps sizes are correct and verified by tensorboard and the engine is created.
PriorBox = gs.create_node(
"PriorBox",
numLayers=6,
minScale=0.1,
maxScale=0.9,
aspectRatios=[1.0, 2.0, 0.5, 3.0, 0.33],
layerVariances=[0.1, 0.1, 0.2, 0.2],
featureMapShapesWidth=[240, 120, 60, 30, 15, 7],
featureMapShapesHeight=[135, 68, 34, 17, 9, 4])
However the results whenever i have assymetric maps like above they are always wrong.
The API seems to be able to handle different width/height
//!
//! \brief The Anchor Generator plugin layer generates the prior boxes of designated sizes and aspect ratios across all dimensions @f$ (H \times W) @f$.
//! GridAnchorParameters defines a set of parameters for creating the plugin layer for all feature maps.
//! It contains:
//! \param minScale Scale of anchors corresponding to finest resolution.
//! \param maxScale Scale of anchors corresponding to coarsest resolution.
//! \param aspectRatios List of aspect ratios to place on each grid point.
//! \param numAspectRatios Number of elements in aspectRatios.
//! \param H Height of feature map to generate anchors for.
//! \param W Width of feature map to generate anchors for.
//! \param variance Variance for adjusting the prior boxes.
//!
struct GridAnchorParameters
{
float minSize, maxSize;
float *aspectRatios;
int numAspectRatios, H, W;
float variance[4];
};
the code examples only use the same H,W for feature maps, I’m wondering if this is a bug width SSDAnchorGeneratorPlugin ?