0
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 教程。我坚持的是,如果在我的数据集中,图像的尺寸不同,比如 92x112 和 100x100 等等,它会抛出 Matrix 异常......当我将批量调整为相同大小时,它会起作用,但是,这些会稍微扭曲图像,我担心会影响准确性。是否可以训练特征识别以接受各种维度的输入?

4

1 回答 1

0

不,Eigenfaces 方法本质上要求所有图像的大小相同并且至少大致对齐(即相同的方向,眼睛在大约相同的位置)。

但是,您可以使用 OpenIMAJ FaceAligner实现之一来自动进行缩放和对齐。

于 2015-11-18T18:50:34.000 回答