https://sanwen8.cn/p/2e41VC5.html

本文系微信公众号《大话成像》,知乎专栏《 all in camera》原创文章,转载请注明出处。

接着上一篇的说,其实在双摄像头的景深计算过程中如果只是按照上一篇文章介绍最简单的处理办法是一定得不到一个理想的景深图。并且在处理速度上也得不到一个理想的结果。其实这个和双目视觉上一般存在的一些和预想不同的视觉差情况相关的。

如区域太过平坦或者花纹接近很难判断是不是最匹配。

反光的表面的光斑

反光有虚影的表面

大物体边缘的背景信息不一致

观察角度变化导致的长度变化

甚至观察角度变化导致的一些形变

这些问题其实就是当两张图像上点不能简单的判断对应的时候算法如何处理。

其实在介绍这些问题之前。图片拍摄过程中的噪声也是关键问题。上一篇文章中最后处理的不满意的一个主要原因就是噪声引起的。

有些朋友也有过回复其实一个简单的策略就是针对原图或者景深图进行滤波减少对生成景深图的影响。在实际处理中可以对原图做预处理也可以对生成的景深图做处理。目前效果好的就是美颜那篇文章中提到的双边滤波。原因很简单,保边滤噪。


解决上面,有一类思路是对之前生成的景深图进行后处理。这个时候就要看下面的这个公式。其实公式本身很简单,Edata代表我们匹配的结果,Esmooth代表一般景深场景下的连续性。也就是说两者都在景深的评价过程中都应该考虑。这其实是符合多数的图像的常识的。在考虑到景深图的平滑性之后景深图的质量有了很大的提升。

因此基于一般性的常识,很多研究针对景深的后处理提出了一些算法

• Dynamic Programming!

• ScanlineOptimization!

• Graph Cuts!

• Belief Propagation, …!

下面就是GraphCut的处理,其主要思想还是减少景深图中小块的区域。但是其实这种做法是可以减少很多小的噪声,但是在某些细节部分也会带来一些误判。导致物品的边缘发生变化。

另外就是根据State-of-art的原则,假设所有一个颜色都是出于一个平面。每次分析的时候根据颜色对窗口中的像素进行权重的分配。这样确实能够解决一些边缘的问题。

但是在一些情况下如下面的人脸和斜面的状况下,还是很容易出现景深的判断错误。一般景深判断算法很难处理这类问题。


另外就是之前提到的背景信息不同问题的。这类问题使用不同权重的方法可以得到一定程度的改善。

还有个不错的方法是通过不同方向的扫描线的方法来进行。其方法是根据不同方向下判断线的连续性来进行景深图的处理。最后综合成一张最后的景深图。相对这个步骤比较多,大家有兴趣可以参照下

H. Hirschmüller. Stereovision in structured environments by consistent semi-global matching.这篇文章。

另外有一些算法的思路通过以左右两张图片分别做为参考图片,分别计算景深。然后取两者中较小的。这样可以解决掉很大一部分误判。但是相对来说运算时间增加了一倍。

目前还有一类针对改善景深图的方法是通过调整评价窗口的大小,位置甚至形状来实现。之前的简单的方法是采用参考点在中心部位取window.其实也可以可以根据颜色去取参考点出于边上的点。

又或者可以通过多个子窗口去评价,子窗口的的排列可以根据实际图形的情况。比如取相同颜色的区域。



最后甚至还可以根据不同状况下来调整用来采样的窗口大小。

但是大家可以注意到上面的改进算法都有一个特征,增加算法的复杂程度。于是也有很多人研究怎么样减少运算量。其中一种方法是通过整张图累加到计算点的和来代替之前的计算两张图的差的方法。方法很简单,但是如果图像比较大容易出现溢出的状况。大家有兴趣可以看下

F. Crow, Summed-area tablesfor texture mapping, Computer Graphics,

还有些数学很好的专家,推算出如何通过减少运算量实现一样的Box-Filtering运算结果M.Mc Donnel. Box-filtering techniques. Computer Graphics and Image Processing

现在有很多算法都根据实际使用的平台通过GPU进行算法的优化。更好的整体解决方案公司甚至通过FPGA或者定制芯片来进行景深计算的速度问题。随着技术的发展相信更精确的速度更快的景深计算方案会不断的出来。

景深计算在物体识别,AR增强领域是个最基础的研究。这篇文章中介绍一些方法都是一些比较基础的方法。实际上还有很多思路来解决一些单独方面的问题。其实现在如何计算景深的研究还在发展,前一段时间还看到一些论文利用深度学**来进行景深计算的改进,从论文的效果来看不错。但是在实际产品使用中往往是多种方法结合来使用。而且在最终的成效果和运行时间上进行平衡。

本文参考StereoVision:   Algorithms and Applications     Stefano Mattoccia

Department ofComputer Science (DISI) University of Bologna

