Public portfolio case study for a Windows desktop application built to improve long-range movement awareness using existing RTSP, ONVIF, thermal PTZ, and recorder-based camera infrastructure.
Source code is intentionally private.
This repository documents the product problem, system design, feature set, and technical decisions without exposing proprietary implementation details.
Core positioning: built-in camera AI is strongest when the target is large enough to classify; MotionGuard adds value earlier, when the target is still only a small moving blob at long range.
MotionGuard was built for surveillance environments where distant targets often become visible as movement before they become large enough for reliable human / vehicle classification.
That makes it useful in scenarios such as:
- long-range perimeter monitoring
- thermal PTZ surveillance
- wide outdoor areas with sparse but meaningful activity
- early cueing before operator zoom / verification
- layered analytics on top of existing camera deployments
The system works with:
- Dahua / Hikvision recorder channels
- direct RTSP camera streams
- ONVIF-discovered cameras
- offline video for tuning and validation
- Long-range motion-first detection workflow
- Thermal PTZ / RTSP / ONVIF / recorder integration
- Candidate vs confirmed target tracking
- Exclusion zones and nuisance filtering
- Per-camera alerts and source controls
- Performance logging for deployment tuning
Modern intelligent cameras already provide features such as:
- tripwire
- intrusion detection
- motion detection
- thermal events
- human / vehicle filtering
Those features are valuable, but they are strongest when the target is large enough in the frame to be classified confidently.
At longer distances, this becomes a practical limitation:
- something may be clearly moving
- but still be too small for reliable human / vehicle classification
- operators still need an earlier indication that meaningful activity is happening
MotionGuard addresses that gap by focusing first on:
Is there credible movement here that deserves attention?
before trying to answer:
What exactly is it?
MotionGuard is not positioned as a replacement for built-in camera intelligence.
It is valuable in addition to onboard analytics because it solves a different stage of the workflow:
- built-in AI is strongest for classification and rule-based event handling
- MotionGuard is strongest for early long-range movement cueing and confirmation
That distinction matters in long-range surveillance where:
- classification distance is much shorter than detection distance
- distant humans and vehicles may appear only as small moving blobs
- early awareness often matters before full recognition is possible
The result is a layered approach:
- MotionGuard indicates credible movement at distance
- camera PTZ / visible channel / thermal view supports closer inspection
- built-in analytics and the operator help verify what the target is
- Detects real movement events in live camera feeds
- Tracks targets across frames
- Separates candidate targets from confirmed targets
- Draws bounding boxes for operator awareness
- Filters noisy areas using exclusion zones
- Supports per-camera sound / voice alerts
- Supports per-camera mute control
- Supports per-source stream switching
- Logs performance metrics for tuning and deployment decisions
MotionGuard is designed around motion confirmation rather than single-frame classification.
It combines:
- preprocessing for difficult scenes
- adaptive motion detection
- blob extraction
- multi-frame tracking
- confirmation by persistence and displacement
- scene-specific filtering
This makes it better suited to long-range use cases where the target may still be too small to classify semantically, but movement is already operationally meaningful.
flowchart TD
A[Cameras / NVR / RTSP / ONVIF] --> B[Source Manager]
B --> C[Per-Source Worker]
C --> D[Motion Engine]
D --> D1[Preprocess]
D1 --> D2[Motion Detection]
D2 --> D3[Morphology]
D3 --> D4[Blob Extraction]
D4 --> D5[Tracking + Confirmation]
D5 --> E[Live UI]
D5 --> F[Alerts]
D5 --> G[Snapshots / Events]
D5 --> H[Performance Logs]
The system is motion-first, not class-first.
In practice that means:
- a target does not trigger just because one noisy frame changes
- it must remain present over multiple frames
- it must move enough to be considered meaningful
- known nuisance regions can be masked
- false-alarm patterns can be filtered without discarding distant targets entirely
That tradeoff is important for long-range scenes where raising thresholds too aggressively can hide real distant movement.
This project demonstrates work across:
- desktop application design
- RTSP / ONVIF / recorder integration
- long-range motion analytics
- operator-oriented UI design
- thermal-scene nuisance reduction
- real-time performance tuning
- alert workflow design
- deployment-focused monitoring and profiling
Designed for cases where movement is visible before classification is reliable.
Uses confirmation logic, exclusion zones, and filtering to reduce nuisance detections in outdoor and thermal scenes.
Supports multiple live sources with runtime controls and performance monitoring.
Focuses on fast controls, per-source settings, visual clarity, and actionable alerts.
Includes profiling and perf-log support to make deployment decisions data-driven rather than guessed.
motionguard-showcase/
README.md
assets/
README.md
docs/
client-value.md
performance-and-ops.md
problem-and-solution.md
system-design.md
Additional image guidance and optional future assets are documented in assets/README.md.
The production repository is private because it contains non-public source code and internal materials.
This public repository is intended to show:
- the problem space
- the system architecture
- the product reasoning
- the technical tradeoffs
- the performance approach
- the portfolio value of the work
If you want to discuss long-range motion detection, surveillance analytics, or the design decisions behind this project, feel free to connect through GitHub or LinkedIn.







