gpt4 book ai didi

JavaCV - 识别最准确的检测到的人脸

转载 作者:行者123 更新时间:2023-12-01 05:29:05 25 4
gpt4 key购买 nike

我是 JavaCV/OpenCV 的新手,所以如果我是一个完全的白痴,请提前道歉......

我需要检测图像中的“主要/主要”人脸(此图像大部分是“个人资料图片”),人脸识别 不需要。

由于不同haarcascade 每个文件都检测不同的人脸,并且检测到的人脸有时不是真正的人脸,而是图像中的任意伪像,我需要决定使用哪些人脸。
假设检测到的人脸是真实人脸,使用最大的人脸是有意义的,因为它是个人资料照片。

我遇到的主要问题是代码检测到(对于某些图像)超过 1 张脸,而最大的脸实际上根本不是人脸。
这是我的一个测试中的一个示例,其中代码检测到 2 张脸,1 张是真脸,另一张是女人的胸围,碰巧她的胸围比脸大。

脸:java.awt.Rectangle[x=62,y=42,width=78,height=78] 面积6084

胸围:java.awt.Rectangle[x=86,y=144,width=80,height=80] 面积6400



所以我的问题简而言之,如果我检测到多个人脸,是否有某种评分量表可以用来确定哪些人脸最匹配 OpenCV 认为的人脸?

最佳答案

不幸的是,人脸检测并没有为您提供这样的选择。
我猜你的代码看起来像这样:

CvSeq faces = cvHaarDetectObjects(grayImage, cascade, ......);

所以你得到一个 CvSeq,它实际上只不过是一个指向分隔面的矩形序列的指针。你不会得到更多的信息。

通常,我会说半身像在头下(甚至更多,头在 body 其他部分的上方),除非在某些特殊情况下;)。

您可以简单地利用 Y 位置来丢弃胸围。

如果其他非 body 部位的元素被检测为面部,那么你注定要失败。

关于JavaCV - 识别最准确的检测到的人脸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12330578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com