• Stars
    star
    250
  • Rank 162,397 (Top 4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 2 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A fully user-side image search engine. Accepted to CIKM 2022 demo track.

A fully user-side image search engine.

✨ Highlights

  • Flickr does not provide an official similar image search engine nor corresponding API. Nevertheless, CLEAR realizes it on a user-side.
  • CLEAR runs totally on a client side. It does not use a backend server at all.
  • CLEAR does not store any images nor build search indices, while traditional search systems require to build search indices.

📜 Paper

The paper describes CLEAR in detail.

arXiv: https://arxiv.org/abs/2206.08521

💻 Online Demo

https://clear.joisino.net/

Interface of CLEAR. Upload an image, and then CLEAR retrieves similar images from Flickr. The functionality of CLEAR is simple. The highlight lies rather in how it is realized and how easy the deployment is.

💿 Run your own CLEAR

$ git clone [email protected]:joisino/clear.git
$ cd clear
$ echo 'REACT_APP_FLICKR_KEY="0123456789abcdef"' > .env.local
$ npm install
$ npm start

Or you can try it with 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"

Replace 0123456789abcdef with a Flickr API key. You can get a key at https://www.flickr.com/services/api/misc.api_keys.html. It takes a few minutes to get a key.

🛠️ Customize CLEAR

The feature extractor and score function are defined in src/score.js.

  • getFeature computes feature vectors for both the source image and retrieved images. The embedding layer is defined in embeddingName. You can try other layers, e.g., 'module_apply_default/MobilenetV2/Logits/AvgPool'.
  • embs2score computes scores. The higher the better. You can try other functions, e.g., the Gaussian kernel Math.exp(- emb1.squaredDifference(emb2).sum().dataSync()[0] / 1000).

As CLEAR does not rely on any backend servers or search indices, you can seamlessly use the system after you change the score function.

You can also change the search target from Flickr to other services by writing a wrapper in src/flickr.js.

🖋️ Citation

@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},
}

More Repositories

1

seafaring

Code for "Active Learning from the Web" (WWW 2023)
Python
117
star
2

wordtour

Code for "Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem" (NAACL 2022)
Python
92
star
3

otbook

書籍『最適輸送の理論とアルゴリズム』のサポートページです。
Jupyter Notebook
89
star
4

gnnbook

書籍『グラフニューラルネットワーク』のサポートサイトです。
Jupyter Notebook
49
star
5

private-recsys

Code for "Private Recommender Systems: How Can Users Build Their Own Fair Recommender Systems without Log Data?" (SDM 2022)
Python
47
star
6

reeval-wmd

Code for "Re-evaluating Word Mover’s Distance" (ICML 2022)
Python
38
star
7

chainer-PGGAN

Progressive Growing of GANs implemented with chainer
Python
33
star
8

ConvLSTM

Convolutional LSTM implemented with chainer
Python
31
star
9

laf

Code for "Training-free Graph Neural Networks and the Power of Labels as Features" (TMLR 2024)
Python
29
star
10

chainer-ETTTS

This is an implementation of "Efficiently Trainable Text-to-Speech System Based on Deep Convolutional Networks with Guided Attention" with chainer.
Python
28
star
11

speedbook

書籍『深層ニューラルネットワークの高速化』のサポートサイトです。
Jupyter Notebook
20
star
12

gnnrecover

Code for "Graph Neural Networks can Recover the Hidden Features Solely from the Graph Structure" (ICML 2023)
Python
19
star
13

le3hw

intel を越える
C++
15
star
14

treegkr

Code for "Fast Unbalanced Optimal Transport on a Tree" (NeurIPS 2020)
C++
12
star
15

fape

Code for "Enumerating Fair Packages for Group Recommendations" (WSDM 2022)
Python
8
star
16

tiara

Code for "Retrieving Black-box Optimal Images from External Databases" (WSDM 2022)
Python
6
star
17

consul

Code for "Towards Principled User-side Recommender Systems" (CIKM 2022)
Python
5
star
18

mugenyuichan

C++
4
star
19

HiSampler

HiSampler: Learning to Sample Hard Instances for Graph Algorithms
C++
4
star
20

twitter_illust_collector

This script collects 2d illust from twitter lists and posts them to slack.
Python
3
star
21

kirara-slack

まんがタイムきらら系列誌の発売日をSlackに通知します。
Python
3
star
22

twinpaper

Code for "Twin Papers: A Simple Framework of Causal Inference for Citations via Coupling" (CIKM 2022)
Python
2
star
23

anchor-energy

Fast and Robust Comparison of Probability Measures in Heterogeneous Spaces
2
star
24

ex4-ARMemulator

ARM emulator for ex4
Python
1
star
25

le2sw

実験2ソフトウェア実験
Java
1
star
26

poincare

This project aims to recommend publication venues to scientific papers.
Python
1
star
27

prism

Code for "Making Translators Privacy-aware on the User's Side" (TMLR 2024)
Python
1
star