光流其实就是目标物在第n帧与第n+1帧之间的位移差,也就是帧与帧的像素点的2维向量差。
在稠密光流图中,利用颜色表示目标光流向量的方向和强度
《Optical Flow in the Dark》是2020CVPR ,文章最最最主要的就是提出了一个较牛逼的数据集FCDN ,利用该数据集训练现存的光流估计网络(这个网络不是作者自己提的,而是引用的),会取得很不错的效果。
本文主要是想改善暗光下的光流估计效果,现存方法主要是将暗光下的图像进行提亮,再估计光流。但作者认为这样效果不好,因为提亮时候会破坏帧与帧之间的运动信息。
(1) 首先估计暗光下的噪声特性;
(2) 将噪声特性加入到FlyingChairs Dataset;
(3) 利用FlyingChairs Dark Noise(FCDN)训练FlowNet 、PWC-Net;
(4) 最后在Various Brightness Optical Flow(VBOF)上测试,发现预测暗光下的光流效果不错。
根据fig 1 ,就是 e,f,g 利用pwc-net估计光流,e是利用作者提出的FCDN数据集进行pwc-net的训练,然后再对b进行光流估计;
f是直接用pwc-net对b进行光流估计的;
g是在b增强的基础上,然后再估计的。
(其实就是两个光流估计主干:1)直接对图像进行光流估计;2)对图像增强提亮后,再光流估计)
Various Brightness Optical Flow Dataset (VBOF) 是作者自己拍的不同曝光下的图片,是用来测试并且估计噪声模型中的参数的。
Sony A6000 (102images), Canon EOS M6 (297 images), Fujifilm XT2 (199 images)
在移动物体前后的大约10种不同的曝光中拍摄了原始图像,然后使用明亮清晰的图像对,用 FlowNet2.0计算光流,当作ground truth ,并且不同的曝光图像对共享相同的光流。
下图fig2 就是作者拍摄的数据集。
End-to-end Optical Flow
在这个模块,依旧展示了光流估计的2个主干。Amplification ration 也相当于一个伽马,白平衡的操作。
Noise Analysis
接下来到了噪声分析:解释:
噪声主要分为两种:高斯噪声、散粒噪声,其中,高斯噪声是与光强没有关系的噪声,无论像素值是多少。另一种是散粒噪声,因为其符合泊松分布,又称为泊松噪声,随着光强增大,平均噪声也增大。
引用了该偏文章的噪声模型
[1]Alessandro Foi, Mejdi Trimeche, Vladimir Katkovnik, and Karen Egiazarian. Practical poissonian-gaussian noise modeling and fitting for single-image raw-data. IEEE Transactions on Image Processing, 17(10):1737–1754, 2008. 4 《针对单图像原始数据的泊松-高斯噪声建模和拟合》
证明,真实噪声z(x)分布约等于正态分布,(μ=y(x), lambda^2 = ax + b)
a 和 b 就相当于泊松分布的斜率和偏执
噪声水平通常随着亮度的下降而上升,在低强度暗图像中,a和b耦合更紧密,泊松相关参数比高斯相关参数相对较大,这意味着噪声更依赖于信号。
最后是FCDN数据集的合成步骤
这里有一个问题是,上图的数字是怎么来的,是predict和ground truth向量的2范数计算吗??
Loss的设计:如果给定每个像素ground truth的光流,那么对于每个像素,loss可以定义为预测的光流(2维向量)和groundtruth之间的欧式距离,称这种误差为EPE(End-Point-Error)。
在这里也引入了NLM(非局部均值滤波)进行去噪,间接证明作者合成数据集的噪声是较为真实的。后面也是一些展示实验。