Un motor de búsqueda de imágenes totalmente del lado del usuario.
El artículo describe CLEAR en detalle.
arXiv: https://arxiv.org/abs/2206.08521
https://clear.joisino.net/
Interfaz de CLEAR. Cargue una imagen y luego CLEAR recupera imágenes similares de Flickr. La funcionalidad de CLEAR es simple. Lo más destacado reside más bien en cómo se realiza y en lo fácil que es su implementación.
$ git clone [email protected]:joisino/clear.git
$ cd clear
$ echo 'REACT_APP_FLICKR_KEY="0123456789abcdef"' > .env.local
$ npm install
$ npm start
O puedes probarlo con 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"
Reemplace 0123456789abcdef
con una clave API de Flickr. Puede obtener una clave en https://www.flickr.com/services/api/misc.api_keys.html. Se necesitan unos minutos para obtener una llave.
El extractor de características y la función de puntuación se definen en src/score.js
.
getFeature
calcula vectores de características tanto para la imagen de origen como para las imágenes recuperadas. La capa de incrustación se define en embeddingName
. Puede probar otras capas, por ejemplo, 'module_apply_default/MobilenetV2/Logits/AvgPool'
.embs2score
calcula puntuaciones. Cuanto más alto, mejor. Puede probar otras funciones, por ejemplo, el núcleo gaussiano Math.exp(- emb1.squaredDifference(emb2).sum().dataSync()[0] / 1000)
.Como CLEAR no depende de ningún servidor backend ni de índices de búsqueda, puede utilizar el sistema sin problemas después de cambiar la función de puntuación.
También puede cambiar el objetivo de búsqueda de Flickr a otros servicios escribiendo un contenedor en 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},
}