<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Conference Papers | Chang Nie</title><link>https://changnie.top/publication_types/paper-conference/</link><atom:link href="https://changnie.top/publication_types/paper-conference/index.xml" rel="self" type="application/rss+xml"/><description>Conference Papers</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sat, 31 Jan 2026 00:00:00 +0000</lastBuildDate><image><url>https://changnie.top/media/icon_hu_3dd7560279821d57.png</url><title>Conference Papers</title><link>https://changnie.top/publication_types/paper-conference/</link></image><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><item><title>RLSAC: Reinforcement Learning Enhanced Sample Consensus for End-to-End Robust Estimation</title><link>https://changnie.top/publications/rlsac/</link><pubDate>Sun, 01 Oct 2023 00:00:00 +0000</pubDate><guid>https://changnie.top/publications/rlsac/</guid><description>&lt;h2 id="the-sampler-is-the-part-nobody-trains"&gt;The sampler is the part nobody trains&lt;/h2&gt;
&lt;p&gt;Robust estimation carries most of geometric vision on its back. Camera pose, motion segmentation, wide-baseline matching, plane fitting, line fitting: strip away the application and they all come down to the same question. Given observations where a large fraction are simply wrong, recover the model that the correct ones agree on. RANSAC has been the default answer to that question for four decades. It draws a minimum set, solves for a model from that set, counts how many observations agree with the result, and tries again. Two points define a line. Eight correspondences define a fundamental matrix.&lt;/p&gt;
&lt;p&gt;The drawing step is deliberately blind. Every observation is treated as equally worth trying, and nothing about the data ever enters the decision. That bet pays off when outliers are rare. It stops paying off quickly. Raise the outlier fraction and the probability of drawing a set entirely from the inliers falls away, and the number of iterations needed to find a good model climbs with it. The evidence that would have made the search easy is sitting in the observations themselves, and the sampler never looks at it.&lt;/p&gt;
&lt;p&gt;The second problem is quieter, and it is the reason we wrote this paper. A uniform random draw is not differentiable. You cannot attach it to a network, and you cannot train it against an objective that lives downstream of it. So the robust estimator ends up parked at the edge of a learned system: an off-the-shelf component wrapped in interfaces, never optimized together with the parts around it.&lt;/p&gt;
&lt;p&gt;Earlier work has attacked this from several directions, and each one leaves something on the table. LO-RANSAC keeps sampling inside the inliers of the best hypothesis so far, which improves a model it has already found rather than the search that found it. NAPSAC restricts sampling to a local neighborhood and buys better-conditioned sets at the cost of global coverage; Progressive NAPSAC&amp;rsquo;s expanding neighborhood patches that assumption rather than replacing it. GC-RANSAC and MAGSAC++ change how hypotheses are scored, not how they are proposed. PROSAC and USAC reorder or schedule the sampling, but the ordering rule is designed by hand and frozen before the first hypothesis has been scored. Methods such as NG-RANSAC learn a useful preference over points, and the filtering approaches around it discard bad candidate sets early, yet neither treats the sequence of sampling decisions as something worth planning. DSAC takes the most direct route and makes selection probabilistic so gradients flow through the pipeline. That works, but it requires the sampler, the solver and the scoring step to all be differentiable, and the classical pieces we trust most are exactly the ones that are not.&lt;/p&gt;
&lt;h2 id="the-sample-is-an-action"&gt;The sample is an action&lt;/h2&gt;
&lt;p&gt;Our starting observation is that the two problems have the same shape. In reinforcement learning, an agent reads a state, picks an action, and the environment reports what happened. Sampling a minimum set has that structure already. The observations are the state. The set chosen from them is the action. And the environment exists and is running: it is the solver and the consensus function.&lt;/p&gt;
&lt;p&gt;The reward is the interesting part, because the pipeline produces one for free. Once the solver turns a proposed set into a model, the consensus function measures what fraction of all observations agree with it. That number scores the model, and since the model came out of that particular set, it also scores the choice that produced it. No labels for which points are inliers are needed anywhere in the loop. Any task that already ships a solver and a residual definition comes with its own reward.&lt;/p&gt;
&lt;p&gt;That last point matters more than it sounds. Training from the joint outcome means the policy is never taught which individual observations are good. It is taught whether the model that came out of a combination was good. Pointwise inlier classification is a different and much stronger assumption than set-level scoring, and it is the assumption we did not want to make.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;RLSAC&amp;rsquo;s answer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;What is learned?&lt;/td&gt;
&lt;td&gt;The sampling policy; the solver and the scoring function stay as they are&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What supervision is needed?&lt;/td&gt;
&lt;td&gt;Nothing beyond the consensus score the pipeline already computes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What enters the state?&lt;/td&gt;
&lt;td&gt;Observation features, the chosen set, residuals against the last hypothesis, and usage counts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where is it used?&lt;/td&gt;
&lt;td&gt;Synthetic line fitting and real two-view fundamental-matrix estimation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="what-the-policy-gets-to-see"&gt;What the policy gets to see&lt;/h2&gt;
&lt;p&gt;A state that contains only the observations is not enough. The same data at step one and step ten would look identical, and the policy would have no way to know what it had already tried. So the state is built to carry the consequences of the previous decision.&lt;/p&gt;
&lt;p&gt;Four signals are stacked per observation. The first is the observation&amp;rsquo;s own features: point coordinates for line fitting, or coordinates, matching scores and local descriptors for correspondences. The second is an action indicator, &lt;code&gt;+1&lt;/code&gt; for the observations that formed the last minimum set and &lt;code&gt;-1&lt;/code&gt; for everything else. The third is the residual from the previous hypothesis, which is dense evidence about how the last model related to every observation, not only the ones that built it. The fourth is a counter of how often each observation has been selected so far.&lt;/p&gt;
&lt;p&gt;We think of these last three as a navigation aid. The residuals say which direction looks promising. The usage counter is a breadcrumb trail, recording where the search has already been. The action indicator marks the current position. None of them changes the underlying geometry; they change what the policy can conclude from it.&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-from-one-sample-to-the-next-observation-features-the-selected-set-residuals-and-sampling-history-form-a-state-transition"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="The policy state is updated after every hypothesis evaluation."
srcset="https://changnie.top/publications/rlsac/state-transition_hu_b7fe19d5bf559303.webp 320w, https://changnie.top/publications/rlsac/state-transition_hu_905036f91bf27969.webp 480w, https://changnie.top/publications/rlsac/state-transition_hu_3c640326fc185fb2.webp 768w, https://changnie.top/publications/rlsac/state-transition_hu_c8403627057f79a5.webp 1024w, https://changnie.top/publications/rlsac/state-transition_hu_2f3c1b319d957055.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/rlsac/state-transition_hu_b7fe19d5bf559303.webp"
width="1080"
height="542"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/rlsac/state-transition_hu_7f491c1a7331ca0d.webp" target="_blank" rel="noopener"&gt;View full-size image ↗&lt;/a&gt;
&lt;figcaption&gt;From one sample to the next: observation features, the selected set, residuals, and sampling history form a state transition.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="one-episode-one-random-start"&gt;One episode, one random start&lt;/h2&gt;
&lt;p&gt;RLSAC runs several episodes over the same input, and each episode opens with a randomly sampled minimum set. This costs almost nothing and buys two things. It guarantees a performance floor, because every episode starts from an unbiased draw and the policy can only improve on it. And it gives the policy a meaningful state to react to, since a residual field computed against a terrible hypothesis is far more informative than one computed against nothing.&lt;/p&gt;
&lt;p&gt;The policy itself is an EdgeConv-style graph network. The choice is not cosmetic. Observations have no canonical order, and a policy that read them as an ordered vector would behave differently depending on how the input happened to be shuffled. The graph aggregates each observation&amp;rsquo;s neighbors into its own representation, which keeps the policy permutation-invariant and lets points exchange local context before any of them is proposed.&lt;/p&gt;
&lt;p&gt;The network outputs a probability per observation, and the top-scoring set becomes the proposal. One detail worth stating plainly: that probability is not a claim about how good an individual observation is. It is a claim about the long-run return from including it. The two are not the same, and treating them as the same is a common way to misread what the policy has learned.&lt;/p&gt;
&lt;p&gt;Duplicate sets are rejected. Every previously used minimum set is recorded, and if the top-scoring set has already been tried, the next one is drawn according to the probabilities and checked again until an unused set is found. Without this, a policy that has learned a good region will keep re-proposing the same set and burn the entire budget on a hypothesis it already has.&lt;/p&gt;
&lt;p&gt;Training uses discrete Soft Actor-Critic with a replay buffer, sampling probabilistically so the policy keeps exploring. At test time the sampling switches to greedy selection. The split is the standard exploration-exploitation tradeoff, and we compared the other three combinations against it before settling on this one.&lt;/p&gt;
&lt;p&gt;Episodes terminate on any of three conditions during training: the inlier count stops changing for two steps, the inlier ratio fails to beat the episode&amp;rsquo;s best for three steps, or the episode hits its step cap. Testing keeps only the cap. The distinction we wanted was between giving up on a search that has stopped making progress and stopping one that is still improving but has run out of budget.&lt;/p&gt;
&lt;h2 id="watching-it-work-on-a-line"&gt;Watching it work on a line&lt;/h2&gt;
&lt;p&gt;Set a few hundred points in a square, draw a line through some of them, let the rest be outliers. Any pair of points defines a candidate line. Every other point has a distance to it, and that distance is the feedback. The hypothesis visibly walks toward the ground truth across successive steps, which is satisfying to watch but not the interesting part.&lt;/p&gt;
&lt;p&gt;The interesting part is what the policy does after it gets there. Once it finds a hypothesis with a high inlier ratio, it keeps working locally, refining the set rather than jumping to a different region of the data. A sampler without memory cannot do this, because it has no way to know it is already close. This is the clearest argument for putting the residual and history features in the state, and it shows up in the qualitative traces much more plainly than in any aggregate number.&lt;/p&gt;
&lt;p&gt;Our synthetic data also places outliers inside the inlier band, which is what happens in real scenes. That rules out memorizing coordinates. What is learnable is the distribution of point groups that make a well-conditioned model, and that is what we wanted the policy to pick up.&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-illustrative-sequence-from-the-paper-hypotheses-and-residual-evidence-change-across-policy-transitions"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="Successive sampling states in line fitting."
srcset="https://changnie.top/publications/rlsac/line-refinement_hu_44b97fcd7c911b51.webp 320w, https://changnie.top/publications/rlsac/line-refinement_hu_9cab983339e90995.webp 480w, https://changnie.top/publications/rlsac/line-refinement_hu_80c1c630ef90f75f.webp 768w, https://changnie.top/publications/rlsac/line-refinement_hu_521b02c965bb2237.webp 1024w, https://changnie.top/publications/rlsac/line-refinement_hu_c9aee07329865e0.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/rlsac/line-refinement_hu_44b97fcd7c911b51.webp"
width="1080"
height="524"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/rlsac/line-refinement_hu_9d05e82cf3b79404.webp" target="_blank" rel="noopener"&gt;View full-size image ↗&lt;/a&gt;
&lt;figcaption&gt;Illustrative sequence from the paper: hypotheses and residual evidence change across policy transitions.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="from-points-to-image-correspondences"&gt;From points to image correspondences&lt;/h2&gt;
&lt;p&gt;Two-view geometry changes the observation but not the interface. An observation is now a match between two image locations, described by its coordinates, its matching score and a local descriptor. A minimum set of eight goes to the eight-point solver, which returns a fundamental matrix, and consensus scoring measures how well every correspondence agrees with the resulting epipolar geometry.&lt;/p&gt;
&lt;p&gt;In this setting the policy settles on rigid, well-localized feature points on buildings and similar structures. Nobody told it to prefer those. They are simply the matches that survive the geometric score, episode after episode, and the policy found them.&lt;/p&gt;
&lt;p&gt;
&lt;figure id="figure-the-learned-sampler-receives-feedback-from-a-classical-geometric-solver"&gt;
&lt;div class="flex justify-center"&gt;
&lt;div class="w-full"&gt;&lt;img
alt="Correspondences and geometric hypotheses across sampling transitions."
srcset="https://changnie.top/publications/rlsac/fundamental-refinement_hu_50ba5654e56b9e9f.webp 320w, https://changnie.top/publications/rlsac/fundamental-refinement_hu_77f9fd0d2240e79b.webp 480w, https://changnie.top/publications/rlsac/fundamental-refinement_hu_1bfc0912f82554fd.webp 768w, https://changnie.top/publications/rlsac/fundamental-refinement_hu_aa06ef240e774e6d.webp 1024w, https://changnie.top/publications/rlsac/fundamental-refinement_hu_e3e3c4a15059a7fd.webp 1080w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1279px) 88vw, 928px"
src="https://changnie.top/publications/rlsac/fundamental-refinement_hu_50ba5654e56b9e9f.webp"
width="1080"
height="659"
loading="lazy"
data-zoomable&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;a class="paper-image-original" href="https://changnie.top/publications/rlsac/fundamental-refinement_hu_b9fdbbb7b35a7945.webp" target="_blank" rel="noopener"&gt;View full-size image ↗&lt;/a&gt;
&lt;figcaption&gt;The learned sampler receives feedback from a classical geometric solver.&lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;What carries across the two tasks is not a trained network. It is the contract: encode observations, propose a minimum set, solve, score, feed the evidence back. Moving to a new problem means supplying task-appropriate features, a solver and a residual definition. The paper&amp;rsquo;s claim about transferability rests on that interface, together with the random restart and the duplicate rejection, not on the state transition by itself.&lt;/p&gt;
&lt;h2 id="what-we-take-from-this"&gt;What we take from this&lt;/h2&gt;
&lt;p&gt;The lesson we keep coming back to is that reward can substitute for differentiation. If a downstream metric can score an output, it can train the module that produced it. There is no need to make an argmax, a solver or a threshold differentiable, which means the interpretable classical pieces get to stay. That is what allows a traditional estimator and a learned one to be optimized toward the same objective instead of sitting on opposite sides of an interface.&lt;/p&gt;
&lt;p&gt;Memory also turns out to be worth more than prediction here. Feeding the last attempt&amp;rsquo;s residuals back into the state is cheap and dense. Training a better one-shot predictor is expensive and, in our setting, not obviously better.&lt;/p&gt;
&lt;p&gt;And a learned sampler should never be allowed to underperform the random baseline it replaced. Seeding every episode with a random draw is what buys that.&lt;/p&gt;
&lt;h2 id="where-it-stays-limited"&gt;Where it stays limited&lt;/h2&gt;
&lt;p&gt;An honest list. The inlier threshold is still a hand-set hyperparameter and it directly determines the reward, which is the same sensitivity MAGSAC++ was designed to remove; we reintroduced it and did not study it. The state only tracks the top-N correspondences by matching score, so a good match outside that set can never be selected. Our comparisons for two-view geometry are against classical methods only, even though we discuss learning-based samplers throughout; readers should not read those as head-to-head results. Transfer to other tasks is argued from the interface, not demonstrated. And we never analyzed cost: multiple episodes times up to fifteen steps, each with a graph forward pass, a solver call and a full residual computation, is a real bill, and we did not compare accuracy at matched iteration budgets.&lt;/p&gt;
&lt;h2 id="the-larger-point"&gt;The larger point&lt;/h2&gt;
&lt;p&gt;The discussion section of the paper makes the argument we actually believe. One-shot deep estimators are not reliable outside the distribution they were trained on, and their poor interpretability makes them hard to deploy in engineering settings. Classical estimators have clear behavior and well-defined scope, but cannot be folded into a learned framework because they are not differentiable. Combining the two gets both properties. If a component can be scored, it can be learned, and it can keep being the component you trust.&lt;/p&gt;
&lt;p&gt;We are curious whether the same treatment extends to other non-differentiable pieces of the geometric stack. Noise covariance estimation in SLAM is the one we keep thinking about.&lt;/p&gt;</description></item></channel></rss>