I'm developing a computer vision app that needs to match images against a gallery of millions. Is Milvus fast enough for real-time feature vector matching? I need to know if the system can handle the high-frequency updates as new images are uploaded and indexed by my model.
3 answers
Yes, it is highly efficient for image recognition. The key is to use an embedding model like ResNet or CLIP to convert images into vectors and then store them in Milvus. Because it supports near real-time search, the "search-after-upsert" latency is very low. This means as soon as a new image is uploaded and the vector is inserted, it becomes searchable within seconds. For a vision app, I recommend using the GPU-accelerated version of the index if you have very high throughput requirements, as it can process thousands of image queries per second with ease.
Does your application require exact search or is an approximate nearest neighbor search sufficient for your image matching accuracy?
We found that the bulk insert feature was essential for our initial data migration of ten million product images.
Bulk loading is definitely a huge time saver. It avoids the overhead of individual API calls during the initial setup of the image database.
For image galleries, ANN is usually more than enough. You can tune the precision by adjusting search parameters, giving you a great balance between speed and the quality of matches.