- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
CascadeClassifier::detectMultiScale()
的推荐参数是什么?以及我应该根据哪些因素更改默认参数?
void CascadeClassifier::detectMultiScale(
const Mat& image,
vector<Rect>& objects,
double scaleFactor=1.1,
int minNeighbors=3,
int flags=0,
Size minSize=Size(),
Size maxSize=Size() )
最佳答案
在这些参数中,需要多注意其中的四个:
scaleFactor
– 指定每个图像比例缩小多少图像尺寸的参数。
基本上,比例因子用于创建比例金字塔。更多解释可见here .简而言之,如 here 所述,您的模型在训练期间定义了固定大小,在 xml
中可见。这意味着在图像中检测到这种大小的人脸(如果存在)。但是,通过重新缩放输入图像,您可以将较大的人脸调整为较小的人脸,使其可以被算法检测到。
1.05
是一个很好的可能值,这意味着您使用一小步来调整大小,即将大小减小 5%,您增加了匹配的机会尺寸与检测模型找到。这也意味着该算法工作得更慢,因为它更彻底。您可以将其提高到 1.4 以加快检测速度,但可能会完全丢失一些人脸。
minNeighbors
– 指定每个候选矩形应保留多少个邻居的参数。
此参数会影响检测到的人脸质量。更高的值导致更少的检测,但质量更高。 3~6
物超所值。
minSize
– 最小可能的对象大小。小于该值的对象将被忽略。
这个参数决定了你想要检测的小尺寸。你来决定!通常,[30, 30]
是人脸检测的良好开端。
maxSize
– 最大可能的对象大小。大于此的对象将被忽略。
此参数确定您要检测的大小。再一次,你决定! 通常不需要手动设置,默认值假设你要检测的人脸大小没有上限。
关于c++ - OpenCV detectMultiScale() 参数的推荐值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20801015/
我是 OpenCV 的新手。我正在做一个示例人脸检测器应用程序控制台。我正在使用 haarcascade 从网络摄像头检测人脸。 我做了下一个代码: int main(int, char**) { C
我正在尝试学习 opencv 和对象检测。我在 opencv 示例中使用了 objecdetection.cpp,当我运行它时出现此错误 级联加载非常好,而且相机唯一的问题是 detectmultis
对于演示文稿,我想展示 OpenCV 使用少量命令进行人脸识别的能力。在 detectMultiScale 调用中有一个测试 if( isOldFormatCascade() ) { 对于 OpenC
我是 OpenCV 的新手。从官方文档中拿了一个例子。当我尝试运行代码时,会弹出一个错误。当您尝试运行代码时,调用函数 detectMultiScale () 时会弹出错误 Mat image; im
我正在使用以下函数(成功地)在 iOS 中使用 OpenCV 检测人脸,但根据 Instruments,它似乎每秒泄漏 4-5Mb 的内存。 该函数定期从 processFrame() 调用。 通过消
我正在尝试一个非常简单的程序来检测网络摄像头中的人脸。我注意到当我的脸位于画面中央时,可以很好地检测到人脸。每当我向两侧移动一点时,面部检测器要么完全错过我的脸,要么没有检测到。这种偏见是因为我使用函
我尝试使用教程代码 from opencv tutorials来检测人脸。所有级联都已正确加载,但在调用 之后 faceCascade.detectMultiScale( frame_gray, fa
我目前正在使用 Haar 分类器来检测对象。路上没看懂minNeighbors参数是什么,什么是它代表?其实我不明白检测的邻居是什么候选矩形。请问有人可以定义相邻的想法吗? 最佳答案 Haar 级联分
我用 opencv_traincascade 训练了我的电脑一整天,使用 6000 多张类似于以下的正面图像来检测 2 欧元硬币: 现在,我刚刚尝试运行一个简单的 OpenCV 程序来查看结果并检查文
CascadeClassifier::detectMultiScale() 的推荐参数是什么?以及我应该根据哪些因素更改默认参数? void CascadeClassifier::detectMult
我一直在尝试 openCV 中的 objectDetection.. 遵循了几个步骤.. 将其调整为 64x64 分辨率 将其更改为灰度 获取用于对象检测的 XML 绘制矩形边缘图案 然而,我无法实现
我正在使用 OpenCV 进行人脸、性别和年龄检测。我有一堆图像用于训练模型,基本上我目前有以下内容: Ptr model = cv::face::LBPHFaceRecognizer::create
在 CV2 中,我能够从上传的图像生成人脸。 faces = faceCascade.detectMultiScale( read_img, scaleFactor = 1.1,
我正在使用 OpenCV 和 CascadeClassifier::detectMultiScale用于面部检测。我的问题是它似乎导致输出内存损坏 vector . vector 正确地填充了 Rec
我很确定我的一般主题是正确的,但我没有找到任何面孔。我的代码从 c=cv2.VideoCapture(0) 读取,即计算机的摄像机。然后我进行以下设置以产生面孔所在的位置。如您所见,我正在遍历不同的
所以我试图学习如何使用 OpenCV v3.0 进行面部识别。现在在确认相机可以实际运行并且我的 XML 文件加载之后。我开始逐行取消注释代码,直到在第 64 行发现错误。 face_cascade.
如何使用带有掩码的 OpenCV C++ 函数 CascadeClassifier::detectMultiScale(...)? 我知道,对象只能出现在图像的某些非矩形部分,并且想要节省计算。 最佳
我正在测试 OpenCV 来检测人脸,我想知道如何才能有效地只检测到第一张人脸? 下面的代码适用于多个,但如果我在 faces[0] 上执行 for 循环,应用程序会提示: for (x,y,w,h)
我有以下代码来加载图像并与尝试识别匹配面孔的图像列表进行比较。对 DetectMultiScale 的调用返回大小为 0 的 vector 。 void UniCoffeeShop::Purchase
级联分类器报错: cv2.error: /Users/jenkins/miniconda/1/x64/conda-bld/work/opencv-3.1.0/modules/objdetect/s
我是一名优秀的程序员,十分优秀!