【光流】——数据格式解析,flowwarp可视化

光流

1. 数据格式

光流数据不好标注,至少还没有看到有关光流标注的方法。一般的,光流表示相邻两帧图像中,同一个像素点的移动,前向光流是t -> t+1 的,所以对光流进行可视化时,物体的轮廓和t时刻是一致的。后向光流一般定义的是:t - > t-1。

开源的光流数据有很多格式,不过一般都会提供数据解析的例子,按例子进行读取解析就行。光流的数据为:HxWx2,H,W分别表示图像的高度和宽度,2表示在x,y方向上的移动像素数。同时,这里的移动是以当前点为基点移动的。

这里对sintel数据集中一张图片进行可视化。
第一张图是0.5 x img1 + 0.5 x img2。
第二张图是光流可视化效果。
在这里插入图片描述

2. flow warp

拿到一个开源的光流数据集如何检查数据的正确性呢?如何将光流和图片一起联合起来进行直观的可视化?

flow warp就是根据光流对图片进行采样。这里我们采用cv2.remap进行实现。

code:
在这里插入图片描述

步骤:

  • 根据h, w 生成基准点矩阵,注意grid 是一个 HxWx2的矩阵,最后一个维度2,表示[x, y]方向的位移。以下是对grid部分值的打印。
    在这里插入图片描述
  • grid + flow,得到warp需要的光流。
  • 最后用opencv的remap进行采样,得到warp后的图像。
  • 这里warp的图像是img1,还是img2呢? 应该用img2来warp,因为new_flow是在img2中像素点的位置。所以整个warp是从img2根据前向光流warp到img1的过程。

可视化:
第一张图是img1
第二张图是img2 warp得到的 img1
在这里插入图片描述

为什么warp得到的img1有重影呢?
因为:new_flow = grid + flow,grid是基点矩阵,flow为 [0, 0]时,remap时,就会采集原来的点。flow不为0时,会根据 new_flow 进行采样。

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值