Open ni-vo opened 4 years ago
You would simply fetch batches of your stored descriptors, compare your query data against the batch, keep only the matches and then proceed I would guess.
You would simply fetch batches of your stored descriptors, compare your query data against the batch, keep only the matches and then proceed I would guess.
That's what I was thinking. Wasn't sure if there was a way to create a query to reduce the results returned.
Thanks
I'm thinking about that too cause I'm wondering why there are no projects/examples of smth like a photo gallery which labels images with recognized peoples names.
If you have an input vector and want to query the most similar vector form lots of vectors in DB, then you need to calculate the similarity between input and each vector in DB every time. This is basically a map-reduce task, so Mongo Map-Reduce will help you do this, the logic will run in mongoDB so if you build a mongoDB cluster, it could process lots of data.
There is a better solution faiss,a vector query engine with high performance.
Você simplesmente buscava lotes de seus descritores armazenados, comparava os dados da consulta com o lote, mantinha apenas as correspondências e prosseguia, imagino.
I tried to store LabeledFaceDescriptors in mongodb and it didn't work. I read somewhere that mongodb returns arraybuffer instead of float32array. Some extra work is needed that I'm not getting.
@FrancinaldoCabral have you finished your project? How many images are you storing? How precise recognition algorithm works? I also working on something similar - going to store over 100k images as LabeledFaceDescriptors -> convert them to plain array and store in firebase database. Then on client side convert face to LabeledFaceDescriptor then search in database for similar images.
@justadudewhohacks @RocMax any pitfalls in my idea?
I'm looking to work with a large dataset of images. I would like to process faces in one periodic script and load the descriptors/distances into a Mongo collection for querying at a later time since I can imagine there will be a massive performance hit for storing 100,000s of instances of facial data in memory.
Any advice on how to achieve this?