Mindket

CCTV Visual RAG

Newversion 1 · updated

Overview

Finds moments in surveillance video by typing a plain-language description, then returns the best-matching frames with their timestamps. For people who would rather search footage than scrub through it.

CCTV Visual RAG is a kit in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page, a zip of its files. Nothing in it runs by itself.

At a glance

You need
  • Python 3.11
  • Windows, macOS or Linux
  • The packages listed in requirements.txt
Runs in
  • A web browser, on the page of the Space at Hugging Face
  • Windows, macOS or Linux, as a local copy run with Python 3.11
Start with
pip install -U huggingface_hub
hf download alinawazmahar/cctv-visual-rag --repo-type space --local-dir cctv-visual-rag
cd cctv-visual-rag

Platform

WindowsOperating system
macOSOperating system
LinuxOperating system

About

What it is

CCTV Visual RAG lets you search camera footage by describing what you want to see. It samples frames from a video, turns them into CLIP embeddings, and stores them in a FAISS index. A text query is matched against that index, and the closest frames come back with timestamps.

Who it suits

It suits developers and analysts who review recorded video and want to jump to a moment instead of watching all of it. It is also a small, readable example of text-to-image search for people learning CLIP and FAISS.

IndustryWho uses itHow they use itExample
SecurityFootage reviewersFind a moment in recorded video by descriptionSearch for a person walking
TrafficRoad monitoring teamsSpot vehicles in sampled framesSearch for multiple vehicles
SoftwareDevelopersStudy a CLIP plus FAISS retrieval pipelineRead the search and video helper files
EducationStudentsLearn how text queries match imagesCompare results for red car and empty road

Anyone who needs live alerts or object tracking can skip it, since it searches stored frames by text.

Where to use it

The app runs in two places.

  • A web browser, on the page of the Space at Hugging Face
  • Windows, macOS or Linux, as a local copy run with Python 3.11
Use caseWhoWhat they get back
Moment searchReviewersThe top matching frames for a typed description
Timestamp lookupAnalystsThe time in the video where each match appears
Pipeline studyDevelopersA working example of frame sampling, embeddings and an index

How to set it up

The online page needs nothing installed. A local copy needs the following.

  • Python 3.11
  • Windows, macOS or Linux
  • The packages listed in requirements.txt
  1. Install Python 3.11.
  2. Install the Hugging Face hub package and download a copy of the Space.
  3. Move into the new folder and install Gradio 5.34.2 and the packages in requirements.txt.
  4. Start the app with python app.py.
pip install -U huggingface_hub
hf download alinawazmahar/cctv-visual-rag --repo-type space --local-dir cctv-visual-rag
cd cctv-visual-rag
pip install gradio==5.34.2
pip install -r requirements.txt
python app.py

How to use it

Type a short description of what you want to find and read the frames and timestamps it returns. On a local copy, this command starts the page.

python app.py
ToolWhat it does
CLIPTurns frames and your text query into embeddings that can be compared
FAISSHolds the frame embeddings and finds the closest ones to a query
OpenCVPulls frames out of the video
GradioProvides the page you type into

Example

You type "red car". The app compares that phrase with the indexed frames and returns the best matches, each with the time in the video where it appears.

For newcomers and experts

If you are new to this, think of it as a search box for video. Type one simple phrase such as person walking and see which frames come up, then try a different phrase and compare.

If you know the field, frames are sampled at 1 FPS and embedded with the CLIP ViT-B/32 model, which is openai/clip-vit-base-patch32. The vectors go into a FAISS IndexFlatIP, so a text embedding is scored against them by inner product. The top K frames come back with timestamps. Sampling at one frame per second means brief events can fall between samples.

  1. Video sampled at 1 frame a second
  2. CLIP embeds each frame
  3. FAISS indexes the embeddings
  4. Your text query is embedded too
  5. Top frames return with timestamps

Good to know

The Space keeps the sampled frames and the index in its own repository folders. Its README lists no benchmark numbers.

  • License: MIT
  • Cost to run: none named
  • Data it reaches: the video frames stored with the Space, and the CLIP model it names
  • Not for: live monitoring, since it searches frames that are already indexed

README and files

README

CCTV Visual RAG

Finds moments in surveillance video by typing a plain-language description, then returns the best-matching frames with their timestamps. For people who would rather search footage than scrub through it.

Made by alinawazmahar on Hugging Face. These notes are Mindket's, written from its Space page and README; the app's own files and license are on Hugging Face.

About

What it is: CCTV Visual RAG lets you search camera footage by describing what you want to see. It samples frames from a video, turns them into CLIP embeddings, and stores them in a FAISS index. A text query is matched against that index, and the closest frames come back with timestamps.

Who it suits: It suits developers and analysts who review recorded video and want to jump to a moment instead of watching all of it. It is also a small, readable example of text-to-image search for people learning CLIP and FAISS.

