Здесь две задачи:
1) кодирование картинки вектором — либо особые точки (SIFT и прочие), либо нейронка (Triplet loss);
2) поиск — зависит от размера базы, fullscan по миллиону занимает порядка 50 ms, если это много, то на помощь приходят hnsw, annoy, faiss и прочие.