双camera景深计算相关推荐

  1. camera(18)---双摄像头深度剖析 :双Camera的生态链

    双摄像头深度剖析 :双Camera的生态链 1.双Camera算法供应商: 由于算法是需要跟ISP配合的,所以算法和ISP是相辅相成的,想把算法做好,也得有好的ISP. 做为主平台供应商,高通/联发科 ...

  2. camera---(3)双camera 生态链

    1.双Camera算法供应商: 由于算法是需要跟ISP配合的,所以算法和ISP是相辅相成的,想把算法做好,也得有好的ISP. 做为主平台供应商,高通/联发科都有自己的ISP,所以也自己开发了双Came ...

  3. 双摄像头深度剖析 (1):双Camera都能做什么?

    双Camera科普之一:双Camera都能做什么? 这两年手机的亮点越来越少,高端智能机现在基本都不再去比拼雷兔兔,而开始PK拍照性能.于是乎,这两年各家纷纷开始做起了双Camera. 那问题来了,双 ...

  4. 机器视觉问题:工业普通定焦镜头如何计算景深?景深计算

    影响景深的主要因素: 1. 镜头光圈 光圈越大,景深越小. 光圈越小,景深越大. 以大恒镜头HN-1226-20M-C1/1X为例: 型号这里的12代表12mm焦距,26代表最大光圈是2.6. 从产品 ...

  5. 远心镜头参数之一:远心镜头景深计算

    景深,在光学摄影中是一个很重要参数,它的大小决定着清晰图像范围.在远心光学成像中,景深也是一个经常被提及的参数,它的大小取决于镜头倍率.光圈数.波长.像素大小.客户使用的边缘提取算法灵敏度.对于大多数 ...

  6. matlab 双目 景深,双照相机景深分析的思路

    一.大致思路 输入:两个平行相机拍摄到的照片 Step1.照片预处理,包括照片校正,剔除左右相片曝光相差太大的照片,用它们做景深估计可能会出错 Step2.使用MATLAB相机标定工具箱先后进行单相机 ...

  7. 双代号网络图节点时间参数_管理和实务都考!快速学会单代号与双代号参数计算...

    工程网络计划是二级建造师<建设工程施工管理>科目每年均会进行考核的高频考点,重点在双代号.单代号网络计划的概念及应用.主要题型为通过网络图或文字描述计算相关网络参数或确定关键线路,本篇就双 ...

  8. 利用双均线策略计算中国平安股票收益

    一.知识储备 Hello,各位小伙伴们,本篇博文给大家带来的是利用双均线策略,对中国平安601318股票进行炒股,所能获得的大概收益.为了你能正确理解本文的知识,需要你提前做以下准备... pytho ...

  9. 镜头选型——景深计算

    正在上传-重新上传取消 1 概述 先看两个例子,拍摄花.昆虫等照片时,背景拍的比较模糊,突出被拍物.但当拍摄纪念照.风景等照片时,却会把背景拍摄得和被拍对象一样清晰.这两者就是不同景深.前者为浅景深, ...

最新文章

  1. Java培训好不好?零基础可以学吗?
  2. 强化学习是针对优化数据的监督学习?
  3. 11月最佳机器学习开源项目Top10!
  4. 京东面试官问我:“聊聊MySql事务,MVCC?”
  5. iOS和OS X中的bundle
  6. Python过渡性模块重载(递归重载模块)
  7. python中类似对象吗_确定对象是否为Python中类似字节的对象的正确方法是什么?...
  8. oracle 10 TNSLSNR.EXE 占用了8080端口怎么办
  9. 复杂对象的组装与创建——建造者模式
  10. vue热更新无法关闭_vue-cli3热更新失效
  11. 虚拟桌面之往事如风 --读书篇
  12. git bash上传代码到github
  13. 28.yii2 用户认证
  14. html载入hta文件,浅谈HTA(HTML Application)和病毒的关系
  15. 电脑遇到某某dll文件缺失、某某OCX缺失怎么办?
  16. 魔兽地图编辑器使用自定义图标的方法
  17. 原生JS实现的跳一跳小游戏完整实例
  18. HY-SRF05 五针超声波测距模块 在stm32f4上实现 附代码 个人经验
  19. 【游戏王arc-v卡片力量SP改名字ID教程】
  20. Ubuntu安装搜狗输入法后修改默认英文输入状态的方法

热门文章

  1. 芯片破壁者(十六):德州仪器的“罗生门”
  2. PyPI又双叒叕发现恶意软件
  3. [模板]可持久化平衡树
  4. 无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 1870(aptd)持有 的解决问题
  5. 老男孩教育Linux运维培训32期决心书
  6. 2020-06-02
  7. 什么是jQuery?jQuery有什么用?
  8. linux进程概念(中)
  9. b2b、c2c、B2C、B2B2C分别是什么意思?有什么区别?
  10. 中基鸿业小故事投资理财大启示