如何从面部检测方块获得“面部照片”?
|
我正在构建一个应用程序,该应用程序将拍摄一个人的整个身体的图像,并为该人生成一个“面部照片”。
面部照片的含义是该人的整个脸,脖子,头发和耳朵的图像,其大小与另一个面部照片相同。
目前我正在使用
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个部分。
我当前的过程相当缓慢。如何加快检测过程?
编辑:我发现处理时间与照片尺寸直接相关。减小照片尺寸可能会有所帮助。
单个层叠不会检测到我遇到的所有面孔,因此我正在使用所有面孔。当然,这会产生许多不同的平方和一些误报。我可以使用什么方法来识别误报并将其排除在均方算之外?例如
编辑:我正在实现标准偏差内的平均值。即将发布代码。
考虑到脸部的平方坐标,我不确定要找到面部照片的最佳方法。在哪里可以找到面部照片比例?
编辑:解决了这个问题。假设我所有的头都是脸的比例。
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);
}
我只需要消除那些误报。
确定,使这四个问题。
我们将要使用的摄像头目前无法使用,因此我目前没有捕获图像的方法。在哪里可以找到不像Google那样的纯粹的人搜索全身图像的人的全身图像?
编辑:\“人员站立\”进行了很好的搜索:)
没有找到相关结果
已邀请:
3 个回复
补蹲农界维
系漏
戒黑恳农