zoukankan      html  css  js  c++  java
  • 双目深度估计传统算法流程及OpenCV的编译注意事项

    起因:

    1. 双目立体视觉中双目深度估计是非常重要且基础的部分,而传统的立体视觉的算法基本上都在opencv中有相对优秀的实现。同时考虑了性能和效率。因此,学习使用opencv接口是非常重要的。

    2. 但对一个工具使用到一定程度后,有时候需要进行内置算法的改进,此时需要对opencv及外部依赖模块进行重编译。

    双目深度估计传统算法流程:

    A. 固定相机对(严格固定!),制作高精度棋盘格,挑选合适光源,选择合适的拍摄角度对棋盘格进行拍摄取样

    B. 使用matlab或opencv单目标定两个相机,采用如张正友相机标定算法。得到相机各自内参。

    C. 使用matlab或opencv双目标定相机对,评估重投影误差是否符合要求,检测角点的提取正确性。保存所有标定结果。

    D. 使用标定结果对同一组相机拍摄的图片对进行双目矫正,包含单目矫正以及ROI区域裁剪,得到行对齐的左右视图。

    E. 使用上述矫正后的图像(rectified views)采用BM,SGBM等算法进行深度估计,得到disparity map(视差图)。

    F. 视差图的倒数(注意除零错误)就是深度图。

    OpenCV及其附加模块的编译:

    (前置条件:安装对应Opencv支持的版本的visual studio)

    1. 下载cmake,免安装绿色版

    2. 下载opencv对应平台的版本,运行解压得到对应平台的源码

    3. 创建build文件夹

    4. 运行cmake,点击configure,指定编译器与平台,如VS2015就选择VC14 visual studio 2015 x64.

    5. 等待第一遍配置完成反馈结果,对于cpu平台,取消勾选所有包含cuda,cublas,cufft这些gpu加速相关模块。

    6. 在EXTRA_MODULES选项中选择opencv-contrib的modules文件夹

    7. 再次点击configure,等待所有的红色(错误)选项消失

    8. 点击generate,生成待编译项目,对于VS2015,则生成.sln解决方案文件。

    9. 点击open project进入visual studio

    10. 在VS中: 生成(build) -> 管理项目配置 -> Debug改为Release(因为一般的系统上都只有python模块的release版,编译debug模式会出错)

    11. 在VS中:项目资源中选择ALL_BUILDS右键单击选择【生成】,等待约20分钟。

    12. 在VS中,项目资源中选择INSTALL右键单击选择【生成】,等待10秒。

    13. 完成opencv及其附加库的编译。

    14. 将build文件夹下的install文件夹下的vc14/bin/整个绝对路径添加到电脑的系统环境变量(%PATH%)的末尾。

    15. 在使用opencv的项目中,项目属性-> c++库目录配置 -> include目录 & lib 目录

    16. 如果发现部分lib找不到链接库,那表明在configure阶段就因为平台不支持而没有进行加入待编译模块列表。注意初次出现红色的那一步,查看错误信息,按照信息提示安装相应的依赖项,重新configure即可。

  • 相关阅读:
    SQL Server连接Oracle详细步骤
    SQLServer2012连接mysql5.5
    SQL Server的链接服务器技术
    2键盘录入Scanner
    1标识符
    电脑从新分盘(软件)
    Tomcat安装配置
    windows下安装和配置多个版本的JDK
    Myeclipse2014的安装
    Could not find acceptable representation
  • 原文地址:https://www.cnblogs.com/thisisajoke/p/10649997.html
Copyright © 2011-2022 走看看