yiranran / Audio-driven-TalkingFace-HeadPose

Code for "Audio-driven Talking Face Video Generation with Learning-based Personalized Head Pose" (Arxiv 2020) and "Predicting Personalized Head Movement From Short Video and Speech Signal" (TMM 2022)
https://ieeexplore.ieee.org/document/9894719
737 stars 146 forks source link

module has no attribute 'rasterize_triangles' #73

Open DaddyWesker opened 3 years ago

DaddyWesker commented 3 years ago

Hello and thanks for your code.

I've successfully installed and fine-tuned this model on my own data. Unfortunately, i've met some problems trying to run python test_personalized.py [audio] [person_id] [gpu_id] On the line os.system('CUDA_VISIBLE_DEVICES=%d python render_for_view2.py %s %s %s %d %d %s'%(gpu_id,coeff_dir,coef_path1,save_dir, relativeframe,pingyi,tex2_path)) I've got error AttributeError: module '012ff3e36e3c24aefc4a3a7b68a03fedd1e7a7e1' has no attribute 'rasterize_triangles'

at the line

barycentric_coords, triangle_ids, _ = (
        rasterize_triangles_module.rasterize_triangles(
            clip_space_vertices[b, :, :], triangles, image_width,
            image_height))

In the Audio/code/mesh_renderer/rasterize_triangles.py file. So, apparently, rasterize_triangles_module doesn't have attribute rasterize_triangles for some reason, though I've changed loading line to

rasterize_triangles_module = tf.load_op_library(
    os.path.join('/home/daddywesker/DeepFake/Audio-driven-TalkingFace-HeadPose/Deep3DFaceReconstruction/'
                 'tf_mesh_renderer/mesh_renderer/kernels/rasterize_triangles_kernel.so'))

Any advises?

DaddyWesker commented 3 years ago

I have re-checked if cuda kernel was built successfully and haven't been able to do this due to error while running runtests.sh

ERROR: testFullRenderGradientComputation (__main__.RenderTest)
RenderTest.testFullRenderGradientComputation
Verifies the Jacobian matrix for the entire renderer.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/daddywesker/.cache/bazel/_bazel_daddywesker/c7028fafbefccfd9c25e6a85c8d38b6f/sandbox/linux-sandbox/34/execroot/tf_mesh_renderer/bazel-out/k8-fastbuild/bin/mesh_renderer/mesh_renderer_test.runfiles/tf_mesh_renderer/mesh_renderer/mesh_renderer_test.py", line 222, in testFullRenderGradientComputation
    rendered = mesh_renderer.mesh_renderer(
  File "/home/daddywesker/DeepFake/Audio-driven-TalkingFace-HeadPose/Deep3DFaceReconstruction/tf_mesh_renderer/mesh_renderer/mesh_renderer.py", line 281, in mesh_renderer
    batch_size = vertices.shape[0].value
AttributeError: 'int' object has no attribute 'value

Maybe problem is hidden somewhere here...

DaddyWesker commented 3 years ago

WEll, no, unfortunately problem seems to be the same since while running runtests.sh now i'm facing exact same problem

ERROR: testRendersSimpleTriangle (__main__.RenderTest)
RenderTest.testRendersSimpleTriangle
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/daddywesker/.cache/bazel/_bazel_daddywesker/c7028fafbefccfd9c25e6a85c8d38b6f/sandbox/linux-sandbox/38/execroot/tf_mesh_renderer/bazel-out/k8-fastbuild/bin/mesh_renderer/rasterize_triangles_test.runfiles/tf_mesh_renderer/mesh_renderer/rasterize_triangles_test.py", line 86, in testRendersSimpleTriangle
    self.runTriangleTest((1.0, 1.0, 1.0), 'Simple_Triangle.png')
  File "/home/daddywesker/.cache/bazel/_bazel_daddywesker/c7028fafbefccfd9c25e6a85c8d38b6f/sandbox/linux-sandbox/38/execroot/tf_mesh_renderer/bazel-out/k8-fastbuild/bin/mesh_renderer/rasterize_triangles_test.runfiles/tf_mesh_renderer/mesh_renderer/rasterize_triangles_test.py", line 73, in runTriangleTest
    rasterize_triangles.rasterize_triangles_module.rasterize_triangles(
AttributeError: module '012ff3e36e3c24aefc4a3a7b68a03fedd1e7a7e1' has no attribute 'rasterize_triangles'
aboutx commented 2 years ago

WEll, no, unfortunately problem seems to be the same since while running runtests.sh now i'm facing exact same problem

ERROR: testRendersSimpleTriangle (__main__.RenderTest)
RenderTest.testRendersSimpleTriangle
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/daddywesker/.cache/bazel/_bazel_daddywesker/c7028fafbefccfd9c25e6a85c8d38b6f/sandbox/linux-sandbox/38/execroot/tf_mesh_renderer/bazel-out/k8-fastbuild/bin/mesh_renderer/rasterize_triangles_test.runfiles/tf_mesh_renderer/mesh_renderer/rasterize_triangles_test.py", line 86, in testRendersSimpleTriangle
    self.runTriangleTest((1.0, 1.0, 1.0), 'Simple_Triangle.png')
  File "/home/daddywesker/.cache/bazel/_bazel_daddywesker/c7028fafbefccfd9c25e6a85c8d38b6f/sandbox/linux-sandbox/38/execroot/tf_mesh_renderer/bazel-out/k8-fastbuild/bin/mesh_renderer/rasterize_triangles_test.runfiles/tf_mesh_renderer/mesh_renderer/rasterize_triangles_test.py", line 73, in runTriangleTest
    rasterize_triangles.rasterize_triangles_module.rasterize_triangles(
AttributeError: module '012ff3e36e3c24aefc4a3a7b68a03fedd1e7a7e1' has no attribute 'rasterize_triangles'

Hi, have you fix this problem?