经过不懈的努力,最终成功完成双目视觉。在家做毕设真的酸爽,没有在学校有动力,也没有在实验室方便,但是这样更加锻炼自己的自控能力和学习能力。在FPGA上实现实在过于复杂,毕业设计到了后期还在做矫正,很担心做不出来,那段时间加班加点地做,最后成功挑战所谓的不可能。
简单说一下在FPGA上实现方法。双目的畸变和极线矫正以及立体匹配均是手写的verilog代码。前期使用matlab将双目所有的算法复现之后,然后才编写verilog代码并进行仿真,这样思路清晰效率也比较高。矫正部分有多个有符号的浮点数而且有比较复杂的乘除以及幂运算,直接使用Verilog实现是不可能的,所以后面先是换了个无畸变的镜头,就可以省略畸变矫正,剩下的极线矫正根据公式将能简化的都直接计算为参数,然后整体扩大将参数整数化。然后才编写verilog代码,刚开始直接使用*和/符号计算,但是时序很差,然后将这部分计算用dsp(FPGA 内部的dsp IP)完成。立体匹配部分也做简化没有左右一致检查,只采用一条路径进行搜索匹配。最后效果还能说得过去,优化空间比较大。
如果感兴趣的比较多,后面可以专门做一下开源。视频效果可以在我的bilibili上观看!!!