- layerParams.set("kernel_h", kshape[2]);
- layerParams.set("kernel_w", kshape[3]);
- layerParams.set("num_output", kshape[0]);
+ layerParams.set("kernel_h", height);
+ layerParams.set("kernel_w", width);
+ layerParams.set("num_output", outCh);
+
+ // Shuffle output channels from yxYX to xyXY.
+ if (locPredTransposed)
+ {
+ const int slice = height * width * inCh;
+ for (int i = 0; i < outCh; i += 2)
+ {
+ cv::Mat src(1, slice, CV_32F, layerParams.blobs[0].ptr<float>(i));
+ cv::Mat dst(1, slice, CV_32F, layerParams.blobs[0].ptr<float>(i + 1));
+ std::swap_ranges(src.begin<float>(), src.end<float>(), dst.begin<float>());
+ }
+ }