<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Yanzi Miao | Chang Nie</title><link>https://changnie.top/authors/yanzi-miao/</link><atom:link href="https://changnie.top/authors/yanzi-miao/index.xml" rel="self" type="application/rss+xml"/><description>Yanzi Miao</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sat, 31 Jan 2026 00:00:00 +0000</lastBuildDate><item><title>MRASfM: Multi-Camera Reconstruction and Aggregation through Structure-from-Motion in Driving Scenes</title><link>https://changnie.top/publications/mrasfm/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://changnie.top/publications/mrasfm/</guid><description>&lt;h2 id="driving-is-the-wrong-shape-for-photogrammetry"&gt;Driving is the wrong shape for photogrammetry&lt;/h2&gt;
&lt;p&gt;Image-based reconstruction for driving is usually handled by visual SLAM, and for HD mapping and novel-view synthesis the SLAM route has a structural limitation. Its estimates are incremental and locally optimized, which blocks global refinement, and the result is drift that accumulates over a long trajectory. Structure-from-motion does the opposite: it processes everything in a batch with a global bundle adjustment at the end. The offline nature that makes SfM impractical for a live robot is exactly what makes it attractive here, because it can spend computation a real-time system cannot.&lt;/p&gt;
&lt;p&gt;So the obvious move is to use SfM for driving. Three facts about driving data make that harder than it should be.&lt;/p&gt;
&lt;p&gt;The first is the capture geometry. Classic SfM assumes you walk around the subject and photograph it from many directions. A car drives down a corridor. Viewpoints are almost collinear, which is the worst case for the translation estimation that SfM depends on.&lt;/p&gt;
&lt;p&gt;The second is that data arrives fragmented. Driving scenes are captured over short durations with limited overlap, and drives covering the same area may be recorded weeks apart. There are often no shared images at all between two datasets that need to end up in the same map.&lt;/p&gt;
&lt;p&gt;The third is calibration, and this is the one that changed how we designed everything. Vehicle calibration is difficult, initial values contain errors, and those errors get worse on uneven terrain. So the extrinsics you have at the start of a drive are not the extrinsics you need, and they are also the strongest prior available. That tension runs through the whole design.&lt;/p&gt;
&lt;h2 id="what-prior-methods-assume"&gt;What prior methods assume&lt;/h2&gt;
&lt;p&gt;Multi-camera SLAM systems are accurate and require precise internal relative poses and intrinsics as input. They need calibration done before deployment, and they struggle to accommodate different camera configurations, which restricts flexibility in practice.&lt;/p&gt;
&lt;p&gt;Incremental SfM is the closest baseline, and our criticism of it is specific. It ignores camera-set priors during incremental reconstruction and applies them only afterward, in rigid bundle adjustment once the reconstruction is already complete. By that point, errors that accumulated during incremental estimation cannot be corrected. Rigid BA cannot undo drift that has already been baked into the structure. Per-image bundle adjustment has a related problem: it can leave the internal relative poses inconsistent from frame to frame.&lt;/p&gt;
&lt;p&gt;Global multi-camera SfM does fix the relative camera poses from the start, and it is sensitive to outlier matches and tends to degenerate when the estimated relative translations are collinear. In a driving scene the trajectory is close to collinear by default, so this is a structural hazard rather than an edge case.&lt;/p&gt;
&lt;p&gt;Odometry-guided SfM takes the opposite bet and uses odometry poses and camera extrinsics directly for registration. That demands highly precise extrinsic calibration and accurate odometry, which are exactly the two things field deployment cannot reliably supply. We borrow this line of work&amp;rsquo;s idea of using homography to identify overlapping image pairs. We do not borrow the assumption that the priors can be trusted.&lt;/p&gt;
&lt;p&gt;There is also a matching problem specific to the setting. Traditional descriptors produce limited feature points in low-texture images, and road scenes are full of low-texture surfaces.&lt;/p&gt;
&lt;p&gt;Finally, existing aggregation modules for merging reconstructions typically assume shared imagery between the segments being merged. In practice that imagery usually does not exist.&lt;/p&gt;
&lt;h2 id="what-makes-it-hard"&gt;What makes it hard&lt;/h2&gt;
&lt;p&gt;Priors have to be used without being trusted. Extrinsics and odometry are the strongest signal available and the least reliable thing on the vehicle. Trust them entirely and you get one family of failures; ignore them and you get another. The design space in between is narrow.&lt;/p&gt;
&lt;p&gt;Collinearity is a real degeneracy, not a numerical nuisance. Fixed-rig global methods hinge on relative translation estimates, and straight-line driving makes those ill-conditioned.&lt;/p&gt;
&lt;p&gt;The failure modes sit exactly where the useful signal is. The road surface occupies a large part of every image and has almost no texture, so it produces both few matches and bad ones. Worse, the edges of vehicle shadows are high-contrast and get detected as feature points. A shadow edge is not a scene point. When the shadow moves, that feature moves, which injects motion into the road surface precisely where the structure matters most.&lt;/p&gt;
&lt;p&gt;Occlusion behaves differently on a rig than on a single camera. One blocked camera on a monocular system is a total failure; on a surround rig the other cameras still see the world. But that redundancy is only worth anything if registration actually shares the pose, and per-camera estimation throws the advantage away.&lt;/p&gt;
&lt;p&gt;And robustness has a price. More cameras mean more poses to optimize in bundle adjustment, which reduces efficiency. The coverage that buys robustness is paid for in optimization size, and cancelling that cost is what a large part of our design exists to do.&lt;/p&gt;
&lt;h2 id="the-camera-set-is-the-unit"&gt;The camera set is the unit&lt;/h2&gt;
&lt;p&gt;Our idea is to change the atomic element of reconstruction. Instead of treating each image as an independent camera to be solved, we take the rigid unit, every image captured at the same instant, as the thing that gets a pose. That pose is by definition the vehicle&amp;rsquo;s pose at that moment.&lt;/p&gt;
&lt;p&gt;The benefit is that the pose of a rig factorizes into a time-varying vehicle pose and a static internal relative pose. One well-observed camera can carry the poses of the cameras that see nothing useful. The rig is estimated once rather than re-learned at every frame.&lt;/p&gt;
&lt;p&gt;The important part is how that factorization is applied. We use it as a reparameterization inside registration and bundle adjustment, not as a constraint imposed afterward. That single decision does three things at once. It reduces the pose variables from one per camera per timestamp down to one per timestamp plus one per camera. It keeps the optimized rig consistent across frames, because there is only one rig to be consistent. And it turns calibration from an input that must be correct into a quantity that can be corrected.&lt;/p&gt;
&lt;h2 id="building-a-reconstruction"&gt;Building a reconstruction&lt;/h2&gt;
&lt;p&gt;Correspondence search comes first. SuperPoint detects and SuperGlue matches, pairs whose matched points fall into different semantic categories are discarded, and geometric verification removes the rest. Pairs are not all tried: with the rough internal relative poses and vehicle poses in hand, we compute the approximate field of view of each image and only match pairs that could plausibly overlap. Filtering this way improves both efficiency and accuracy, since matching everything against everything is expensive and injects noise from pairs that were never going to share content.&lt;/p&gt;
&lt;p&gt;Registration then runs in three steps. PnP is estimated on the images with the richest correspondences. Those per-image estimates are converted into per-unit estimates and fused by local robust rotation averaging and translation averaging into a single unit pose. Every remaining image in that unit gets its pose by composing the unit pose with the calibration.&lt;/p&gt;
&lt;p&gt;That middle step is where the method sits between the two failure modes described earlier. It averages, like the global family, but it averages over unit hypotheses derived from reliable images rather than over raw relative translations, which is what makes it survive collinearity.&lt;/p&gt;
&lt;p&gt;The honest accounting of this module is narrow. It has minimal effect on average pose accuracy and efficiency, and it is particularly useful for handling occluded viewpoints. In scenes with rich correspondences the impact is less noticeable. We state that tradeoff rather than presenting the module as uniformly beneficial, because the value of redundancy is concentrated in the tail.&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-occlusion-on-one-camera-no-longer-fails-the-unit"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="Registration estimates a few well-observed cameras and derives the rest from rig geometry."
srcset="https://changnie.top/publications/mrasfm/camera-set-registration_hu_15bd2d6c03d3c2fd.webp 320w, https://changnie.top/publications/mrasfm/camera-set-registration_hu_e94cc5b258840200.webp 480w, https://changnie.top/publications/mrasfm/camera-set-registration_hu_29c5c9ef2f2a51f.webp 768w, https://changnie.top/publications/mrasfm/camera-set-registration_hu_3a53e7ff654a13d6.webp 1024w, https://changnie.top/publications/mrasfm/camera-set-registration_hu_6684702da025f980.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/mrasfm/camera-set-registration_hu_15bd2d6c03d3c2fd.webp"
width="1080"
height="625"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/mrasfm/camera-set-registration_hu_ed2109669bad9638.webp" target="_blank" rel="noopener"&gt;View full-size image ↗&lt;/a&gt;
&lt;figcaption&gt;Occlusion on one camera no longer fails the unit.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="getting-the-road-out-of-the-way"&gt;Getting the road out of the way&lt;/h2&gt;
&lt;p&gt;After a unit is registered, we fit a plane model to the road points with LO-RANSAC and remove them. This targets the shadow-edge problem directly. A moving shadow edge produces a feature that is not attached to the scene, and it lands on the largest and least textured surface in view, so the triangulation noise concentrates there by default. Removing those points improves reconstruction accuracy and accelerates convergence.&lt;/p&gt;
&lt;p&gt;The assumption being made is local flatness of the road, and our own real-world scenes include slope changes, so this is an approximation rather than a guarantee.&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-removing-shadow-driven-and-texture-poor-points-where-the-noise-concentrates"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="Road-surface points are filtered with a plane model before triangulation."
srcset="https://changnie.top/publications/mrasfm/road-filtering_hu_2fdd79d6221cc441.webp 320w, https://changnie.top/publications/mrasfm/road-filtering_hu_7f5e12d343a2756b.webp 480w, https://changnie.top/publications/mrasfm/road-filtering_hu_d555188bccd5e091.webp 768w, https://changnie.top/publications/mrasfm/road-filtering_hu_f0f498a58b673a65.webp 1024w, https://changnie.top/publications/mrasfm/road-filtering_hu_a4e020bd76b5cdae.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/mrasfm/road-filtering_hu_2fdd79d6221cc441.webp"
width="1080"
height="329"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/mrasfm/road-filtering_hu_a78118426cf63e4f.webp" target="_blank" rel="noopener"&gt;View full-size image ↗&lt;/a&gt;
&lt;figcaption&gt;Removing shadow-driven and texture-poor points where the noise concentrates.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="bundle-adjustment-on-the-rig"&gt;Bundle adjustment on the rig&lt;/h2&gt;
&lt;p&gt;Camera set bundle adjustment optimizes vehicle poses and internal relative poses under substitution constraints that express each camera pose in terms of the vehicle pose and the rig geometry, with a Cauchy loss for the local stage. The variables include intrinsics, vehicle poses, internal relative poses and scene points.&lt;/p&gt;
&lt;p&gt;There are two modes and the split matters. Local CSBA fixes intrinsics and internal relative poses and touches only newly registered units and their neighbours. Global CSBA optimizes everything across all registered units, and we trigger it when many units remain unoptimized.&lt;/p&gt;
&lt;p&gt;Global CSBA re-optimizing intrinsics and relative poses is the online recalibration capability claimed in the paper. It is also the practical payoff, because it converts the field&amp;rsquo;s least reliable input into an output. Local CSBA is cheaper, and it freezes exactly those parameters, which is the tradeoff: the cheap mode cannot fix calibration, and the mode that can fix it costs more.&lt;/p&gt;
&lt;p&gt;The variable reduction from one pose per camera per timestamp to one per timestamp plus one per camera is worth dwelling on. Six cameras over a long trajectory means the per-image formulation optimizes six times as many poses as it needs to, and every extra variable is another degree of freedom that noise can hide in. Fewer variables makes convergence faster and the result more consistent. Robustness and efficiency turn out to be the same lever here, which is not usually the case.&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-vehicle-poses-and-internal-relative-poses-are-refined-jointly-which-is-what-allows-calibration-to-improve-in-the-field"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="The rig is optimized once rather than re-estimated at every frame."
srcset="https://changnie.top/publications/mrasfm/camera-set-ba_hu_391a21fdb2ae00d7.webp 320w, https://changnie.top/publications/mrasfm/camera-set-ba_hu_3055e59701d6c74b.webp 480w, https://changnie.top/publications/mrasfm/camera-set-ba_hu_30675cf7ac5742e2.webp 768w, https://changnie.top/publications/mrasfm/camera-set-ba_hu_b2d2d986141c6f07.webp 1024w, https://changnie.top/publications/mrasfm/camera-set-ba_hu_6f03584da827f2b9.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/mrasfm/camera-set-ba_hu_391a21fdb2ae00d7.webp"
width="1080"
height="1029"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/mrasfm/camera-set-ba_hu_d2b24cbe094d9e3f.webp" target="_blank" rel="noopener"&gt;View full-size image ↗&lt;/a&gt;
&lt;figcaption&gt;Vehicle poses and internal relative poses are refined jointly, which is what allows calibration to improve in the field.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="merging-drives-that-share-no-images"&gt;Merging drives that share no images&lt;/h2&gt;
&lt;p&gt;Aggregation has to work without shared imagery, so the whole strategy is coarse-to-fine. Scenes are first placed in a global frame using satellite positioning, represented by trajectory midpoints: one scene sits at the geometric centre, its nearest neighbours become candidates, and homography-guided spatial pairs pick whichever candidate has the greatest visual overlap.&lt;/p&gt;
&lt;p&gt;The coarse placement is wrong by an unknown transform, because positioning error is larger than the alignment tolerance. So the transform itself becomes the variable. One image from the incoming scene is relocalized to get a refined pose, which yields the transform between the coarse placement and the true one, and that transform registers the entire rigid unit at once. Triangulation follows, then a transformation-based bundle adjustment optimizes the transform and the scene points while keeping the reference scene&amp;rsquo;s camera poses fixed.&lt;/p&gt;
&lt;p&gt;Registration, triangulation and adjustment iterate until every unit of the incoming scene has been absorbed. The merged result then becomes the new reference for the next scene, so aggregation proceeds as a chain rather than against a single global anchor. The reason is simple: chaining keeps error from originating at one fallible alignment.&lt;/p&gt;
&lt;p&gt;The whole stage is designed so aggregation never has to be exact at the coarse step, only close enough to relocalize.&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-satellite-positioning-places-the-scene-vision-refines-the-placement"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="Separately collected drives are bound together from coarse alignment to refined transform."
srcset="https://changnie.top/publications/mrasfm/multi-scene-aggregation_hu_862a8ae5a668a769.webp 320w, https://changnie.top/publications/mrasfm/multi-scene-aggregation_hu_735f3b73e75077d6.webp 480w, https://changnie.top/publications/mrasfm/multi-scene-aggregation_hu_f1a7db34e45bc66c.webp 768w, https://changnie.top/publications/mrasfm/multi-scene-aggregation_hu_7c340760013fc14d.webp 1024w, https://changnie.top/publications/mrasfm/multi-scene-aggregation_hu_45954c91809187d9.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/mrasfm/multi-scene-aggregation_hu_862a8ae5a668a769.webp"
width="1080"
height="967"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/mrasfm/multi-scene-aggregation_hu_b5d8bdb2f368dd04.webp" target="_blank" rel="noopener"&gt;View full-size image ↗&lt;/a&gt;
&lt;figcaption&gt;Satellite positioning places the scene; vision refines the placement.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="what-we-take-from-this"&gt;What we take from this&lt;/h2&gt;
&lt;p&gt;A physical invariant is best used as a reparameterization rather than a constraint. Enforcing rigidity after the fact cannot prevent the error that accumulated before. Making rigidity part of the variable structure prevents it from accumulating in the first place.&lt;/p&gt;
&lt;p&gt;Priors should prune, not conclude. Rough poses decide which pairs to match and where to start, and the geometry still comes from matched evidence. That is the line between our approach and the one we criticize.&lt;/p&gt;
&lt;p&gt;Design so priors can be corrected rather than merely trusted. Making relative poses optimizable is what turns the least reliable input into an output.&lt;/p&gt;
&lt;p&gt;And judge a module where its failure mode lives. Camera set registration barely moves average pose error, and it is the difference between working and failing when a camera is occluded. Aggregate metrics can hide a module&amp;rsquo;s entire value.&lt;/p&gt;
&lt;h2 id="what-it-still-assumes"&gt;What it still assumes&lt;/h2&gt;
&lt;p&gt;The method takes rough trajectories, rough calibration and semantic information as inputs. The semantic source is assumed rather than specified, and we report no sensitivity to the quality of those labels.&lt;/p&gt;
&lt;p&gt;Multi-scene aggregation is not ablated. The choice of roughly three candidate scenes and the geometric-centre reference heuristic are stated without justification or failure analysis.&lt;/p&gt;
&lt;p&gt;The rigid unit is defined purely by simultaneity, and we do not test what happens when that assumption weakens. Camera time-synchronization error and rig flex would both violate it, and neither is discussed. Online calibration is claimed but not characterized: we do not say under what motion diversity or camera count the global stage&amp;rsquo;s refinement of intrinsics and relative poses is well posed.&lt;/p&gt;
&lt;p&gt;The plane model presumes a locally flat road while our own deployment includes slope changes. Generality across different multi-camera configurations is asserted but exercised only on six- and seven-camera rigs. Dynamic objects beyond shadows appear in the motivation but have no dedicated treatment.&lt;/p&gt;
&lt;h2 id="where-it-leads"&gt;Where it leads&lt;/h2&gt;
&lt;p&gt;The contribution we would state is a change of unit, and everything else follows from it. What the change buys is worth spelling out: camera sets as atomic units for registration and refinement give robust pose estimation in complex environments and better efficiency than conventional per-camera methods. Combined with the road filtering and the aggregation stage, the pipeline produces a single map from drives that were never meant to be merged.&lt;/p&gt;
&lt;p&gt;We validated it in two directions on purpose. Real instrumented vehicles demonstrate that it holds up outside a dataset, and public benchmarks establish the accuracy claim against a conventional baseline. The practical statement of the stake is that intelligent vehicles can perceive their environment and estimate their own pose more reliably, which is what the downstream tasks actually consume.&lt;/p&gt;</description></item><item><title>MovSAM: A Single-image Moving Object Segmentation Framework Based on Deep Thinking</title><link>https://changnie.top/publications/movsam/</link><pubDate>Sun, 19 Oct 2025 00:00:00 +0000</pubDate><guid>https://changnie.top/publications/movsam/</guid><description>&lt;h2 id="a-photograph-contains-no-motion"&gt;A photograph contains no motion&lt;/h2&gt;
&lt;p&gt;Moving object segmentation is normally a measurement problem. You compare successive frames, or you compute optical flow, and the pixels that changed are the pixels that moved. The assumption is so standard that it stops being visible.&lt;/p&gt;
&lt;p&gt;It breaks in specific, practical ways. A pedestrian shifting their weight at the curb before stepping off produces almost no pixel change, and the intent is invisible to a frame-difference method. A vehicle&amp;rsquo;s own motion contaminates the comparison, since apparent movement in the image is a mixture of the other object&amp;rsquo;s motion and the camera&amp;rsquo;s own, and separating the two is not something a two-frame difference does. Occlusion makes pixel changes unreliable for anything partly hidden. And sometimes there is only one frame: if a camera fails or a communication link drops, the multi-frame pipeline does not degrade, it stops.&lt;/p&gt;
&lt;p&gt;There is also a simpler observation behind this work. A person looking at a photograph can usually point at the thing that is about to move. Not because they measured displacement, but because they read the scene: the posture, the contact, the loose fabric, the blur along an edge. The motion is inferred from semantics rather than observed from change.&lt;/p&gt;
&lt;p&gt;We wanted a system that could do that. Which means the temporal signal has to be replaced by something else, and language is the obvious candidate.&lt;/p&gt;
&lt;h2 id="what-earlier-methods-assume"&gt;What earlier methods assume&lt;/h2&gt;
&lt;p&gt;Optical-flow-based approaches use short-term motion cues to separate moving objects from static background. Generating accurate optical flow requires multiple frames, so it is not a substitute for frames. It consumes them.&lt;/p&gt;
&lt;p&gt;Multi-frame and video-based methods relate appearance to motion patterns and are genuinely effective. They also require either flow computations or temporal information from more than one frame, and on a single image they have nothing to work with.&lt;/p&gt;
&lt;p&gt;Segment Anything is the natural tool for the segmentation half, and it has two problems here. It was built for point and box prompts, and text prompts are not its native interface, so a bridge has to be constructed rather than configured. More fundamentally, SAM analyzes image texture. It has no scene comprehension, so it cannot tell you which texture is moving.&lt;/p&gt;
&lt;p&gt;The line of work that connects a multimodal language model to SAM for instructed segmentation is closer, and the distinction that matters is between recognizing and reasoning. Those methods enhance SAM with text and focus on identifying object categories. They answer what something is, not whether it is moving or whether the mask captured all of it. Generic open-vocabulary segmentation has a related blind spot: it does not address problems specific to motion, such as motion illusions, where appearance suggests movement that is not happening.&lt;/p&gt;
&lt;p&gt;And stacking an MLLM, SAM and a vision-language model together directly does not work either. That composition still produces inaccuracies from hallucinations or flawed reasoning, and it produces visible contradictions between what was predicted and what was expected. Building a loop that can notice and repair those contradictions is the part that had to be designed.&lt;/p&gt;
&lt;h2 id="what-makes-it-hard"&gt;What makes it hard&lt;/h2&gt;
&lt;p&gt;The deepest difficulty is that a still image contains no displacement information at all. Motion has to be inferred from static correlates, and those correlates are heuristics. A flowing effect in hair or clothing, motion blur along contours, an object suspended in mid-air without support, a pose resting on minimal support such as a single toe touching the ground: all of these suggest motion, and none of them prove it. The paper is explicit that the model identifies the moving object based on these features but not limited to them.&lt;/p&gt;
&lt;p&gt;Motion illusions follow directly. Appearance that suggests movement can be wrong, and genuine movement can look static.&lt;/p&gt;
&lt;p&gt;Ego-motion is unobservable in a single frame by construction. Nothing in one photograph distinguishes &amp;ldquo;they moved&amp;rdquo; from &amp;ldquo;I moved,&amp;rdquo; and no amount of reasoning recovers a distinction the data does not contain.&lt;/p&gt;
&lt;p&gt;There is also a representation mismatch at the centre of the architecture. SAM&amp;rsquo;s image embedding is spatially rich and semantically empty. A vision-language model&amp;rsquo;s features are semantic and spatially coarse. Something has to make SAM&amp;rsquo;s detail legible to the VLM without destroying it.&lt;/p&gt;
&lt;p&gt;Then there is the feedback problem, which is subtler than it first appears. For a loop to work, a mask has to be turned back into something the reasoner can critique. Not just whether the right object was chosen, but whether the mask is complete and whether it contains anything that does not belong. A prediction has to become an arguable claim.&lt;/p&gt;
&lt;p&gt;Finally, supervision barely exists. There is no dataset of single images labelled with the moving object, because the label is inherently a judgement. We had to construct the training data by filtering existing video datasets down to images where the moving object is clearly distinguishable.&lt;/p&gt;
&lt;h2 id="the-mask-as-something-you-can-argue-with"&gt;The mask as something you can argue with&lt;/h2&gt;
&lt;p&gt;Our idea is to replace the missing temporal measurement with an explicit linguistic hypothesis, and then make that hypothesis revisable.&lt;/p&gt;
&lt;p&gt;The loop has three parts. A reasoner looks at the scene and writes a sentence describing the object it believes is moving. That sentence is not a bare category label. It carries the category, the position and the motion, in the form of something like &amp;ldquo;A red ball is flying in the air, in the upper right corner of the frame.&amp;rdquo; A segmentation stack turns that sentence into a mask. Then the mask goes back to the reasoner as visual evidence, and the reasoner is allowed to change its mind.&lt;/p&gt;
&lt;p&gt;The last step is what makes this work. Reasoning about a still image is unreliable, and a single pass produces confident mistakes. Showing the result back closes the gap between what the model meant and what it produced.&lt;/p&gt;
&lt;p&gt;The prompt is generated under a chain-of-thought guide, which converts an under-specified open judgement into something closer to a checklist: observe the objects and their relations, attend to the plausible movers, apply the motion features above, then emit a prompt or conclude that nothing is moving. The guide is hand-authored, and we did not test alternatives against it. That is a limitation we accept rather than hide.&lt;/p&gt;
&lt;h2 id="turning-language-into-pixels-cross-modal-feature-aggregation"&gt;Turning language into pixels: Cross-modal feature aggregation&lt;/h2&gt;
&lt;p&gt;The segmentation network takes the prompt and the image together and produces the mask. SAM2 is the core, and we keep its image encoder and mask decoder because they are well suited to the job. We add BEiT-3 features because SAM&amp;rsquo;s weakness is exactly semantic understanding, and the vision-language model supplies what it lacks. The prompt encoder is modified so that the VLM&amp;rsquo;s multimodal features can serve as a prompt directly, rather than being squeezed into a spatial point or bounding box.&lt;/p&gt;
&lt;p&gt;The feature aggregation network is our answer to the representation mismatch, and it runs in the direction people usually do not expect. Instead of trying to make SAM semantic, we give the VLM SAM&amp;rsquo;s spatial detail.&lt;/p&gt;
&lt;p&gt;Let $F_{\text{sam}} \in \mathbb{R}^{H \times W \times C_s}$ denote SAM2&amp;rsquo;s high-resolution spatial feature map. The aggregation network $\Phi_{\text{agg}}$ applies five convolutional layers with residual bottlenecks followed by adaptive spatial pooling and a linear projection, extracting a compressed global context descriptor:&lt;/p&gt;
$$
\mathbf{v}_{\text{ctx}} = \Phi_{\text{agg}}(F_{\text{sam}}) \in \mathbb{R}^{C_v}.
$$&lt;p&gt;This global descriptor is broadcast and concatenated across every spatial location of the visual embedding:&lt;/p&gt;
$$
\tilde{F}_{\text{sam}} = \left[ F_{\text{sam}}, \; \operatorname{tile}(\mathbf{v}_{\text{ctx}}, H \times W) \right] \in \mathbb{R}^{H \times W \times (C_s + C_v)}.
$$&lt;p&gt;The augmented representation is fed alongside prompt tokens $T_{\text{beit}} \in \mathbb{R}^{L \times D}$ into bidirectional cross-attention layers. Removing this aggregation pathway degrades validation performance noticeably, confirming that cross-modal feature alignment is functionally active rather than merely cosmetic.&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-movsam-uses-scene-semantics-and-appearance-to-infer-likely-moving-objects-from-one-image"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="Single-image segmentation in real scenes with missing temporal evidence."
srcset="https://changnie.top/publications/movsam/real-world_hu_fdd3e3d84b35e7e.webp 320w, https://changnie.top/publications/movsam/real-world_hu_8b117b5a9a447be8.webp 480w, https://changnie.top/publications/movsam/real-world_hu_97190992ddd4bf6a.webp 768w, https://changnie.top/publications/movsam/real-world_hu_5848f1e99d66c1c.webp 1024w, https://changnie.top/publications/movsam/real-world_hu_2898729165f47d62.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/movsam/real-world_hu_fdd3e3d84b35e7e.webp"
width="1080"
height="408"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/movsam/real-world_hu_3c2a3dfb1be8e7d9.webp" target="_blank" rel="noopener"&gt;View full-size image ↗&lt;/a&gt;
&lt;figcaption&gt;MovSAM uses scene semantics and appearance to infer likely moving objects from one image.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="the-reasoning-loop-propose-segment-critique"&gt;The reasoning loop: Propose, segment, critique&lt;/h2&gt;
&lt;p&gt;The critique stage has its own guided procedure. Given the original image with the candidate mask overlaid, the multimodal reasoner executes a four-point verification protocol:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Object Identity &amp;amp; Attribution&lt;/strong&gt;: Does the segmented boundary correspond cleanly to the entity identified in the prompt?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Physical Motion Plausibility&lt;/strong&gt;: Does the entity exhibit unambiguous static motion heuristics (unbalanced dynamic pose, airborne suspension, motion blur, directionally trailing fabric/hair)?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Segmentation Completeness&lt;/strong&gt;: Has any contiguous functional part of the moving entity (extended limbs, carried equipment, attached garments) been erroneously severed from the mask?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mask Purity&lt;/strong&gt;: Has any non-moving background structure (road surface, cast contact shadows, adjacent stationary furniture) been incorrectly absorbed into the mask?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Notice that completeness and purity are separate questions from correctness. A mask can cover the right object and still be a bad answer.&lt;/p&gt;
&lt;p&gt;When the reasoner rejects the result, it rewrites the prompt and the mask is regenerated. When it accepts, it must provide an explicit physical rationale. The published example illustrates how much work the loop accomplishes. The first prompt asks for the runner on the right side of the image, and the reasoner rejects it: that runner is in mid-stride but grounded and secondary. The second prompt targets the primary moving subject, identifying an upside-down breakdancer in the center. That proposal is accepted, justified by the physical observation that the dancer is inverted in mid-air with minimal support contact and impending rotational displacement.&lt;/p&gt;
&lt;p&gt;That exchange embodies the architecture in miniature: the initial output was plausible but suboptimal; the second revision emerged directly from visually critiquing the concrete artifacts of the first pass.&lt;/p&gt;
&lt;p&gt;We cap the reasoning loop at five iterations and terminate upon acceptance. If the budget expires without convergence, the candidate with highest verification confidence is selected.&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-because-each-frame-is-processed-independently-occlusion-does-not-propagate-errors-across-time"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="Segmentation examples with occlusion and fine boundaries."
srcset="https://changnie.top/publications/movsam/occlusion-sequence_hu_a8bef3682e30af07.webp 320w, https://changnie.top/publications/movsam/occlusion-sequence_hu_ee73a7e961fb26a.webp 480w, https://changnie.top/publications/movsam/occlusion-sequence_hu_22ad7e4717be5865.webp 768w, https://changnie.top/publications/movsam/occlusion-sequence_hu_ea4d44652760c68e.webp 1024w, https://changnie.top/publications/movsam/occlusion-sequence_hu_bf80be13c0d163d8.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/movsam/occlusion-sequence_hu_a8bef3682e30af07.webp"
width="1080"
height="210"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/movsam/occlusion-sequence_hu_82f335a5de7d31cc.webp" target="_blank" rel="noopener"&gt;View full-size image ↗&lt;/a&gt;
&lt;figcaption&gt;Because each frame is processed independently, occlusion does not propagate errors across time.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="what-is-and-is-not-trained"&gt;What is and is not trained&lt;/h2&gt;
&lt;p&gt;The SAM image encoder remains frozen, preserving its pre-trained visual primitives without incurring massive training overhead. The vision-language model, feature aggregation module, prompt encoder adapter, and mask decoder are jointly optimized for moving object segmentation. The high-level multimodal language model runs off-the-shelf in zero-shot mode without parameter fine-tuning, preserving its general reasoning and linguistic breadth.&lt;/p&gt;
&lt;p&gt;The training objective combines balanced soft Dice overlap with focal binary cross-entropy:&lt;/p&gt;
$$
\mathcal{L}_{\text{seg}} = \lambda_{\text{dice}} \mathcal{L}_{\text{dice}}(M_{\text{pred}}, M_{\text{gt}}) + \lambda_{\text{focal}} \mathcal{L}_{\text{focal}}(M_{\text{pred}}, M_{\text{gt}}).
$$&lt;p&gt;The soft Dice loss penalizes boundary and spatial volume discrepancies:&lt;/p&gt;
$$
\mathcal{L}_{\text{dice}} = 1 - \frac{2 \sum_{i} m_i \hat{m}_i + \epsilon}{\sum_i m_i + \sum_i \hat{m}_i + \epsilon},
$$&lt;p&gt;while the focal loss counteracts extreme foreground-background class imbalance where dynamic targets occupy an extremely small fraction of the image frame:&lt;/p&gt;
$$
\mathcal{L}_{\text{focal}} = - \sum_{i} \alpha_t (1 - p_{t, i})^\gamma \log(p_{t, i}).
$$&lt;p&gt;In practice, this composite formulation provides superior boundary sharpness and training stability compared to either loss alone.&lt;/p&gt;
&lt;h2 id="what-we-take-from-this"&gt;What we take from this&lt;/h2&gt;
&lt;p&gt;Text is a usable control channel for frozen foundation models. A prompt can carry category, position and a motion verb at once, which is far richer than a class label and requires no retraining at all.&lt;/p&gt;
&lt;p&gt;The awkward representation mismatch has a clean resolution that runs against intuition: feed spatial detail into the semantic model rather than trying to make the spatial model semantic.&lt;/p&gt;
&lt;p&gt;Making the output criticisable is the generalizable trick. It applies to any task where the supervision signal is a judgement rather than a measurement, and where a plausible wrong answer is the main failure mode.&lt;/p&gt;
&lt;p&gt;And it is worth noticing that the composition itself can be the contribution. We say this plainly in the paper rather than pretending otherwise. The novelty is in the loop and in the way the parts are connected, not in any single component.&lt;/p&gt;
&lt;p&gt;One more practical note. The training set was filtered down to images where the moving object is clearly distinguishable, which means the supervision concentrates exactly where static inference is easiest. We state the filter and we do not resolve the tension it creates.&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-qualitative-comparison-of-single-image-moving-object-segmentation"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="The language prompt carries category, position and motion together."
srcset="https://changnie.top/publications/movsam/benchmark-results_hu_4d94e4217ff1f0cd.webp 320w, https://changnie.top/publications/movsam/benchmark-results_hu_96332d1ae8662b09.webp 480w, https://changnie.top/publications/movsam/benchmark-results_hu_10c4bea432cc968e.webp 768w, https://changnie.top/publications/movsam/benchmark-results_hu_4ad3ec365e4d4267.webp 1024w, https://changnie.top/publications/movsam/benchmark-results_hu_dffb249ef0fcb1a9.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/movsam/benchmark-results_hu_4d94e4217ff1f0cd.webp"
width="1080"
height="343"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/movsam/benchmark-results_hu_e77a1f793974da7d.webp" target="_blank" rel="noopener"&gt;View full-size image ↗&lt;/a&gt;
&lt;figcaption&gt;Qualitative comparison of single-image moving object segmentation.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="what-this-opens"&gt;What this opens&lt;/h2&gt;
&lt;p&gt;Single-image moving object segmentation is worth treating as its own problem rather than as a degraded video task. Recovering temporal information from one image is a capability we think has independent value, and it changes what a robot can do when its perception stream is degraded rather than healthy.&lt;/p&gt;
&lt;p&gt;The reasoning mechanism is also portable. Any task that needs logical inference over a scene from a large model, including cross-modal settings such as reasoning about the relationships between objects in an image and a point cloud, could use the same propose, segment, critique structure.&lt;/p&gt;
&lt;p&gt;The application we care most about is the one we started from. A robot that receives an isolated image, because a link dropped or a sensor failed, can still form an object-level interpretation of what is moving and what to watch. The paper&amp;rsquo;s closing claim is that this makes systems more robust in exactly the situations where conventional methods stop working.&lt;/p&gt;</description></item></channel></rss>