File size: 1,360 Bytes
c162d1f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | from typing import List
from .data_loader import METRIC_CHOICES, DIMENSION_METRICS
def get_metric_choices() -> List[str]:
"""获取带标记的指标选项"""
# 获取基础指标(排除维度指标和EWMScore)
basic_metrics = [m for m in METRIC_CHOICES if m not in DIMENSION_METRICS and m != "EWMScore"]
# 对维度指标加特殊标记,并按特定顺序排序
# 定义维度指标的顺序
dimension_order = ["Visual Quality", "Motion Quality", "Content Consistency",
"Physics Adherence", "3D Accuracy", "Controllability"]
# 确保维度指标按照指定顺序排列
ordered_dimensions = []
for dim in dimension_order:
if dim in DIMENSION_METRICS:
ordered_dimensions.append(dim)
# 添加可能遗漏的维度指标
for dim in DIMENSION_METRICS:
if dim not in ordered_dimensions:
ordered_dimensions.append(dim)
dimension_choices = [f"📊 {m}" for m in ordered_dimensions]
# 将EWMScore放在第一个,然后维度指标,最后基础指标
return ["EWMScore"] + dimension_choices + sorted(basic_metrics)
def clean_metric_names(metrics: List[str]) -> List[str]:
"""清理指标名称(去除特殊标记)"""
return [m.replace("📊 ", "") for m in metrics]
|