CrossTimeEdit:复原十年前街景,却不让模型看十年前的照片
你想看看自家门口那条街十年前的样子。卫星图倒是有,可它是从天顶垂直往下拍的,看不到建筑的立面、店招和人行道;街景照片里有,但十年前那张早被平台收进了历史图层,不对外开放。Biljecki 与 Ito 在 2021 年那份街景影像综述里把这件事讲得很直白:商业街景 API 不允许抓取历史影像,同一座城市不同区域的拍摄时间还不一致,于是真正意义上的纵向研究极其罕见 SVI review。想还原一条街的过去,检索这条路基本走不通,只能"生成"。
从卫星图重画整条街:历史街景为什么越画越不像?
CrossTimeEdit 要回答的问题只有一个:复原一个地点过去的样子时,怎样不顺手改写那些十年都没变过的部分。这个问题的背景是历史影像本身拿不到,商业街景平台不开放历史图层,十年前那张照片根本调不出来,前面已经说过。而它要反驳的反例,是此前主流的旧范式:给模型一张卫星图,让它端到端重画出一整条街。
最直接的思路是跨视角生成:给模型一张同一地点的卫星图,让它端到端画出一张对应的街景全景。这条路上已经有一批强方法。Sat2Density 走几何路线,用两张网络先从卫星图学出一个三维体密度场,再渲染出地面视角的全景 Sat2Density;ControlS2S 走扩散路线,在去噪的每一步用单应矩阵把姿态拉正 ControlS2S。它们都能画出一条"像街景"的街。
问题恰好出在这个动作本身。只要模型要输出的是整张图,它就必须为画面里的每一个像素重新做一次决定,包括那些十年都没动过的建筑和道路。而当卫星观测稀疏时,模型既拿不到足够的纹理与几何依据,也没有"保持原样"这个选项可以选。于是它会把本该原封不动的楼、路、围墙一起重新画一遍,悄悄改掉。输出越"合理",这种改写越不容易被察觉。
所以这个任务的难点,并不在"把过去画得像"。难点在"别动那些根本没变的东西"。把这两种做法的差别摊开看,会清楚得多。
CrossTimeEdit 选的就是另一条路:以一张近期实拍全景为锚,让卫星时序差和文本指令决定局部改哪里;历史街景照片完全不进入生成输入,只在训练和评测时当目标。它具体怎么落地,下一章展开。
| 对比项 | 从卫星图重画整条街 | 在近期实拍图上做局部编辑 |
|---|---|---|
| 输入信号 | 一张卫星图 | 近期街景全景 + 卫星时序差 + 文本变化描述 |
| 输出 | 一整张街景全景 | 对近期全景的局部修改 |
| 本该十年不变的内容 | 与其他像素一起被重新决定 | 由输入的那张实拍图当场钉死 |
| 能做到什么 | 只能说"像一条街" | 能说"这条街的这几处变了" |
这还不只是措辞上的区别,它改的是"可控"这件事本身。当输出是一整张图时,使用者能提的要求最多是"画得像那条街";当输出是对一张实拍图的修改时,要求就精确到了"这条街的这一处变了、那一处没变"。前者把主动权交给了模型,后者把主动权交还给那张实拍图。
论文正是从这里掉头:与其让模型从卫星图无中生有出一整条街,不如换一个问法。
换个问法:不给模型看历史照片,只让它在近期实拍图上改,够吗?
CrossTimeEdit 的做法是把历史街景生成重新定义成一次图像编辑:拿一张近期的街景全景当"锚",让模型只在这个基础上改动该变的地方 CrossTimeEdit。这张近期全景同时锁住了三件东西:拍摄的视角、相机的高度,以及十年间基本没变的那部分场景。换句话说,"哪些必须保留"不再由模型自由发挥,而是由一张实拍图当场确定。
那"哪里变了、该变成什么样"的证据从哪来?来自卫星的时序差,加上 Gemini 生成的文本描述。把同一地点早期和近期的卫星图放一起,建成年份之间的差异就能指示出哪块地变了、大致变成了什么。至于早期那张街景照片,从头到尾都不进入生成输入,它只在训练和评测时充当标准答案。
听起来像是把证据砍得太狠了,但这恰恰是关键设计。这里有一个反直觉的地方值得点破:不让模型看历史照片,不是限制,而是让监督变得可行的前提。因为近期全景本身已经编码了模型该保留的一切,所以只要有一个能提供"配对、筛选、覆盖、指令"这几件事的数据集,监督就够了。这也解释了为什么数据集会成为这篇论文的重心,而不是模型结构。
下面这张图把这些前提摊开,说明这个新问法对数据提出了哪些要求。

