c++ - 如何对齐人脸图像c++ opencv

标签 c++ opencv face-detection face-recognition

我正在开发一个用于面部认证的 C++ 应用程序。首先,我必须检测人脸并对图像进行预处理。

  1. 对于人脸检测,我使用了 HaarCascadeClassifier。问题是这个工具或这个算法给了我一个面部区域,该区域由一个有点大的矩形检测到,该矩形覆盖了头发和一些背景。有没有办法改变这个矩形的尺寸?我使用了“frontalfacecascaadclassifier.xml”。
  2. 对于人脸预处理,我想像 this technique 一样进行人脸对齐.我将如何做到这一点?

最佳答案

在给定图像中找到眼睛的准确位置绝非易事。用于在 OpenCV 中寻找眼睛的 Haar 级联会产生太多的误报而无用,而且这种方法对图像旋转不具有鲁棒性(虽然它可能会补偿轻微的旋转,但我不知道训练图像)。如果我是你,我会在 http://scholar.google.com 上开始广度优先搜索。该研究领域的相关论文。

您需要可靠的头部姿势估计来对齐人脸图像。我自己做了一些研究,我认为在这里共享算法和代码很有用。我见过的最有趣的方法是:

关于c++ - 如何对齐人脸图像c++ opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10143555/

相关文章:

C++ 正确释放具有底层连续内存的多维数组

c++ - 架构 arm64 的 undefined symbol : "cv::String::deallocate()"

c++ - C++标准应该如何使用

c++ - 带 ACE react 器的 ZeroMQ

c++ - 在/正在为 GCC 开发中是否有 `clang++:-Wunused-lambda-capture` 等效警告?

opencv - 如何从计算机视觉相机计算像素的水平角度

opencv - Cmake的CI2CV构建错误

objective-c - 图像上的人脸对齐算法

ios - 设备人脸识别 - Swift

android - Android中的人体部位检测