Un moteur de recherche d'images entièrement côté utilisateur.
L'article décrit CLEAR en détail.
arXiv : https://arxiv.org/abs/2206.08521
https://clear.joisino.net/
Interface de CLAIRE. Téléchargez une image, puis CLEAR récupère des images similaires sur Flickr. La fonctionnalité de CLEAR est simple. Le point fort réside plutôt dans la manière dont il est réalisé et dans la facilité de déploiement.
$ git clone [email protected]:joisino/clear.git
$ cd clear
$ echo 'REACT_APP_FLICKR_KEY="0123456789abcdef"' > .env.local
$ npm install
$ npm start
Ou vous pouvez l'essayer avec Docker.
$ git clone [email protected]:joisino/clear.git
$ cd clear
$ echo 'REACT_APP_FLICKR_KEY="0123456789abcdef"' > .env.local
$ docker run -it --rm -v $PWD:/app -p 13000:3000 -w /app -u node node /bin/bash -c "npm install && npm start"
Remplacez 0123456789abcdef
par une clé API Flickr. Vous pouvez obtenir une clé sur https://www.flickr.com/services/api/misc.api_keys.html. Il faut quelques minutes pour obtenir une clé.
L'extracteur de fonctionnalités et la fonction de score sont définis dans src/score.js
.
getFeature
calcule les vecteurs de caractéristiques pour l'image source et les images récupérées. La couche d'intégration est définie dans embeddingName
. Vous pouvez essayer d'autres couches, par exemple 'module_apply_default/MobilenetV2/Logits/AvgPool'
.embs2score
calcule les scores. Plus c’est haut, mieux c’est. Vous pouvez essayer d'autres fonctions, par exemple le noyau gaussien Math.exp(- emb1.squaredDifference(emb2).sum().dataSync()[0] / 1000)
.Comme CLEAR ne s'appuie sur aucun serveur backend ou index de recherche, vous pouvez utiliser le système de manière transparente après avoir modifié la fonction de score.
Vous pouvez également modifier la cible de recherche de Flickr vers d'autres services en écrivant un wrapper dans src/flickr.js
.
@inproceedings{sato2022clear,
author = {Ryoma Sato},
title = {CLEAR: A Fully User-side Image Search System},
booktitle = {The 31st {ACM} International Conference on Information
and Knowledge Management, {CIKM}},
year = {2022},
}