Image retrieval is a very useful system in online systems. Online search engines use it to search image by image. E-commercial websites, such as Taobao, Amazon can use it to provide the right goods for his custom.
In this project, we build a large-scale image retrieval base on VCK5000, using its great power of AI inference. However, the ES version of VCK5000 does not support Vitis framework now, I can not use the Vitis platform to implement the similarity search engine, for example, product quantization and IVF. Instead, I use VCK5000 to do the inference, and using CPU to do the search.
Usage
This program search image in batch.
cd batch_search_engine
./search_engine
This program will first load all images in thedatabase, which is located in images-database.
Then it will search images in the query director, which is in images-query.
The search result will be printed on thescreen.
An example output is listed in `search_engine/output.txt`
search engine
This is in the search_engine directory.
we provide images database to search, which is located in images-database.
we also provide some images to be used as query, which is located in images-query.
Then launch server with the image database to search.
cd search_engine/build
./async_search_engine --database-path ../../images-database/
Then search using the client tool:
cd search_engine/build
./search_client --query ../../images-query/ILSVRC2012_val_00000001.JPEG
This will query the server and save the results in the current directory.
In this example, the input is a snake, and the search result is also snakes. The query and results are given in `search_example`
For example, we search using this snake,
It will give us the following results:
search-result-top-0.png
search-result-top-1.png
search-result-top-2.png
search-result-top-3.png
search-result-top-4.png
Comments