llorz / SGA19_zoomOut

code for the paper "ZoomOut: Spectral Upsampling for Efficient Shape Correspondence"
https://arxiv.org/abs/1904.07865
43 stars 9 forks source link

About how to get SCAPE-r dataset p2p ground-truth #5

Closed Jamesli0123 closed 3 years ago

Jamesli0123 commented 3 years ago

Dear professor, thanks for your reply, I have another question. I have got the matches about SCAPE-r dataset, but now I can't Visualization the result. Because I don't know how to use the file of .vts to calculate p2p ground-truth. Could you help me. For example,like the following code: hold on; a = readmatch('./data/our_match.txt'); matches_our = double(a{1}+1); gt_matches = [1:6890]; err2 = eval_pMap(S2, matches_our, gt_matches); fprintf('geodesic distance error:%f\n',err2) curve = calc_err_curve(err2, 0:0.001:1.0); h2=plot(0:0.001:1.0, curve, 'r','linewidth', 2); set(gca, 'xlim', [0 0.15]); set(gca, 'ylim', [0 100]) which how to get Scape-r gt_match, is there any code? I need it to draw Geodesic error curve. looking forword for your reply. thanks again.

llorz commented 3 years ago

Hi James,

Sorry I did not get your question. Can you please explain it in a bit more details?

The .vts files I have are for the remeshed dataset. For example, the original SCAPE dataset has 12500 vertices for each shape, to avoid overfitting, we independently downsampled each shape in the dataset to a mesh with around 5k vertices. Then I tried to preserve the ground-truth correspondences (though not as accurate as the original one-to-one correspondences). And I saved those "ground-truth" to the .vts files;

Therefore, lets say:

S1 = read_shape(s1_name.off)
S2 = read_shape(s2_name.off)
lmk1 = load(s1_name.vts)
lmk2 = load(s2_name.vts)
T12_gt = nan(S1.nv,1)
T12_gt(lmk1) = lmk2
T12_eval = load("your_computed_matches.txt")
err = eval_geodist_on_S2(T12_eval(lmk1), lmk2)

Here T12_gt is the ground-truth map between S1 and S2 (note that there might be some NaN with missing correspondence since after remeshing we lost the one-to-one correspondences); T12_eval is some map to evaluation, we just need to evaluate its geodesic distance to the ground-truth, i.e., between the T12_eval(lmk1) and lmk2 on the S2.

Hope this helps.

Best regards, Jing

Jamesli0123 commented 3 years ago

Dear professor,Sorry for my bad English, but you solved my confusion,really thanks.Best wishes, Jamesli

------------------ 原始邮件 ------------------ 发件人: "Jing @.>; 发送时间: 2021年3月22日(星期一) 上午10:57 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [llorz/SGA19_zoomOut] About how to get SCAPE-r dataset p2p ground-truth (#5)

Hi James,

Sorry I did not get your question. Can you please explain it in a bit more details?

The .vts files I have are for the remeshed dataset. For example, the original SCAPE dataset has 12500 vertices for each shape, to avoid overfitting, we independently downsampled each shape in the dataset to a mesh with around 5k vertices. Then I tried to preserve the ground-truth correspondences (though not as accurate as the original one-to-one correspondences). And I saved those "ground-truth" to the .vts files;

Therefore, lets say: ` S1 = read_shape(s1_name.off) S2 = read_shape(s2_name.off) lmk1 = load(s1_name.vts) lmk2 = load(s2_name.vts) T12_gt = nan(S1.nv,1) T12_gt(lmk1) = lmk2

T12_eval = load("your_computed_matches.txt")

err = eval_geodist_on_S2(T12_eval(lmk1), lmk2) ` Here T12_gt is the ground-truth map between S1 and S2 (note that there might be some NaN with missing correspondence since after remeshing we lost the one-to-one correspondences); T12_eval is some map to evaluation, we just need to evaluate its geodesic distance to the ground-truth, i.e., between the T12_eval(lmk1) and lmk2 on the S2.

Hope this helps.

Best regards, Jing

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.