VFRAME Search Engine

VFrame Search is an image search engine integrating neural networks for indexing and object detection. It is designed to fit into an automated content ingestion workflow to allow for efficient search and indexing of a continuous stream of incoming media. As such it is built out of the following components:

  • Web-based frontend: search, index, and dashboard
  • Flask backend: RESTful API for talking to MySQL and also for running jobs
  • Celery worker: performs indexing and other long tasks
  • Commandline interface: running tasks, processing images, and integrating into other tasks.

Quick Start

1. Run the Docker daemon

After installing Docker and docker-compose, clone this repo and spin up the Docker containers:

git clone https://github.com/adamhrv/vframe_search
cd vframe_search
docker-compose up --build -d
docker-compose logs -f

Navigate to http://0.0.0.0:5000/ to use the webapp.

2. Import your images

The folder data_store/incoming/ is shared with the VFrame Search API instance, so you must move files there first before you can import them.

cp ~/Downloads/keyframes_1k/ data_store/incoming/  # or use your image dataset!
docker exec -it vframe_search_api_1 python cli_data.py add -i ../data_store/incoming/

Images are copied into the database and the originals are left in the incoming folder, so please rm -rf data_store/incoming/* if you don't need the original archives.

3. Build feature indexes

To get started, first download some pre-trained image classification models from our model zoo:

Next, create a new feature vector for each of these networks.

Finally, navigate to the Task Manager and click "update index" to begin processing the vectors.

4. Search your database

Once processing completes, you are ready to begin using the search engine.

Documentation

About this project

For more information, please see our website at vframe.io.