gpt4 book ai didi

c# - 如何从人脸检测方 block 中获取一个 "mugshot"?

转载 作者:可可西里 更新时间:2023-11-01 03:02:32 24 4
gpt4 key购买 nike

我正在构建一个应用程序,它将拍摄一个人的全身图像,并为该人制作一张“面部照片”。

面部照片是指该人的整个面部、颈部、头发和耳朵的图像,与另一张面部照片的一般大小相同。

目前我正在使用
http://askernest.com/archive/2008/05/03/face-detection-in-c.aspx
实现 OpenCV,我正在使用

harrcascade_frontalface_default.xml  
harrcascade_frontalface_alt.xml
harrcascade_frontalface_alt2.xml
harrcascade_frontalface_alt_tree.xml

作为我的级联。

我使用了所有的级联,因为一个级联无法检测到我所有的脸。在我获得所有级联检测到的所有面孔后,我找到我的平均平方并使用它来最终猜测面部照片应该有多高和多宽。

我的问题是 3 个部分。

  • 我目前的流程相当缓慢。如何加快检测过程?
    编辑: 我发现处理时间与照片大小直接相关。减小照片的尺寸可能会有所帮助。

  • 单个级联无法检测到我遇到的所有面孔,因此我使用了所有这些面孔。这当然会产生许多不同的方 block 和一些误报。我可以使用什么方法来识别误报并将它们排除在平均平方计算之外?前任。 Sandman Wayne
    编辑: 我在标准差范围内实现平均值。将很快发布代码。

  • 根据脸部的平方坐标,我不确定找到面部照片的最佳方法。我在哪里可以找到脸部与面部照片的比例?
    编辑:解决了这个问题。假设我所有的头都是他们脸的比例。

    static public Rectangle GetMugshotRectangle(Rectangle rFace)
    {
    int y2, x2, w2, h2;

    //adjust as neccessary
    double heightRatio = 2;

    y2 = Convert.ToInt32(rFace.Y - rFace.Height * (heightRatio - 1.0) / 2.0);
    h2 = Convert.ToInt32(rFace.Height * heightRatio);
    //height to width ratio is 1.25 : 1 in mugshots
    w2 = Convert.ToInt32(h2 * 4 / 5);
    x2 = Convert.ToInt32((rFace.X + rFace.Width / 2) - w2 / 2);

    return new Rectangle(x2, y2, w2, h2);
    }

    Sandman
    我只需要消除那些误报。

好的,这 4 个问题。

  • 我们将要使用的相机目前无法使用,所以我目前没有捕捉图像的方法。我在哪里可以找到不像谷歌图片搜索全身图像那样纯粹的人的全身图像?
    编辑:“Person standing”是一个很好的搜索:)

最佳答案

如果以这种方式设置,单个级联可以完成所有级联所做的事情,而且它不会为您提供多个结果以供判断。您使用的级联可能在它们构成的教学图片集合或某些参数方面有所不同。

可以找到有关如何构建自己的级联的教程 here .获取用于训练您使用的四个级联的图片会很有用,但我不知道它们是否公开可用。

关于c# - 如何从人脸检测方 block 中获取一个 "mugshot"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5723159/

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