{
_boxWidth = _widths[0] * _scales[0];
_boxHeight = _heights[0] * _scales[0];
+ if (_bboxesNormalized)
+ {
+ _boxWidth *= _imageWidth;
+ _boxHeight *= _imageHeight;
+ }
}
else
_boxWidth = _boxHeight = _minSize * _scales[0];
{
_boxWidth = _widths[i] * _scales[i];
_boxHeight = _heights[i] * _scales[i];
+ if (_bboxesNormalized)
+ {
+ _boxWidth *= _imageWidth;
+ _boxHeight *= _imageHeight;
+ }
for (int j = 0; j < _offsetsX.size(); ++j)
{
float center_x = (w + _offsetsX[j]) * stepX;
layerParams.set("clip", getLayerAttr(layer, "clip").b());
if (hasLayerAttr(layer, "offset"))
layerParams.set("offset", getLayerAttr(layer, "offset").f());
- if (hasLayerAttr(layer, "variance"))
- {
- Mat variance = getTensorContent(getLayerAttr(layer, "variance").tensor());
- layerParams.set("variance",
- DictValue::arrayReal<float*>((float*)variance.data, variance.total()));
- }
- if (hasLayerAttr(layer, "aspect_ratio"))
- {
- Mat aspectRatios = getTensorContent(getLayerAttr(layer, "aspect_ratio").tensor());
- layerParams.set("aspect_ratio",
- DictValue::arrayReal<float*>((float*)aspectRatios.data, aspectRatios.total()));
- }
- if (hasLayerAttr(layer, "scales"))
+
+ const std::string paramNames[] = {"variance", "aspect_ratio", "scales",
+ "width", "height"};
+ for (int i = 0; i < 5; ++i)
{
- Mat scales = getTensorContent(getLayerAttr(layer, "scales").tensor());
- layerParams.set("scales",
- DictValue::arrayReal<float*>((float*)scales.data, scales.total()));
+ if (hasLayerAttr(layer, paramNames[i]))
+ {
+ Mat values = getTensorContent(getLayerAttr(layer, paramNames[i]).tensor());
+ layerParams.set(paramNames[i],
+ DictValue::arrayReal<float*>((float*)values.data, values.total()));
+ }
}
int id = dstNet.addLayer(name, "PriorBox", layerParams);
layer_id[name] = id;