Spaces:
Running
Running
Commit
Β·
e83848d
1
Parent(s):
4227c7b
update leaderboard
Browse files- leaderboards/object_hi3deval.csv +2 -0
- serve/leaderboard.py +21 -27
- serve/markdown.py +11 -1
- serve/model.py +13 -2
leaderboards/object_hi3deval.csv
CHANGED
@@ -1,5 +1,7 @@
|
|
1 |
Method,Task,Geometry Plausibility,Geometry Details,Texture Quality,Geo.-Tex. Coherence,Prompt-3D Alignment,Overall
|
|
|
2 |
hunyuan3d-2.0,"Image-to-3D",6.2919,2.7215,2.7644,0.9876,3.4334,16.1988
|
|
|
3 |
trellis,"Image-to-3D",5.8626,2.392,2.4693,0.9702,3.5048,15.1989
|
4 |
spar3d,"Image-to-3D",5.7791,2.3031,2.4749,0.9601,3.4842,15.0014
|
5 |
triposr,"Image-to-3D",5.2216,2.4225,2.3758,0.9562,3.3643,14.3404
|
|
|
1 |
Method,Task,Geometry Plausibility,Geometry Details,Texture Quality,Geo.-Tex. Coherence,Prompt-3D Alignment,Overall
|
2 |
+
hunyuan3d-2.5-i,"Image-to-3D",6.460,2.86,2.79,0.981,3.47,16.561
|
3 |
hunyuan3d-2.0,"Image-to-3D",6.2919,2.7215,2.7644,0.9876,3.4334,16.1988
|
4 |
+
hunyuan3d-2.5-t,"Text-to-3D",6.42,2.7,2.45,0.947,3.18,15.697
|
5 |
trellis,"Image-to-3D",5.8626,2.392,2.4693,0.9702,3.5048,15.1989
|
6 |
spar3d,"Image-to-3D",5.7791,2.3031,2.4749,0.9601,3.4842,15.0014
|
7 |
triposr,"Image-to-3D",5.2216,2.4225,2.3758,0.9562,3.3643,14.3404
|
serve/leaderboard.py
CHANGED
@@ -10,29 +10,23 @@ import numpy as np
|
|
10 |
import pandas as pd
|
11 |
from serve.model import model_config
|
12 |
|
13 |
-
def
|
14 |
-
|
15 |
-
|
|
|
|
|
|
|
|
|
16 |
|
17 |
-
def
|
18 |
-
model_name = model_config[name].model_name
|
19 |
if rank==1:
|
20 |
-
return "π₯
|
21 |
elif rank==2:
|
22 |
-
return "π₯
|
23 |
elif rank==3:
|
24 |
-
return 'π₯
|
25 |
else:
|
26 |
-
return
|
27 |
-
|
28 |
-
def get_cfg_info(name):
|
29 |
-
config = model_config[name]
|
30 |
-
links = []
|
31 |
-
if config.page_link:
|
32 |
-
links.append(hyperlink("Page", config.page_link))
|
33 |
-
if config.code_link:
|
34 |
-
links.append(hyperlink("Code", config.code_link))
|
35 |
-
return ", ".join(links) if links else "N/A", config.organization if config.organization else "N/A"
|
36 |
|
37 |
def get_leaderboard_values(leaderboard_df):
|
38 |
leaderboard_vals = []
|
@@ -43,13 +37,11 @@ def get_leaderboard_values(leaderboard_df):
|
|
43 |
if model_name not in model_config.keys() or model_config[model_name].task != task:
|
44 |
continue
|
45 |
|
46 |
-
|
|
|
47 |
values = values + [row.get(dim, np.NaN) for dim in leaderboard_df.columns[2:]]
|
48 |
# values.append(round(np.sum([v for v in values[3:] if pd.notna(v)]), 4))
|
49 |
-
|
50 |
-
links, organization = get_cfg_info(model_name)
|
51 |
-
# values.append(links)
|
52 |
-
values.append(organization)
|
53 |
|
54 |
leaderboard_vals.append(values)
|
55 |
return leaderboard_vals
|
@@ -77,20 +69,22 @@ def build_leaderboard_tab(leaderboard_file: str, task: str = ""):
|
|
77 |
# df = df.drop(df[df["Task"]!=task.split()[0]].index)
|
78 |
leaderboard_df = df.drop(df[df["Method"].isnull()].index)
|
79 |
leaderboard_df = leaderboard_df.reset_index(drop=True)
|
|
|
80 |
|
81 |
leaderboard_vals = get_leaderboard_values(leaderboard_df)
|
82 |
leaderboard = gr.Dataframe(
|
83 |
headers = ['Rank', "π€ Model", "πͺ§ Task" ]
|
84 |
+ [f"{dim}" for dim in leaderboard_df.keys()[2:-1]]
|
85 |
+ ["β Overall", "ποΈ Orgnization"], # "π Links",
|
86 |
-
datatype = ["number", "
|
87 |
+ ["number"] * (len(leaderboard_df.columns) - 3)
|
88 |
-
+ ["number", "
|
89 |
value = leaderboard_vals,
|
90 |
height = 680,
|
91 |
-
column_widths = [60,
|
92 |
+ [120] * (len(leaderboard_df.columns) - 3)
|
93 |
-
+ [120,
|
94 |
wrap = True,
|
|
|
95 |
)
|
96 |
return leaderboard
|
|
|
10 |
import pandas as pd
|
11 |
from serve.model import model_config
|
12 |
|
13 |
+
def amend_model_name(config):
|
14 |
+
if config.page_link:
|
15 |
+
return '[' + config.model_name + '](' + config.page_link + ')'
|
16 |
+
elif config.code_link:
|
17 |
+
return '[' + config.model_name + '](' + config.page_link + ')'
|
18 |
+
else:
|
19 |
+
return config.model_name
|
20 |
|
21 |
+
def amend_rank(rank):
|
|
|
22 |
if rank==1:
|
23 |
+
return "π₯"
|
24 |
elif rank==2:
|
25 |
+
return "π₯"
|
26 |
elif rank==3:
|
27 |
+
return 'π₯'
|
28 |
else:
|
29 |
+
return rank
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
|
31 |
def get_leaderboard_values(leaderboard_df):
|
32 |
leaderboard_vals = []
|
|
|
37 |
if model_name not in model_config.keys() or model_config[model_name].task != task:
|
38 |
continue
|
39 |
|
40 |
+
cfg = model_config[model_name]
|
41 |
+
values = [amend_rank(rank), amend_model_name(cfg), task]
|
42 |
values = values + [row.get(dim, np.NaN) for dim in leaderboard_df.columns[2:]]
|
43 |
# values.append(round(np.sum([v for v in values[3:] if pd.notna(v)]), 4))
|
44 |
+
values.append(cfg.organization if cfg.organization else "N/A")
|
|
|
|
|
|
|
45 |
|
46 |
leaderboard_vals.append(values)
|
47 |
return leaderboard_vals
|
|
|
69 |
# df = df.drop(df[df["Task"]!=task.split()[0]].index)
|
70 |
leaderboard_df = df.drop(df[df["Method"].isnull()].index)
|
71 |
leaderboard_df = leaderboard_df.reset_index(drop=True)
|
72 |
+
leaderboard_df = leaderboard_df.sort_values(by="Overall", ascending=False).reset_index(drop=True)
|
73 |
|
74 |
leaderboard_vals = get_leaderboard_values(leaderboard_df)
|
75 |
leaderboard = gr.Dataframe(
|
76 |
headers = ['Rank', "π€ Model", "πͺ§ Task" ]
|
77 |
+ [f"{dim}" for dim in leaderboard_df.keys()[2:-1]]
|
78 |
+ ["β Overall", "ποΈ Orgnization"], # "π Links",
|
79 |
+
datatype = ["number", "markdown", "markdown"]
|
80 |
+ ["number"] * (len(leaderboard_df.columns) - 3)
|
81 |
+
+ ["number", "markdown"],
|
82 |
value = leaderboard_vals,
|
83 |
height = 680,
|
84 |
+
column_widths = [60, 120, 100]
|
85 |
+ [120] * (len(leaderboard_df.columns) - 3)
|
86 |
+
+ [120, 180],
|
87 |
wrap = True,
|
88 |
+
type="pandas",
|
89 |
)
|
90 |
return leaderboard
|
serve/markdown.py
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
|
2 |
def hyperlink(name, link):
|
3 |
return f'<a target="_blank" href="{link}" style="color: var(--link-text-color); \
|
@@ -77,10 +81,16 @@ This leaderboard integrates results from three complementary benchmarks that spa
|
|
77 |
return md
|
78 |
|
79 |
|
80 |
-
|
|
|
81 |
md = f'''
|
82 |
This leaderboard is evaluated using **Hi3DEval**, a straight forward scoring benchmark that does **not rely on pairwise comparisons**.
|
83 |
|
|
|
|
|
|
|
|
|
|
|
84 |
Specifically, each dimension is assigned an absolute score within clearly defined value ranges:
|
85 |
|
86 |
- Geometry Plausibility: range [0, 9]
|
|
|
1 |
+
home_icon = "https://img.shields.io/badge/Website-Page-blue?logo=homeassistant&logoColor=white&style=flat-square"
|
2 |
+
arxiv_icon = "https://img.shields.io/badge/ArXiv-Paper-b31b1b?logo=arxiv&logoColor=white&style=flat-square"
|
3 |
+
github_icon = "https://img.shields.io/badge/GitHub-Repo-181717?logo=github&logoColor=white&style=flat-square"
|
4 |
+
|
5 |
|
6 |
def hyperlink(name, link):
|
7 |
return f'<a target="_blank" href="{link}" style="color: var(--link-text-color); \
|
|
|
81 |
return md
|
82 |
|
83 |
|
84 |
+
|
85 |
+
def get_hi3deval_intro_md():
|
86 |
md = f'''
|
87 |
This leaderboard is evaluated using **Hi3DEval**, a straight forward scoring benchmark that does **not rely on pairwise comparisons**.
|
88 |
|
89 |
+
<div style="display: flex; gap: 10px; align-items: center;">
|
90 |
+
<a href="https://zyh482.github.io/Hi3DEval/" target="_blank"><img src="{home_icon}"></a>
|
91 |
+
<a href="https://arxiv.org/abs/xxxx.xxxxx" target="_blank"> <img src="{arxiv_icon}"></a>
|
92 |
+
</div>
|
93 |
+
|
94 |
Specifically, each dimension is assigned an absolute score within clearly defined value ranges:
|
95 |
|
96 |
- Geometry Plausibility: range [0, 9]
|
serve/model.py
CHANGED
@@ -83,6 +83,17 @@ register_model_config(
|
|
83 |
organization="ByteDance"
|
84 |
)
|
85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
register_model_config(
|
87 |
nick_name="grm-t",
|
88 |
model_name="GRM",
|
@@ -139,12 +150,12 @@ register_model_config(
|
|
139 |
organization="Tencent Hunyuan3D Team"
|
140 |
)
|
141 |
register_model_config(
|
142 |
-
nick_name="hunyuan3d-2.5",
|
143 |
model_name="Hunyuan3D 2.5",
|
144 |
task="Image-to-3D",
|
145 |
representation="",
|
146 |
paradigm="",
|
147 |
-
page_link="",
|
148 |
code_link="",
|
149 |
organization="Tencent Hunyuan3D Team"
|
150 |
)
|
|
|
83 |
organization="ByteDance"
|
84 |
)
|
85 |
|
86 |
+
register_model_config(
|
87 |
+
nick_name="hunyuan3d-2.5-t",
|
88 |
+
model_name="Hunyuan3D 2.5",
|
89 |
+
task="Text-to-3D",
|
90 |
+
representation="",
|
91 |
+
paradigm="",
|
92 |
+
page_link="https://3d-models.hunyuan.tencent.com/",
|
93 |
+
code_link="",
|
94 |
+
organization="Tencent Hunyuan3D Team"
|
95 |
+
)
|
96 |
+
|
97 |
register_model_config(
|
98 |
nick_name="grm-t",
|
99 |
model_name="GRM",
|
|
|
150 |
organization="Tencent Hunyuan3D Team"
|
151 |
)
|
152 |
register_model_config(
|
153 |
+
nick_name="hunyuan3d-2.5-i",
|
154 |
model_name="Hunyuan3D 2.5",
|
155 |
task="Image-to-3D",
|
156 |
representation="",
|
157 |
paradigm="",
|
158 |
+
page_link="https://3d-models.hunyuan.tencent.com/",
|
159 |
code_link="",
|
160 |
organization="Tencent Hunyuan3D Team"
|
161 |
)
|