图像处理中面部标志点的归一化
Posted
技术标签:
【中文标题】图像处理中面部标志点的归一化【英文标题】:Normalization of facial landmark points in image processing 【发布时间】:2017-01-25 00:57:21 【问题描述】:我正在从事一个与识别面部情绪(悲伤、快乐、愤怒等)相关的项目。我正在使用 dlib 库中的面部标志检测器,它检测到 68 个兴趣点。对于相同的情绪,这些兴趣点可能会因人脸的朝向、眼睛的大小、嘴唇的大小等在不同的脸上而有所不同。
我想规范化这些兴趣点,使其不受面部方向、眼睛大小、嘴唇等因素的影响。我可以使用哪些技术来做到这一点。然后我想用 SVM 训练数据。
【问题讨论】:
【参考方案1】:Dlib 已经具有通过调用http://dlib.net/imaging.html#extract_image_chips 函数在http://dlib.net/face_landmark_detection_ex.cpp.html 示例中使用的规范化代码。
您将需要使用它的部分代码来获得标准化的地标——它们仍然有足够的信息来检测情绪,但面部会被旋转和缩放:
...
// 1. detect faces
std::vector<rectangle> dets = detector(image);
for (rectangle d : dets)
// 2. get landmarks
full_object_detection shape = sp(image, d);
// 3. chip details (normalization params) for normalized image with normalized size of 100 pixels
chip_details chip = get_face_chip_details(shape, 100);
// 4. get normalized landmarks
full_object_detection normalized = map_det_to_chip(shape, chip);
// now you can used normalized shape in your classifier
获得标准化形状后,如何训练分类器就取决于您了。可能“按原样”使用地标就足够了,可能您需要获取最重要的点并计算它们之间的距离并根据距离数据进行训练
【讨论】:
以上是关于图像处理中面部标志点的归一化的主要内容,如果未能解决你的问题,请参考以下文章