-
Notifications
You must be signed in to change notification settings - Fork 31
Home
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.
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.
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.
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 |
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
Visual Data Management System - Intel Labs
FLINNG Library and Performance
Basic Building Blocks
Insert
- AddBlob
- AddBoundingBox
- AddConnection
- AddDescriptor
- AddDescriptorSet
- AddEntity
- AddImage
- AddVideo
- NeoAdd
Query
- ClassifyDescriptor
- FindBlob
- FindBoundingBox
- FindConnection
- FindDescriptor
- FindDescriptorSet
- FindEntity
- FindFrames
- FindImage
- FindVideo
- NeoFind
Update