我安装了 OpenCV 2.4.8 Java API 来玩 tutorial 中给出的面部检测示例。 .
在示例中,lbpcascade_frontalface.xml
- 这是一个 CascadeClassifier
- 在检测女性面部图像 (lena.png
) 时工作正常他们提供的。然而,当我在这个随机的 image 上尝试时来自网络的分类器生成了以下图像,缺少 4 个明显(!)的面孔:
我非常失望,因为我预计这(具有清晰的对比)是一张非常容易检测人脸的图像。
1) 用 Java 编码,是否可以改进这个分类器以检测这张图片中的所有面孔?还是为此我需要 C++?
2) 我看了OpenCV's CascadeClassification
web page并看到可以训练自己的分类器。但指令是用 C++ 编写的。有没有人用 Java 做过这个,还是只能用 C++ 做?
最佳答案
培训与任何编程语言无关。
http://docs.opencv.org/doc/user_guide/ug_traincascade.html
您只需使用 opencv 库中包含的两个已编写的程序:createsamples 和 traincascade。您也可以使用 Haar 和 LBP 特征,但 Haar 特征在人脸检测方面稍好一些。 (顺便说一下:不要使用haartraining)。
关于java - OpenCV 2.4.8 人脸检测性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21832828/