Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

detectMultiScale with outputRejectLevels true doesn't return anything?

with min_neighbours to 2 and output reject levels to true the detectMultiScale doesn't seem to return any faces. Left it running for 20 min and it never finished.

However, if I change min_neighbours to 0 then it will return a crazy amount of faces, I let it run till 150000 but I stopped it at that point.

I read only that a bug was found relating to this? Not sure if it got fixed or if I'm doing something wrong? I have the latest opencv source compiled 3.1.

On a slightly separate note, the reason for me wanting to use the override is so that I can try and find the best image out of multiple images.

detectMultiScale with outputRejectLevels true doesn't return anything?

with min_neighbours to 2 and output reject levels to true the detectMultiScale doesn't seem to return any faces. Left it running for 20 min and it never finished.

However, if I change min_neighbours to 0 then it will return a crazy amount of faces, I let it run till 150000 but I stopped it at that point.

I read only that a bug was found relating to this? Not sure if it got fixed or if I'm doing something wrong? I have the latest opencv source compiled 3.1.

On a slightly separate note, the reason for me wanting to use the override is so that I can try and find the best image out of multiple images.

Extra Details: Windows 10 x64 Opencv 3.1 x64 dlls.

detectMultiScale with outputRejectLevels true doesn't return anything?

with min_neighbours to 2 and output reject levels to true the detectMultiScale doesn't seem to return any faces. Left it running for 20 min and it never finished.

However, if I change min_neighbours to 0 then it will return a crazy amount of faces, I let it run till 150000 but I stopped it at that point.

I read only that a bug was found relating to this? Not sure if it got fixed or if I'm doing something wrong? I have the latest opencv source compiled 3.1.

On a slightly separate note, the reason for me wanting to use the override is so that I can try and find the best image out of multiple images.

Extra Details: Details:

Windows 10 x64 x64

Opencv 3.1 x64 dlls.

detectMultiScale with outputRejectLevels true doesn't return anything?

with min_neighbours to 2 and output reject levels to true the detectMultiScale doesn't seem to return any faces. Left it running for 20 min and it never finished.

However, if I change min_neighbours to 0 then it will return a crazy amount of faces, I let it run till 150000 but I stopped it at that point.

I read only that a bug was found relating to this? Not sure if it got fixed or if I'm doing something wrong? I have the latest opencv source compiled 3.1.

On a slightly separate note, the reason for me wanting to use the override is so that I can try and find the best image out of multiple images.

Extra Details:

Windows 10 x64

Opencv 3.1 x64 dlls.

Preview of the code.

const double scale_factor = 1.1;
const int min_neighbours = 2;
const int flags = CV_HAAR_FIND_BIGGEST_OBJECT | CV_HAAR_DO_CANNY_PRUNING | CV_HAAR_SCALE_IMAGE;
const Size min_size = Size(48, 48);
const Size max_size = Size();
std::vector<int> rejectLevels;
std::vector<double> levelWeights;
bool outputRejectLevels = true;
cv::Mat crop;
cv::Mat res;
cv::Mat largestFile;
if (cascade.empty() || image.empty()) {
    return Rect();
}

std::vector<Rect> faces;
cascade.detectMultiScale(image, faces, scale_factor, min_neighbours, flags, min_size, max_size);
//cascade.detectMultiScale(image, faces, rejectLevels, levelWeights, scale_factor, min_neighbours, flags, min_size, max_size, outputRejectLevels);

detectMultiScale with outputRejectLevels true doesn't return anything?

with min_neighbours to 2 and output reject levels to true the detectMultiScale doesn't seem to return any faces. Left it running for 20 min and it never finished.

However, if I change min_neighbours to 0 then it will return a crazy amount of faces, I let it run till 150000 but I stopped it at that point.

I read only that a bug was found relating to this? Not sure if it got fixed or if I'm doing something wrong? I have the latest opencv source compiled 3.1.

On a slightly separate note, the reason for me wanting to use the override is so that I can try and find the best image out of multiple images.

Extra Details:

Windows 10 x64

Opencv 3.1 x64 dlls.

Preview of the code.

const double scale_factor = 1.1;
const int min_neighbours = 2;
const int flags = CV_HAAR_FIND_BIGGEST_OBJECT | CV_HAAR_DO_CANNY_PRUNING | CV_HAAR_SCALE_IMAGE;
const Size min_size = Size(48, 48);
const Size max_size = Size();
std::vector<int> rejectLevels;
std::vector<double> levelWeights;
bool outputRejectLevels = true;
cv::Mat crop;
cv::Mat res;
cv::Mat largestFile;
if (cascade.empty() || image.empty()) {
    return Rect();
}

std::vector<Rect> faces;
cascade.detectMultiScale(image,     //old working code, no commented out
//cascade.detectMultiScale(image, faces, scale_factor, min_neighbours, flags, min_size, max_size);
//cascade.detectMultiScale(image, //current attempt at getting weights and reject levels. 
    cascade.detectMultiScale(image, faces, rejectLevels, levelWeights, scale_factor, min_neighbours, flags, min_size, max_size, outputRejectLevels);

detectMultiScale with outputRejectLevels true doesn't return anything?

with min_neighbours to 2 and output reject levels to true the detectMultiScale doesn't seem to return any faces. Left it running for 20 min and it never finished.

However, if I change min_neighbours to 0 then it will return a crazy amount of faces, I let it run till 150000 but I stopped it at that point.

I read only that a bug was found relating to this? Not sure if it got fixed or if I'm doing something wrong? I have the latest opencv source compiled 3.1.

On a slightly separate note, the reason for me wanting to use the override is so that I can try and find the best image out of multiple images.

Extra Details:

Windows 10 x64

Opencv 3.1 x64 dlls.

Preview of the code.

const double scale_factor = 1.1;
const int min_neighbours = 2;
const int flags = CV_HAAR_FIND_BIGGEST_OBJECT | CV_HAAR_DO_CANNY_PRUNING | CV_HAAR_SCALE_IMAGE;
const Size min_size = Size(48, 48);
const Size max_size = Size();
std::vector<int> rejectLevels;
std::vector<double> levelWeights;
bool outputRejectLevels = true;
cv::Mat crop;
cv::Mat res;
cv::Mat largestFile;
if (cascade.empty() || image.empty()) {
    return Rect();
}

std::vector<Rect> faces;
    //old working code, no now commented out
//cascade.detectMultiScale(image, faces, scale_factor, min_neighbours, flags, min_size, max_size);
//current attempt at getting weights and reject levels. 
    cascade.detectMultiScale(image, faces, rejectLevels, levelWeights, scale_factor, min_neighbours, flags, min_size, max_size, outputRejectLevels);