美文网首页
立体视觉数据集之MiddleBury离线使用踩坑记录(Windo

立体视觉数据集之MiddleBury离线使用踩坑记录(Windo

作者: amgoing | 来源:发表于2021-03-10 19:54 被阅读0次

最近在做立体视觉,想对自己做的算法进行匹配准确率的检测时找到了MiddleBury这个工具。但是看到这个纯英文的网站,我一开始是比较懵的,这都啥呀,随便看了两眼,还是不知道怎么用,问了几个师兄,都不知道,然后求助网友,也就只给我发了一个网址,打开一看这不是一样的嘛,不就是submit界面和主界面的区别嘛。算了,还是自己摸索吧。于是我开始认真找他的说明书README.txt。如下图:

README.txt
这玩意儿打开以后我们直接看他的quick start部分,像这样↓
quick start
这都能看懂吧,下载并解压MiddleEval3-data-Q.zip(原始图片及校正参数)、MiddleEval3-GT0-Q.zip(标准视差图)以及MiddEval3-SDK-1.6.zip(离线评测工具)。就刚刚那个说明书上面的表格看见了吧,里面有几个版本,F、H、Q代表了三个不同的分辨率,按照自己的需要下载不同分辨率的图片。解压到同一个文件夹下,合并起来就跟说明书里面的contents部分的结构一样了。
解压目录结构
好的,解压完成过后问题来了,继续看quick start中的2和3两步命令,是要进行编译,编译呢我们需要借助cmakecygwin以及MinGW,cmake的安装没什么好说的,下载跟自己电脑匹配的版本安装就行了。(这里为了方便,所有的安装都仅用windows64位来进行说明。所有的安装都不要带中文路径,最好连空格都不要用。)接下来就是这里面的坑了。

一、工具安装

1. cygwin安装时需要手动选择make和tcsh

追加下载make
追加下载tcsh

如上面两张图,我这里由于已经安装过了,所以在4那个位置显示的是keep,正常安装时需要选择版本号,一般选择最新的即可。两个都选择好以后,点击下一步,等待安装完成。安装完成后需要将安装目录(如:C:\cygwin64\bin)配置到环境变量path中去。

2. MinGW默认安装没有扩展包

官网下载的MinGW是不包含扩展包的,然而MiddleBury中的使用到了libpng这个扩展包,所以这里分享了一个自带扩展包的MinGW,链接已经在上面了。有带Git的和不带Git的版本,按需自取。我这里是下载后直接安装到C盘根目录,也就是这样(C:\MinGW\bin),将这个路径配置到环境变量path的最前面。
哦,还有一个cvkit工具,这个工具主要是方便查看pfm图像的,默认安装就行。

二、elas编译

这个部分呢也就是那个README.txt文件中quick start部分的第2个步骤。


elas编译

这个地方可能会遇到的坑有两个:
(1)如果电脑上同时装了visual studio的话,需要手动指定编译参数,所以其中的指令需要替换为:

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

(2)使用make指令时提示 -bash:make: 未找到命令,有两种办法,一种是将mingw安装目录下bin文件夹中的*****-make.exe复制一个副本出来重命名为make.exe,另一种是将make指令改为*****-make,*****是它的前缀,忘了是什么了,反正只有这么一个文件。
编译完成后如下图:


elas编译完成

三、imageLib编译

这个部分是那个README.txt文件中quick start部分的第3个步骤。这个步骤的坑在于code/imageLib/ImageIOpng.cpp中的png.h可能会出现找不到的情况,其实也就是刚开始说的默认的MinGW不包含libpng扩展包,下载上面链接中的安装包是包含了扩展包的,所以唯一要做的是将png.h的绝对路径写进去,如下图。


imageLib编译

imageLib目录编译完成后回退到上级目录继续编译,编译完成即可看到目录中多了以下文件。


imageLib编译完成
那个png2pfm.bat是自己加上的,方便手动转换视差图到pfm格式,其内容如下:
set /p name=suffix: 
png2pgm.exe disp0%name%.png disp0%name%.pgm
disp2pfm.exe disp0%name%.pgm disp0%name%.pfm
pause

意思就是手动输入文件名的后缀(共同前缀为disp0,这个后缀也就是自己的算法名称,可以随便取,仅限英文哈),然后自动生成对应的pgm和pfm文件(需要png文件也处于此bat文件所在目录下)。转换结果如下图所示。


png2pfm.png

然后将pfm文件拷贝到对应的trainingQ训练集中,如我这张图为trainingQ/Adriondack中的视差图,所以拷贝到这个位置。


Adirondack
离线测试的话一般只需要这个disp0*****.pfm和disp0GT.pfm就行了,当然有多种算法同时对比的话,只需要将后缀名进行区分开就可以。如我这里就有三个算法,一个是自己的AMG,一个是别人的ZHY,还有一个经典的SGM。如果是在线提交的话需要生成对应的time*****.txt文件,里面的内容就是一个浮点数,代表了算法所用时间,一般以秒为单位。像图片中这样放好文件以后,返回到MiddleEval3目录,继续看我们的README.txt。

四、离线测试

运行elas的usage

如图所示,执行该命令可以在对应的 trainingQ文件夹中生成标准的在线提交时需要的文件的格式,将其中的文件替换成自己的就行,在线提交时需要将Elas生成的文件删除,只保留自己的。
这个地方的坑在于需要将默认的bash修改成csh模式,其实打开这个runalg脚本的第一行就能发现,常用的都是bash,而它特别注明了要用csh。这就是一开始追加下载tcsh的原因,有了这个tcsh工具,才能使用该模式。
在cygwin的安装目录找到Cygwin.bat这个文件,将里面末尾的“.\bash --login -i”修改为“.\tcsh -l”。


tcsh

然后重新打开cygwin64 terminal,转到MiddleEval3目录下按照README.txt中第五步的usage就可以进行评测了。这里仅给出其中一个示例。


离线评测示例

相关文章

网友评论

      本文标题:立体视觉数据集之MiddleBury离线使用踩坑记录(Windo

      本文链接:https://www.haomeiwen.com/subject/ojhwqltx.html