CCTV Intelligence
Train a VLM to detect unauthorized access, tailgating, loitering, and perimeter breaches from security camera feeds.
Security teams monitor dozens of camera feeds at once. A single operator watching 16 screens will miss events, especially during long shifts. Most incidents are caught after the fact, when someone reviews footage following a complaint or report.
Datature Vi trains a model on your facility's own camera feeds. You label frames showing normal activity and frames showing events of interest (unauthorized entry, tailgating through a secured door, loitering in restricted areas). The model learns the patterns specific to your layout and alerts in real time when it spots something unusual.
This is not a replacement for security staff. It is a tool that watches every feed simultaneously so your team can respond faster to the events that matter.
For an interactive overview of this application, visit the CCTV intelligence use case on vi.datature.com.
Common applications
Choose your task type
Annotation examples
Tips:
- Train on frames from each camera angle separately, as perspectives vary between cameras
- Include frames from different times of day (daytime, nighttime, low-light conditions)
- Label what "normal" looks like for each zone so the model learns context-specific baselines
Deploy and test
from vi.inference import ViModel
model = ViModel(
run_id="your-run-id",
secret_key=".your-secret-key.",
organization_id="your-organization-id",
)
result, error = model(
source="camera_frame.jpg",
user_prompt="Is anyone present in the server room?"
)
if error is None:
print(result.result.answer)Training tips
Train per camera or zone: each camera has a unique perspective and baseline. A model trained on lobby footage will not generalize well to parking lot footage. Train separate models or include examples from each zone.
Include environmental variation: weather, lighting, and seasonal changes affect outdoor cameras. Indoor cameras change less, but include examples with different occupancy levels.
Define "normal" clearly: the model learns from your labels. If you label a frame as "no unusual activity," make sure similar-looking frames are labeled consistently. Ambiguous labeling degrades performance.
Test on real shift footage: validate the model on footage from actual shifts, not curated test images. Real-world camera feeds include motion blur, compression artifacts, and partial occlusion.
Next steps
Updated about 1 month ago
