Moving Regions, Not Moving Objects: Segmenting What Actually Moves under Camera Motion
Organizations: Kosmo Research · Automotive Engineering Department, Jilin University · Xiamen University · School of Software, Tsinghua University
Abstract
Moving object segmentation is conventionally formulated at the sequence and object level, marking an entire instance as moving once it moves anywhere in a video. Recent instantaneous formulations distinguish moving from stationary intervals, but still generate masks at the object level through frozen segmentation foundation models. Because the mask is derived from an instance-level proposal, motion is typically attributed to the entire instance rather than localized to the regions that actually move. Moreover, such instance-level predictions can produce masks even when no part of the instance is actually moving, revealing a more fundamental issue: motion is not an intrinsic property of an instance; it can only be determined by comparing at least two frames. Building on this premise, we introduce MoRSe, which jointly interprets two frames to predict a moving-region mask, distinguishing actual scene motion from apparent motion induced by the camera. A single RGB encoder replaces multi-stage foundation stacks, so no optical flow, point tracks, or separate mask generator is needed at inference. We release MoRSe-5K, a benchmark of 42 sequences with Static, Dynamic-Static, and Dynamic settings designed to evaluate the model's ability to distinguish and localize moving and stationary regions under different camera and scene motion conditions. MoRSe outperforms both specialized moving object segmentation methods and dense 4D reconstruction methods with motion-thresholded predictions, while producing the fewest false positives on sequences where nothing moves.
Figures & tables
| Static | Dynamic-Static Dynamic | ||||||||
| Moving region | Moving object | ||||||||
| Method | Native output | PER | FER | ||||||
| Dense 4D reconstruction: predict scene flow, converted to a mask by thresholding | |||||||||
| Trace Anything † | trajectory field | 21.01 | 100.00 | 32.10 | 35.90 | 34.00 | 30.18 ∗ | 38.23 ∗ | 34.21 ∗ |
| Any4D † | scene flow | 0 0.46 | 0 18.70 | 27.30 | 29.80 | 28.60 | 33.80 ∗ | 38.28 ∗ | 36.04 ∗ |
| 4RC † | scene flow | 0 0.53 | 0 18.20 | 40.50 | 41.50 | 41.00 | 39.56 ∗ | 43.69 ∗ | 41.62 ∗ |
| Precision | Recall | ||
|---|---|---|---|
| 2 | 86.7 | 80.4 | 72.1 |
| 4 | 86.0 | 82.2 | 72.9 |
| 8 | 84.8 | 83.3 | 73.0 |
| DAVIS16-M | FBMS-59 | MoCA | |||||||
| Method | |||||||||
| OCLR † ( Xie et al., 2022 ) | 70.25 | 69.60 | 69.92 | 61.71 | 62.87 | 62.29 | 12.08 | 17.86 | 14.97 |
| ABR † ( Xie et al., 2024a ) | 74.02 | 71.81 | 72.91 | 73.48 | 75.32 | 74.40 | 0 8.80 | 14.71 | 11.75 |
| FlowSAM † ( Xie et al., 2024b ) | 37.56 | 38.18 | 37.87 | 40.00 | 41.89 | 40.95 | 29.81 | 24.54 | 27.17 |
| SegAnyMo † ( Huang et al., 2025 ) | 75.89 | 80.82 | 78.35 | 68.80 | 76.07 | 72.44 | 58.81 | 66.10 | 62.46 |
| RoMo † ( Goli et al., 2025 ) | 70.11 | 73.87 | 71.99 | 58.86 | 61.07 | 59.96 | 11.50 | 12.39 | 11.94 |
| Variant | wJF | PER | FER |
|---|---|---|---|
| ( ) | (%) | ||
| Default (MoRSe) | 77.39 | 0.273 | 1.45 |
| Low-level branch | |||
| ResNet-18 | 77.27 | 0.348 | 2.07 |
| ResNet-34 | 77.41 | 1.448 | 2.64 |
| ResNet-50 | 78.23 | 2.428 | 2.80 |
Appendix figures & tables10 assets
Supplementary material from the paper’s appendix.
Appendix
| Source | Seq. | Frames | Source | Seq. | Frames |
|---|---|---|---|---|---|
| 3D point tracking — 19 entries, 137,103 sequences, 19,260,636 frames; 92.3% of training samples | |||||
| PointOdyssey | 111 | 207,968 | Kubric4D | 808 | 48,480 |
| CoTracker3-Kubric | 5,827 | 699,240 | Flock4D | 950 | 434,003 |
| TAPIP3D-Kubric | 10,950 | 262,800 | DynamicReplica | 8 | 2,400 |
| SynthVerse | 26,187 | 4,934,809 | Stereo4D | 81,962 | 12,128,259 |
| Syn4D | 565 | 168,787 | Waymo | 5,497 | 131,928 |
| Group | Quantity | Value |
| Query sampler | Motion-region share | (171 of 1,024) |
| Boundary-band share | 0 (band disabled) | |
| Static/background share | (uniform, static first) | |
| Objectives | Dice weight | 0.5 |
| BCE weight | 0.5 | |
| Mask loss scale | 3.0 |
| Method | Criterion | Value | Provenance and rationale |
|---|---|---|---|
| Any4D | Scene-flow magnitude | 0.1 | Official default. Released custom-data path ( demo_inference.py , FLOW_THRESH ) with use_scene_flow_mask_refined . Its gates are kept: MoGe mask eroded , depth consistency, one dilation. |
| 4RC | Max world displacement | 0.025 | Official default. Released track visualizer ( viser_visualizer_track.py , DISP_THRESH ). |
| MoVieS | Window maximum of predicted motion | 0.05 | Substituted. The released mask_by_motion value of 0.005 is calibrated for rendered splat flow and floods the frame under window-maximum aggregation. We take 0.05 from an 11-value sweep over , a plateau minimizing full-resolution PER (0.0154 at 0.05 versus 0.1791 at 0.005). |
| Trace Anything | Control-point variance map, segment-wise log-Otsu | Auto | Automatic. Released inference protocol ( infer.py ); no manual parameter. |
| VGGT4D | QK-clustering score, window-wise adaptive multi-Otsu, then RefineDynMask pruning | Auto | Automatic. Released demo pipeline; no manual parameter. |
| UniQuery4R (backbone) | warp3d-delta magnitude | 0.005 | Swept. A smooth sweep over peaks at the same value under both ground-truth variants of Table 1 . |
| 2 | 4 | 8 | 16 | 32 | |
| Precision | |||||
| DAVIS16-M | 87.4 | 87.1 | 86.6 | 86.0 | 85.2 |
| DAVIS17-M | 88.2 | 87.8 | 87.3 | 86.8 | 85.9 |
| SegTrackv2 ( Li et al., 2013 ) | 80.8 | 79.8 | 77.8 | 75.1 | 72.6 |
| FBMS-59 | 89.8 | 89.5 | 89.2 | 89.0 | 89.0 |
| MoCA | 87.5 | 86.0 | 83.2 | 80.3 | 76.6 |
| Variant | wJF | PER ( ) | FER (%) |
|---|---|---|---|
| Default (MoRSe) | 77.39 0.85 | 0.273 0.263 | 1.45 0.99 |
| Low-level branch | |||
| ResNet-18 | 77.27 0.70 | 0.348 0.049 | 2.07 0.51 |
| ResNet-34 | 77.41 0.74 | 1.448 1.605 | 2.64 0.90 |
| ResNet-50 | 78.23 0.55 | 2.428 2.985 | 2.80 1.46 |
| removed | 76.38 0.03 | 1.898 1.212 | 2.52 0.68 |
| Model | Total params. (M) | Precompute (ms) | Core (ms) | Total (ms) | FPS | Peak mem. (GB) |
|---|---|---|---|---|---|---|
| MoRSe | 1,651 | 30.5 | 42.4 | 72.9 | 13.7 | 9.4 |
| Setting | Precompute (ms) | Core (ms) | Total (ms) | FPS |
| Processed shape ( , stride 4) | ||||
| 26.1 | 35.4 | 0 61.5 | 16.3 | |
| 26.2 | 35.4 | 0 61.7 | 16.2 | |
| 33.5 | 47.1 | 0 80.5 | 12.4 | |
| 35.2 | 50.6 | 0 85.8 | 11.7 | |
| 42.9 | 62.7 | 105.6 | 0 9.5 | |