BSDS500 benchmark初次使用

Posted zjutzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BSDS500 benchmark初次使用相关的知识,希望对你有一定的参考价值。

BSDS500 benchmark初次使用

by Chris, [email protected]

基本说明

在看边缘检测算法,BSDS500是一个边缘检测的benchmark,HED/RCF论文都用这个测评。

注意:BSDS500也可以用作分割(Segmentation)的测评

官方主页:
https://www2.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/resources.html

下载和数据集完整包:
http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/BSR/BSR_full.tgz

环境说明:
Ubuntu16.04下运行的。BSDS500 benchmark初次使用
是matlab代码。Matlab2017a/2017b因为包含了groundTruth这个函数会导致冲突,用matlab2016b则没有问题。
如果要到windows下运行,需要重新编译.mexw文件,并且要手动处理类似sys/timer.h文件找不到的移植问题,所以暂时不考虑windows。

代码和算法思路梳理

RCF的作者刘云提供了绘制各个边缘检测算法在BSDS/NYUD数据集测评的结果对比/绘图代码:https://github.com/yun-liu/plot-edge-pr-curves。需要提供在BSDS500上执行边缘检测后生成的`xx_bdry.txt`和`xx_bdry_thr.txt`两个文件

使用BSDS500工具箱,能生成这两个文件:

  1. 运行bench_bsds500.m执行默认测评
  2. 经过3个多小时后,结果写入到/opt/data/BSR/BSDS500/ucm2/test_eval目录,包括eval_bdry.txteval_bdry_thr.txt等文件。

疑问

  1. 为什么要运行这么久?
    怀疑是ucm算法慢?
  2. 怎样运行别的算法,比如自行训练好的RCF模型,执行边缘检测

UCM
Ultrametric Countour Map的缩写
Boundary extraction in natural images using ultrametric contour maps
POCV
2006
P. Arbelaez et al

gPb
是globalized probability of boundary的缩写
Using Contours to Detect and Localize Junctions in Natural Images
CVPR
2008
Jitendra Malik组出品

OWT
Oriented Watershed Transform算法,一种图像分割算法,在amfm_pami2010.pdf中提出

gPb-owt-ucm
From Contours to Regions: An Empirical Evaluation
CVPR
2009

amfm_pami2010.pdf:
是对于gPb, gPb-owt-ucm的期刊(pami)版本。

代码分析

allBench()会传入inDir, outDir这两个参数

inDir是segmentation结果存放目录 默认是在../BSDS500/ucm2/test。存放的是.mat文件,每张测试图对应一个

似乎格式都是643x963或者963*643大小的数组。

粗略看,evaluation_bdry_image.mevaluation_reg_image.m中,把执行测试的边缘检测算法写死为ucm2:load了../BSDS500/ucm2/test/100007.mat类似格式的文件,得到ucm2变量,这个变量表示你对100007.jpg的边缘预测图,643x963大小,double类型。

643x963大小,会被强行sample到421x581的(~1/2)。后面这个尺寸,是groundTruth的尺寸。

要执行其他边缘检测方法的结果测评:
也就是生成xx_bdry.txtxx_bdry_thr.txt
修改BSR/bench/bench_bsds500.m中的inDiroutDir。默认需要把检测结果存为.mat格式,并且load后得到ucm2变量。否则,需要自行修改evaluation_bdry_image.mevaluation_reg_image.m中的代码。

以上是关于BSDS500 benchmark初次使用的主要内容,如果未能解决你的问题,请参考以下文章

git项目初次push提示error: failed to push some refs to https://gitee.com/xxxx/gittest.git’解决方案 --九五小庞(代码片段

BSDS100数据集

播放短(小于 0:00:500 秒)声音片段

使用benchmark.js进行前端代码基准测试

使用JMH做Benchmark基准测试

PHP 代码优化测试Benchmark数据测试