Spatialyze
Spatialyze: A Geospatial Video Analytic System with Spatial-Aware Optimizations
Install / Use
/learn @apperception-db/SpatialyzeREADME
Abstract
Videos that are shot using commodity hardware such as phones and surveillance cameras record various metadata such as time and location. We encounter such geospatial videos on a daily basis and such videos have been growing in volume significantly. Yet, we do not have data management systems that allow users to interact with such data effectively.
In this paper, we describe Spatialyze, a new framework for end-to-end querying of geospatial videos. Spatialyze comes with a domain-specific language where users can construct geospatial video analytic workflows using a 3-step, declarative, build-filter-observe paradigm. Internally, Spatialyze leverages the declarative nature of such workflows, the temporal-spatial metadata stored with videos, and physical behavior of real-world objects to optimize the execution of workflows. Our results using real-world videos and workflows show that Spatialyze can reduce execution time by up to 5.3x, while maintaining up to 97.1% accuracy compared to unoptimized execution.
Requirement
- docker
- cuda >= 11.7 (If using GPU)
Setup Spatialyze
Clone the Spatialyze repo
git clone --recurse-submodules git@github.com:apperception-db/spatialyze.git
cd spatialyze
# clone submodules
git submodule update --init --recursive
Using Docker Compose
docker compose up --build --detach
Development
You can then find the project root in spatialyze container inside /workspace.
You can then use VSCode's Remote Explorer (Dev Containers) to connect to the running spatialyze container.
Once connected, run cd /workspace && code . to open VSCode in the project root.
If using DeepSORT (Optional)
Building rank_cylib will speed up DeepSORT.
cd /workspace/spatialyze/video_processor/modules/yolo_deepsort/deep_sort/deep/reid/torchreid/metrics/rank_cylib
make
# If make does not work (use your current python interpreter)
python setup.py build_ext --inplace
rm -rf build
Spatialyze Demo
Run the following command inside the spatialyze container.
poetry run jupyter-lab
The demo notebook first constructs the world. Then it queries for the trajectory of the cars that appeared once in an area of interests within some time interval.
Example demos
API Reference
Please visit https://apperception-db.github.io/spatialyze for API Reference.
Citing Spatialyze
This paper will be presented at VLDB.
@article{10.14778/3665844.3665846,
author = {Kittivorawong, Chanwut and Ge, Yongming and Helal, Yousef and Cheung, Alvin},
title = {Spatialyze: A Geospatial Video Analytics System with Spatial-Aware Optimizations},
year = {2024},
issue_date = {May 2024},
publisher = {VLDB Endowment},
volume = {17},
number = {9},
issn = {2150-8097},
url = {https://doi.org/10.14778/3665844.3665846},
doi = {10.14778/3665844.3665846},
journal = {Proc. VLDB Endow.},
month = {june},
pages = {2136-2148},
numpages = {13}
}
Codecov
<img width="100%" src="https://codecov.io/gh/apperception-db/spatialyze/graphs/icicle.svg?token=A4FHKVI1Ua" />Related Skills
qqbot-channel
349.9kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
100.4k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
349.9kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
Design
Campus Second-Hand Trading Platform \- General Design Document (v5.0 \- React Architecture \- Complete Final Version)1\. System Overall Design 1.1. Project Overview This project aims t
