Um mecanismo de pesquisa de imagens totalmente do lado do usuário.
O artigo descreve CLEAR em detalhes.
arXiv: https://arxiv.org/abs/2206.08521
https://clear.joisino.net/
Interface do CLEAR. Carregue uma imagem e CLEAR recupera imagens semelhantes do Flickr. A funcionalidade do CLEAR é simples. O destaque reside antes na forma como isso é realizado e na facilidade de implantação.
$ git clone [email protected]:joisino/clear.git
$ cd clear
$ echo 'REACT_APP_FLICKR_KEY="0123456789abcdef"' > .env.local
$ npm install
$ npm start
Ou você pode tentar com 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"
Substitua 0123456789abcdef
por uma chave de API do Flickr. Você pode obter uma chave em https://www.flickr.com/services/api/misc.api_keys.html. Demora alguns minutos para conseguir uma chave.
O extrator de recursos e a função de pontuação são definidos em src/score.js
.
getFeature
calcula vetores de recursos para a imagem de origem e para as imagens recuperadas. A camada de incorporação é definida em embeddingName
. Você pode tentar outras camadas, por exemplo, 'module_apply_default/MobilenetV2/Logits/AvgPool'
.embs2score
calcula pontuações. Quanto mais alto, melhor. Você pode tentar outras funções, por exemplo, o kernel gaussiano Math.exp(- emb1.squaredDifference(emb2).sum().dataSync()[0] / 1000)
.Como CLEAR não depende de nenhum servidor back-end ou índices de pesquisa, você pode usar o sistema perfeitamente depois de alterar a função de pontuação.
Você também pode alterar o alvo de pesquisa do Flickr para outros serviços escrevendo um wrapper em 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},
}