Matlab中的微笑检测

时间:2016-02-20 12:31:18

标签: matlab image-processing computer-vision matlab-cvst

我必须在Matlab中做微笑检测,并且我被困在嘴唇角落的过滤上。为此,我使用以下方法。

img = imread('smile.jpg');

faceDetector = vision.CascadeObjectDetector('Mouth','MergeThreshold',160);
cornerDetector = vision.CornerDetector('Method','Harris corner detection (Harris & Stephens)');
Irgb2gray=rgb2gray(img);

bboxes = step(faceDetector, Irgb2gray);
lips = imcrop(Irgb2gray,bboxes);

C = corner(lips);
imshow(lips);
hold on;
plot(C(:,1), C(:,2), 'r*');

我正在拍摄一张照片的角落:

enter image description here

我想应用一些过滤器,这样我就可以摆脱Lips之外的一些角落。我坚持这一点,我怎么知道哪些是好角落和那些不好的角落? 然后在纠正角落后,我必须计算它们之间的距离,以便我可以判断是否有笑脸。

任何人都可以帮助我过滤角落吗?我会感激你的。

1 个答案:

答案 0 :(得分:0)

在这种情况下,我会训练微笑与非微笑分类器。您可以使用计算机视觉系统工具箱中的extractHOGFeaturesextractLBPFeatures功能提取功能,然后使用统计和机器学习工具箱中的fitcsvm功能来训练分类器。当然,您还必须收集微笑和不微笑的图像,并使用imresize使它们具有相同的大小。