Xiaoming-Zhao / advtex_init_align

[ECCV 2022] Official implementation of "Initialization and Alignment for Adversarial Texture Optimization"
https://xiaoming-zhao.github.io/projects/advtex_init_align/
Apache License 2.0
60 stars 2 forks source link

There are seams in optimized result #9

Closed Woolseyyy closed 6 months ago

Woolseyyy commented 1 year ago

Hi, Xiaoming! Thanks a lot for helping me with dealing with my custom data. I visualize the optimized result in ${SCENE_ID}/optimized_texture_test_1_10 after training but find that there are seams in optimized results. I check the log and donnot find any error message. I donnot know it is the normal case or I do something wrong. Looking forward to your suggestions.

Visualization results in ${SCENE_ID}/optimized_texture_test_1_10 of scene_04 and my custom data: image image

Xiaoming-Zhao commented 1 year ago

Hi Haoqian, glad the code is runnable on your own data.

The results look weird to me. I re-ran and cannot reproduce your results for scene_04. I upload my experiment results here.

I recommend the following:

  1. Run commands in run.sh one by one for scene_04.
  2. Compare your results to the one I uploaded.

run_scannet.sh essentially conducts the same procedure as those in run.sh. If you can pinpoint issue in run.sh then you should know what to do in run_scannet.sh.

Hope this can help pinpoint the issue.

Woolseyyy commented 1 year ago

Hi Xiaoming, thank you for the detailed suggestions! I look into my results following your suggestions and find that the issue may be caused by TextInit step, i.e., the second command of run.sh:

export OMP_NUM_THREADS=10 && \
        ${MRF_BIN} \
        --data_dir ${EXP_DIR}/${SCENE_ID}/${DIR_PREFIX}_1_${sample_freq} \
        --debug 0 \
        --debug_mesh_shape 0 \
        --align_arg_max ${UNARY} \
        --n_iter_mp ${N_ITERS_MP} \
        --n_workers 10 --mtl_width ${MTL_RES} --mtl_height ${MTL_RES} \
        --n_extrude_pixels 0 \
        --iter_subdiv ${N_SUBDIV} --stream_type 1 \
        --unary_potential_dummy ${DUMMY_PENALTY} \
        --remesh 0 \
        --bin_pack_type 3 --n_areas_per_plate_bin_pack 500 \
        --debug_mesh_shape 0 --conformal_map 1 --compact_mtl 1 --top_one_mtl 1 \
        --penalty_face_area ${FACE_AREA_PENALTY} \
        --penalty_face_cam_dist ${DEPTH_PENALTY} \
        --penalty_face_v_perception_consist ${PERCEPT_PENALTY} \
        --pair_potential_mp 1 \
        --pair_potential_off_diag_scale_depth 0 \
        --pair_potential_off_diag_scale_percept 0

I find that my result in output_obj_argmax_1024_1024_500 have bad quality and some mtl files are subdivided further.

my mtl files: image

your mtl files: image

my tex init result (test_1_10/output_obj_argmax_1024_1024_500/TexAlign.obj): image

yours: image

It looks like the seams are caused by those subdivided areas. Would you like to share the log? Maybe I could check the log to find out the reason. Here is my log

Xiaoming-Zhao commented 1 year ago

Hi Haoqian, please see my run.log.

I have a rough scan, it seems like most of the values in the log are identical except those mtl images you mentioned.

I am not pretty sure what the reason is. From your screenshot, it seems like you run the program on Windows. It this is the case, maybe the difference is due to precisions of float or double are different on Windows and Linux. If it is possible, may I know whether you could run the program on some unix systems for a sanity check?

Woolseyyy commented 1 year ago

I run on ubuntu server, but check the results on windows.

Xiaoming-Zhao commented 1 year ago

Thanks for the clarification. I changed another server and still could not reproduce the issue. They are both ubuntu 18.04 and GCC 7.5 though.

I am sorry but I have no concrete thoughts why this happened. I will keep you updated if I spot something later.

Woolseyyy commented 1 year ago

OK. Thank you for the detailed suggestions. I'll let you know if there's any progress.