windows下Middlebury离线工具使用(补充)

0.概要

windows系统下整体的编译过程和使用操作可见如下文章:
立体视觉数据集之MiddleBury离线使用踩坑记录(Windows+Cygwin)
这位博主已经非常细致地记录了安装过程,这里就依照他的安装过程中遇到的一些其他坑进行一些补充。

1.下载内容

跳转到middlebury官网,

  1. 下载1/4分辨率的输入数据集 MiddEval3-data-Q.zip 和 为基于左视图的真实结果 MiddEval3-GT0-Q.zip ,作为评估的数据部分。
  2. 下载程序,是一些由c++代码和shell脚本组成的SDK,可以在windows环境下运行,能够在所有数据集上运行算法,评估训练集结果,和为结果创建压缩文件以及上传。进行检测需要使用后缀为.pfg的PFM格式的视差图像(算法处理后的结果图)。
  3. 下载cvkit工具包,用于查看.pfm格式的文件。
    官网界面

2. 配置和使用

MiddEval3-SDK-1.6.zip 解压后得到MiddEval3文件夹,读里面的README.txt可知一共有若干步骤,依据每个步骤进行拆解。

(1) 将数据集放置MiddEval3文件夹中

将上面那两个数据集解压,直接丢进这个文件夹里,同名文件会进行融合。MiddEval3-GT0-Q.zip中放置的是真实结果(可以等效看成一种算法的结果),那么训练集中,除了左右视图,会出现对应某一种图的.pfm文件。
这个MiddEval3文件夹主要由一些shell脚本(runalg runeval runevalF 之类)和一些C++代码文件(code/ 和 /alg-ELAS[算法ELAS的代码])所组成。

(2) 编译Libelas

按照本篇开头提及的文章所述,安装cmake、cygwin以及MinGW,安装路径不要带中文,空格和特殊字符。
接下来,在命令行模式中,

cd alg-ELAS/build
cmake ..
make
cd ../..

↑需要完成这些命令。

如果本地已经有Visual Studio软件了,可以依据alg-ELAS/下面readme.md中的提示,打开cmake的图形化界面,先进行配置configure,但是要选择对应的vs版本。但是我自己执行的时候没有成功,红色部分是报错地方,有很多别的坑,这里只是提供GUI进行编译的思路。
使用图形化工具进行编译

回到命令行思路,安装cmake工具,这里的使用要注意一个问题,详见 windows cmake没有生成Makefile
如这篇文稿所提到,需要修改键入参数,

cd alg-ELAS/build
cmake -G  "MinGW Makefiles" ../

之后在build/路径下进行编译,使用的是MinGW/bin/目录下的make.exe进行编译,这里也需要做一处修改和 调整。详见: 在Windows下使用make命令
编译后结果如下
编译alg-ELAS

(3) 编译code/中的工具

cd code/imageLib
make
cd ..
make
cd ..

一个坑开篇的文章已经说过了,关于扩展包全路径补充问题,另一个问题是在执行makefile脚本时我遇到的问题,观察我的命令窗口,有一句

CreateProcess((null), rm -f libimg.*.a ) failed
“make (e=2): 系统找不到指定的文件”

一开始我以为是windows中cmd命令行不识别rm指令,仿照这篇文章"make (e=2): 系统找不到指定的文件"的原因,自己动手把rm都改成了del,后面执行的时候反而我的make编译工具出现了问题,跳了警告窗口。
我的把编译工具重装了之后,再尝试依然不行。依据我观察makefile语句,这个rm删除命令要做的是在Linux链接过程中产生的.a文件进行删除,但是最后并没有.a文件的产生,应该是已经删过了,但是为什么依然提醒我找不到该文件(所以无法删除)。
搜遍了网上之后,我联想到跳警告窗口之后编译工具有错,但是这个时候会生成系列中间文件,我在此种情况下,继续执行了一次make命令,编译却成功进行了。而中间文件也没有被清除,这不合理,但是碍于水平有限,不了解Linux内核和makefile文件的作用,此篇暂不讨论。继续执行后续编译。
编译结果
到此编译工作完成,可以依据readme.md进行后续测试操作。

(4) 运行评估

打开cygwin终端 ,在 windows 下的某目录中右键打开 cygwin 终端

运行结果
在训练集文件夹下的视差图都要用disp0%算法名%.pfm格式,这里放了4个图。
这里简单谈一下几个指标的意义。
mask:(水平/垂直方向上的)非遮挡区域比例 吗?(不大懂)
bad1.0 传递的阈值为1的时候,坏点率:即和真实结果在对应像素点位置的值的差距大于阈值的点。的比例。
invalid 无效点率 ,指的是那些黑色点,匹配失败,灰度为无穷大
totbad 总体坏点,坏点率 + 无效点率
avgErr 平均误差:所有的有效的点和真实结果的点的灰度差的累加和/所有有效点个数

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 30
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值