middlebury立体匹配评估使用方法总结(一)——网站说明
middlebury立体匹配评估使用方法总结(二)——python版离线教程
middlebury立体匹配评估使用方法总结(三)——线上版教程
最近想使用middlebury数据集测一下算法的效果如何,奈何网上没有完整的搭建middlebury离线环境的教程,自己查阅资料和阅读官方readme文档总结如下教程。
推荐两个博主的文章,非常有用。
windows下Middlebury离线工具使用(补充)
立体视觉数据集之MiddleBury离线使用踩坑记录(Windows+Cygwin)
进入middlebury官网
README.txt可以查看官方给的方案。
1、,下载并解压MiddleEval3-data-Q.zip(原始图片及校正参数)、MiddleEval3-GT0-Q.zip(标准视差图)。(F、H、Q代表了三个不同的分辨率,按照自己的需要下载不同分辨率的图片,也可以都下载下来,一共15组,没多大),解压到同一个文件夹下,合并起来就跟说明书里面的contents部分的结构一样了。
2、下载MiddEval3-SDK-1.6.zip(离线评测工具),是一些由c++代码和shell脚本组成的SDK,可以在windows环境下运行,能够在所有数据集上运行算法,评估训练集结果,和为结果创建压缩文件以及上传。进行检测需要使用后缀为.pfg的PFM格式的视差图像(算法处理后的结果图)。
3、下载cvkit工具包,用于查看.pfm格式的文件。
1、安装cmake
2、安装cygwin(cygwin安装时需要手动选择make和tcsh)
3、安装MinGW(官网下载的MinGW是不包含扩展包的,然而MiddleBury中的使用到了libpng这个扩展包,所以这里分享了一个自带扩展包的MinGW,链接已经在上面了。)
4、分别为cmake、cygwin、MinGM配置环境变量。
官方文档说明
在middlebury文件夹下cmd执行
cd alg-ELAS/build
cmake ..
make
cd ../..
code/imageLib/ImageIOpng.cpp中的png.h可能会出现找不到的情况,所以需要手动添加如下代码:
路径改成自己的MinGW安装路径
extern "C"{
#include "E:\\MinGW\\MinGW\\include\\png.h"
}
在middlebury文件夹下cmd执行
cd code/imageLib
make
cd ..
make
cd ..
打开cygwin终端 ,参考在 windows 下的某目录中右键打开 cygwin 终端
输入指令,可以查看相关操作
/.runeval
通过python中opencv代码可以获取pfm的视差图,建议直接保存为pfm文件,放到对应的测试文件目录下,即可进行测试。
cv2.imwrite("test.pfm",disp)
在cygwin中输入指令,进行测试
./runeval Q Adirondack 1
mask:(水平/垂直方向上的)非遮挡区域比例
bad1.0 传递的阈值为1的时候,坏点率:即和真实结果在对应像素点位置的值的差距大于阈值的点的比例
invalid 无效点率 ,指的是那些黑色点,匹配失败,灰度为无穷大
totbad 总体坏点,坏点率 + 无效点率
avgErr 平均误差:所有的有效的点和真实结果的点的灰度差的累加和/所有有效点个数
粘贴一下我的文件夹图,大家可以对照一下,看却些什么。