图注:这张图把 VIGOR-his 与既有的跨视角数据集并排对照,标出它为 CrossTimeEdit 提供的四件事:跨约十年的早期与近期街景及卫星配对、采集期匹配配合跨视角场景一致性筛选、覆盖三大洲 11 座城市、以及变化类别与带卫星依据的局部编辑指令。它是一张概念总览,具体规模数字不在此图。
于是问题变成了:这样的数据集到底怎么造出来。
VIGOR-his:把"缺监督"的历史街景变成一个可监督的问题
先看既有资源缺在哪。VIGOR 提供了大量卫星图与街景全景的跨视角配对,还有米级的定位真值,但它没有时间维度,同一地点只有一个时刻的观测 VIGOR。CityPulse 反过来,它拉了 5 座美国城市、931 个地点、跨 16 年的街景时间序列,标出 433 个变化点,却完全没有卫星配对 CityPulse。一个有时序缺卫星,一个有卫星缺时序,两边的强项从来没有被接到一起。
VIGOR-his 做的就是这件事,它把每个样本组织成一个"四元组":早期卫星图、近期卫星图、早期街景全景、近期街景全景。四张图合起来,既具备跨视角的对照,又具备跨十年的时序。最终规模是 43,653 个地点级四元组,覆盖三大洲 11 座城市。训练集拆成 8,797 个"有变化"和 13,196 个"无变化"样本,比例接近四六开。那些"无变化"的样本并不是凑数,它们正是拿来教模型"这里别动"的。 VIGOR
这些干净样本不是从现成库房里搬出来的,而是从噪声很大的网络数据里一步步筛出来的。下面这张流程图走完了整条构建管线。

