OpenCV predict() vs detectMultiScale()
OpenCV predict() vs detectMultiScale()
我正在努力使用OpenCV进行一些面部,性别和年龄检测。我有一堆用于训练模型的图像,从本质上讲,我目前有以下内容:
Ptr<cv::face::FaceRecognizer> model = cv::face::LBPHFaceRecognizer::create(9, 9);
std::vector<int> labels;
std::vector<std::string> imageFileNames;
for (int currImageIndex = 0; currImageIndex < imageFileNames.size(); currImageIndex++)
{
cv::Mat currMatrix;
std::string currentFileName = imageFileNames[currImageIndex];
std::string gender;
int currID = -1;
//Save the image and the corresponding ID to the list(s).
currMatrix = imread(currentFileName , CV_LOAD_IMAGE_GRAYSCALE);
if (currMatrix.data != NULL)
{
images.push_back(currMatrix);
labels.push_back(currID);
}
}
model->train(images, labels);
model->write("C:\temp.xml");
然后使用temp.xml
启发式,我预测基因类似:
gendermodel->predict(currMat, predictedLabel, conf);
但是,我使用detectMultiScale()
和A "Cascade Classifier"
遇到了此实现。什么是差异?使用Cascade Classifier
与我当前这样做的方式有性能优势吗?detectMultiScale()
是否工作更好,然后predict()
?
CascadeClassifier::detectMultiScale
函数用于对象检测。它返回一个类型std::vector<cv::Rect>
的变量,该变量包含检测到的对象的边界矩形。
FaceRecognizer::predict
函数用于对象分类。它返回输入图像的类标签和预测对象的信心。
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 数据成员SFINAE的C++17测试:gcc vs clang
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 正在VS调试器中监视映射条目
- Confusion: decltype vs std::function
- 将IBM Rhapsody模型集成到VS 2019中
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 修改 VS Code 中的默认C++代码段
- 如何使用c++在VS 2019上运行SQL查询
- vs 2015 constexpr变量不恒定,但与2019相比还好吗
- 完美前进使用 std::forward vs RefRefCast
- 从VS 2015更新3更新到VS2015更新3 d后浮点计算行为不同的原因
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- consteval wrapper vs. source_location
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- QStringList vs list<shared_ptr<QString>> 性能比较C++
- OpenCV predict() vs detectMultiScale()