samsunglabs / neuralhaircut Goto Github PK
View Code? Open in Web Editor NEWNeural Haircut: Prior-Guided Strand-Based Hair Reconstruction. ICCV 2023
License: Other
Neural Haircut: Prior-Guided Strand-Based Hair Reconstruction. ICCV 2023
License: Other
Hi, thanks for your work and the code, the results are very impressive!
I'm new in the realm of hair reconstruction and modeling. I noticed in the Related Work Section the paper says:
Non-uniform lighting and low effective resolution of the real-world data lead to orientation maps having excessive noise levels or lacking details.
How does NeuralHaircut solve this problem?
In my understanding, the neural hair growth field may alleviate this problem to some extent, as it aggregates information across multi-views; thus, the noise may be reduced. In addition, the use of the prior model would also alleviate this problem as it constrains the resulting hair model to be within a valid space.
What about your opinion? Thanks in advance.
Hello,
My colleagues and I are having trouble creating the enviroment with conda, we all have the same error using different machines.
In my case, I am using Ubuntu 22.04 --also tried on Windows 10-- with the latest conda version and 30 series NVIDIA GPUs. In all of these cases I get the same error from the console: conda is unable to create the enviroment due to an extraordinary amount of version errors, most of them related to Pytorch and CUDA.
I attached a txt containing the error trace from the console :
error.txt
As I said, I'm not the only one having this problem, my colleagues are experimenting just the same, with very similar --if not equal-- error traces, and some of them are using PIP.
Right now I'm trying these steps, but I don't think that'll solve anything:
No luck for now.
Hi, can someone help me to solve this error?
I run this command
python run_geometry_reconstruction.py --case person_0 --conf ./configs/example_config/neural_strands-monocular.yaml --exp_name first_stage_person_0
Error
Hello Wooden
False
upload transform {'translation': array([0.37335169, 2.34675772, 2.03221262]), 'scale': 2.368383848250081} ./implicit-hair-data/data/monocular/person_0/scale.pickle
Number of views: 66
Traceback (most recent call last):
File "C:\Users\ADMIN\Desktop\NeuralHaircut\run_geometry_reconstruction.py", line 842, in <module>
runner = Runner(args.conf, args.mode, args.case, args.is_continue, checkpoint_name=args.checkpoint, exp_name=args.exp_name, train_cameras=args.train_cameras)
File "C:\Users\ADMIN\Desktop\NeuralHaircut\run_geometry_reconstruction.py", line 72, in __init__
self.dataset = MonocularDataset(self.conf['dataset'])
File "C:\Users\ADMIN\Desktop\NeuralHaircut\src\models\dataset.py", line 361, in __init__
self.orientations_np = np.stack([cv.imread(im_name) for im_name in self.orientations_lis]) / float(self.num_bins) * math.pi
numpy.core._exceptions._ArrayMemoryError: Unable to allocate 6.88 GiB for an array with shape (66, 2160, 2160, 3) and data type float64
Hi. Thanks for your great work.
Has someone run the example code (https://github.com/SamsungLabs/NeuralHaircut/blob/main/example) and met this problem?
I followed the step to build my environment and I used v100 to run the example code. I ran 100000 steps in stage one and then started stage two. However one of the results in pred_hair_strands of stage two is as followed and I think it's vague:
Does anyone know how to solve this problem?
Thanks.
Can someone successfully create the environment? There are a lot of conflicts in the .yaml and conda couldn't solve.
How can I obtain pretrained models/stand-prior/strand_ckpt. pth
Hi,
I have a question about can I use my own 2D single image (Front image) ?
Thank you.
I am trying to pre-process custom data, by following your indications. For simplicity, i am using the monocular data provided by you in /monocular/person_0_image. I get an error when executing the command:
python preprocess_custom_data/calc_masks.py --scene_path ./implicit-hair-data/data/SCENE_TYPE/CASE/ --MODNET_ckpt path_to_modnet --CDGNET_ckpt path_to_cdgnet
calc_masks.py", line 159, in main
for key, nkey in zip(state_dict_old.keys(), state_dict.keys()):
RuntimeError: OrderedDict mutated during iteration
I tried to find a workaround by rewriting the lines from 156 to 164 like this (following the discussion here: https://github.com/pytorch/pytorch/issues/40859
current_model_dict = model.state_dict()
loaded_state_dict = torch.load(args.CDGNET_ckpt, map_location='cpu')
new_state_dict={k:v if v.size()==current_model_dict[k].size() else current_model_dict[k] for k,v in zip(current_model_dict.keys(), loaded_state_dict.values())}
model.load_state_dict(new_state_dict, strict=False)
and then the images are generated, but they are all black. So what am i missing?
By contrast, mask images via MODnet are generated succesfully.
I already donwloaded PIXIE and it's dependencies, but I still can not find out the way to generate initialization_pixie
file. Could you give me any tips on that?
The experiment folder cannot be created when launching
python run_geometry_reconstruction.py --case person_0 --conf ./configs/example_config/neural_strands-monocular.yaml --exp_name first_stage_person_0
due to colons in the file path.
Error:
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'exps_first_stage\\first_stage_person_0\\person_0\\neural_strands-monocular\\2023-07-25_20:08:00'
I went around that by adding the line in the run_geometry_reconstruction.py
time = time.replace(':','_')
Adding a contact section to the footer page of your GitHub repository can be incredibly useful for several reasons:
Easy Communication: It provides a straightforward way for users, contributors, or visitors to get in touch with you. Whether they have questions, feedback, bug reports, or collaboration opportunities, having a contact section simplifies the communication process.
Feedback Collection: A contact section allows users to share their thoughts, suggestions, or concerns about your project. This feedback can be invaluable for improving your repository, fixing issues, or understanding what users need.
Collaboration Opportunities: By providing contact information, you make it easier for potential collaborators or contributors to reach out and express their interest in collaborating with you on your project. This can lead to new ideas, enhancements, and contributions to your repository.
Professionalism: Having a contact section adds a professional touch to your GitHub repository. It shows that you are open to communication and engagement with the community, which can positively impact your project's reputation.
Community Building: Effective communication fosters a sense of community around your project. When users know that their input is valued and that they can easily reach you, they are more likely to engage with your repository and become active members of your community.
Issue Reporting: Users can use the contact section to report any issues they encounter with your project. This helps you identify and address problems more efficiently.
Project Support: If your project is being used by others, having a contact section allows them to seek support or assistance when needed. This can lead to a more positive user experience and increased adoption of your project.
Networking: Through the contact section, you can connect with like-minded developers, potential collaborators, or even job opportunities. It opens up networking possibilities that might not have been available otherwise.
Overall, a contact section serves as a bridge between you and your project's community, promoting engagement, collaboration, and a positive user experience. It shows that you are committed to maintaining and improving your project, and it encourages a healthy, interactive environment around your GitHub repository.
Thanks for your great work.
I am reproducing your work with h3ds dataset. But I am facing one problem in multi-view optimization (https://github.com/SamsungLabs/NeuralHaircut/tree/main/src/multiview_optimization) : it says that we need an initialization with PIXIE for shape, pose parameters and save it as a dict in initialization_pixie file.
When I go to PIXIE repository, I am wondering which single image can be used for the initialization or all the multi-view images have to be used. Also, how to get initialization_pixie file is unclear. Thank you!
Best,
Mike
The "About" section in a website is a crucial component that serves multiple purposes:
Introduction: It provides a clear understanding of the website's purpose and mission.
Trust: It establishes credibility and builds trust with visitors.
Team/Individual: Introduces the team or individual behind the website, creating a personal connection.
Achievements: Showcases the website's accomplishments and milestones.
Contact Information: Includes contact details for communication.
Products/Services: Briefly explains the products or services offered.
Website's History: Tells the story of the website's journey and development.
Uniqueness: Highlights what makes the website stand out from competitors.
SEO: Supports search engine optimization through relevant keywords.
User Engagement: Encourages visitors to explore more and engage with the website.
In summary, the "About" section plays a vital role in presenting the website's identity, purpose, and achievements, fostering trust and connection with the audience while encouraging further engagement.
I saw the videos, impressive but it's going to fail with black afro, small curled hairs, right ? ^^
Can we see that or you don't consider it at all
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.