wyysf-98 / CraftsMan

CraftsMan: High-fidelity Mesh Generation with 3D Native Diffusion and Interactive Geometry Refiner
https://craftsman3d.github.io/
409 stars 18 forks source link

你们有试过自己创建数据集吗?我该怎么使用自己的数据集? #14

Open dreaming-huang opened 3 months ago

dreaming-huang commented 3 months ago

感谢你们开源的代码,我现在有一个工作需要使用自己的数据集,但是我找不到objaverse-MIX处理数据集的流程,你们有尝试使用过自己的数据集吗?如果有的话可以给我提供一些建议吗?

wyysf-98 commented 3 months ago

感谢你们开源的代码,我现在有一个工作需要使用自己的数据集,但是我找不到objaverse-MIX处理数据集的流程,你们有尝试使用过自己的数据集吗?如果有的话可以给我提供一些建议吗?

有很多方法获取到最终的数据集,我们最主要是拿到表面的信息。 比如可以和 shape2vecset工作一样,使用https://github.com/autonomousvision/occupancy_networks提取水密的模型。 也可以通过多视角几何的方法获取物体的mesh。 得到mesh后将其转为sdf,便可以得到所需要的所有数据。

LaFeuilleMorte commented 3 months ago

感谢你们开源的代码,我现在有一个工作需要使用自己的数据集,但是我找不到objaverse-MIX处理数据集的流程,你们有尝试使用过自己的数据集吗?如果有的话可以给我提供一些建议吗?

有很多方法获取到最终的数据集,我们最主要是拿到表面的信息。 比如可以和 shape2vecset工作一样,使用https://github.com/autonomousvision/occupancy_networks提取水密的模型。 也可以通过多视角几何的方法获取物体的mesh。 得到mesh后将其转为sdf,便可以得到所需要的所有数据。

如果有mesh了,如何去获取点云/法线/多视角图片呢

dreaming-huang commented 3 months ago

感谢你们开源的代码,我现在有一个工作需要使用自己的数据集,但是我找不到objaverse-MIX处理数据集的流程,你们有尝试使用过自己的数据集吗?如果有的话可以给我提供一些建议吗?

有很多方法获取到最终的数据集,我们最主要是拿到表面的信息。 比如可以和 shape2vecset工作一样,使用https://github.com/autonomousvision/occupancy_networks提取水密的模型。 也可以通过多视角几何的方法获取物体的mesh。 得到mesh后将其转为sdf,便可以得到所需要的所有数据。

感谢你的回答,我跟随objaverse-MIX、occupancy_network获得了water_tight obj、point cloud、occupancies_field等,好像这个步骤对网格质量损害还是比较大的。此外,你们或者你们参考过的代码里,有渲染多视角图像的例子吗,我该怎么尽量和你们训练时使用的数据集对齐

wyysf-98 commented 3 months ago

感谢你们开源的代码,我现在有一个工作需要使用自己的数据集,但是我找不到objaverse-MIX处理数据集的流程,你们有尝试使用过自己的数据集吗?如果有的话可以给我提供一些建议吗?

有很多方法获取到最终的数据集,我们最主要是拿到表面的信息。 比如可以和 shape2vecset工作一样,使用https://github.com/autonomousvision/occupancy_networks提取水密的模型。 也可以通过多视角几何的方法获取物体的mesh。 得到mesh后将其转为sdf,便可以得到所需要的所有数据。

感谢你的回答,我跟随objaverse-MIX、occupancy_network获得了water_tight obj、point cloud、occupancies_field等,好像这个步骤对网格质量损害还是比较大的。此外,你们或者你们参考过的代码里,有渲染多视角图像的例子吗,我该怎么尽量和你们训练时使用的数据集对齐

这里的确实是有很多细节,但是对于VAE的训练,破碎的网格对于质量的影响不大,反而是细节的丢失可能会影响性能。 整体而言,VAE的核心是压缩并重建模型,所以可以尝试一下用你提取到的数据。 渲染的多视角图像我们在val和data sample里面提供了,可以参考。

Lanjiong-Li commented 3 months ago

感谢你们开源的代码,我现在有一个工作需要使用自己的数据集,但是我找不到objaverse-MIX处理数据集的流程,你们有尝试使用过自己的数据集吗?如果有的话可以给我提供一些建议吗?

有很多方法获取到最终的数据集,我们最主要是拿到表面的信息。 比如可以和 shape2vecset工作一样,使用https://github.com/autonomousvision/occupancy_networks提取水密的模型。 也可以通过多视角几何的方法获取物体的mesh。 得到mesh后将其转为sdf,便可以得到所需要的所有数据。

感谢你的回答,我跟随objaverse-MIX、occupancy_network获得了water_tight obj、point cloud、occupancies_field等,好像这个步骤对网格质量损害还是比较大的。此外,你们或者你们参考过的代码里,有渲染多视角图像的例子吗,我该怎么尽量和你们训练时使用的数据集对齐

