A surveillance camera that recognizes a person is useful. A surveillance camera that recognizes what a person is doing is operationally decisive. Human pose estimation converts a video frame into a skeleton of joint coordinates, and that skeleton becomes the input to an action-recognition layer that distinguishes a sentry on patrol from an intruder crawling toward a wire. By abstracting away clothing, camouflage, lighting, and background, the skeleton representation generalizes across exactly the conditions that defeat appearance-based detectors. This article walks through the operational drivers, the skeleton models that run on camera-embedded hardware, action recognition for threat indicators, the realities of occlusion in the field, privacy and rules-of-engagement constraints, the model-size trade-offs of edge deployment, and how detections reach the common operating picture as part of a broader on-device defense computer vision capability.
Operational drivers for pose estimation in military surveillance
Perimeter and area surveillance generates more video than any operator can watch. A defended position ringed by a dozen cameras produces a continuous stream in which a meaningful event — someone climbing a fence, dropping into a prone firing position, emplacing a device — occupies a few seconds out of hours of empty frames. The operational problem is not capturing video; it is surfacing the few seconds that matter. Pose estimation paired with action recognition is the layer that does this surfacing, turning raw imagery into a small number of typed, geolocated alerts that an operator can act on.
The reason pose works where simpler approaches fail is that human intent expresses itself through posture and motion. A bounding-box detector tells you a person is present; it cannot tell you whether that person is walking past or shouldering a weapon. The geometry of the joints — the angle of the elbow, the alignment of shoulder to wrist, the horizontal profile of a crawling body — encodes the action directly. Because the skeleton discards appearance, a model trained on the pose of a raised weapon recognizes that pose whether the subject wears a uniform, civilian clothing, or full camouflage, and whether the scene is lit by daylight or thermal imaging.
The skeleton representation also carries a data-handling advantage that matters in the defense context. A frame of pose data is a few dozen floating-point coordinates rather than a megabyte of pixels. That compactness lets the analysis run on the camera node itself, lets the detection event cross a constrained tactical link without sending video, and — as discussed below — makes a privacy-preserving mode practical in which raw imagery never leaves the node at all.
Skeleton models: OpenPose, MediaPipe, and ViTPose at the edge
Pose estimation models fall into two architectural families. Top-down models first detect each person with a bounding box, then estimate the skeleton inside each box; their cost scales with the number of people in the frame. Bottom-up models, of which OpenPose is the canonical example, detect all joints in the frame at once and then associate joints into individual skeletons; their cost is roughly constant regardless of crowd size, which makes them attractive for dense perimeter scenes. The trade-off is that bottom-up association is harder and slightly less accurate per person, while top-down models give cleaner single-person skeletons at the cost of degrading in crowds.
For power-constrained edge nodes, MediaPipe BlazePose and Google MoveNet are the workhorses. Both are single-person, top-down style models tuned for real-time inference on mobile SoCs and accelerators such as the Coral Edge TPU, sustaining 30 or more frames per second under 5 W. They produce a 17-to-33 keypoint skeleton with per-joint confidence, which is exactly the input an action classifier needs. For multi-person scenes on a modest power budget, a reduced OpenPose or the more recent RTMPose family balances throughput against the number of people per frame.
ViTPose, which applies a plain vision transformer to the pose problem, sits at the high-accuracy end. It outperforms convolutional models on benchmark keypoint precision, particularly for unusual postures and partial views, but its compute and memory footprint demands Jetson Orin class hardware. The practical selection rule is to match the model to three constraints at once: the power available at the node, the number of people expected per frame, and how precise the keypoints must be for the downstream action classifier to discriminate the threat actions of interest. There is no single best model — there is a best model for a given mounting position and mission.
Key insight: The most common deployment mistake is selecting a pose model for its benchmark keypoint accuracy in isolation. Action recognition does not need every joint located to sub-pixel precision — it needs the joints that distinguish the target actions located reliably across the actual viewing geometry. A model that scores two points lower on a standard benchmark but holds calibrated confidence on the shoulder, elbow, and wrist at the camera's real range and pitch angle will produce fewer false weapon-raise alerts than a higher-scoring model evaluated only on frontal, well-lit imagery.
Action recognition for threat indicators: raised weapons, prone postures, crowd dynamics
A single skeleton is a snapshot; an action is a trajectory. Action recognition takes a sliding window of skeletons over time — typically one to three seconds — and classifies the motion pattern. The dominant architecture is the spatio-temporal graph convolutional network (ST-GCN), which treats the skeleton as a graph whose nodes are joints and whose edges follow the body's natural connectivity, then convolves across both the spatial graph and the time axis. This lets the model learn that a raised weapon is a particular evolving geometry of shoulder, elbow, and wrist, that a prone or crawling posture is a sustained low horizontal profile, and that fence climbing is a characteristic alternating limb sequence with the body rising vertically.
Each recognized action carries a confidence score, and the operational logic should never alert on a single frame. A weapon-raise that appears for one frame and vanishes is almost always a pose-estimation artifact; a weapon-raise that persists across a one-second window with high confidence is a genuine event. The system therefore applies both a confidence threshold and a temporal-persistence requirement, and these thresholds are calibrated against field data to hit a specified false-alarm budget. This is the same discipline of confidence-gated, human-reviewed alerting that governs automated ISR data triage at the edge, where the goal is to reduce operator load without hiding real events.
Crowd dynamics extend pose-based recognition from the individual to the group. By tracking many skeletons across frames, the system can flag emergent patterns — a crowd converging on a gate, a sudden dispersal consistent with a threat stimulus, or one individual moving counter to the prevailing flow. These group-level behavioral signals are harder to specify than single-person actions and are best treated as advisory cues that direct an operator's attention rather than as definitive classifications, because the same motion pattern can have benign or hostile causes depending on context the camera cannot see.
Handling occlusion and partial visibility in field surveillance conditions
Laboratory pose estimation assumes a clear, frontal view. Field surveillance never provides one. Subjects move behind vegetation, walls, vehicles, and each other; they present oblique angles; they leave and re-enter the frame. A pose pipeline that assumes full visibility produces a stream of broken skeletons and spurious action labels. Robust field deployment treats occlusion as the normal case, not the exception.
The first line of defense is the per-joint confidence that every modern pose model emits. Rather than treating the skeleton as a fixed set of coordinates, the downstream logic reasons over which joints are reliably observed and which are occluded, and it weights or masks the uncertain joints accordingly. Temporal filtering carries this further: a Kalman filter or simpler smoothing over the joint trajectories propagates a plausible position through a brief occlusion, so that a subject who passes behind a tree for half a second does not generate a new, unlinked track on the far side.
The action classifier itself must be trained for occlusion. Training with joint-dropout augmentation — randomly removing joints during training to simulate occlusion — produces a classifier that still recognizes a crawling posture when the legs are hidden by undergrowth or a weapon-raise when the lower body is behind cover. When occlusion becomes severe enough that joint confidence collapses across the skeleton, the correct behavior is not to guess: the system reports a low-confidence detection or no detection, leaving the ambiguous frames for the operator rather than emitting a confident but wrong action label.
Privacy and rules of engagement constraints on surveillance AI
Surveillance AI that observes people operates under legal and policy constraints that are as binding as the technical requirements, and the pose pipeline must be architected to satisfy them rather than bolting compliance on afterward. The skeleton representation is a genuine asset here. Because the action classifier needs only the joint coordinates, the node can run in a skeleton-only mode in which raw video is processed in volatile memory and never written to disk or transmitted — only the anonymized skeleton and the resulting action label persist. This supports data-minimization obligations directly, and it has an operational benefit: a node captured or compromised yields no stored imagery of the people it observed.
Equally important is the boundary between detection and action. A pose-based action detection is an advisory cue for a human operator, never an autonomous engagement trigger. Rules of engagement require a person in the loop to interpret a flagged event — to apply the context the camera lacks, to confirm or dismiss the alert, and to authorize any response. The architecture reinforces this by routing detections into the operator's picture as typed markers that demand human acknowledgment, a principle that connects to the broader case for explainable AI in defense decision-making, where an operator must be able to understand why a system raised a given alert.
Finally, scope is configurable because the legal authority governing each deployment differs. Retention windows, geographic masking that excludes areas outside the authorized surveillance zone, and the specific action classes the system is permitted to flag are all set per deployment to match the applicable authority. A system that flags only weapon-raise and fence-climb inside a defended perimeter is a different policy posture from one that logs all human movement across a wide area, and the same software must be able to enforce either, on a per-node basis, with the configuration auditable after the fact.
Edge deployment: model size vs accuracy trade-offs on camera-embedded hardware
Running pose estimation on the camera rather than in a data center is what makes the privacy mode, the constrained-link operation, and the low-latency alerting possible — but it imposes a hard ceiling on model size. The deployment task is to fit a pose model and an action classifier together within the node's compute, memory, and power envelope while preserving enough accuracy to meet the false-alarm budget. The principal lever is quantization: converting the model weights and activations to INT8 typically yields a three-to-four-fold inference speedup and a comparable memory reduction, usually at the cost of one to two percent accuracy, provided the quantization is calibrated on representative field data rather than generic imagery.
Input resolution is the second lever and often the more consequential one. A pose model run at 256x256 is far cheaper than the same model at 512x512, but a subject at long range may occupy too few pixels for the lower resolution to locate joints reliably. The resolution must be matched to the worst-case range the camera must cover; a long perimeter camera and a close choke-point camera have genuinely different requirements, and using one configuration for both wastes compute on the near camera and misses detections on the far one. Running the pose model and the ST-GCN classifier concurrently also means the two must share the accelerator, so their combined budget — not either model alone — is the real constraint.
Hardware selection follows from these levers. A single-person choke point on battery power is well served by a Coral Edge TPU or mobile SoC running a quantized BlazePose at full frame rate. A multi-person perimeter scene that must run a heavier pose model and an action classifier together calls for a Jetson Orin Nano or Orin NX, accepting the higher power draw in exchange for the throughput. The endurance niche — covert, long-dwell nodes on battery — pushes toward the smallest viable model, the lowest resolution that still detects at range, and aggressive duty-cycling that wakes the full pipeline only when a motion trigger fires.
Integrating detections into the common operating picture via CoT
A detection that stays on the camera node is invisible to the force. Its value is realized only when the typed, geolocated event reaches operators and fusion engines on the common operating picture. The integration standard in the TAK ecosystem is Cursor on Target (CoT): each confirmed action detection is published as a CoT event carrying the action class, the confidence score, the timestamp, and a geographic point. The point is derived by projecting the subject's image-plane position to the ground using the camera's known position, orientation, and field of view, turning a pixel location into a map coordinate.
The CoT event type code is selected to reflect the detection class and the rules-of-engagement posture — an observation report rather than a hostile designation unless confidence and authority permit — and the CoT detail field carries the structured extensions: action class, confidence, the contributing node identifier, and a thumbnail reference if policy allows. TAK Server's subscription model delivers the event to every connected ATAK client within seconds, where it appears as a categorized map marker the operator can acknowledge, investigate, or dismiss. The detection never bypasses the operator; it is presented for human judgment.
Fusion across adjacent nodes is what turns isolated detections into tracks. When neighboring cameras report the same subject moving through overlapping fields of view, a server-side fusion service correlates the detections by time and geometry and stitches them into a continuous track across the surveilled perimeter, so that an intruder crawling from one camera's coverage into the next appears as a single moving contact rather than a series of unconnected alerts. Nodes operating through communications-denied periods buffer their detections with precise timestamps and replay them on reconnection, reconstructing the event history on the picture for after-action review.
Bring behavioral detection into your operational picture
Corvus SENSE aggregates behavioral detection events from edge-deployed surveillance nodes into the common operating picture, enabling operators to monitor and respond to anomalous activity across large perimeters.
This analysis was prepared by Corvus Intelligence engineers who build mission-critical ISR and field applications for defense and government organizations. Learn about our team →