OpenImaj:EigenImages,输入图像尺寸不能有区别吗?

时间:2015-11-17 19:11:31

标签: image-processing eigenvector training-data openimaj

VFSGroupDataset<FImage> dataset = new VFSGroupDataset<FImage>(
                "zip:file:/Users/nhnguyen/Data/newArchive.zip",
                ImageUtilities.FIMAGE_READER);

        int nTraining = 50;
        int nTesting = 5;
        GroupedRandomSplitter<String, FImage> splits = 
            new GroupedRandomSplitter<String, FImage>(dataset, nTraining, 0, nTesting);
        GroupedDataset<String, ListDataset<FImage>, FImage> training = splits.getTrainingDataset();
        GroupedDataset<String, ListDataset<FImage>, FImage> testing = splits.getTestDataset();

        List<FImage> basisImages = DatasetAdaptors.asList(training);
        int nEigenvectors = 100;
        EigenImages eigen = new EigenImages(nEigenvectors);
        eigen.train(basisImages);

我有上面的代码用我自己的数据集来测试EigenImages教程。我坚持认为,如果在我的数据集中,它会抛出Exception with Matrix,图像的尺寸各不相同,例如92x112和100x100等等...当我将批量调整大小调整到相同的大小时,它会工作,但是,这些扭曲图像一点点,我担心会影响准确性。 有没有训练特征识别接受各种维度的输入?

1 个答案:

答案 0 :(得分:0)

不,特征脸方法固有地要求所有图像具有相同的尺寸并且也至少近似对齐(即,相同的方向,眼睛在大约相同的位置)。

然而,您可以使用OpenIMAJ FaceAligner实现之一自动执行缩放和对齐。