你好,可以问一下你用occupancy_network的环境吗

dreaming-huang commented 3 months ago

感谢你们开源的代码,我现在有一个工作需要使用自己的数据集,但是我找不到objaverse-MIX处理数据集的流程,你们有尝试使用过自己的数据集吗?如果有的话可以给我提供一些建议吗?

有很多方法获取到最终的数据集,我们最主要是拿到表面的信息。 比如可以和 shape2vecset工作一样,使用https://github.com/autonomousvision/occupancy_networks提取水密的模型。 也可以通过多视角几何的方法获取物体的mesh。 得到mesh后将其转为sdf,便可以得到所需要的所有数据。

感谢你的回答,我跟随objaverse-MIX、occupancy_network获得了water_tight obj、point cloud、occupancies_field等,好像这个步骤对网格质量损害还是比较大的。此外,你们或者你们参考过的代码里,有渲染多视角图像的例子吗,我该怎么尽量和你们训练时使用的数据集对齐

你好,可以问一下你用occupancy_network的环境吗

先删除环境构建文件的torch、torchvision,安装其他的,然后安装cuda10.0,然后安装他推荐的torch和torchvision版本

dreaming-huang commented 3 months ago

感谢你们开源的代码,我现在有一个工作需要使用自己的数据集,但是我找不到objaverse-MIX处理数据集的流程,你们有尝试使用过自己的数据集吗?如果有的话可以给我提供一些建议吗?

有很多方法获取到最终的数据集,我们最主要是拿到表面的信息。 比如可以和 shape2vecset工作一样,使用https://github.com/autonomousvision/occupancy_networks提取水密的模型。 也可以通过多视角几何的方法获取物体的mesh。 得到mesh后将其转为sdf,便可以得到所需要的所有数据。

感谢你的回答,我跟随objaverse-MIX、occupancy_network获得了water_tight obj、point cloud、occupancies_field等,好像这个步骤对网格质量损害还是比较大的。此外,你们或者你们参考过的代码里,有渲染多视角图像的例子吗,我该怎么尽量和你们训练时使用的数据集对齐

这里的确实是有很多细节,但是对于VAE的训练,破碎的网格对于质量的影响不大,反而是细节的丢失可能会影响性能。 整体而言,VAE的核心是压缩并重建模型,所以可以尝试一下用你提取到的数据。 渲染的多视角图像我们在val和data sample里面提供了,可以参考。

你们的rots.npy里的相机位姿似乎和实际渲染的图片不太一致,rots里有很多位姿是相同的,渲染图片里好像都是不同的位姿

dreaming-huang commented 3 months ago

感谢你们开源的代码,我现在有一个工作需要使用自己的数据集,但是我找不到objaverse-MIX处理数据集的流程,你们有尝试使用过自己的数据集吗?如果有的话可以给我提供一些建议吗?

有很多方法获取到最终的数据集,我们最主要是拿到表面的信息。 比如可以和 shape2vecset工作一样,使用https://github.com/autonomousvision/occupancy_networks提取水密的模型。 也可以通过多视角几何的方法获取物体的mesh。 得到mesh后将其转为sdf,便可以得到所需要的所有数据。

感谢你的回答,我跟随objaverse-MIX、occupancy_network获得了water_tight obj、point cloud、occupancies_field等,好像这个步骤对网格质量损害还是比较大的。此外,你们或者你们参考过的代码里,有渲染多视角图像的例子吗,我该怎么尽量和你们训练时使用的数据集对齐

这里的确实是有很多细节,但是对于VAE的训练,破碎的网格对于质量的影响不大,反而是细节的丢失可能会影响性能。 整体而言,VAE的核心是压缩并重建模型,所以可以尝试一下用你提取到的数据。 渲染的多视角图像我们在val和data sample里面提供了,可以参考。

你们的rots.npy里的相机位姿似乎和实际渲染的图片不太一致,rots里有很多位姿是相同的,渲染图片里好像都是不同的位姿 oh 知道了 相同rot的四张图是同一个初始位姿的前后左右

wyysf-98 commented 2 months ago

感谢你们开源的代码,我现在有一个工作需要使用自己的数据集,但是我找不到objaverse-MIX处理数据集的流程,你们有尝试使用过自己的数据集吗?如果有的话可以给我提供一些建议吗?

有很多方法获取到最终的数据集,我们最主要是拿到表面的信息。 比如可以和 shape2vecset工作一样,使用https://github.com/autonomousvision/occupancy_networks提取水密的模型。 也可以通过多视角几何的方法获取物体的mesh。 得到mesh后将其转为sdf,便可以得到所需要的所有数据。

感谢你的回答,我跟随objaverse-MIX、occupancy_network获得了water_tight obj、point cloud、occupancies_field等,好像这个步骤对网格质量损害还是比较大的。此外,你们或者你们参考过的代码里,有渲染多视角图像的例子吗,我该怎么尽量和你们训练时使用的数据集对齐

