在 iOS 上使用 OpenCV 检测人脸边缘/形状
Posted
技术标签:
【中文标题】在 iOS 上使用 OpenCV 检测人脸边缘/形状【英文标题】:Using OpenCV to detect face edges/shape on iOS 【发布时间】:2016-03-07 19:43:38 【问题描述】:有很多关于如何使用 OpenCV 检测面部矩形的教程,例如:
//Path to the training parameters for frontal face detector
NSString *faceCascadePath = [[NSBundle mainBundle] pathForResource:@"haarcascade_frontalface_alt2"
ofType:@"xml"];
NSLog(@"%@", faceCascadePath);
const CFIndex CASCADE_NAME_LEN = 2048;
char *CASCADE_NAME = (char *) malloc(CASCADE_NAME_LEN);
CFStringGetFileSystemRepresentation( (CFStringRef)faceCascadePath, CASCADE_NAME, CASCADE_NAME_LEN);
cv::CascadeClassifier faceDetector;
faceDetector.load(CASCADE_NAME);
std::vector<cv::Rect> faceRects;
double scalingFactor = 1.1;
int minNeighbors = 2;
int flags = 0;
cv::Size minimumSize(30, 30);
faceDetector.detectMultiScale(image, faceRects, scalingFactor, minNeighbors, flags, minimumSize);
但是,就像它的 CoreImage 等效项一样,它仅将人脸的边界检测为矩形。我想要的是检测点中的面部边缘,以便我可以围绕用户的面部绘制一条路径,类似于 Snapchat 的做法。
谁能指出我正确的方向?计算机视觉和图像处理不是我的强项,所以我一直在努力完成这样的事情。
【问题讨论】:
【参考方案1】:查看主动外观模型。 这可能会有所帮助:http://16423.courses.cs.cmu.edu/slides/Lecture_23.pdf
Snapchat 收购了 Looksery 以启用他们的动画镜头。 http://techcrunch.com/2015/09/15/snapchat-looksery/
【讨论】:
以上是关于在 iOS 上使用 OpenCV 检测人脸边缘/形状的主要内容,如果未能解决你的问题,请参考以下文章