使用 MATLAB 自动人脸检测

发布于 2025-01-05 11:37:22 字数 535 浏览 2 评论 0原文

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

我看到了两个网站:

1)http://www.mathworks.com/matlabcentral/fileexchange/ 11073。首先,这个网站很好,并且适用于神经网络。它与随附的图像配合得很好。然而,当我使用图像训练神经网络时,准确性非常差。

2)第二个是http://www.mathworks.com/matlabcentral/文件交换/13716-人脸-眼睛-检测。当我用自己的图像进行测试时,准确性很差。

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

I am trying to implement automatic face detection using MATLAB. I know how to implement it using OpenCV, but i would like to do it in MATLAB.

I saw two websites on this:

1) http://www.mathworks.com/matlabcentral/fileexchange/11073. Firstly, this website is good and it works on neural networks. It works well witht the images that are given together with it. However, when I train the neural networks using my images, the accuracy is very bad.

2) The second is http://www.mathworks.com/matlabcentral/fileexchange/13716-face-eye-detection. The accuracy is bad when i test with an image of my own.

Looking for better solutions as well as suggestions on what i should do. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

Saygoodbye 2025-01-12 11:37:22

从 R2012a 版本开始,计算机视觉系统工具箱包含 Viola-基于琼斯 人脸检测器vision.CascadeObjectDetector系统对象。

demo


编辑:

既然您提到了 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。

Starting with the R2012a release, the Computer Vision System Toolbox includes a Viola-Jones based face detector with the vision.CascadeObjectDetector system object.

demo


EDIT:

Since you mentioned OpenCV, how about directly using it from MATLAB. Checkout mexopencv project.

Here is sample code to detect faces:

%# 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

It is worth mentioning that MATLAB's computer vision toolbox also uses OpenCV in its implementation..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文