这里的确实是有很多细节,但是对于VAE的训练,破碎的网格对于质量的影响不大,反而是细节的丢失可能会影响性能。 整体而言,VAE的核心是压缩并重建模型,所以可以尝试一下用你提取到的数据。 渲染的多视角图像我们在val和data sample里面提供了,可以参考。

你们的rots.npy里的相机位姿似乎和实际渲染的图片不太一致,rots里有很多位姿是相同的,渲染图片里好像都是不同的位姿

这个·rots.npy是指的是物体的旋转,我们为了方便,并没有旋转相机。 麻烦可以检查一下

dreaming-huang commented 2 months ago

感谢你们开源的代码,我现在有一个工作需要使用自己的数据集,但是我找不到objaverse-MIX处理数据集的流程,你们有尝试使用过自己的数据集吗?如果有的话可以给我提供一些建议吗?

有很多方法获取到最终的数据集,我们最主要是拿到表面的信息。 比如可以和 shape2vecset工作一样,使用https://github.com/autonomousvision/occupancy_networks提取水密的模型。 也可以通过多视角几何的方法获取物体的mesh。 得到mesh后将其转为sdf,便可以得到所需要的所有数据。

感谢你的回答,我跟随objaverse-MIX、occupancy_network获得了water_tight obj、point cloud、occupancies_field等,好像这个步骤对网格质量损害还是比较大的。此外,你们或者你们参考过的代码里,有渲染多视角图像的例子吗,我该怎么尽量和你们训练时使用的数据集对齐

这里的确实是有很多细节,但是对于VAE的训练,破碎的网格对于质量的影响不大,反而是细节的丢失可能会影响性能。 整体而言,VAE的核心是压缩并重建模型,所以可以尝试一下用你提取到的数据。 渲染的多视角图像我们在val和data sample里面提供了,可以参考。

你们的rots.npy里的相机位姿似乎和实际渲染的图片不太一致,rots里有很多位姿是相同的,渲染图片里好像都是不同的位姿

这个·rots.npy是指的是物体的旋转,我们为了方便,并没有旋转相机。 麻烦可以检查一下

所以你们是旋转物体,然后固定四个视角渲染,对吗?四个视角是(self.camera_embedding = torch.as_tensor([ [[1, 0, 0, 0], [0, 0, -1, -self.distance], [0, 1, 0, 0], [0, 0, 0, 1]], # front to back

        [[0, 0, 1, self.distance],
        [1, 0, 0, 0],
        [0, 1, 0, 0],
        [0, 0, 0, 1]], # right to left

        [[-1, 0, 0, 0],
        [0, 0, 1, self.distance],
        [0, 1, 0, 0],
        [0, 0, 0, 1]], # back to front

        [[0, 0, -1, -self.distance],
        [-1, 0, 0, 0],
        [0, 1, 0, 0],
        [0, 0, 0, 1]], # left to right
    ], dtype=torch.float32)),
dreaming-huang commented 2 months ago

感谢你们开源的代码,我现在有一个工作需要使用自己的数据集,但是我找不到objaverse-MIX处理数据集的流程,你们有尝试使用过自己的数据集吗?如果有的话可以给我提供一些建议吗?

有很多方法获取到最终的数据集,我们最主要是拿到表面的信息。 比如可以和 shape2vecset工作一样,使用https://github.com/autonomousvision/occupancy_networks提取水密的模型。 也可以通过多视角几何的方法获取物体的mesh。 得到mesh后将其转为sdf,便可以得到所需要的所有数据。

感谢你的回答,我跟随objaverse-MIX、occupancy_network获得了water_tight obj、point cloud、occupancies_field等,好像这个步骤对网格质量损害还是比较大的。此外,你们或者你们参考过的代码里,有渲染多视角图像的例子吗,我该怎么尽量和你们训练时使用的数据集对齐

这里的确实是有很多细节,但是对于VAE的训练,破碎的网格对于质量的影响不大,反而是细节的丢失可能会影响性能。 整体而言,VAE的核心是压缩并重建模型,所以可以尝试一下用你提取到的数据。 渲染的多视角图像我们在val和data sample里面提供了,可以参考。

你们的rots.npy里的相机位姿似乎和实际渲染的图片不太一致,rots里有很多位姿是相同的,渲染图片里好像都是不同的位姿

这个·rots.npy是指的是物体的旋转,我们为了方便,并没有旋转相机。 麻烦可以检查一下 我load CraftsMan-main/data/sample/raw_data/images/cap3d_high_quality_10k/00a1a602456f4eb188b522d7ef19e81b/rots.npy作为rotate_mtx,在每次渲染前使用 obj.matrix_world = original_matrix obj.matrix_world = Matrix(rotate_mtx[i]) @ original_matrix 来旋转物体,使用固定的四个视角渲染图片,目前我只能在第0-4张图上与你们对齐(旋转矩阵为对角阵的情况),可以告诉一下我你们是怎么对物体进行旋转的吗