DAVIS2017数据集是一个面向视频对象分割(VOS)任务的重要数据集,具有多目标性、丰富性和高质量的特点。相比于DAVIS2016,它拥有更多的视频图片序列和帧数量
DAVIS2017数据集包含两个版本:
- 最初版本:DAVIS2017提供了train、val、test-dev和test-challenge四个split。其中train和val具有实例级分割标注,而test-dev和test-challenge不公开ground truth annotation,需要通过Evaluation Server评估性能。
- 无监督版本(DAVIS2017 Unsupervised):在2019年,提出了针对无监督视频目标分割的数据集。这个版本在原始的2017版本之上重新标注了分割标签,使得分割标注的语义关联更为一致,并且避免了原有数据集对semi-supervised segmentation的偏好性。
而Davis2017数据集的评估方法也有两个版本:matlab version和python version。因为matlab version和DAVIS2016的评估方法一样,所以这里只以python version为例。
官方网站:DAVIS: Densely Annotated VIdeo Segmentation (davischallenge.org)
评估代码:davisvideochallenge/davis2017-evaluation: Evaluation Framework for DAVIS 2017 Semi-supervised and Unsupervised used in the DAVIS Challenges (github.com)
一、数据集准备
你可能已经在跑网络之前已经下载过DAVIS2017数据集了,如果没有,可以点击上方官方网站传送门,点击下载并解压:
解压完该目录下有Annotations,ImageSets,JPEGImages
,分别对应mask标签,train/val序列列表以及RGB视频帧。下级又有480p和1080p两个子文件夹,之后都用到的是480p,将其放入评估代码目录
二、评估工具(指标代码)和路径设置
运行指标代码的目的就是让得到的分割结果转换为评价指标。通过上方传送门下载指标代码。
如果下载完,要是在Windows上直接运行python evaluation_method.py --task semi-supervised --results_path results/semi-supervised/xxxx(xxxx就是你需要进行评价指标转换的分割结果),大概率会出现路径报错问题,如果在Linux系统上运行的指标代码,也是可能报错,原代码需要一些路径设置:
打开评估代码中的evaluation_method.py,找到default_davis_path='提前下载好的数据集所在目录'
default_davis_path = '/home/peano/davis2017-evaluation-master/DAVIS/trainval/Annotations/'
打开davis.py ,将代码按照以下修改,因为在原来下载好的数据集中,Annotations,ImageSets,JPEGImages
是同属一级目录,故需要返回父目录
self.img_path = os.path.join(self.root, '..', 'JPEGImages', resolution)
annotations_folder = 'Annotations' if task == 'semi-supervised' else 'Annotations_unsupervised'
self.mask_path = os.path.join(self.root, '..', annotations_folder, resolution)
year = '2019' if task == 'unsupervised' and (subset == 'test-dev' or subset == 'test-challenge') else '2017'
self.imagesets_path = os.path.join(self.root,'..', 'ImageSets', year)
三、运行
设置完路径后,即可运行:
python evaluation_method.py --task semi-supervised --results_path results/semi-supervised/xxxx
得到评估结果并生成 global_results-val.csv和per-sequence_results-val.csv
global_results-val.csv和per-sequence_results-val.csv两个文件保存在/semi-supervised/xxxx下,点击打开:
global_results-val.csv:
:
per-sequence_results-val.csv:
注意:如果再次评估包含先前文件的文件夹,则将从 CSV 文件中读取结果,而不会重新计算。
结束!希望有所帮助!