@@ -13,54 +13,58 @@ A Python-based salient object detection and video object segmentation evaluation
1313## 重要提示
1414
1515- 2021年03月21日
16- - 正式删除需要个人定制的评估文件,这部分直接会放到本仓库的Readme中的[ Examples] ( #Examples ) 中,仅供参考。
17- - 将格式化输出功能调整,直接使用包` tabulate ` 处理,更加方便,输出的格式配置更丰富,详见< https://github.com/astanin/python-tabulate >
18- - 调整原来` cal_sod_matrics ` 的` skipped_datasets ` 为` get_datasets_info ` 的` specific_datasets ` 和` drawing_info ` 的` specific_methods ` 。
16+ - 正式删除需要个人定制的评估文件,这部分直接会放到本仓库的Readme中的[ Examples] ( #Examples ) 中,仅供参考。
17+ - 将格式化输出功能调整,直接使用包` tabulate ` 处理,更加方便,输出的格式配置更丰富,详见< https://github.com/astanin/python-tabulate >
18+ - 调整原来` cal_sod_matrics ` 的` skipped_datasets ` 为:
19+ - ` get_datasets_info ` 的` exclude_datasets/include_datasets `
20+ - ` get_methods_info ` 的` exclude_methods/include_methods ` 。
1921- 2021年03月14日
20- - 这一版本将数据集和方法的配置方法转换为基于json文件的配置。
21- - 一些配套的更改与简化。
22+ - 这一版本将数据集和方法的配置方法转换为基于json文件的配置。
23+ - 一些配套的更改与简化。
2224- 2021年03月12日
23- - 这一版本正式将sod的评估、绘图代码与配置分离,主要考虑如下
24- - 用户的配置是需要调整的,这部分不适宜被git严格的监视,也便于提交后续更新的时候,直接忽略关于配置的更改,即后续更新时,
25- 用户配置部分会不再更新,若是添加新功能,直接调整原始的函数,其参数默认关闭新功能,保证用户不会受到影响。
26- - sod和cosod评估方式有差异,但是绘图方式一致,所以现将评估绘图拆分成独立部分,置于metrics/sod文件夹下,之后或许或调整位置,
27- 但这种拆分策略不变。
28- - 优化了cosod的评估代码,对sod和cosod的指标recorder部分进行了简化。
29- - 不再使用独立的sod_metrics代码,由于我已经将PySODMetrics发布到了PyPI上,所以可以直接通过pip安装。
30- - 使用添加了对于print的一个彩色增强的封装,可见` ./utils/misc.py ` 中的` colored_print ` 。
31- - git不再跟踪方法配置文件和数据集配置文件,这部分现有的作为示例,仅供使用者独立补充和参考。
32- - 修复了之前绘制Fm曲线时x的问题,之前取反了。详见< https://github.com/lartpang/Py-SOD-VOS-EvalToolkit/issues/2 > 。
25+ - 这一版本正式将sod的评估、绘图代码与配置分离,主要考虑如下
26+ - 用户的配置是需要调整的,这部分不适宜被git严格的监视,也便于提交后续更新的时候,直接忽略关于配置的更改,即后续更新时,
27+ 用户配置部分会不再更新,若是添加新功能,直接调整原始的函数,其参数默认关闭新功能,保证用户不会受到影响。
28+ - sod和cosod评估方式有差异,但是绘图方式一致,所以现将评估绘图拆分成独立部分,置于metrics/sod文件夹下,之后或许或调整位置, 但这种拆分策略不变。
29+ - 优化了cosod的评估代码,对sod和cosod的指标recorder部分进行了简化。
30+ - 不再使用独立的sod_metrics代码,由于我已经将PySODMetrics发布到了PyPI上,所以可以直接通过pip安装。
31+ - 使用添加了对于print的一个彩色增强的封装,可见` ./utils/misc.py ` 中的` colored_print ` 。
32+ - git不再跟踪方法配置文件和数据集配置文件,这部分现有的作为示例,仅供使用者独立补充和参考。
33+ - 修复了之前绘制Fm曲线时x的问题,之前取反了。详见< https://github.com/lartpang/Py-SOD-VOS-EvalToolkit/issues/2 > 。
3334
3435## 特性
3536
3637* 提供11项显著性目标检测指标的评估
37- - F-measure-Threshold Curve
38- - Precision-Recall Curve
39- - MAE
40- - weighted F-measure
41- - S-measure
42- - max/mean/adaptive F-measure
43- - max/mean/adaptive E-measure
38+ - F-measure-Threshold Curve
39+ - Precision-Recall Curve
40+ - MAE
41+ - weighted F-measure
42+ - S-measure
43+ - max/mean/adaptive F-measure
44+ - max/mean/adaptive E-measure
4445* 测试代码高度优化
45- - 纯python实现,基于numpy和各种小trick计算各项指标,速度有保障
46- - 导出特定模型的结果到xlsx文件中(2021年01月04日重新提供支持)
47- - 导出测试结果到txt文件中
48- - 评估所有指定的方法,根据评估结果绘制PR曲线和F-measure曲线
46+ - 纯python实现,基于numpy和各种小trick计算各项指标,速度有保障
47+ - 导出特定模型的结果到xlsx文件中(2021年01月04日重新提供支持)
48+ - 导出测试结果到txt文件中
49+ - 评估所有指定的方法,根据评估结果绘制PR曲线和F-measure曲线
4950* 针对** DAVIS 2016无监督视频目标分割** 任务,提供` "J(M)", "J(O)", "J(D)", "F(M)", "F(O)", "F(D)" ` 等指标的评估(代码借鉴自davis官方的代码,建议使用前验证下)
50- - 导出对指定的模型预测结果的评估结果
51- - 表格化展示不同视频上模型预测的性能
51+ - 导出对指定的模型预测结果的评估结果
52+ - 表格化展示不同视频上模型预测的性能
5253
5354## 使用方法
5455
5556### General/Co-RGB/RGBD-SOD
5657
57- 由于对于数据集和方法的配置因用户而异,所以在< https://github.com/lartpang/Py-SOD-VOS-EvalToolkit/commit/d7bcc1d74065844fe0483dc3ce3fda7d06d07bc0 > 之后的版本不在更新` configs ` 文件夹中的这部分内容,直接给出一个简单的例子,用户可以自行修改。
58+ 由于对于数据集和方法的配置因用户而异,所以在< https://github.com/lartpang/Py-SOD-VOS-EvalToolkit/commit/d7bcc1d74065844fe0483dc3ce3fda7d06d07bc0 >
59+ 之后的版本不在更新` configs ` 文件夹中的这部分内容,直接给出一个简单的例子,用户可以自行修改。
5860例子可以参考之前的版本,例如:< https://github.com/lartpang/Py-SOD-VOS-EvalToolkit/tree/f9c1fd5ffeef1a58067e31b9e6d28e9eb0754c46/configs >
5961
6062先安装指标代码库:
6163
6264``` python
63- pip install pysodmetrics
65+ pip
66+ install
67+ pysodmetrics
6468```
6569
6670可见各自文件中的配置项。
@@ -126,7 +130,6 @@ pip install pysodmetrics
126130}
127131```
128132
129-
130133## Examples
131134
132135<details >
@@ -236,6 +239,7 @@ draw_curves(
236239 dataset_info = dataset_info,
237240)
238241```
242+
239243</details >
240244
241245<details >
@@ -287,14 +291,14 @@ output_path = "./output"
287291# 包含所有数据集信息的字典
288292dataset_info = get_datasets_info(
289293 datastes_info_json = data_info[" dataset" ],
290- specific_datasets = [" STERE797 " ],
294+ exclude_datasets = [" STEREO797 " ],
291295)
292296# 包含所有待比较模型结果的信息和绘图配置的字典
293297drawing_info = get_methods_info(
294298 methods_info_json = data_info[" method" ],
295299 for_drawing = for_drawing,
296300 our_name = " " ,
297- specific_methods = [" UCNet_ABP" , " UCNet_CVAE" ],
301+ exclude_methods = [" UCNet_ABP" , " UCNet_CVAE" ],
298302)
299303
300304# 用来保存测试结果的文件的路径
@@ -363,6 +367,7 @@ if for_drawing:
363367 dataset_info = dataset_info,
364368 )
365369```
370+
366371</details >
367372
368373<details >
@@ -579,6 +584,7 @@ if __name__ == "__main__":
579584 dataset_info = dataset_info,
580585 )
581586```
587+
582588</details >
583589
584590<details >
@@ -710,6 +716,7 @@ if __name__ == "__main__":
710716 skipped_names = [] # 可以跳过指定的数据集
711717 cal_all_metrics()
712718```
719+
713720</details >
714721
715722<details >
@@ -833,7 +840,7 @@ def get_mean_recall_decay_for_video(per_frame_values):
833840 ids = np.round(np.linspace(1 , len (per_frame_values), N_bins + 1 ) + 1e-10 ) - 1
834841 ids = ids.astype(np.uint8)
835842
836- D_bins = [per_frame_values[ids[i] : ids[i + 1 ] + 1 ] for i in range (0 , 4 )]
843+ D_bins = [per_frame_values[ids[i]: ids[i + 1 ] + 1 ] for i in range (0 , 4 )]
837844
838845 with warnings.catch_warnings():
839846 warnings.simplefilter(" ignore" , category = RuntimeWarning )
@@ -1068,4 +1075,5 @@ if __name__ == "__main__":
10681075 # show_results_from_data_file("./output/HDFNet_WSGNR50_V1.pkl")
10691076 # show_results_from_data_file("./output/matnet_ave.pkl")
10701077```
1078+
10711079</details >
0 commit comments