mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 08:13:04 +04:00
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
This commit is contained in:
@@ -617,8 +617,13 @@ public:
|
||||
}
|
||||
}
|
||||
// Keep outputs k results per image.
|
||||
std::sort(scoreIndexPairs.begin(), scoreIndexPairs.end(),
|
||||
util::SortScorePairDescend<std::pair<int, int> >);
|
||||
if ((_keepTopK * 8) > scoreIndexPairs.size()) {
|
||||
std::sort(scoreIndexPairs.begin(), scoreIndexPairs.end(),
|
||||
util::SortScorePairDescend<std::pair<int, int> >);
|
||||
} else {
|
||||
std::partial_sort(scoreIndexPairs.begin(), scoreIndexPairs.begin() + _keepTopK, scoreIndexPairs.end(),
|
||||
util::SortScorePairDescend<std::pair<int, int> >);
|
||||
}
|
||||
scoreIndexPairs.resize(_keepTopK);
|
||||
|
||||
std::map<int, std::vector<int> > newIndices;
|
||||
@@ -853,16 +858,16 @@ public:
|
||||
for (int i = 0; i < num; ++i, locData += numPredsPerClass * numLocClasses * 4)
|
||||
{
|
||||
LabelBBox& labelBBox = locPreds[i];
|
||||
int start = shareLocation ? -1 : 0;
|
||||
for (int c = 0; c < numLocClasses; ++c) {
|
||||
labelBBox[start++].resize(numPredsPerClass);
|
||||
}
|
||||
for (int p = 0; p < numPredsPerClass; ++p)
|
||||
{
|
||||
int startIdx = p * numLocClasses * 4;
|
||||
for (int c = 0; c < numLocClasses; ++c)
|
||||
{
|
||||
int label = shareLocation ? -1 : c;
|
||||
if (labelBBox.find(label) == labelBBox.end())
|
||||
{
|
||||
labelBBox[label].resize(numPredsPerClass);
|
||||
}
|
||||
util::NormalizedBBox& bbox = labelBBox[label][p];
|
||||
if (locPredTransposed)
|
||||
{
|
||||
|
||||
@@ -292,7 +292,8 @@ public:
|
||||
|
||||
CV_Assert(imInfo.total() >= 2);
|
||||
// We've chosen the smallest data type because we need just a shape from it.
|
||||
fakeImageBlob.create(shape(1, 1, imInfo.at<float>(0), imInfo.at<float>(1)), CV_8UC1);
|
||||
// We don't allocate memory but just need the shape is correct.
|
||||
Mat fakeImageBlob(shape(1, 1, imInfo.at<float>(0), imInfo.at<float>(1)), CV_8UC1, NULL);
|
||||
|
||||
// Generate prior boxes.
|
||||
std::vector<Mat> layerInputs(2), layerOutputs(1, priorBoxes);
|
||||
@@ -433,7 +434,6 @@ private:
|
||||
Ptr<PermuteLayer> deltasPermute;
|
||||
Ptr<PermuteLayer> scoresPermute;
|
||||
uint32_t keepTopBeforeNMS, keepTopAfterNMS, featStride, baseSize;
|
||||
Mat fakeImageBlob;
|
||||
float nmsThreshold;
|
||||
DictValue ratios, scales;
|
||||
#ifdef HAVE_OPENCL
|
||||
|
||||
Reference in New Issue
Block a user