Industry | Who uses it | How they use it | Example
Security | Footage reviewers | Find a moment in recorded video by description | Search for a person walking
Traffic | Road monitoring teams | Spot vehicles in sampled frames | Search for multiple vehicles
Software | Developers | Study a CLIP plus FAISS retrieval pipeline | Read the search and video helper files
Education | Students | Learn how text queries match images | Compare results for red car and empty road

Anyone who needs live alerts or object tracking can skip it, since it searches stored frames by text.

Where to use it: The app runs in two places.

  • A web browser, on the page of the Space at Hugging Face
  • Windows, macOS or Linux, as a local copy run with Python 3.11
Use case | Who | What they get back
Moment search | Reviewers | The top matching frames for a typed description
Timestamp lookup | Analysts | The time in the video where each match appears
Pipeline study | Developers | A working example of frame sampling, embeddings and an index

How to set it up: The online page needs nothing installed. A local copy needs the following.

  • Python 3.11
  • Windows, macOS or Linux
  • The packages listed in requirements.txt
  1. Install Python 3.11.
  2. Install the Hugging Face hub package and download a copy of the Space.
  3. Move into the new folder and install Gradio 5.34.2 and the packages in requirements.txt.
  4. Start the app with python app.py.
pip install -U huggingface_hub
hf download alinawazmahar/cctv-visual-rag --repo-type space --local-dir cctv-visual-rag
cd cctv-visual-rag
pip install gradio==5.34.2
pip install -r requirements.txt
python app.py

How to use it: Type a short description of what you want to find and read the frames and timestamps it returns. On a local copy, this command starts the page.

python app.py
Tool | What it does
CLIP | Turns frames and your text query into embeddings that can be compared
FAISS | Holds the frame embeddings and finds the closest ones to a query
OpenCV | Pulls frames out of the video
Gradio | Provides the page you type into

Example: You type "red car". The app compares that phrase with the indexed frames and returns the best matches, each with the time in the video where it appears.

For newcomers and experts: If you are new to this, think of it as a search box for video. Type one simple phrase such as person walking and see which frames come up, then try a different phrase and compare.

If you know the field, frames are sampled at 1 FPS and embedded with the CLIP ViT-B/32 model, which is openai/clip-vit-base-patch32. The vectors go into a FAISS IndexFlatIP, so a text embedding is scored against them by inner product. The top K frames come back with timestamps. Sampling at one frame per second means brief events can fall between samples.

Video sampled at 1 frame a second
CLIP embeds each frame
FAISS indexes the embeddings
Your text query is embedded too
Top frames return with timestamps

Good to know: The Space keeps the sampled frames and the index in its own repository folders. Its README lists no benchmark numbers.

  • License: MIT
  • Cost to run: none named
  • Data it reaches: the video frames stored with the Space, and the CLIP model it names
  • Not for: live monitoring, since it searches frames that are already indexed

On Hugging Face, 13 November 2026

  • Likes: 2
  • Built with: gradio
  • License: mit

Links

Try it

Open the Space in your browser, or copy it to your own Hugging Face account from its page. Nothing in this kit runs by itself.

Files
README.md  5 KB

1 file, 5 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Compare with similar

Listed Hugging Face Spaces in the same category that share the most tags with this one.

ProductLikesBuilt withLicenseLast change
CCTV Visual RAG This page2gradiomit
First Order Motion Model 中文展示版Shares computer-vision · gradio1gradiomit
FLUX.1 [dev]Shares gradio9,583gradiomit
InstantIDShares gradio3,659gradioapache-2.0
Chat With Janus-Pro-7BShares gradio2,036gradiomit
PhotoMakerShares gradio1,960gradioapache-2.0
Numbers as Mindket last read them, on 2026-11-12.

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

upscaler

uwg · Kit

Holds a set of image upscaling models gathered from the OpenModelDB community, for people who want to enlarge low-resolution pictures with AI on their own comp…

New

Pixel Art XL

nerijs · Kit

A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…

New

VibeVoice-1.5B

microsoft · Kit

Turns written conversations into spoken audio with up to four speakers and about 90 minutes of speech, an open Microsoft text-to-speech model for research on p…

New

Similar in Developer

See all in Developer

voicetut-egyptian-tashkeel

masterofaudio2077 · Kit

Reads Egyptian Arabic text aloud and follows the short vowel marks you write into it. A fine-tune of VoiceTut-TTS that keeps its 19 built-in voices and voice c…

New

Runs Meta's Llama 3.1 8B Instruct chat model in 4-bit AWQ form, so it fits on a GPU with about 4 GiB of free memory for the weights. For developers who want a…

New

Ru-Jev

besktech · Kit

Scores a Russian-first decision from a context and a list of options, giving a probability for yes/no, choice or rating questions. Runs on a plain CPU, for tea…

New