\section{Results}
\label{sec:results}

We first present cross-dataset recall performance, then analyze per-video WEPDTOF breakdown to understand failure modes, and conclude with memory efficiency enabling multi-camera deployment.

\subsection{Cross-Dataset Generalization}

Table~\ref{tab:cross_dataset} shows \textit{CHURI}'s performance across three retail surveillance benchmarks with diverse camera viewpoints and person densities.


\textit{CHURI} achieves 78.2\% recall on WEPDTOF overhead fisheye (+26.1pp over YOLO), demonstrating robustness to viewpoint shift where COCO-pretrained detectors degrade from 89\% AP (frontal) to 52.1\% (overhead). The zone-level approach proves particularly effective on overhead perspectives where people compress to near-square aspect ratios; zone averaging ($90\times67.5$ pixels) captures person-scale motion (a typical $200\times400$ pixels span 2-3 zones) while sticky tracking sustains trajectories across YOLO dropouts.

From the MERL Shopping frontal perspective, \textit{CHURI} achieves 87.6\% recall (+52.6pp over YOLO), effectively handling checkout occlusions and queue dynamics where people frequently pause. The dual learning rate mechanism prevents stationary absorption; without occupancy-aware updates, MOG2 achieves only 40.5\% recall as shoppers browsing merchandise disappear into the background. Innovatiana behavioral anomalies yield 92.1\% recall (+7.6pp), maintaining performance despite sparse density (1.4 avg people), where background subtraction typically underperforms due to limited foreground samples. The consistent improvement across fisheye, perspective, and behavioral scenarios validates the generalization of zone-BGS beyond viewpoint-specific tuning (Figure~\ref{fig:tracking_robustness}).



\subsection{WEPDTOF Scenario Analysis}

\textbf{Best case} (empty\_store): 100\% recall (1.0/1.0 detected) versus YOLO 25\%, demonstrating 300\% relative improvement when sticky tracking sustains a lone shopper across 56 frames where YOLO fails 75\% of frames due to overhead distortion, but zone-BGS maintains foreground mask continuity. \textbf{Crowded scene} (call\_center): 76.7\% recall (21.4/27.9) versus YOLO 55.9\%, with 37.2\% improvement as zone-BGS captures stationary people absorbed by per-pixel MOG2 (40.5\% recall). \textbf{Challenging occlusion} (it\_office): 59.3\% recall (6.9/11.7) versus YOLO 34.2\%, achieving 73.2\% improvement through sticky tracking across 50+ frame YOLO dropouts when office workers move behind furniture. Jewelry store scenarios show $>$100\% recall due to false positives from reflective display cases; oscillation suppression reduces but does not eliminate these artifacts.

\textbf{Identity Consistency:} While our recall metric measures track count, we qualitatively analyzed tracking quality on the high-density call\_center scenario (27.9 avg people, 96 frames). Track fragmentation occurs primarily at zone boundaries when people cross $90\times67.5$ pixel grid cells. Of 27.9 ground truth people, CHURI produced 21.4 detected tracks with an estimated 12-15\% fragmentation rate (some people split into 2 segments due to zone boundary crossings or temporary occlusions). The 50-frame sticky tracking mechanism mitigates this by maintaining track persistence across YOLO dropouts, though zone-level discretization (256 zones vs 1.5M pixels) trades finer-grained identity consistency for $6{,}131\times$ memory reduction and stationary person handling.

\subsection{Multi-Camera Scalability}

Table~\ref{tab:scalability} compares resource consumption across methods.

\begin{table}[t]
\centering
\caption{Memory and multi-camera scalability on Raspberry Pi 5. Zone-level storage enables 8-camera deployment versus 2-4 cameras for baseline methods.}
\label{tab:scalability}
\small
\resizebox{\columnwidth}{!}{%
\begin{tabular}{@{}lcccccc@{}}
\toprule
Method & Mem/Cam & 8-Cam & Max & FPS & CPU & RAM \\
       & (KB)    & Total & Cams & /Cam & (\%) & (GB) \\
\midrule
\textit{CHURI} & 6.1 & 50 KB & 8 & 2.0 & 129 & 1.45 \\
MOG2 & 94,000 & 752 MB & 4 & 2.0 & 127 & 2.1 \\
KNN & 70,000 & 560 MB & 4 & 2.0 & - & 1.9 \\
Per-Pixel & 37,400 & 299 MB & 2 & 2.0 & 135 & 2.8 \\
\bottomrule
\end{tabular}%
}
\end{table}

Zone-level storage (6.1 KB per camera) enables 8-camera deployment on Raspberry Pi 5 consuming 50 KB total background model memory versus 752 MB for MOG2 (4 cameras maximum) or 299 MB for per-pixel adaptive BGS (2 cameras maximum). This $6{,}131\times$ reduction versus per-pixel methods stems from storing 256 zone statistics ($16\times16\times3$ floats = 3,072 bytes per array for mean and variance) versus 1,555,200 pixel statistics. At 2 FPS per camera, 8-camera \textit{CHURI} utilizes 129\% CPU (1.96 avg FPS achieved) and 1.45 GB RAM, leaving 81.9\% memory headroom for system operations. MOG2/KNN saturate at 4 cameras (127\% CPU, 2.1 GB RAM) while per-pixel methods fail beyond 2 cameras (135\% CPU, 2.8 GB RAM), validating zone-BGS as the enabling factor for affordable multi-camera edge deployment (Figure~\ref{fig:cpu_distribution}).

\begin{figure}[t]
\centering
\includegraphics[width=\linewidth]{figures/cpu_distribution}
\caption{CPU usage distribution comparison on Raspberry Pi 5 across 300-minute deployments. Zone-level \textit{CHURI} supports 8 cameras at mean 168.5\% CPU (multi-core utilization exceeds 100\% baseline) versus 2 cameras for per-pixel BGS (85.0\%), 3 for MOG2 (120.1\%), and 4 for KNN (157.0\%). Lower per-camera memory overhead (6.1 KB vs 37.4 MB) enables multi-camera scaling despite higher aggregate CPU usage.}
\label{fig:cpu_distribution}
\end{figure}
