《视频压缩》—光流图的可视化和特征图的可视化

文章介绍了如何查看和处理DVC/DCVC项目中的ME网络(基于SpyNet)生成的光流文件,特别是如何将estmv保存为.flo格式。在保存时需要注意输入格式应转换为array(h,w,c),并提供了相应的代码实现。此外,文章提到使用未训练好的网络可能导致光流图质量不佳,且与官方结果存在差异,这可能与训练和测试集的背景偏移有关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 查看DVC/DCVC的ME网络 (都是用的SpyNet网络)
  1. 找到DVC里面的flow文件,分析一下里面的函数的作用
  1. 所以怎么实现呢
  • 将estmv保存为.flo的光流文件

在我的文件夹

from torchvision import transforms
import matplotlib.pyplot as plt
    def writeFlow(self,filename, uv, v=None):#注意输入格式应当是array/(h,w,c)
        TAG_CHAR = np.array([202021.25], np.float32)
        nBands = 2
        if v is None:
            assert (uv.ndim == 3)
            assert (uv.shape[2] == 2)
            u = uv[:, :, 0]
            v = uv[:, :, 1]
        else:
            u = uv  

        assert (u.shape == v.shape)
        height, width = u.shape
        f = open(filename, 'wb')
        # write the header
        f.write(TAG_CHAR)
        np.array(width).astype(np.int32).tofile(f)
        np.array(height).astype(np.int32).tofile(f)
        # arrange into matrix form
        tmp = np.zeros((height, width * nBands))
        tmp[:, np.arange(width) * 2] = u
        tmp[:, np.arange(width) * 2 + 1] = v
        tmp.astype(np.float32).tofile(f)
        f.close()
  
    def imShow(self , input,i):   
        tensor = transforms.ToPILImage()(input)
        tensor.save(("./src/flow_from_DVC/img{}.png".format(i)))  

(69条消息) 光流.flo文件处理_光流文件存储形式_nulixuexidexiaojie的博客-优快云博客

  • 读取.flo光流文件,并可视化出来(代码在本地的PyCharm中;有两版:一个来自DVC/一个来自网上)

  1. 错误总结
  • 首先是要注意保存时,flow的输入格式,要【去梯度/,cpu()/换成numpy格式】,并且应当是(h,w,c)的格式,所以需要自己换一下轴的顺序

  • 一开始,输出的光流图很不好,原因:用了没有训练好的网络

  • 结论发现:和官方给的flow的图不同,我们的训练和测试集有背景的偏移

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值