// Reference Architecture

Warehouse Safety Edge AI: Forklift and Pedestrian Monitoring Architecture

Last updated: July 2026

A practical industrial edge AI deployment pattern for detecting forklifts, pedestrians, restricted-zone entry, and near-miss risk using PoE cameras, Jetson Orin NX, and low-latency local alerts.

4-8x 1080p cameras
Orin NX 16GB
100-250ms local alerts
Event-first retention

Verdict

For most warehouse safety deployments, Jetson Orin NX 16GB is the best-fit platform. It has enough headroom for 4-8 industrial cameras, person/forklift detection, zone rules, and local alerting without the cost of AGX Orin.

Try this in System Designer to validate your warehouse-specific constraints.

Architecture Overview

Warehouse safety workloads need low-latency local response. The edge node should process video on-site, trigger local alerts immediately, and send only events, clips, and safety metrics to the cloud or dashboard.

Deployment Summary

Use caseForklift monitoring, pedestrian detection, restricted-zone alerts, near-miss evidence
Cameras4-8 PoE cameras
Resolution1080p recommended, 4K only for detail-critical zones
Frame rate15-30 FPS depending on vehicle speed and latency target
Latency targetUnder 250 ms for local alerts
RetentionEvent clips 30-90 days, continuous optional

Latency Budget for Safety Alerts

Warehouse safety is fundamentally different from recording-only surveillance. In a recording workload, a two-second delay between event and disk write is irrelevant — the footage exists either way. In a safety workload, the alert only has value if it reaches the operator while the situation is still developing. A beacon that fires after a forklift has already crossed a pedestrian zone documents an incident; it does not prevent one. That is why this architecture targets local alerts in the 100-250 ms range and keeps the entire detection-to-alert path on the edge node.

The end-to-end latency is not dominated by inference. Break the budget down per stage:

Stage Contribution Notes
Frame interval~67 ms at 15 FPS, ~33 ms at 30 FPSWorst-case wait for the next frame that shows the event. Pure arithmetic: 1000 ms / FPS.
Camera encode + RTSP + decodeVaries by camera and queue depthOften the largest and least visible contributor. Keep decode queues short; deep frame queues trade latency for smoothness.
InferenceSingle-digit milliseconds per frameA small YOLO-class detector in INT8 with TensorRT runs at roughly 5 ms per 640x640 frame on Orin NX 16GB even in 15W mode. Inference is rarely the bottleneck.
Zone rules + trackingMillisecondsCPU-side logic; dwell-time filters add deliberate delay to suppress false alarms — count that delay in the budget.
Alert outputNear-zero for relay, variable for networkA local relay closure is effectively instant; MQTT or webhook paths add network hops.

Two practical consequences follow. First, frame rate matters more than model speed: at 15 FPS the frame interval alone can consume a quarter of a 250 ms budget, which is why fast-vehicle zones justify 30 FPS while slow pedestrian-only zones can run 15 FPS. Second, measure the full pipeline, not the model. Timestamp a physical event in front of a camera and log when the alert fires; that number is the one that matters, and it is usually several times the raw inference latency.

Model Selection: Family, Size, and Precision

Forklift and pedestrian monitoring is a two-class detection problem at moderate distance, which puts it squarely in the territory of small-to-medium single-stage detectors (YOLO-family) compiled with TensorRT. TensorRT delivers roughly 2-5x better throughput than running the same model in PyTorch on Jetson, so treat engine compilation as mandatory for a production safety system, not an optimization.

Variant Size

The nano-size variants are tempting for headroom but risky here: YOLOv8n at INT8 reaches a mAP50-95 of roughly 34-36 on COCO, which is adequate for coarse presence detection but weak on small or partially occluded objects — exactly what a person behind pallet racking looks like. The small and medium variants are the practical floor for safety alerting. On Orin NX 16GB, a small-variant YOLO detector at INT8 benchmarks at roughly 188 FPS in 15W mode, which comfortably services 8 cameras at 15-30 FPS with headroom for tracking.

Precision

INT8 is the default. On the same Orin NX at 15W, the small variant runs about 188 FPS at INT8 versus about 137 FPS at FP16 — roughly 37% more throughput for the same power. That margin is what pays for a medium-size model or higher per-camera frame rates. Validate INT8 accuracy on footage from your actual cameras (angles, lighting, occlusion patterns), since post-training quantization loss shows up on hard cases first. If validation shows unacceptable misses, step up to FP16 on the same variant before stepping up variant size.

