Spaces:
Running
Running
AlanLiangC
commited on
Commit
·
9d1372a
1
Parent(s):
f8f63d3
add models
Browse files- app.py +60 -56
- worldlens-results/DrivingSphere.json +12 -0
- worldlens-results/Panacea.json +9 -0
- worldlens-results/RLGF.json +12 -0
- worldlens-results/dist4d.json +28 -0
- worldlens-results/dreamforge.json +21 -21
- worldlens-results/drivedreamer2.json +28 -0
- worldlens-results/magicdriveV2.json +12 -0
- worldlens-results/opendwm.json +28 -0
- worldlens-results/xscene.json +28 -0
app.py
CHANGED
|
@@ -9,7 +9,6 @@ import gradio as gr
|
|
| 9 |
|
| 10 |
RESULTS_DIR = "./worldlens-results"
|
| 11 |
|
| 12 |
-
# 指标好坏方向
|
| 13 |
METRICS_MIN_BETTER = [
|
| 14 |
"Depth Discrepancy", "Perceptual Discrepancy",
|
| 15 |
"Photometric Error", "Geometric Discrepancy",
|
|
@@ -20,7 +19,7 @@ METRICS_MIN_BETTER = [
|
|
| 20 |
METRICS_MAX_BETTER = [
|
| 21 |
"Subject Fidelity", "Subject Coherence", "Subject Consistency",
|
| 22 |
"Temporal Consistency", "Semantic Consistency",
|
| 23 |
-
"View Consistency",
|
| 24 |
"Novel-View Quality",
|
| 25 |
"Open-Loop Adherence", "Route Completion", "Closed-Loop Adherence",
|
| 26 |
"Map Segmentation", "3D Object Detection", "3D Object Tracking",
|
|
@@ -32,19 +31,14 @@ METRIC_BETTER: Dict[str, Literal["min", "max"]] = {
|
|
| 32 |
}
|
| 33 |
METRIC_BETTER.update({m: "max" for m in METRICS_MAX_BETTER})
|
| 34 |
|
| 35 |
-
# 下拉框展示的所有指标(去重+排序)
|
| 36 |
METRIC_CHOICES: List[str] = sorted(set(METRICS_MIN_BETTER + METRICS_MAX_BETTER))
|
| 37 |
DEFAULT_METRIC = "Subject Fidelity" if "Subject Fidelity" in METRIC_CHOICES else METRIC_CHOICES[0]
|
| 38 |
|
| 39 |
-
# 全局 DataFrame(所有模型)
|
| 40 |
df_all: Optional[pd.DataFrame] = None
|
| 41 |
|
| 42 |
|
| 43 |
def load_results() -> pd.DataFrame:
|
| 44 |
-
|
| 45 |
-
从 ./worldlens-results 读取所有 json,整理成一个宽表:
|
| 46 |
-
每一行是一个模型,每一列是一个指标。
|
| 47 |
-
"""
|
| 48 |
rows = []
|
| 49 |
|
| 50 |
json_files = sorted(glob.glob(os.path.join(RESULTS_DIR, "*.json")))
|
|
@@ -57,7 +51,7 @@ def load_results() -> pd.DataFrame:
|
|
| 57 |
|
| 58 |
model_name = os.path.splitext(os.path.basename(path))[0]
|
| 59 |
venue = data.get("venue", "")
|
| 60 |
-
date = data.get("
|
| 61 |
|
| 62 |
row = {
|
| 63 |
"Model": model_name,
|
|
@@ -66,7 +60,6 @@ def load_results() -> pd.DataFrame:
|
|
| 66 |
}
|
| 67 |
|
| 68 |
metrics = data.get("Metrics", {})
|
| 69 |
-
# 展开所有子字典,列名直接用 metric 名称(假设唯一)
|
| 70 |
for category, metric_dict in metrics.items():
|
| 71 |
if not isinstance(metric_dict, dict):
|
| 72 |
continue
|
|
@@ -77,7 +70,6 @@ def load_results() -> pd.DataFrame:
|
|
| 77 |
|
| 78 |
df = pd.DataFrame(rows)
|
| 79 |
|
| 80 |
-
# 统一列顺序:meta + 指标
|
| 81 |
meta_cols = ["Model", "venue", "date"]
|
| 82 |
metric_cols = [c for c in df.columns if c not in meta_cols]
|
| 83 |
df = df[meta_cols + metric_cols]
|
|
@@ -100,15 +92,10 @@ def update_leaderboard(
|
|
| 100 |
sort_mode: str,
|
| 101 |
selected_metrics: Optional[List[str]],
|
| 102 |
) -> Tuple[pd.DataFrame, plt.Figure]:
|
| 103 |
-
|
| 104 |
-
根据用户选择更新排行榜表格与条形图。
|
| 105 |
-
metric: 用于排序 & 画图的主指标
|
| 106 |
-
selected_metrics: 勾选的“想在表格中展示”的其它指标(可以多个)
|
| 107 |
-
"""
|
| 108 |
global df_all
|
| 109 |
|
| 110 |
if df_all is None or df_all.empty:
|
| 111 |
-
# 空表兜底
|
| 112 |
fig, ax = plt.subplots(figsize=(6, 3))
|
| 113 |
ax.text(0.5, 0.5, "No results found in ./worldlens-results",
|
| 114 |
ha="center", va="center")
|
|
@@ -117,11 +104,9 @@ def update_leaderboard(
|
|
| 117 |
|
| 118 |
df = df_all.copy()
|
| 119 |
|
| 120 |
-
# 模型名过滤
|
| 121 |
if model_filter:
|
| 122 |
df = df[df["Model"].str.contains(model_filter, case=False, regex=False)]
|
| 123 |
|
| 124 |
-
# venue 过滤
|
| 125 |
if venue_filter and venue_filter != "All":
|
| 126 |
df = df[df["venue"] == venue_filter]
|
| 127 |
|
|
@@ -131,30 +116,22 @@ def update_leaderboard(
|
|
| 131 |
ax.axis("off")
|
| 132 |
return pd.DataFrame(), fig
|
| 133 |
|
| 134 |
-
# 排序方向
|
| 135 |
better = METRIC_BETTER.get(metric, "max")
|
| 136 |
if sort_mode == "Auto":
|
| 137 |
ascending = (better == "min")
|
| 138 |
elif sort_mode == "Ascending (small → large)":
|
| 139 |
ascending = True
|
| 140 |
-
else:
|
| 141 |
ascending = False
|
| 142 |
|
| 143 |
df_sorted = df.sort_values(metric, ascending=ascending)
|
| 144 |
|
| 145 |
-
# Top-K
|
| 146 |
df_top = df_sorted.head(top_k).copy()
|
| 147 |
-
|
| 148 |
-
# 构造表格列:
|
| 149 |
-
# 固定: Model, venue, date
|
| 150 |
-
# + 勾选的指标
|
| 151 |
-
# + 排序指标(如果没选)
|
| 152 |
cols = ["Model", "venue", "date"]
|
| 153 |
|
| 154 |
if selected_metrics is None:
|
| 155 |
selected_metrics = []
|
| 156 |
|
| 157 |
-
# 去掉不在 df_top 里的指标(有些 metric 可能某些 json 里没计算)
|
| 158 |
for m in selected_metrics:
|
| 159 |
if m in df_top.columns and m not in cols:
|
| 160 |
cols.append(m)
|
|
@@ -164,30 +141,63 @@ def update_leaderboard(
|
|
| 164 |
|
| 165 |
table_df = df_top[cols].round(3)
|
| 166 |
|
| 167 |
-
#
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 173 |
|
| 174 |
-
# 为了让「最好的」在上面:如果按升序(小→大),我们反转 y 轴,让更小的在上。
|
| 175 |
if ascending:
|
| 176 |
ax.invert_yaxis()
|
| 177 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 178 |
plt.tight_layout()
|
| 179 |
|
| 180 |
return table_df, fig
|
| 181 |
|
| 182 |
|
| 183 |
def reload_data():
|
| 184 |
-
|
| 185 |
-
点击“Reload JSONs” / 页面加载时调用:
|
| 186 |
-
重新加载所有 json,并返回:
|
| 187 |
-
- 状态文字
|
| 188 |
-
- venue_dropdown 的更新
|
| 189 |
-
- 默认的表格和图
|
| 190 |
-
"""
|
| 191 |
global df_all
|
| 192 |
df_all = load_results()
|
| 193 |
|
|
@@ -204,7 +214,6 @@ def reload_data():
|
|
| 204 |
venue_choices = get_venue_choices(df_all)
|
| 205 |
msg = f"Loaded {len(df_all)} models from {RESULTS_DIR}"
|
| 206 |
|
| 207 |
-
# 用默认 metric 画一次(selected_metrics 先用一个简单默认)
|
| 208 |
default_selected = ["Subject Fidelity", "Temporal Consistency", "Map Segmentation"]
|
| 209 |
default_selected = [m for m in default_selected if m in METRIC_CHOICES]
|
| 210 |
|
|
@@ -234,7 +243,6 @@ with gr.Blocks(css="""
|
|
| 234 |
gr.Markdown(
|
| 235 |
"""
|
| 236 |
# 🌍 WorldLens Leaderboard
|
| 237 |
-
> from WorldBench Team
|
| 238 |
""",
|
| 239 |
elem_id="title"
|
| 240 |
)
|
|
@@ -243,13 +251,13 @@ with gr.Blocks(css="""
|
|
| 243 |
|
| 244 |
with gr.Row():
|
| 245 |
metric_dropdown = gr.Dropdown(
|
| 246 |
-
label="
|
| 247 |
choices=METRIC_CHOICES, # 固定 choices,避免动态更新不兼容
|
| 248 |
value=DEFAULT_METRIC,
|
| 249 |
interactive=True,
|
| 250 |
)
|
| 251 |
sort_mode_radio = gr.Radio(
|
| 252 |
-
label="
|
| 253 |
choices=[
|
| 254 |
"Auto",
|
| 255 |
"Ascending (small → large)",
|
|
@@ -259,7 +267,7 @@ with gr.Blocks(css="""
|
|
| 259 |
interactive=True,
|
| 260 |
)
|
| 261 |
topk_slider = gr.Slider(
|
| 262 |
-
label="
|
| 263 |
minimum=3,
|
| 264 |
maximum=50,
|
| 265 |
value=10,
|
|
@@ -269,7 +277,7 @@ with gr.Blocks(css="""
|
|
| 269 |
|
| 270 |
# 新增:表格中展示的多个指标
|
| 271 |
metrics_select = gr.CheckboxGroup(
|
| 272 |
-
label="
|
| 273 |
choices=METRIC_CHOICES,
|
| 274 |
value=["Subject Fidelity", "Temporal Consistency", "Map Segmentation"],
|
| 275 |
interactive=True,
|
|
@@ -277,12 +285,12 @@ with gr.Blocks(css="""
|
|
| 277 |
|
| 278 |
with gr.Row():
|
| 279 |
model_filter_box = gr.Textbox(
|
| 280 |
-
label="
|
| 281 |
-
placeholder="
|
| 282 |
interactive=True,
|
| 283 |
)
|
| 284 |
venue_dropdown = gr.Dropdown(
|
| 285 |
-
label="
|
| 286 |
choices=["All"],
|
| 287 |
value="All",
|
| 288 |
interactive=True,
|
|
@@ -296,17 +304,14 @@ with gr.Blocks(css="""
|
|
| 296 |
label="Leaderboard",
|
| 297 |
interactive=False,
|
| 298 |
)
|
| 299 |
-
# 显式指定 format="png",避免 webp 不支持的问题
|
| 300 |
leaderboard_plot = gr.Plot(label="Metric comparison", format="png")
|
| 301 |
|
| 302 |
-
# 点击 Reload:重新加载 + 更新 venue + 表格与图
|
| 303 |
reload_button.click(
|
| 304 |
fn=reload_data,
|
| 305 |
inputs=[],
|
| 306 |
outputs=[status_box, venue_dropdown, leaderboard_table, leaderboard_plot],
|
| 307 |
)
|
| 308 |
|
| 309 |
-
# 更新排行榜(多传一个 selected_metrics)
|
| 310 |
update_button.click(
|
| 311 |
fn=update_leaderboard,
|
| 312 |
inputs=[
|
|
@@ -320,7 +325,6 @@ with gr.Blocks(css="""
|
|
| 320 |
outputs=[leaderboard_table, leaderboard_plot],
|
| 321 |
)
|
| 322 |
|
| 323 |
-
# 页面加载时自动尝试加载一次
|
| 324 |
demo.load(
|
| 325 |
fn=reload_data,
|
| 326 |
inputs=[],
|
|
@@ -329,4 +333,4 @@ with gr.Blocks(css="""
|
|
| 329 |
|
| 330 |
|
| 331 |
if __name__ == "__main__":
|
| 332 |
-
demo.launch()
|
|
|
|
| 9 |
|
| 10 |
RESULTS_DIR = "./worldlens-results"
|
| 11 |
|
|
|
|
| 12 |
METRICS_MIN_BETTER = [
|
| 13 |
"Depth Discrepancy", "Perceptual Discrepancy",
|
| 14 |
"Photometric Error", "Geometric Discrepancy",
|
|
|
|
| 19 |
METRICS_MAX_BETTER = [
|
| 20 |
"Subject Fidelity", "Subject Coherence", "Subject Consistency",
|
| 21 |
"Temporal Consistency", "Semantic Consistency",
|
| 22 |
+
"View Consistency",
|
| 23 |
"Novel-View Quality",
|
| 24 |
"Open-Loop Adherence", "Route Completion", "Closed-Loop Adherence",
|
| 25 |
"Map Segmentation", "3D Object Detection", "3D Object Tracking",
|
|
|
|
| 31 |
}
|
| 32 |
METRIC_BETTER.update({m: "max" for m in METRICS_MAX_BETTER})
|
| 33 |
|
|
|
|
| 34 |
METRIC_CHOICES: List[str] = sorted(set(METRICS_MIN_BETTER + METRICS_MAX_BETTER))
|
| 35 |
DEFAULT_METRIC = "Subject Fidelity" if "Subject Fidelity" in METRIC_CHOICES else METRIC_CHOICES[0]
|
| 36 |
|
|
|
|
| 37 |
df_all: Optional[pd.DataFrame] = None
|
| 38 |
|
| 39 |
|
| 40 |
def load_results() -> pd.DataFrame:
|
| 41 |
+
|
|
|
|
|
|
|
|
|
|
| 42 |
rows = []
|
| 43 |
|
| 44 |
json_files = sorted(glob.glob(os.path.join(RESULTS_DIR, "*.json")))
|
|
|
|
| 51 |
|
| 52 |
model_name = os.path.splitext(os.path.basename(path))[0]
|
| 53 |
venue = data.get("venue", "")
|
| 54 |
+
date = data.get("date", "")
|
| 55 |
|
| 56 |
row = {
|
| 57 |
"Model": model_name,
|
|
|
|
| 60 |
}
|
| 61 |
|
| 62 |
metrics = data.get("Metrics", {})
|
|
|
|
| 63 |
for category, metric_dict in metrics.items():
|
| 64 |
if not isinstance(metric_dict, dict):
|
| 65 |
continue
|
|
|
|
| 70 |
|
| 71 |
df = pd.DataFrame(rows)
|
| 72 |
|
|
|
|
| 73 |
meta_cols = ["Model", "venue", "date"]
|
| 74 |
metric_cols = [c for c in df.columns if c not in meta_cols]
|
| 75 |
df = df[meta_cols + metric_cols]
|
|
|
|
| 92 |
sort_mode: str,
|
| 93 |
selected_metrics: Optional[List[str]],
|
| 94 |
) -> Tuple[pd.DataFrame, plt.Figure]:
|
| 95 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
global df_all
|
| 97 |
|
| 98 |
if df_all is None or df_all.empty:
|
|
|
|
| 99 |
fig, ax = plt.subplots(figsize=(6, 3))
|
| 100 |
ax.text(0.5, 0.5, "No results found in ./worldlens-results",
|
| 101 |
ha="center", va="center")
|
|
|
|
| 104 |
|
| 105 |
df = df_all.copy()
|
| 106 |
|
|
|
|
| 107 |
if model_filter:
|
| 108 |
df = df[df["Model"].str.contains(model_filter, case=False, regex=False)]
|
| 109 |
|
|
|
|
| 110 |
if venue_filter and venue_filter != "All":
|
| 111 |
df = df[df["venue"] == venue_filter]
|
| 112 |
|
|
|
|
| 116 |
ax.axis("off")
|
| 117 |
return pd.DataFrame(), fig
|
| 118 |
|
|
|
|
| 119 |
better = METRIC_BETTER.get(metric, "max")
|
| 120 |
if sort_mode == "Auto":
|
| 121 |
ascending = (better == "min")
|
| 122 |
elif sort_mode == "Ascending (small → large)":
|
| 123 |
ascending = True
|
| 124 |
+
else:
|
| 125 |
ascending = False
|
| 126 |
|
| 127 |
df_sorted = df.sort_values(metric, ascending=ascending)
|
| 128 |
|
|
|
|
| 129 |
df_top = df_sorted.head(top_k).copy()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 130 |
cols = ["Model", "venue", "date"]
|
| 131 |
|
| 132 |
if selected_metrics is None:
|
| 133 |
selected_metrics = []
|
| 134 |
|
|
|
|
| 135 |
for m in selected_metrics:
|
| 136 |
if m in df_top.columns and m not in cols:
|
| 137 |
cols.append(m)
|
|
|
|
| 141 |
|
| 142 |
table_df = df_top[cols].round(3)
|
| 143 |
|
| 144 |
+
# =========================
|
| 145 |
+
# Dark-theme leaderboard plot
|
| 146 |
+
# =========================
|
| 147 |
+
bg_color = "#0e1117" # HF 深色背景
|
| 148 |
+
panel_color = "#161b22" # 面板背景
|
| 149 |
+
bar_color = "#4cc9f0" # 主色(青蓝)
|
| 150 |
+
grid_color = "#30363d"
|
| 151 |
+
text_color = "#c9d1d9"
|
| 152 |
+
|
| 153 |
+
fig, ax = plt.subplots(figsize=(10, 4.5))
|
| 154 |
+
fig.patch.set_facecolor(bg_color)
|
| 155 |
+
ax.set_facecolor(panel_color)
|
| 156 |
+
|
| 157 |
+
values = df_top[metric].values
|
| 158 |
+
models = table_df["Model"].values
|
| 159 |
+
bars = ax.barh(models, values, color=bar_color, height=0.6)
|
| 160 |
|
|
|
|
| 161 |
if ascending:
|
| 162 |
ax.invert_yaxis()
|
| 163 |
|
| 164 |
+
ax.set_xlabel(metric, color=text_color, fontsize=11, labelpad=6)
|
| 165 |
+
ax.set_title(
|
| 166 |
+
f"Leaderboard · {metric}",
|
| 167 |
+
fontsize=13,
|
| 168 |
+
color=text_color,
|
| 169 |
+
pad=10,
|
| 170 |
+
fontweight="bold"
|
| 171 |
+
)
|
| 172 |
+
|
| 173 |
+
ax.xaxis.grid(True, linestyle="--", linewidth=0.6, color=grid_color, alpha=0.7)
|
| 174 |
+
ax.yaxis.grid(False)
|
| 175 |
+
|
| 176 |
+
for spine in ["top", "right", "left"]:
|
| 177 |
+
ax.spines[spine].set_visible(False)
|
| 178 |
+
ax.spines["bottom"].set_color(grid_color)
|
| 179 |
+
|
| 180 |
+
ax.tick_params(axis="x", colors=text_color, labelsize=10)
|
| 181 |
+
ax.tick_params(axis="y", colors=text_color, labelsize=10)
|
| 182 |
+
|
| 183 |
+
for bar, value in zip(bars, values):
|
| 184 |
+
ax.text(
|
| 185 |
+
bar.get_width() * 1.01,
|
| 186 |
+
bar.get_y() + bar.get_height() / 2,
|
| 187 |
+
f"{value:.2f}",
|
| 188 |
+
va="center",
|
| 189 |
+
ha="left",
|
| 190 |
+
fontsize=9.5,
|
| 191 |
+
color=text_color
|
| 192 |
+
)
|
| 193 |
+
|
| 194 |
plt.tight_layout()
|
| 195 |
|
| 196 |
return table_df, fig
|
| 197 |
|
| 198 |
|
| 199 |
def reload_data():
|
| 200 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 201 |
global df_all
|
| 202 |
df_all = load_results()
|
| 203 |
|
|
|
|
| 214 |
venue_choices = get_venue_choices(df_all)
|
| 215 |
msg = f"Loaded {len(df_all)} models from {RESULTS_DIR}"
|
| 216 |
|
|
|
|
| 217 |
default_selected = ["Subject Fidelity", "Temporal Consistency", "Map Segmentation"]
|
| 218 |
default_selected = [m for m in default_selected if m in METRIC_CHOICES]
|
| 219 |
|
|
|
|
| 243 |
gr.Markdown(
|
| 244 |
"""
|
| 245 |
# 🌍 WorldLens Leaderboard
|
|
|
|
| 246 |
""",
|
| 247 |
elem_id="title"
|
| 248 |
)
|
|
|
|
| 251 |
|
| 252 |
with gr.Row():
|
| 253 |
metric_dropdown = gr.Dropdown(
|
| 254 |
+
label="Metric (for ranking)",
|
| 255 |
choices=METRIC_CHOICES, # 固定 choices,避免动态更新不兼容
|
| 256 |
value=DEFAULT_METRIC,
|
| 257 |
interactive=True,
|
| 258 |
)
|
| 259 |
sort_mode_radio = gr.Radio(
|
| 260 |
+
label="Sort mode",
|
| 261 |
choices=[
|
| 262 |
"Auto",
|
| 263 |
"Ascending (small → large)",
|
|
|
|
| 267 |
interactive=True,
|
| 268 |
)
|
| 269 |
topk_slider = gr.Slider(
|
| 270 |
+
label="Top-K",
|
| 271 |
minimum=3,
|
| 272 |
maximum=50,
|
| 273 |
value=10,
|
|
|
|
| 277 |
|
| 278 |
# 新增:表格中展示的多个指标
|
| 279 |
metrics_select = gr.CheckboxGroup(
|
| 280 |
+
label="Metrics to show in table",
|
| 281 |
choices=METRIC_CHOICES,
|
| 282 |
value=["Subject Fidelity", "Temporal Consistency", "Map Segmentation"],
|
| 283 |
interactive=True,
|
|
|
|
| 285 |
|
| 286 |
with gr.Row():
|
| 287 |
model_filter_box = gr.Textbox(
|
| 288 |
+
label="Filter by model name",
|
| 289 |
+
placeholder="magic, dream, ...",
|
| 290 |
interactive=True,
|
| 291 |
)
|
| 292 |
venue_dropdown = gr.Dropdown(
|
| 293 |
+
label="Filter by venue",
|
| 294 |
choices=["All"],
|
| 295 |
value="All",
|
| 296 |
interactive=True,
|
|
|
|
| 304 |
label="Leaderboard",
|
| 305 |
interactive=False,
|
| 306 |
)
|
|
|
|
| 307 |
leaderboard_plot = gr.Plot(label="Metric comparison", format="png")
|
| 308 |
|
|
|
|
| 309 |
reload_button.click(
|
| 310 |
fn=reload_data,
|
| 311 |
inputs=[],
|
| 312 |
outputs=[status_box, venue_dropdown, leaderboard_table, leaderboard_plot],
|
| 313 |
)
|
| 314 |
|
|
|
|
| 315 |
update_button.click(
|
| 316 |
fn=update_leaderboard,
|
| 317 |
inputs=[
|
|
|
|
| 325 |
outputs=[leaderboard_table, leaderboard_plot],
|
| 326 |
)
|
| 327 |
|
|
|
|
| 328 |
demo.load(
|
| 329 |
fn=reload_data,
|
| 330 |
inputs=[],
|
|
|
|
| 333 |
|
| 334 |
|
| 335 |
if __name__ == "__main__":
|
| 336 |
+
demo.launch()
|
worldlens-results/DrivingSphere.json
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"venue": "CVPR'2025",
|
| 3 |
+
"date": "2024-11-18",
|
| 4 |
+
"Metrics": {
|
| 5 |
+
"Action-Following":{
|
| 6 |
+
"Displacement Error": 0.54,
|
| 7 |
+
"Open-Loop Adherence": 76.02,
|
| 8 |
+
"Route Completion": 11.02,
|
| 9 |
+
"Closed-Loop Adherence": 8.29
|
| 10 |
+
}
|
| 11 |
+
}
|
| 12 |
+
}
|
worldlens-results/Panacea.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"venue": "CVPR'2024",
|
| 3 |
+
"date": "2023-11-28",
|
| 4 |
+
"Metrics": {
|
| 5 |
+
"Action-Following":{
|
| 6 |
+
"Displacement Error": 0.58
|
| 7 |
+
}
|
| 8 |
+
}
|
| 9 |
+
}
|
worldlens-results/RLGF.json
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"venue": "NeurlPS'2025",
|
| 3 |
+
"date": "2025-09-20",
|
| 4 |
+
"Metrics": {
|
| 5 |
+
"Action-Following":{
|
| 6 |
+
"Displacement Error": 0.53,
|
| 7 |
+
"Open-Loop Adherence": 78.45,
|
| 8 |
+
"Route Completion": 13.51,
|
| 9 |
+
"Closed-Loop Adherence": 10.59
|
| 10 |
+
}
|
| 11 |
+
}
|
| 12 |
+
}
|
worldlens-results/dist4d.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"venue": "ICCV'2025",
|
| 3 |
+
"date": "2025-03-19",
|
| 4 |
+
"Metrics": {
|
| 5 |
+
"Generation": {
|
| 6 |
+
"Subject Fidelity": 30.32,
|
| 7 |
+
"Subject Coherence": 79.36,
|
| 8 |
+
"Subject Consistency": 74.69,
|
| 9 |
+
"Depth Discrepancy": 17.71,
|
| 10 |
+
"Temporal Consistency": 77.76,
|
| 11 |
+
"Semantic Consistency": 84.32,
|
| 12 |
+
"Perceptual Discrepancy": 58.08,
|
| 13 |
+
"View Consistency": 389.78
|
| 14 |
+
},
|
| 15 |
+
"Reconstruction":{
|
| 16 |
+
"Photometric Error": 0.066,
|
| 17 |
+
"Geometric Discrepancy": 0.080,
|
| 18 |
+
"Novel-View Quality": 43.09,
|
| 19 |
+
"Novel-View Discrepancy": 192.39
|
| 20 |
+
},
|
| 21 |
+
"Downstream Task":{
|
| 22 |
+
"Map Segmentation": 35.55,
|
| 23 |
+
"3D Object Detection": 33.22,
|
| 24 |
+
"3D Object Tracking": 15.30,
|
| 25 |
+
"Occupancy Prediction": 26.10
|
| 26 |
+
}
|
| 27 |
+
}
|
| 28 |
+
}
|
worldlens-results/dreamforge.json
CHANGED
|
@@ -1,34 +1,34 @@
|
|
| 1 |
{
|
| 2 |
"venue": "Arxiv'2024",
|
| 3 |
-
"date": "2024-
|
| 4 |
"Metrics": {
|
| 5 |
"Generation": {
|
| 6 |
-
"Subject Fidelity":
|
| 7 |
-
"Subject Coherence": 75.
|
| 8 |
-
"Subject Consistency":
|
| 9 |
-
"Depth Discrepancy":
|
| 10 |
-
"Temporal Consistency":
|
| 11 |
-
"Semantic Consistency":
|
| 12 |
-
"Perceptual Discrepancy":
|
| 13 |
-
"View Consistency":
|
| 14 |
},
|
| 15 |
"Reconstruction":{
|
| 16 |
-
"Photometric Error": 0.
|
| 17 |
-
"Geometric Discrepancy": 0.
|
| 18 |
-
"Novel-View Quality":
|
| 19 |
-
"Novel-View Discrepancy":
|
| 20 |
},
|
| 21 |
"Action-Following":{
|
| 22 |
-
"Displacement Error": 0.
|
| 23 |
-
"Open-Loop Adherence":
|
| 24 |
-
"Route Completion":
|
| 25 |
-
"Closed-Loop Adherence":
|
| 26 |
},
|
| 27 |
"Downstream Task":{
|
| 28 |
-
"Map Segmentation":
|
| 29 |
-
"3D Object Detection":
|
| 30 |
-
"3D Object Tracking":
|
| 31 |
-
"Occupancy Prediction": 23.
|
| 32 |
}
|
| 33 |
}
|
| 34 |
}
|
|
|
|
| 1 |
{
|
| 2 |
"venue": "Arxiv'2024",
|
| 3 |
+
"date": "2024-09-06",
|
| 4 |
"Metrics": {
|
| 5 |
"Generation": {
|
| 6 |
+
"Subject Fidelity": 31.99,
|
| 7 |
+
"Subject Coherence": 75.12,
|
| 8 |
+
"Subject Consistency": 76.40,
|
| 9 |
+
"Depth Discrepancy": 19.27,
|
| 10 |
+
"Temporal Consistency": 79.82,
|
| 11 |
+
"Semantic Consistency": 84.99,
|
| 12 |
+
"Perceptual Discrepancy": 189.76,
|
| 13 |
+
"View Consistency": 194.99
|
| 14 |
},
|
| 15 |
"Reconstruction":{
|
| 16 |
+
"Photometric Error": 0.097,
|
| 17 |
+
"Geometric Discrepancy": 0.105,
|
| 18 |
+
"Novel-View Quality": 41.23,
|
| 19 |
+
"Novel-View Discrepancy": 347.70
|
| 20 |
},
|
| 21 |
"Action-Following":{
|
| 22 |
+
"Displacement Error": 0.55,
|
| 23 |
+
"Open-Loop Adherence": 75.51,
|
| 24 |
+
"Route Completion": 10.23,
|
| 25 |
+
"Closed-Loop Adherence": 7.65
|
| 26 |
},
|
| 27 |
"Downstream Task":{
|
| 28 |
+
"Map Segmentation": 30.91,
|
| 29 |
+
"3D Object Detection": 26.71,
|
| 30 |
+
"3D Object Tracking": 10.30,
|
| 31 |
+
"Occupancy Prediction": 23.71
|
| 32 |
}
|
| 33 |
}
|
| 34 |
}
|
worldlens-results/drivedreamer2.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"venue": "AAAI'2025",
|
| 3 |
+
"date": "2024-03-11",
|
| 4 |
+
"Metrics": {
|
| 5 |
+
"Generation": {
|
| 6 |
+
"Subject Fidelity": 27.38,
|
| 7 |
+
"Subject Coherence": 78.97,
|
| 8 |
+
"Subject Consistency": 74.49,
|
| 9 |
+
"Depth Discrepancy": 17.73,
|
| 10 |
+
"Temporal Consistency": 79.51,
|
| 11 |
+
"Semantic Consistency": 85.91,
|
| 12 |
+
"Perceptual Discrepancy": 127.07,
|
| 13 |
+
"View Consistency": 302.83
|
| 14 |
+
},
|
| 15 |
+
"Reconstruction":{
|
| 16 |
+
"Photometric Error": 0.093,
|
| 17 |
+
"Geometric Discrepancy": 0.073,
|
| 18 |
+
"Novel-View Quality": 36.10,
|
| 19 |
+
"Novel-View Discrepancy": 259.91
|
| 20 |
+
},
|
| 21 |
+
"Downstream Task":{
|
| 22 |
+
"Map Segmentation": 33.62,
|
| 23 |
+
"3D Object Detection": 30.90,
|
| 24 |
+
"3D Object Tracking": 13.30,
|
| 25 |
+
"Occupancy Prediction": 26.82
|
| 26 |
+
}
|
| 27 |
+
}
|
| 28 |
+
}
|
worldlens-results/magicdriveV2.json
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"venue": "ICCV'2025",
|
| 3 |
+
"date": "2024-11-21",
|
| 4 |
+
"Metrics": {
|
| 5 |
+
"Action-Following":{
|
| 6 |
+
"Displacement Error": 0.53,
|
| 7 |
+
"Open-Loop Adherence": 78.91,
|
| 8 |
+
"Route Completion": 12.31,
|
| 9 |
+
"Closed-Loop Adherence": 9.50
|
| 10 |
+
}
|
| 11 |
+
}
|
| 12 |
+
}
|
worldlens-results/opendwm.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"venue": "CVPR'2025",
|
| 3 |
+
"date": "2025-01-09",
|
| 4 |
+
"Metrics": {
|
| 5 |
+
"Generation": {
|
| 6 |
+
"Subject Fidelity": 36.30,
|
| 7 |
+
"Subject Coherence": 83.13,
|
| 8 |
+
"Subject Consistency": 78.33,
|
| 9 |
+
"Depth Discrepancy": 18.17,
|
| 10 |
+
"Temporal Consistency": 79.63,
|
| 11 |
+
"Semantic Consistency": 84.08,
|
| 12 |
+
"Perceptual Discrepancy": 90.42,
|
| 13 |
+
"View Consistency": 211.18
|
| 14 |
+
},
|
| 15 |
+
"Reconstruction":{
|
| 16 |
+
"Photometric Error": 0.065,
|
| 17 |
+
"Geometric Discrepancy": 0.080,
|
| 18 |
+
"Novel-View Quality": 43.09,
|
| 19 |
+
"Novel-View Discrepancy": 192.39
|
| 20 |
+
},
|
| 21 |
+
"Downstream Task":{
|
| 22 |
+
"Map Segmentation": 27.63,
|
| 23 |
+
"3D Object Detection": 21.96,
|
| 24 |
+
"3D Object Tracking": 6.90,
|
| 25 |
+
"Occupancy Prediction": 24.82
|
| 26 |
+
}
|
| 27 |
+
}
|
| 28 |
+
}
|
worldlens-results/xscene.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"venue": "NerulPS'2025",
|
| 3 |
+
"date": "2025-06-16",
|
| 4 |
+
"Metrics": {
|
| 5 |
+
"Generation": {
|
| 6 |
+
"Subject Fidelity": 27.17,
|
| 7 |
+
"Subject Coherence": 77.22,
|
| 8 |
+
"Subject Consistency": 74.37,
|
| 9 |
+
"Depth Discrepancy": 20.50,
|
| 10 |
+
"Temporal Consistency": 79.41,
|
| 11 |
+
"Semantic Consistency": 83.80,
|
| 12 |
+
"Perceptual Discrepancy": 179.74,
|
| 13 |
+
"View Consistency": 201.00
|
| 14 |
+
},
|
| 15 |
+
"Reconstruction":{
|
| 16 |
+
"Photometric Error": 0.098,
|
| 17 |
+
"Geometric Discrepancy": 0.096,
|
| 18 |
+
"Novel-View Quality": 38.04,
|
| 19 |
+
"Novel-View Discrepancy": 365.71
|
| 20 |
+
},
|
| 21 |
+
"Downstream Task":{
|
| 22 |
+
"Map Segmentation": 27.27,
|
| 23 |
+
"3D Object Detection": 29.89,
|
| 24 |
+
"3D Object Tracking": 8.80,
|
| 25 |
+
"Occupancy Prediction": 23.68
|
| 26 |
+
}
|
| 27 |
+
}
|
| 28 |
+
}
|