dsaurus / deepmulticap Goto Github PK
View Code? Open in Web Editor NEWThis repository is the official implementation of DeepMultiCap: Performance Capture of Multiple Characters Using Sparse Multiview Cameras.
This repository is the official implementation of DeepMultiCap: Performance Capture of Multiple Characters Using Sparse Multiview Cameras.
Hello! How can I find the code of fitting SMPL-X models through 3D KeyPoints estimated from multi-view video by a light-weight total capture method? Thanks so much!!
when I run demo by the following code, I got error module 'numpy' has no attribute 'bool'
sh render_two.sh
sh demo.sh
the detail error is the following
np.bool
was a deprecated alias for the builtin bool
. To avoid this error in existing code, use bool
by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use np.bool_
here.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
Hi, Thanks for your great works.
I can reproduce the result by the demo in the repository.
But I found an issue after I merged the two meshes into one mesh.
As the following image shows, two persons are separated.
The two individuals in the input image are interacting and connected. However, in the merged 3D model, the two individuals are separated.
I merged the two .obj files which are generated in the demo of this repository with the following code
import torch
import pytorch3d.io as p3dio
from pytorch3d.structures import Meshes
# Load the two .obj files
mesh1_data = p3dio.load_obj("results/dmc_demo/inference_eval_20_0_0.obj")
mesh2_data = p3dio.load_obj("results/dmc_demo/inference_eval_20_1_0.obj")
# Extract vertices and faces from the loaded data
mesh1_verts, mesh1_faces, _ = mesh1_data
mesh2_verts, mesh2_faces, _ = mesh2_data
# Concatenate vertices
merged_verts = torch.cat([mesh1_verts, mesh2_verts], dim=0)
# Concatenate faces
num_verts_mesh1 = len(mesh1_verts)
mesh2_faces_idx = mesh2_faces.verts_idx + num_verts_mesh1
merged_faces = torch.cat([mesh1_faces.verts_idx, mesh2_faces_idx], dim=0)
# Create a new Meshes object with merged vertices and faces
merged_mesh = Meshes(verts=[merged_verts], faces=[merged_faces])
# Save the merged mesh as a new .obj file
p3dio.save_obj("merged_mesh.obj", verts=merged_mesh.verts_list()[0], faces=merged_mesh.faces_list()[0])
Is there some way to improve the result when multi-person are interactive with each other?
Regards and Thanks
when I run train.sh ,there is a problem,can you tell me how to solve it
Traceback (most recent call last):
File "apps/train_dmc.py", line 162, in
train(opt)
File "apps/train_dmc.py", line 153, in train
lr = adjust_learning_rate(optimizerG, epoch, lr, opt.schedule, opt.gamma)
AttributeError: 'Namespace' object has no attribute 'schedule'
Hi, thanks for sharing this wonderful work , but I encounted above error when set up my own environment, hope you can help. thanks~
when I run demo by the following code, I got error: module 'skimage.measure' has no attribute 'marching_cubes_lewiner'
sh render_two.sh
sh demo.sh
I've been trying to run a training session by following the instructions given. The Dataloader returns a timeout exception. After some tracing, it turns out the code halts in the following line in DMCDataset.py
inside = mesh.contains(sample_points)
when I replaced it with the following line, the training runs properly but it assumes all the sampling points are valid which is not correct:
inside=np.ones(sample_points.shape[0]).astype(np.bool8)
what could be the correct solution for that issue?
您好感谢开源这么优秀的工作,我在跑你的程序的时候报错
Traceback (most recent call last):
File "render_smpl.py", line 97, in
render_smpl_global_normal(args.dataroot, args.obj_path, args.faces_path, res, args.yaw_list, args.flip_y, args.flip_normal)
File "render_smpl.py", line 50, in render_smpl_global_normal
camera = t3.Camera(res=res)
File "/workspace/DeepMultiCap/taichi_render_gpu/taichi_three/transform.py", line 111, in init
self.mask = ti.Vector.var(3, ti.f32, self.res)
AttributeError: 'function' object has no attribute 'var'
Thanks for sharing the code of the paper. I have a question about the code in line 234-237.
DeepMultiCap/lib/model/DMCNet.py
Line 234 in 4e93adf
if self.opt.coarse_part:
geo_feature = self.attention(geo_feature, self.feature_fusion)
# [1, 1, 4, 320, 5000]
print('attention output shape:{0}'.format(geo_feature.shape))
``
the shape[0] of geo_feature is become from 4 to1, but geo_feature.shape[0] is level number, it is not the viewr number become one.
Any one can help me understand the probelem?
Hi,
In DMCNet, You firstly use Hourglass to extract multi-level features, then you fuse these features from differnt views by attention module.
However, the code shows below indicates you discard all the low level features and only uses the last level. Which is different from the original implentation of PIFu. Is it right?
def attention(self, feat, feature_fusion):
att_feat = torch.zeros_like(feat[-1:])
num_views = self.num_views
for view in range(num_views):
att_feat[-1, :, view] = feat[-1, :, view] ## Only use the last level ?
att_feat = att_feat.permute(0, 1, 4, 2, 3).contiguous().reshape(-1, num_views, feat.shape[3])
att_feat, = feature_fusion(att_feat)
_, B, V, D, N = feat.shape
att_feat = att_feat.reshape(-1, B, N, V, D).permute(0, 1, 3, 4, 2)
return att_feat
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.