Memory Fit

Memory is why this architecture specifies the 16GB module. A production JetPack image consumes roughly 2.5-3.5 GB of unified memory before any inference runs, and each decoded 1080p stream adds roughly 40-60 MB of decoder and buffer overhead. A warehouse pipeline with a medium detector at INT8 on 4 cameras lands around 5.5 GB total; 8 cameras with detection plus ByteTrack tracking lands around 8-10 GB. That fits a 16GB Orin NX with room for model updates, but it does not fit an 8GB module with safe margin. Keep model input at the standard 640x640 unless you have a measured reason to raise it — activation memory scales quadratically with input resolution.

Camera Placement Engineering

Camera placement determines whether the detector ever sees the event. Compute can be upgraded after installation; conduit and mounting points usually cannot, so placement deserves the most engineering time in the whole deployment.

Aisle Coverage Geometry

Warehouse aisles create two basic viewing options. A down-aisle view (camera at the aisle end, looking along its length) covers many meters of aisle with one camera, but objects far down the aisle occupy very few pixels and forklifts occlude pedestrians walking behind them. A cross-aisle view (camera looking across an intersection or crossing point) gives large, well-separated targets but covers only that crossing. The practical pattern is to use cross-aisle views at the points where risk concentrates — intersections, dock doors, walkway crossings — and treat down-aisle views as secondary context, not as the primary alert trigger.

Mounting Height and Field of View

Higher mounting widens coverage and reduces occlusion from racking, but it steepens the viewing angle and shrinks the apparent size of people, and it moves the camera into the warmest air in the building (see the thermal section below). Wider lenses cover more floor per camera but spend fewer pixels on each target. There is no universal height or focal length; the constraint is pixels on target after the frame is downscaled to the model input.

Validating Detection Distance

Do not guess detection range from a lens calculator. The detector sees the frame after it is resized to the model input (typically 640x640), so a person who looks fine in the 1080p stream may be only a handful of pixels tall at the model input. The reliable method: before permanent installation, temporarily rig each proposed camera position, record footage of a person and a forklift at the near, middle, and far edge of the intended coverage zone, run the actual model on that footage, and mark the distance where detection confidence becomes unstable. That distance — not the optical specification — defines the zone the camera can protect. Overlap adjacent zones so that the unstable fringe of one camera falls inside the reliable core of another.

Lighting and Backlight

Dock doors are the classic failure: a camera facing an open door sees silhouettes against daylight, and detection confidence collapses exactly where trucks and pedestrians mix. Face cameras away from doors where possible, or position them so the door is behind the camera. Verify placement at the darkest and brightest operating hours, not just at survey time.

Environmental Engineering: Dust, Charging Areas, Unheated Buildings

Fanless vs Actively Cooled Compute

The compute node in this architecture is not a fanless candidate. Passive cooling in a sealed enclosure tops out around 10-15W of sustained dissipation, while Orin NX operates in a 10-40W envelope depending on power mode — the platform is specified for active cooling. A warehouse without HVAC is also a semi-controlled environment (roughly 25-35°C in the guidance from the fanless deployment guide), which is exactly the range where passive designs need continuous monitoring rather than set-and-forget operation. Use an actively cooled enclosure and treat the fan as a maintained component. For the underlying reasoning, see the thermal design fundamentals guide: junction temperature is ambient plus dissipation times thermal resistance, so a warm warehouse eats margin that a lab bench never shows.

Dust

Warehouse air carries cardboard and pallet dust that loads heatsink fins and intake filters over months. Dense fin arrays clog fastest, so favor wider fin spacing and a filtered intake, and put filter inspection on the same maintenance cycle as the cameras. When validating thermals before deployment, repeat the load test with the heatsink deliberately fouled to simulate 6-12 months of field accumulation — a system that only passes with a clean heatsink will throttle mid-life.

Forklift Charging Areas

Charging areas are localized heat sources: chargers and battery banks warm the surrounding air well above the building average. The thermal guidance is the same as for any equipment placed near a heat source — measure temperature at the intended device location, not at the thermostat, and prefer mounting the compute node away from the charging zone even if that costs extra cable length. Charging areas are also high-traffic forklift zones, which makes them good camera coverage targets while being poor compute placement targets.

Unheated Warehouses and Ceiling Mounting

