Eine vollständig benutzerseitige Bildsuchmaschine.
Das Papier beschreibt CLEAR ausführlich.
arXiv: https://arxiv.org/abs/2206.08521
https://clear.joisino.net/
Schnittstelle von CLEAR. Laden Sie ein Bild hoch und CLEAR ruft dann ähnliche Bilder von Flickr ab. Die Funktionalität von CLEAR ist einfach. Der Clou liegt vielmehr darin, wie es umgesetzt wird und wie einfach die Bereitstellung ist.
$ git clone [email protected]:joisino/clear.git
$ cd clear
$ echo 'REACT_APP_FLICKR_KEY="0123456789abcdef"' > .env.local
$ npm install
$ npm start
Oder Sie können es mit Docker versuchen.
$ 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"
Ersetzen Sie 0123456789abcdef
durch einen Flickr-API-Schlüssel. Einen Schlüssel erhalten Sie unter https://www.flickr.com/services/api/misc.api_keys.html. Die Schlüsselübergabe dauert ein paar Minuten.
Der Feature-Extraktor und die Score-Funktion sind in src/score.js
definiert.
getFeature
berechnet Merkmalsvektoren sowohl für das Quellbild als auch für die abgerufenen Bilder. Die Einbettungsebene wird in embeddingName
definiert. Sie können andere Ebenen ausprobieren, z. B. 'module_apply_default/MobilenetV2/Logits/AvgPool'
.embs2score
berechnet Punkte. Je höher, desto besser. Sie können andere Funktionen ausprobieren, z. B. den Gaußschen Kernel Math.exp(- emb1.squaredDifference(emb2).sum().dataSync()[0] / 1000)
.Da CLEAR nicht auf Backend-Server oder Suchindizes angewiesen ist, können Sie das System nach einer Änderung der Score-Funktion nahtlos nutzen.
Sie können das Suchziel auch von Flickr auf andere Dienste ändern, indem Sie einen Wrapper in src/flickr.js
schreiben.
@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},
}