9

我正在尝试使用 MATLAB 实现自动人脸检测。我知道如何使用 OpenCV 来实现它,但我想在 MATLAB 中实现它。

我在这方面看到了两个网站:

1) http://www.mathworks.com/matlabcentral/fileexchange/11073。首先,这个网站很好,它适用于神经网络。它适用于与它一起提供的图像。但是,当我使用我的图像训练神经网络时,准确性非常差。

2)第二个是http://www.mathworks.com/matlabcentral/fileexchange/13716-face-eye-detection。当我用自己的图像进行测试时,准确性很差。

寻找更好的解决方案以及关于我应该做什么的建议。谢谢。

4

1 回答 1

11

从 R2012a 版本开始,计算机视觉系统工具箱包括一个基于 Viola-Jones 的 面部检测器vision.CascadeObjectDetector系统对象。

演示


编辑:

既然你提到了 OpenCV,那么直接从 MATLAB 中使用它怎么样。签出 mexopencv项目。

以下是检测人脸的示例代码:

%# Load a face detector and an image
detector = cv.CascadeClassifier('haarcascade_frontalface_alt.xml');
im = imread('myface.jpg');
%# Preprocess
gr = cv.cvtColor(im, 'RGB2GRAY');
gr = cv.equalizeHist(gr);
%# Detect
boxes = detector.detect(gr, 'ScaleFactor',1.3, 'MinNeighbors',2, 'MinSize',[30,30]);
%# Draw results
imshow(im);
for i = 1:numel(boxes)
    rectangle('Position',boxes{i}, 'EdgeColor','g');
end

值得一提的是,MATLAB 的计算机视觉工具箱在其实现中也使用了 OpenCV。

于 2012-06-09T18:55:10.150 回答