Cold buildings are thermally friendly to electronics but introduce cold-start considerations, and unheated buildings swing with the seasons — design for the upper end of the expected ambient range, not the average. Ceiling-level mounting deserves particular caution: warm air stratifies upward, so a node mounted high in the racking or in a ceiling cavity sits in the warmest air in the building and can accumulate heat over a shift (thermal soak) rather than reaching a steady state. Passive designs frequently fail in ceiling cavities for this reason. Wherever the node lands, monitor temperature and clock behavior with tegrastats and alert on sustained temperature rise, so cooling degradation shows up as a maintenance ticket instead of missed detections.

Power and Performance

Component Estimate
8 cameras x ~8-12W~64-96W
Industrial PoE switch overhead~15-30W
Jetson Orin NX~15-25W
Alert devices / enclosure / fans~10-30W
Total~105-180W

Expected Performance

Metric Expected range
Stable stream capacity4-8 streams
GPU utilization~55-80% depending on model and FPS
Local alert latency100-250 ms target
Thermal loadModerate; enclosure cooling recommended

PoE and Network Runs in a Warehouse

Warehouse camera runs are long. A camera at the far end of an aisle can be a substantial cable pull from the nearest network closet, and long runs change both the power and the bandwidth math.

Per-Port Budgets, Not Just Total Budget

The PoE standards define power at the switch port (PSE), not at the camera (PD). An 802.3af port is limited to 15.4W at the source; an 802.3at (PoE+) port supplies 30W at the source, which typically corresponds to about 25.5W available at the device after cable loss. The cameras in this architecture draw roughly 8-12W each, so 802.3at ports carry them comfortably even with IR illuminators — but check the per-port limit independently of the total switch budget. A switch can have plenty of aggregate budget left and still cut power to one port whose peak draw exceeds its per-port class. Size the total budget with 20-30% headroom above the summed camera load to absorb peaks and cable losses.

Cable Distance

Voltage drop grows with run length, and thin or low-grade Cat5e amplifies it. Use Cat6 for runs over 50 m, and do not plan PoE delivery at the 100 m Ethernet maximum under full camera load — the data link may survive where the power margin does not. If aisle geometry forces very long runs, it is usually cheaper to add a small industrial PoE+ switch closer to the camera cluster and backhaul over a single uplink than to fight voltage drop on eight individual runs.

Powering the Compute Node

It is possible to power Jetson-class compute from the same switch through an 802.3bt splitter, but the compute port then consumes a meaningful share of the PoE budget and couples the safety system's brain to the camera power domain. For a safety deployment, prefer a dedicated DC supply (ideally UPS-backed) for the Orin NX so a camera-side power event does not take down detection for every zone. Keep cameras on their own VLAN either way, and validate the aggregate ingress with the Network Bandwidth engine — H.265 on 4-8 cameras is well within a gigabit uplink, but 4K detail cameras and continuous recording change that picture quickly.

Alerting Integration: Relay vs Network

The alert output is the part of this system that must not fail silently, so design it by failure domain rather than by convenience.

Dry-Contact / Relay Outputs

A relay module driven by the edge node closing a dry contact into a stack light, buzzer, or existing safety circuit is the shortest possible path: no switch, no broker, no DNS, effectively zero added latency. If the network is down, the relay path still works as long as the node and the alert device have power. The limitations are equally simple — a contact closure carries one bit of information (alarm / no alarm) per circuit, and wiring runs from the node to each annunciator.

Network Alerts

MQTT, webhooks, and PLC integrations carry rich payloads — which zone, which class, confidence, a clip reference — and feed dashboards and reporting. Their failure domain is wider: they depend on the switch, the broker or receiving service, and any WAN hop. A cloud round-trip has no place in the primary alert path for the reasons covered above; use network alerts for supervision and record-keeping.

Combine Both, and Supervise the Pipeline

The robust pattern is layered: relay output as the primary in-zone alert, network alerts as the secondary path to supervisors and dashboards. Then supervise the pipeline itself. If the inference process is killed — for example by the Linux OOM killer when memory is undersized — alerts stop with no visible symptom. Run a watchdog that restarts the pipeline and emit a periodic heartbeat; treat a missing heartbeat as an alarm condition in its own right, because a safety system that is down is worse than one that is alarming.

Bottlenecks and Failure Modes

Primary risk: bad camera placement. In warehouse safety, coverage gaps, glare, occlusion, and blind corners can matter more than raw compute.

