Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我如何知道哪种眼睛检测结果最好_Python_Opencv_Eye Detection - Fatal编程技术网

Python 我如何知道哪种眼睛检测结果最好

Python 我如何知道哪种眼睛检测结果最好,python,opencv,eye-detection,Python,Opencv,Eye Detection,使用HaarDetectObject()函数检测眼睛时,我们会得到如下结果(detectedObjects): [((110, 47, 44, 44), 11), ((27, 45, 54, 54), 31)] [((114, 49, 40, 40), 10), ((28, 50, 47, 47), 17)] [((31, 50, 47, 47), 18), ((106, 47, 44, 44), 3)] [((106, 46, 44, 44), 38), ((29, 53, 45, 45

使用HaarDetectObject()函数检测眼睛时,我们会得到如下结果(detectedObjects):

[((110, 47, 44, 44), 11), ((27, 45, 54, 54), 31)] 
[((114, 49, 40, 40), 10), ((28, 50, 47, 47), 17)] 
[((31, 50, 47, 47), 18), ((106, 47, 44, 44), 3)] 
[((106, 46, 44, 44), 38), ((29, 53, 45, 45), 35), ((18, 30, 74, 74), 4)] 
[((98, 54, 36, 36), 7), ((108, 48, 45, 45), 31), ((26, 52, 49, 49), 49)] 
[((109, 46, 45, 45), 28), ((29, 50, 49, 49), 38)] 
[((109, 46, 44, 44), 29), ((27, 47, 53, 53), 27), ((123, 45, 48, 48), 3)] 
[((108, 46, 44, 44), 35), ((28, 50, 49, 49), 33)] 
[((109, 47, 45, 45), 34), ((28, 53, 47, 47), 35), ((126, 50, 44, 44), 3)] 
[((109, 47, 44, 44), 29), ((29, 47, 51, 51), 39)] 
[((106, 47, 42, 42), 49), ((27, 49, 49, 49), 30)] 
[((31, 54, 42, 42), 13), ((110, 46, 44, 44), 4), ((125, 46, 44, 44), 4), ((27, 35, 66, 66), 6)] 
等等

我所知道的是:

(110,47,44,44),11),这是 x、 y,w,h

x、 y是“眼睛”中检测到的“眼睛”左上角的坐标 w和h是宽度和高度,用于确定检测到的眼睛区域,因此是cvRect格式

如你所见,最后一次检测有4只眼睛——因此我问,我如何知道哪两只是我检测完美的眼睛?我的意思是,看到任何I的眼睛[I][0][0],我们都可以知道眼睛是右还是左。但在这里,我们有两只左眼和两只右眼, 眼睛[0]和眼睛[3]是左边的,眼睛[1]和眼睛[2]是右边的

这是我的问题,如果我只需要得到右眼和左眼的两个检测结果中的一个,我该怎么做

早些时候,我认为eye[i][1]可以用作某种分数。我有一段时间没有上网了,所以我认为是这样。但正如我刚刚发现的,这并不是什么质量分数

在我们的例子中,眼睛[0][1]是13,眼睛[1][1]是4,眼睛[2][1]是4,眼睛[3][1]是6。 我们称之为Q

在其余的检测中,我看到了一个模式,我的其他检测的Q值很高,通常在40-60左右,所以我认为在该范围内的Q值可能表示最佳检测。但正如我之前所说,它不是


那么,我如何确定“眼睛”中的哪个“眼睛”是最好的检测呢?

我想说,您可以使用以前的结果,为每个图像中出现的检测到的眼睛提供更多的分数(假设您正在使用视频)

您还可以使用参数,如眼睛之间的距离,以找到最佳匹配的夫妇。 最后,你还可以做一些更复杂的事情(比如头部/眼睛耦合检测或背景减法)来获得你自己的模式并搜索最佳匹配的眼睛位置


如果该方法给你4只眼睛,你要么在对图像进行预处理之前增强其结果,要么在算法中增加一些复杂度以过滤掉结果

你能告诉我Q是什么吗?我的意思是像
(110,47,44,44),11)
那么11是什么呢?文档告诉了给定点的邻居数。在我看来,邻居的数量越高,我以前就做过这样的假设。所以它是正确的:)谢谢。很高兴它有帮助;)。请结束问题,答案是:)好的,我发现了一些新的东西-就在我的后院-OpenCV有这些HaarCascades XML文件,除了脸的-用于鼻子、全身、下半身和上半身等,最重要的是我需要的-haarcascade_mcs_lefteye和另一个用于右眼。我还没有试过,但我想他们会做我认为会做的事