YuliangXiu/ICON

THuman Dataset preprocess

Closed this issue · 11 comments

mmmcn commented

Hi, I found the program was running so slowly when I ran bash render_batch.sh debug all, I figured out it stopped at hits = mesh.ray.intersects_any (origins + delta * normals, vectors), and the number of rays is the millions, is that the reason why it was too slow?

Pyembree is required for computing ray intersection inside trimesh (https://trimsh.org/), please uninstall and reinstall pyembree and trimesh, and then it should work well.

Same issue in PIFu

mmmcn commented

thx,now intersects_any() works fine, but I ran into another problem:

-> rndr = PRTRender(width=size, height=size, ms_rate=16, egl=egl)
(Pdb) c
Traceback (most recent call last):
  File "./render_single.py", line 125, in <module>
    rndr = PRTRender(width=size, height=size, ms_rate=16, egl=egl)
  File "/home/private/project/3d-holographic-reconstruction/ICON/scripts/./../lib/renderer/gl/prt_render.py", line 35, in __init__
    CamRender.__init__(self,
  File "/home/private/project/3d-holographic-reconstruction/ICON/scripts/./../lib/renderer/gl/cam_render.py", line 32, in __init__
    Render.__init__(self,
  File "/home/private/project/3d-holographic-reconstruction/ICON/scripts/./../lib/renderer/gl/render.py", line 96, in __init__
    glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE,
  File "/home/private/Software/anaconda3/envs/icon/lib/python3.8/site-packages/OpenGL/platform/baseplatform.py", line 415, in __call__
    return self( *args, **named )
  File "src/errorchecker.pyx", line 58, in OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError
OpenGL.error.GLError: GLError(
	err = 1282,
	description = b'invalid operation',
	baseOperation = glTexImage2DMultisample,
	cArguments = (
		GL_TEXTURE_2D_MULTISAMPLE,
		16,
		GL_RGBA32F,
		512,
		512,
		GL_TRUE,
	)
)

Is PyOpenGL version or something else? my PyOpenGL==3.1.6 and PyOpenGL_accelerate==3.1.5

mmmcn commented

Sorry to bother you again, after running bash render_batch.sh debug all successfully, I got results below,

Snapshot on mesh Normal(SMPL, Front) Normal(Front) RGB Image
I am confused why RGB image and normal image are incorrect

Could you send me the ID of this mesh?

mmmcn commented

0028, I've tried 0028 and 0000 actually, but both of them can not got reasonable results

mmmcn commented

By the way, I use headless mode.

I checked my rendering results, and they are correct. These kinds of artifacts are often caused by the disordered face topology, and should be resolved by

mesh = trimesh.load(mesh_file, skip_materials=True, process=False, maintain_order=True, force='mesh').

BTW, I am using trimesh==3.9.35

mmmcn commented

Thank you so much for your reply! everything worked fine after I rebooted the mechine and ran the script again, though I'm not sure what caused this problem.

mmmcn commented

BTW, is there a way to get depth images that correspond to the RGB images?

set depth=True in render_single.py, I just updated the dataset readme.