Failure mode What causes it Symptom Mitigation
Missed detectionsOcclusion, glare, poor camera anglesForklift/person not detected reliablyImprove placement, use overlapping zones, add lighting
Latency spikesToo many full-frame inferences or heavy modelsDelayed alertsUse ROI inference, smaller model, reduced FPS
False alarmsPoor zone rules or unstable trackingOperators ignore alertsTune zones, add dwell time, confidence thresholds
Storage pressureContinuous recording from all camerasShort retention or dropped clipsEvent-first storage, larger NVMe, lower bitrate
Thermal throttlingDusty enclosure or poor ventilationPerformance declines during shiftsIndustrial enclosure, filters, active cooling, monitoring
Camera vibrationRacking flex from forklift impacts and load handlingMotion blur, drifting zone boundaries, loosened connectorsMount to building structure rather than racking where possible, use locking/IP-rated connectors, re-verify zone calibration after rack work
Thermal soak near ceilingsWarm air stratifies upward; high-mounted node never reaches steady stateTemperature climbs over a shift, then clocks step downMount compute lower, active cooling, trend temperature with tegrastats and alert on sustained rise
Silent pipeline crashMemory exhaustion (OOM kill), software faultNo alerts at all — indistinguishable from a quiet dayWatchdog restart, periodic heartbeat, treat missing heartbeat as an alarm

Scaling Decisions

  • 2-4 cameras: Orin Nano Super can be enough for simple detection.
  • 4-8 cameras: Orin NX 16GB is the default recommendation.
  • 8-12 cameras: validate NX carefully or split zones.
  • 12+ cameras: move to AGX Orin or multiple edge nodes.
  • High-speed zones: prioritize FPS, latency, and camera placement quality.

Single Zone to Full Warehouse

Do not design the full-warehouse system on day one. The reliable path is to pilot one high-risk zone — typically the busiest aisle crossing or dock area — with 4-8 cameras and one Orin NX node, run it long enough to tune zone rules and dwell times against real traffic, and use the recorded footage to calibrate detection distance for your camera model and mounting style. The pilot answers the questions that determine the full design: actual pixels-on-target at your mounting heights, actual false-alarm sources (reflective wrap, high-visibility vests on racking, dock backlight), and actual thermal behavior of the enclosure over full shifts.

When expanding, prefer one edge node per zone over one central node for the building. Per-zone nodes keep the camera-to-compute path short, keep each failure domain to a single zone, and let each node drive its own local relay alerts. A central AGX Orin consolidating 12-16 cameras trades that isolation for lower per-camera cost and simpler model management — a reasonable trade for analytics, a worse one for safety alerting. Aggregate events, clips, and health heartbeats from all nodes into one dashboard regardless of topology, and roll out model updates zone by zone so a regression never blinds the whole building at once.

Validate This Architecture With EdgeAIStack

FAQ

What is the best Jetson for warehouse safety AI?

For 4-8 cameras, Jetson Orin NX 16GB is usually the best fit. For smaller deployments Orin Nano Super may work; for 12+ cameras or heavier models, AGX Orin is safer.

Does forklift monitoring need cloud AI?

No. Safety alerts should run locally to avoid cloud latency and connectivity risk. Use cloud for dashboards, reporting, clips, and model updates.

What matters most: compute or camera placement?

Camera placement often matters more. Poor angles, glare, occlusion, and blind corners can cause misses even with sufficient compute.

How much storage is needed?

With event clips instead of continuous video, 1-2TB can provide meaningful audit retention. Continuous recording needs much more capacity.

What frame rate do forklift detection cameras need?

Work backward from the latency budget: at 15 FPS the frame interval alone is ~67 ms, at 30 FPS it is ~33 ms. Fast-vehicle zones (main travel lanes, dock approaches) justify 30 FPS so the frame interval does not consume the alert budget; slow pedestrian-only zones can run 15 FPS. Inference throughput on Orin NX supports either.

Can the compute node run in a fanless enclosure?

Not for this platform. Passive cooling in a sealed enclosure tops out around 10-15W of sustained dissipation, while Orin NX operates in a 10-40W envelope and is specified for active cooling. A non-HVAC warehouse (roughly 25-35°C ambient) also sits in the range where passive designs need continuous monitoring. Use an actively cooled enclosure with a filtered intake and maintain the filter.

Should detection run at INT8 or FP16?

Default to INT8 with TensorRT — on Orin NX at 15W a small-variant detector benchmarks around 188 FPS at INT8 versus around 137 FPS at FP16, and that headroom pays for tracking or higher frame rates. Validate INT8 accuracy on footage from your own cameras first; if hard cases (occlusion, backlight) show unacceptable misses, step up to FP16 before moving to a larger model variant.