存储OpenCv / JavaCv训练图像的替代方法是什么?

时间:2016-12-30 18:49:22

标签: opencv javacv

我正在使用Java和JavaCv开发Web face Recognizer应用程序。 拍完照片之后,会生成一个文件.yml / .xml,如下所示:

    for (File image : imageFiles) {
        Mat img = imread(image.getAbsolutePath(), CV_LOAD_IMAGE_GRAYSCALE);

        int label = Integer.parseInt(image.getName().split("\\-")[0]);
        String name = image.getName().substring(image.getName().indexOf("-") + 1, 
                                                image.getName().indexOf("_"));
        images.put(counter, img);
        labelsBuf.put(counter, label);
        map.put(label, name);

        counter++;
    }

    faceRecognizer.train(images, labels);
    faceRecognizer.save("C:/trainingDir/FaceDB.yml");

OpenCv页面和几乎文章显示了存储训练数据的简单方法。问题是你训练的图片越多,它就越大,越不实际。将200mb文件加载到应用程序中进行识别是不可能的。

我正在使用org.bytedeco的javacv 1.2。基本上,我从人那里拍摄了大约30张照片并生成了.yml文件,创建了createEigenFaceRecognizer()的实例, 加载文件faceRecognizer.load("C:/trainingDir/FaceDB.yml"),然后执行识别faceRecognizer.predict(testImage)

我搜索了很多OpenCv文章,但无法找到任何可行的解决方案。

我如何以及在哪里存储经过培训的数据?是否可以存储在像MySql这样的关系数据库中?或者还有其他选择吗?

0 个答案:

没有答案
相关问题