news 2026/6/2 12:17:55

变分方法(variational method)做上采样,替代线性插值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
变分方法(variational method)做上采样,替代线性插值

“变分方法(variational method)”本质上不是在做“插值”,而是在做一个带约束的优化问题求解:把“上采样”变成“找一个最合理的高分辨率解”。

1. 它不是“放大”,而是“重新求解”

双线性上采样做的是:

已知低分辨率光流 → 直接插值放大

它不管“物理合理性”,只保证平滑。

而变分方法做的是:

在高分辨率上重新找一个光流场,使其:

  • 和低分辨率结果一致(数据项)
  • 又足够平滑(正则项)
  • 还能遵守图像边界(边缘感知)

也就是说:

❗不是“放大一个答案”,而是“重新优化一个更好的答案”


2. 数学本质:最小化一个能量函数

变分方法核心是:

E ( u ) = E data ( u ) + E smooth ( u ) E(u) = E_{\text{data}}(u) + E_{\text{smooth}}(u)E(u)=Edata(u)+Esmooth(u)

在光流里通常是:

(1) 数据一致性项

保证“上采样后的流”不要乱跑:

E data = ∣ u − u low-res upsample ∣ 2 E_{\text{data}} = | u - u_{\text{low-res upsample}} |^2Edata=uulow-res upsample2

意思是:

高分辨率光流不能偏离低分辨率结果太多


(2) 平滑正则项(关键)

经典形式:

E smooth = ∫ ∣ ∇ u ∣ 2 E_{\text{smooth}} = \int |\nabla u|^2Esmooth=∣∇u2

意思是:

光流在空间上应该尽量连续、平滑


(3) 边缘感知

你这段特别关键:

α = exp ⁡ ( − λ b ( x , y ) κ ) \alpha = \exp(-\lambda_b(x, y)\kappa)α=exp(λb(x,y)κ)

它的作用是:

在图像边界处降低平滑强度

这个参考论文《
【光流】2015:FlowNet: Learning Optical Flow with Convolutional Networks


3. 边界为什么要影响“变分”?

如果不加边界约束:

  • 光流会跨物体边界“糊在一起”
  • 例如:车和背景会被强行平滑

加了边界后:

  • 边缘处 α → 小
  • 平滑被抑制
  • 允许“断开”

直觉是:

📌 “物体内部要平滑,物体之间不能强行平滑”


4. FlowNet的“粗到细 + 迭代”

我们不使用双线性上采样,而是使用文献 [6] 中的变分方法(不含匹配项):我们从 4 倍下采样的分辨率开始,然后使用粗到细的方案进行 20 次迭代,将光流场提升至全分辨率。最后,我们在全图像分辨率上再运行 5 次迭代。我们还采用文献 [26] 中的方法计算图像边界,并通过将平滑系数替换为α = exp ⁡ ( − λ b ( x , y ) κ ) \alpha = \exp(-\lambda_b(x, y)\kappa)α=exp(λb(x,y)κ)来尊重检测到的边界,其中b ( x , y ) b(x, y)b(x,y)表示在相应尺度及像素之间重采样的薄边界强度。这种上采样方法比简单的双线性上采样计算成本更高,但它增加了变分方法的优势,从而获得平滑且亚像素精度的光流场。在下文中,我们用后缀“+v”表示通过这种变分细化获得的结果。

流程其实是典型的coarse-to-fine variational refinement

Step 1:低分辨率初始化

  • 4× downsample 光流
  • 得到稳定但粗糙的结构

Step 2:逐步上采样 + 优化(20次)

每一层做:

  1. 上采样当前光流(不是插值结束,而是初始化)
  2. 用变分能量函数做迭代优化
  3. 得到更细一层的解

Step 3:全分辨率再优化(5次)

  • 做局部精修
  • 修亚像素误差

5. 为什么说它比双线性更强?

双线性:

  • 纯几何插值
  • 不看图像
  • 不看运动
  • 不看边界
  • ❌ 会“糊”

变分方法:

  • 用优化约束“重建”
  • 引入图像结构(边界)
  • 引入物理一致性(光流连续性)
  • ✔ 能“贴边”
  • ✔ 能“断层”
  • ✔ 能亚像素精度

6. 一句话总结

你可以这样理解论文这句话:

变分上采样 = 在高分辨率上“重新求一个最合理的光流”,而不是简单放大低分辨率结果。


7. 一个更直观类比

方法类比
双线性上采样把模糊照片放大
变分上采样放大后重新“修图 + 对齐结构 + 抠边”
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/2 12:16:24

基于帕尔贴效应的DIY桌面加热器:从热电原理到工程实践

1. 项目概述:从热电效应到桌面暖手宝如果你对电子DIY或者热管理技术有点兴趣,大概听说过“半导体制冷片”这个东西。它的大名其实叫“帕尔贴模块”,核心原理就是“帕尔贴效应”。简单来说,当你给一块由两种不同半导体材料组成的模…

作者头像 李华
网站建设 2026/6/2 12:16:05

互联网大厂 Java 求职面试实录:从 Spring Boot 到微服务的深入探讨

互联网大厂 Java 求职面试实录:从 Spring Boot 到微服务的深入探讨 在互联网大厂的面试中,候选人经常会遇到各种技术问题,这些问题不仅考验候选人的技术能力,也考察他们在实际场景下的思考能力。以下是一次模拟面试的实录&#x…

作者头像 李华
网站建设 2026/6/2 12:14:56

Arduino与Tinkercad仿真:青少年机器人入门工作坊全流程设计

1. 项目概述:为什么选择Arduino与Tinkercad作为青少年机器人启蒙的起点?在STEM教育领域,找到一个既能激发兴趣、又能扎实传授核心概念的入门项目,一直是个挑战。很多现成的机器人套件要么过于“黑箱化”,学生只是按图索…

作者头像 李华
网站建设 2026/6/2 12:13:47

leecodecode【反前后指针】【2026.5.31打卡-java版本】

删除链表中的节点 要点:node.val node.next.val /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/ class Solution {public void deleteNode(ListNode node) {node.…

作者头像 李华
网站建设 2026/6/2 12:13:04

基于ESP-NOW与WS2812B的无线智能RGB灯DIY全解析

1. 项目概述:打造一个无需路由器的智能RGB灯在捣鼓智能家居和物联网项目时,我们常常会遇到一个两难的选择:要么依赖Wi-Fi路由器,设备一多网络就拥堵,延迟也不稳定;要么用蓝牙,距离又太近&#x…

作者头像 李华