I'm working on a project that involves generating a unique ID for a given biometric (such as an iris image). I'm interested in exploring the use of ML techniques for feature extraction and ID generation. Specifically, I'm interested in how various measurements of the biometrics of some person (such as photos of the person’s same iris under different angles) could be almost always converted to the same unique ID.

My main questions are:

  1. What machine learning techniques could be used to extract the features of a biometric? I'm was planning to work with biometric data in an image format, and I guess that CNNs or deep embedding networks could be useful for this task. Are there any other techniques that could be used (e.g., PCA)?
  2. What format should the features be represented as? Should they be stored as a vector, a matrix, or some other format?
  3. How could the features be converted to a an ID? I'm currently considering using techniques such as hashing or one-way encoding. Are there any other techniques that could be used, and what are the pros and cons of each?
  4. What could be done to ensure that variations of the input biometric would (almost) always lead to the same ID?

I am currently at the research step, thus did not attempt yet to implement such a pipeline. In case you have some questions regarding the project, don’t hesitate to ask, I will try to be more specific if necessary.

I'm also open to any other advice or tips on how to approach a project like this. Thank you in advance for your help!


1 Answer 1


A simple one-way encoding (a hash) is very sensitive to noise. So where ML would come in is feature extraction: trying to extract the strong signal from an image and not any of the noise.

But you are very unlikely to be able to do this perfectly. I believe even for the much-studied MNIST data set, state of the art is less than 100% (though there are a few mis-labelled examples, which doesn't help).

BTW, another challenge is you will have very few data samples per label - you are going to have something like 60,000 iris photos for 55,000 people I imagine? Compared to MNIST with 60,000 samples for just 10 labels.

Instead what you do is a nearest-neighbor search. So, your CNN (or whatever ML model you use) can give you say a 256-dim embedding instead of predicting a label. And then you use that to search your iris database, to find the closest match.

If you search for approximate nearest neighbor search you will find a range of competing options. (The "approximate" is needed, because doing it naively is O(N²) in the number of entries in your database.)

Or for a more novel approach, A Neural Corpus Indexer for Document Retrieval is an interesting paper I read recently, which is doing something similar to what you want to do, though in the NLP domain. They are taking some features, and want to produce the document ID directly. There may be some ideas there.


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.