Skip to content
Lacewell, Chaunte W edited this page Oct 10, 2024 · 13 revisions

VDMS: Your Favorite Visual Data Management System

VDMS is a storage solution for efficient access of big-”visual”-data that aims to achieve cloud scale by searching for relevant visual data via visual metadata stored as a graph and enabling machine friendly enhancements to visual data for faster access. We use an in-persistent-memory graph database developed in our team called Persistent Memory Graph Database (PMGD) as the metadata tier and we are exploring the use of an array data manager, TileDB and other formats for images, visual descriptors, and videos as part of our Visual Compute Library (VCL). VDMS is run as a server listening for client requests and we provide client side bindings (Python, C++) to enable communication between applications and the server. Hence, it also has a Request Server component defined to implement the VDMS API, handle concurrent client requests, and coordinate the request execution across its metadata and data components to return unified responses. This project aims to research the use of a scalable multi-node graph based metadata store as part of a hierarchical storage framework specifically aimed at processing visual data, and also it includes an investigation into the right hardware and software optimizations to store and efficiently access large scale (pre-processed) visual data.

Motivation

Data access is swiftly becoming a bottleneck in visual data processing, providing an opportunity to influence the way visual data is treated in the storage system. To foster this discussion, we identify two key areas where storage research can strongly influence visual processing run-times: efficient metadata storage and new storage formats for visual data. We propose a storage architecture designed for efficient visual data access that exploits next generation hardware and give preliminary results showing how it enables efficient vision analytics.

Get Started

To get started, take a look at the INSTALL.md file, where you will find instructions on how to install and run the server.

Also, visit our wiki to learn more about the VDMS API, and take a look at some of the examples/tutorials.

Academic Papers

Conference Links, Cite Description
Industrial and Applications @ VLDB 2021 Paper Demonstrate VDMS capabilities in image search application
2nd USENIX Workshop @ HotEdge 2019 Paper, Presentation VDMS in Edge-to-cloud architecture for video streaming application
Learning Systems @ NIPS 2018 Paper, Cite Systems for Machine Learning Workshop @ NIPS
HotStorage @ ATC 2017 Paper, Presentation, Cite Positioning Paper at USENIX ATC 2017 Workshop

External integrations

Generative AI Component of Open Platform for Enterprise AI (OPEA): VDMS is a component (retriever, dataprep, vectorstore) of OPEA and leveraged in the VideoQnA Application.

Langchain: VDMS is available as a vector store. We also provide a few helpful guides:

  • VDMS notebook: Details the steps to use VDMS with Langchain
  • Visual RAG cookbook: which performs Visual Retrieval-Augmented-Generation (RAG) using videos and scene descriptions generated by open source models
  • Multi-modal RAG cookbook: Performs RAG on documents including text and images, using unstructured for parsing, and VDMS as the vectorstore

Open Visual Cloud: VDMS is used as a meta data store in a Video Curation sample application and a Streaming Video Curation sample application

Clone this wiki locally