zynq FPGA 的双目视觉毕业设计(六)之硕士论文学习总结

简述

毕业设计做极线矫正做得差不多了,才开始总结论文,这是因为硕士论文没有详细论述这部分,基本靠看其他博客完成,当然也看了几篇关于图像畸变矫正的,但是由于大佬总结得太好了,我就没必要在花时间总结了。由于zynq板卡不小心弄坏了,在售后,没法继续做算法得移植,所以我现在继续做双目图像立体匹配算法的研究。今天总结下硕士论文。

正文

1)立体匹配算法的基本结构

说明:这里输入的是极线矫正完的图像。
匹配代价计算:衡量待匹配像素与候选像素之间的相关性。两个像素无论是否为同名点,都可以通过匹配代价函数计算匹配代价,代价越小则说明相关性越大,是同名点的概率也越大。

  • 代价计算的函数有:代价灰度差的绝对值和(SAD)、灰度差的平方和(SSD)、归一化互相(NCC)以及 Census 变换等;
  • 论文选用的函数:非参数图像变换(Census)。

代价聚合:针对单个像素的代价信息并不能准确的来计算视差值,因此代价聚合的目的就是最小化匹配不确定性,减小误匹配率。基本原理是以目标像素附近的像素(形成窗口)进行匹配。

  • 几种聚合窗口:多窗口(Multiple Windows)、自适应窗口(Adaptive Windows)以及自适
    应权重的窗口方法(Adaptive Support Windows)等。

视差选择:采用优胜劣汰(WTA)的策略的方式得到最优的视差值。

视差优化:对上一步得到的视差图进行进一步优化,改善视差图的质量,包括剔除错误视差、适当平滑以及子像素精度优化等步骤,一般采用左右一致性检查(Left-Right Check)算法剔除因为遮挡和噪声而导致的错误视差;采用剔除小连通区域算法来剔除孤立异常点;采用中值滤波(Median Filter)、双边滤波(Bilateral Filter)等平滑算法对视差图进行平滑
在这里插入图片描述

2)半全局立体匹配算法的硬件实现

算法主要包含相似度算子选择、代价计算、代价聚合、视差选择、左右校验以及中值滤波等六部分
在这里插入图片描述

(1)Census 变换

基本原理如下图,将中心的像素值与其周围的像素值进行比较,大于的为0,小于为1,得到矢量。然后将左右图像的矢量进行异或得到汉明距离。得到汉明距离中1的数量最少说明这个两个像素相似度越高,是一对像素
在这里插入图片描述

(2)路径聚合

采用 4 个方向的半全局匹配算法,每个方向得到最小值, 最后将四个方向不同的代价值取平均值。
在这里插入图片描述

(3)左右一致性校验

同时获取以左为参考图以及以右视图为参考图来获取的 2 个视差图进行校验,这个会浪费很大资源,我的ZYNQ 7020 估计资源不够用,而且降低下难度,所以我舍弃这个步骤,只以右为参考图生成视差图。
在这里插入图片描述

(4)中值滤波

为了滤除条纹和噪声,采用中值滤波消除异常的视差值。
在这里插入图片描述

(5)最后他的效果

在这里插入图片描述

总结

研究这篇论文,这篇论文是众多里写的最好的,很多地方明白了,但是对路径聚合还是有点迷,后面再看看其他资料再修改补充。下一步由于板卡还没到,所以只有使用matlab做双目立体匹配的算法仿真了。
硕士论文链接:基于FPGA的实时双目立体视觉系统的设计与实现 商海洋 哈尔滨工业大学

欢迎关注我的公众号:芯王国,有更多的FPGA&数字IC的技术分享,还可以获取开源FPGA项目!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40377195/article/details/104886284