We have a dataset of numerical features from two images and we want to check if these images match or not using only these features. Basically we have have these columns:

  • fA1, fA2, ..., fA14: 14 features from image A
  • fB1, fB3, ..., fB14: 14 features from image B

We want to predict if image A match image B (y=1) or not (y=0). So it's a features matching problem.

The main usecase is for face recognition using this framework: BERND HEISELE

So is there any neural networks architecture known for this situation (we have a 7 million annotated training set) ?

N.B: we don't have any images, we have only numerical features.


2 Answers 2


From what I understand, your dataset is of pairs of images and a binary classification of their pairing?

There are models using an architecture named Siamese Neural Networks which are used exactly for this task of determining similarity.

You can start by reading the following article: Learning to Compare Image Patches via Convolutional Neural Networks. They are using Siamese architecture to compare between different image patches (similar to what you are describing):

enter image description here

  • $\begingroup$ Thanks @Mark.F for your response. Our dataset is not a pair of images, it's a pair of numerical features computed from images. We don't have the images themselves, thus we cannot use CNNs. $\endgroup$ Commented Jan 11, 2019 at 11:58
  • $\begingroup$ You can still use CNNs, just not in the traditional meaning - you can use 1d convolutions. However, depending on the number of features, you might even be able to use fully-connected models (dense). You can still learn from the Siamese architectures, just replace the inner models from the standard CNN to your 1d CNN or dense model. $\endgroup$
    – Mark.F
    Commented Jan 11, 2019 at 12:48

I understand you don't have the images, only the features.

In the end, it's still a binary classification (same object / different object).

If both objects have the same structure, you should apply the Siamese Neural Networks concept, that means, the same network pre-processing both objects before the decision layer.

This network don't need to be a CNN. It could something as simple as fully connected neural network.

You just need to be sure both networks are exactly the same (share the same weights) all the time.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.