Facebook Surround360 学习笔记--(4)色彩/视差不一致问题

来源:互联网 发布:wpa2psk破解软件 编辑:程序博客网 时间:2024/06/04 04:01


surround360的开源资料地址:
https://github.com/facebook/Surround360
下载好代码和测试数据集,配置好环境,关于环境配置可以参考这篇博客,写的挺详细:
http://blog.csdn.net/sunyolanda_cs/article/details/52448399
运行代码的说明可以参考这篇博客:
http://blog.csdn.net/sunyolanda_cs/article/details/52448606
跑一下程序看看效果。代码跑一遍还是比较慢的,如果顺利的话,会生成如下两张左右眼视差图:
这里写图片描述
这里写图片描述
从结果来看,天空、地面和中间融合的很好,用VR眼镜看的话,视差没有什么错误,色彩也很一致,几乎看不到任何不适的地方。这一切需要 以下几个保障:

  • surround360严苛的硬件保证极大减轻了算法的负担。硬件的要求见上一篇博客 《 Facebook Surround360 学习笔记–(3)硬件设计要点》。
  • Surround360关闭了所有相机的自动颜色校正、自动曝光等功能。并且使用专用的颜色板在光照可控的环境下用所有相机进行拍摄并建立了颜色校正矩阵,从而保证拍摄的原始图片色彩一致性非常高。
  • 如果两张待融合的图片色彩差别较大,拼接算法会选择它认为更接近场景的一种颜色,从而避免产生ghosting。

但是,如果自己设计硬件,采用不同的设计方案,可能因为一些原因比如:硬件制造精度达不到,相机数目不同,相机的品牌不同(毕竟不是谁都能随随便便买十几个Point Gray玩)等,很难得到和surround360一样高质量的结果。

如果使用自己的设备,产生色彩/视差不一致问题,如何改进呢?下面给出几种可能的解决方案。

1、配置选择

在跑Python 脚本 ‘run_all.py’ 之前, 需要做一些配置选择:

  • 计算 rectify。用来做几何光束平叉,将侧面相机拍摄的所有图片校正到同一个水平线上。
  • 勾选 “enable_render_coloradjust”。勾选后,需要跑两次代码,第一次跑完后会生成一个名字为 brightnessadjust.txt的文件,其中存储的是对每个相机做的一个色彩微调。第二次再跑代码的时候,就会把上次的微调结果加入到当前的图片中。

2、光流计算

  • 在计算光流时,通常图像的分辨率越高,光流计算结果越准确。surround360 最大输出可以达到8k。
    在6k分辨率下:
    eqr_width=6300,eqr_height=3072。
    在8k分辨率下:
    eqr_width=8400,eqr_height=4096。

  • 光照强度对光流计算影响也非常大,如果拍摄的图片曝光过度或者曝光不足,或者图片中包含很多的噪声,光流计算可能会出现问题。

  • 色彩不一致也会影响光流计算,所以需要使能 enable_render_coloradjust。
阅读全文
0 0