图注:这张图展示 VIGOR-his 的四阶段构建流程:数据预处理、视角筛选与变化分类、跨视角与时间一致性筛选、以及带卫星依据的变化描述与局部编辑指令生成和指令一致性校验。图中同时标出各阶段所用的模型,以及按四个方位给出的 MODIFY / PRESERVE 编辑指令格式。
四个阶段串起来是这么走的。第一步做数据预处理,靠全景编号把同一地点不同年代的照片配起来,用 Haversine 距离做匹配、容差 5 米,并把全景中心统一朝北。第二步筛视角并分类变化,用 Gemini-3-Flash-Preview 判断这条街到底哪里动了,类别分成建筑、道路、两者都变、以及无变化。第三步做跨视角与时间一致性筛选,让 GPT-5.6-Luna 打 0 到 10 分,只有 7 分以上的样本才留下。第四步由 Gemini-3.1-Pro-Preview 按东南西北四个方位分别写出带卫星依据的变化描述,再转成局部编辑指令,每条指令都标注是 MODIFY 还是 PRESERVE,最后由 Gemini-3.1-Flash-Lite 逐条校验指令的一致性。
这条管线的价值,不在于产出的数据"更大"。它第一次把跨十年、跨视角、带卫星依据的编辑指令这三件事同时凑齐了。有了这样的监督,接下来要回答的就是:模型到底怎么学会既改得对、又改得稳。
怎么改得既真又稳:一次 SFT,加一轮三准则奖励引导的在线 RL
CrossTimeEdit 的起点是一条已经被验证过的编辑接口:给定一张图和一句文本指令,输出编辑后的图 [InstructPix2Pix](https://arxiv.org/abs/2211.09800 "citation: InstructPix2Pix: Learning To Follow Image Editing Instructions || InstructPix2Pix 确立了图像加文本指令的双条件编辑接口,是后续指令式图像编辑的标准做法)。下面这张图就是这条接口的标准示范,它说明为什么"编辑"能成为一个模型的原生动作,而不是外加的修图步骤。

图注:这张图从左到右展示指令式编辑的端到端流程:先用微调过的 GPT-3 生成编辑指令与修改后的描述,再用 Stable Diffusion 配合 Prompt-to-Prompt 生成成对的图像,由此得到超过 45 万条训练样本,最后在其上训练出能按人类指令编辑真实图像的模型。
但有接口不等于能改好。真正的问题在于怎么"既要改对、又要保住不该动的地方"。CrossTimeEdit 把这件事拆成了两步。
第一步是有监督微调,简称 SFT。它冻结了 FLUX.2 [Klein] 4B 的主干,只训练一组挂在 attention 投影层上的 LoRA 适配器。训练目标分两种:遇到"有变化"的样本,就让模型朝早期街景照片去生成;遇到"无变化"的样本,就让模型的输出等于输入本身,并在四个方位都给它一句 PRESERVE 指令。后一种就是恒等监督,等于直接把"该保留"写进了训练目标里。整个 SFT 大约跑了 13,750 次优化更新,最终选中第 9 个 epoch 的检查点。
这里值得停一下看恒等监督的作用。它把"无变化样本"也变成了训练信号,模型不是只在"该改"的例子上学习,而是在"什么都不该改"的例子上被明确要求把输入原样还回来。样本里将近六成属于这一类,等于反复告诉模型,绝大多数像素的正确动作就是不动。
SFT 解决了"改得像不像",却没有解决"改得稳不稳"。这里要引入第二个反直觉的地方:上了 SFT 之后,模型对指令的遵循变好了,但背景保持和质量分反而下降了。光靠模仿标准答案,学不会在"改对"和"别乱动"之间做取舍。
第二步就是在线强化学习。它借用了 Flow-GRPO 的机制:把 flow matching 原本确定性的采样过程转成带随机性的版本,好让同一个输入能采出多条不同的候选轨迹;再用 Denoising Reduction,把训练时的去噪步数从 40 步砍到 10 步,快速采到一批"质量不高但仍有信息量"的轨迹;这些轨迹上的奖励再回过头去更新策略 [Flow-GRPO](https://arxiv.org/abs/2505.05470 "citation: Flow-GRPO: Training Flow Matching Models via Online RL || Flow-GRPO 用 ODE 到 SDE 的转换让 flow matching 采样具备随机性,并用 Denoising Reduction 把训练步数降到 10 步以高效收集轨迹)。下面这张图把这条 RL 后训练的三段机制画在了一起。

图注:这张图展示在线 RL 后训练的三段机制:ODE 到 SDE 的转换让采样变得随机,Denoising Reduction 只用 10 步就快速收集轨迹,随后 GRPO 损失用这些轨迹上的奖励在线更新模型,最终得到一个对齐后的策略。
那奖励从哪来?CrossTimeEdit 用三个准则给每张候选图打分,全部由 Gemini-3.1-Flash-Lite 在温度 0 下打出 0 到 10 分。第一个是 IA,衡量指令对齐,它同时看到近期输入、早期真值、模型输出和一份被重复的早期真值拼成的面板,用来检查请求的修改是否完整、准确、方向正确。第二个是 BP,衡量背景保持,它把输入和输出并排看,严厉惩罚那些未经许可就新增或删除的建筑、道路、墙和栅栏,但容忍整体影调变化和季节性的植被差异。第三个是 QP,衡量质量与物理合理性,专门盯着撕裂、重复、异常模糊、比例失真和全景接缝这些毛病。
三个分数怎么合到一起,是这里最见功力的地方。最朴素的做法是把三个奖励直接相加,再整体做一次标准化。问题在于,当三个维度的方差不一样时,方差最大的那一维会主导最终的优势值。打个比方,三个评委给同一批作品打分,其中一位给分忽高忽低,如果你把三个分数加起来再统一标准化,最后决定排名的其实是这位最不稳定的评委,而不是作品真实的好坏。IA 恰好就是波动最大的那一维,于是模型的优化会不知不觉被它带走,背景保持和质量被牺牲掉。
CrossTimeEdit 的解法是先解耦、再加权:在每一维内部各自做一次组内归一化,让三个维度先站到同一量纲上;然后按 0.45、0.30、0.25 的权重把它们聚合起来;聚合之后再跨批次做一次归一化,最后把优势值裁剪到正负 5 之间。这套流程带来一个额外的好处,每一维的贡献都能被单独看清,不再是谁嗓门大谁说了算。整轮 RL 跑了 240 个 epoch 共 480 次更新,最终选中第 200 个 epoch 的检查点。
两步走下来,"既真又稳"靠的不是一个更大的模型,而是先用 SFT 把"该保留"钉住,再用带解耦归一化的三准则奖励,把"该改的"和"不该动的"分开优化。
像素输了,人和 VLM 却更买账:一场评测里的剪刀差
先看通用图像编辑这一侧的对比。在测试集的 1,094 个有变化样本上,CrossTimeEdit 在开源模型里总分最高,Overall 达到 7.964,其中指令对齐 7.950、背景保持 8.264、质量 7.631。相比它自己的起点也就是 FLUX.2 [Klein] 4B 基线,总分高出 17.12%,指令对齐一项高出 33.39%。论文也坦承短板:闭源模型在总分上仍然领先,GPT-Image-2 拿到 8.581。
真正有意思的是跨视角生成这一侧的对比。把 CrossTimeEdit 和 Sat2Density、ControlS2S 这些从卫星图重画整条街的方法放在同一套指标下,会看到一个明显的剪刀差。先看定性结果。

图注:这张图是逐行的定性对比,每一行依次给出早期的卫星图、Sat2Density 的输出、ControlS2S 的输出、CrossTimeEdit 的输出,以及与早期卫星对应的早期街景真值。用于对比的 Sat2Density 与 ControlS2S 输出都是作者在 VIGOR-his 上重新训练后的结果。
把定量结果摆成表会更清楚这个反差有多大。
| 模型 | PSNR↑ | SSIM↑ | CV-C↑ | CV-VR↑ | CV-PQ↑ | Overall↑ |
|---|---|---|---|---|---|---|
| Sat2Density | 14.685 | 0.532 | 2.048 | 1.973 | 2.006 | 2.015 |
| ControlS2S | 14.119 | 0.519 | 2.027 | 2.180 | 2.071 | 2.084 |
| CrossTimeEdit | 12.589 | 0.463 | 3.005 | 3.980 | 3.998 | 3.546 |
按传统像素指标看,CrossTimeEdit 反而更差:它的 PSNR 和 SSIM 都比两个对手低。但换成那三个由多模态大模型打分的维度,也就是场景一致性、视觉真实性和知觉质量,它全面领先,总分 3.546 把 Sat2Density 的 2.015 和 ControlS2S 的 2.084 甩开了一大截。这里要说明,这三个维度的命名协议来自 CrossViewDiff,是它先提出用大模型按一致性、真实性、知觉质量三个维度来评跨视角合成的 [CrossViewDiff](https://arxiv.org/abs/2408.14765 "citation: CrossViewDiff: A Cross-View Diffusion Model for Satellite-to-Street View Synthesis || CrossViewDiff 引入用大模型从一致性、视觉真实性与知觉质量三个维度给跨视角合成打分,CrossTimeEdit 的三维评测协议即取自此)。
这个剪刀差意味着什么?它说明历史街景"像不像那条街",传统的像素指标量不出来。Sat2Density 的像素重建最忠实,画面也最干净,可它画出的街景没能证明自己就是那一条街;它"像"早期实拍,却不像同一个地点。而 CrossTimeEdit 因为在近期实拍图上做改动,保留了真实的几何骨架,所以即便像素相似度更低,看上去也更接近那条街本身。
论文自己的消融也佐证了这个判断。去掉 RL、只留 SFT 时,总分掉到 6.759;直接在预训练模型上做 RL、跳过 SFT 时,总分 6.893,相对基线 6.800 几乎没有进步,说明 SFT 是让模型先学会"编辑"这个动作的门槛。而单独去掉解耦归一化时,指令对齐反而是全表最高的 8.148,总分却只有 7.755,因为它把背景保持和质量压了下去。这正是前文那个"最不稳定的评委主导排名"的具体写照,也说明多准则奖励必须先解耦再聚合。
论文进一步用人类偏好来检验这套大模型评分是否可信。在每模型 50 次的成对比较里,CrossTimeEdit 的胜率是 64%,ControlS2S 是 30%,Sat2Density 是 14%,ControlNet 是 0%,大模型分数与人类偏好高度同向。这条证据很关键:它说明上面那个剪刀差不是评测器的古怪口味,而是更接近人的判断。一个看起来像素更差的输出,在人和大模型眼里反而更接近那条街。
这套"回填"能信到几分:它保证不了什么
论文在最后主动交出了自己的盲区,值得认真对待。第一,卫星看不见的历史细节补不出来,比如立面的粉刷材质、招牌、植被的变化,这些都发生在天上拍不到的角度。第二,不同年代的采集视角本身就有差异,这种差异有可能被模型误读成"这里变了"。第三,评估器的偏好会带来系统性盲区,模型在一定程度上是朝着 Gemini 评估器的口味被调出来的,换一个评估器,结论未必一样。
所以更准确的说法是:这套方法补的是"缺失的观测",补出来的是有依据的推测,而不是档案。它可以帮你看到一个地点十年前"大概可能"的样子,但不能当作史料直接采信。用它做城市历史研究之前,必须先问清楚哪一类变化它根本看不见。
论文自己列出的下一步也很说明问题:引入更丰富的历史证据,包括多时相和辅助模态;用彼此独立的奖励模型和评估模型,避免自评自奖;以及把目前单向的、单一时刻的编辑扩展成双向与多时刻的版本。这些都是把"推测"往"证据"方向推的努力,也说明这个任务离彻底解决还很远。
十年前那条街的样子,机器现在能给一个像样的草稿。但草稿和档案之间,还隔着一整套它根本看不见的证据。
想深入可以读原文:CrossTimeEdit: A Decade-Spanning Cross-View Dataset and Reward-Guided Editing for Historical Street-View Generation — arXiv:2609.36616
参考文献
- CrossTimeEdit: A Decade-Spanning Cross-View Dataset and Reward-Guided Editing for Historical Street-View Generation — https://arxiv.org/abs/2609.36616
- VIGOR: Cross-View Image Geo-Localization Beyond One-to-One Retrieval (CVPR 2021) — https://arxiv.org/abs/2011.12172
- Sat2Density: Faithful Density Learning from Satellite-Ground Image Pairs (ICCV 2023) — https://arxiv.org/abs/2303.14672
- ControlS2S: Controllable Satellite-to-Street-View Synthesis with Precise Pose Alignment and Zero-Shot Environmental Control (ICLR 2025) — https://arxiv.org/abs/2502.03498
- Street view imagery in urban analytics and GIS: a review (Biljecki & Ito, Landscape and Urban Planning 2021) — https://doi.org/10.1016/j.landurbplan.2021.104217
- CityPulse: Fine-Grained Assessment of Urban Change with Street View Time Series (AAAI 2024) — https://arxiv.org/abs/2401.01107
- CrossViewDiff: A Cross-View Diffusion Model for Satellite-to-Street View Synthesis — https://arxiv.org/abs/2408.14765
- InstructPix2Pix: Learning To Follow Image Editing Instructions (CVPR 2023) — https://arxiv.org/abs/2211.09800
- Flow-GRPO: Training Flow Matching Models via Online RL — https://arxiv.org/abs/2505.05470