- 10 Jun, 2020 1 commit
-
-
Jeremy Reizenstein authored
Summary: Pytorch seems to be becoming stricter about integer tensors of shape `(1,)` on GPU and not allowing them to be used as `int`s. For example the following no longer works on pytorch master, foo = torch.tensor([3, 5, 3], device="cuda:0") torch.arange(10) + foo[0] because this is the sum of tensors on different devices. Here fix tests which recently broke because of this. Reviewed By: nikhilaravi Differential Revision: D21929745 fbshipit-source-id: 25374f70468d1c895372766f1a9dd61df0833957
-
- 09 Jun, 2020 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Cut the FOR_EACH_KV macro, which may be replaced by a combination of range-for and structured bindings. Differential Revision: D21826182 fbshipit-source-id: ce4712afd3d0d7806eb1fca8c97009da117f982e
-
Luya Gao authored
Summary: Adding a function in pytorch3d.structures.meshes to join multiple meshes into a Meshes object representing a single mesh. The function currently ignores all textures. Reviewed By: nikhilaravi Differential Revision: D21876908 fbshipit-source-id: 448602857e9d3d3f774d18bb4e93076f78329823
-
- 04 Jun, 2020 1 commit
-
-
guanming001@e.ntu.edu.sg authored
Summary: To address the issue https://github.com/facebookresearch/pytorch3d/issues/219 of Invalid rotation matrix when number of camera position is equal to 3 Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/220 Reviewed By: bottler Differential Revision: D21877606 Pulled By: nikhilaravi fbshipit-source-id: f95ae44497cae33f2f0cff1b1718d866cf79bda1
-
- 03 Jun, 2020 1 commit
-
-
Jeremy Reizenstein authored
Summary: To avoid pytorch warnings and future behaviour changes, stop using torch.div and / with tensors of integers. Reviewed By: gkioxari, mruberry Differential Revision: D21857955 fbshipit-source-id: fb9f3000f3d953352cdc721d2a5f73d3a4bbf4b7
-
- 01 Jun, 2020 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Cut the `FOR_EACH_ENUMERATE` macro, which may be replaced by a combination of range-for, `ranges::view::enumerate`, and structured bindings. Reviewed By: markisaa Differential Revision: D21813019 fbshipit-source-id: fc9ac09a4e2f72f1433d0a518f03d5cd69a59c55
-
Luya Gao authored
Summary: Adds support to hard_rgb_blend and hard blending shaders in shader.py (HardPhongShader, HardGouraudShader, and HardFlatShader) for changing the background color on which objects are rendered Reviewed By: nikhilaravi Differential Revision: D21746062 fbshipit-source-id: 08001200f4339d6a69c52405c6b8f4cac9f3f56e
-
- 23 May, 2020 2 commits
-
-
Nikhila Ravi authored
Summary: Update the transform method in the mesh rasterizer class to use the new `update_padded` method on the `Meshes` class to directly update the mesh vertices. Also added a benchmark. Reviewed By: gkioxari Differential Revision: D21700352 fbshipit-source-id: c330e4040c681729eb2cc7bdfd92fb4a51a1a7d6
-
Georgia Gkioxari authored
Summary: Three changes to Meshes 1. `num_verts_per_mesh` and `num_faces_per_mesh` are assigned at construction time and are returned without the need for `compute_packed` 2. `update_padded` updates `verts_padded` and shallow copies faces list and faces_padded and existing attributes from construction. 3. `padded_to_packed_idx` does not need `compute_packed` Reviewed By: nikhilaravi Differential Revision: D21653674 fbshipit-source-id: dc6815a2e2a925fe4a834fe357919da2b2c14527
-
- 22 May, 2020 1 commit
-
-
generatedunixname89002005307016 authored
Summary: This diff is auto-generated to upgrade the Pyre version and suppress errors in vision. The upgrade will affect Pyre local configurations in the following directories: ``` vision/ale/search vision/fair/fvcore vision/fair/pytorch3d vision/ocr/rosetta_hash vision/vogue/personalization ``` Differential Revision: D21688454 fbshipit-source-id: 1f3c3fee42b6da2e162fd0932742ab8c5c96aa45
-
- 20 May, 2020 2 commits
-
-
Georgia Gkioxari authored
Summary: Fix division by zero when alpha is 1.0 In this case, the nominator is already 0 and we need to make sure division with 0 does not occur which would produce nans Reviewed By: nikhilaravi Differential Revision: D21650478 fbshipit-source-id: bc457105b3050fef1c8bd4e58e7d6d15c0c81ffd
-
Jeremy Reizenstein authored
Summary: Add ability to decode ply files which use types like int32. Reviewed By: nikhilaravi Differential Revision: D21639208 fbshipit-source-id: 0ede7d4aa353a6e940446680a18e7ac0c48fafee
-
- 19 May, 2020 1 commit
-
-
Michele Sanna authored
Summary: Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/204 Reviewed By: gkioxari Differential Revision: D21621695 Pulled By: nikhilaravi fbshipit-source-id: 556f297bef4211c331dfde6471e10762a9956f98
-
- 16 May, 2020 1 commit
-
-
Justin Johnson authored
Summary: I was trying to speed up the lighting computations, but my ideas didn't work. Even if that didn't work, we can at least commit the benchmarking script I wrote for diffuse and specular shading. Reviewed By: nikhilaravi Differential Revision: D21580171 fbshipit-source-id: 8b60c0284e91ecbe258b6aae839bd5c2bbe788aa
-
- 15 May, 2020 2 commits
-
-
Nikhila Ravi authored
Summary: Update the cuda kernels to: - remove contiguous checks for the grad tensors and for cpu functions which use accessors - for cuda implementations call `.contiguous()` on all tensors in the host function before invoking the kernel Reviewed By: gkioxari Differential Revision: D21598008 fbshipit-source-id: 9b97bda4582fd4269c8a00999874d4552a1aea2d
-
Roman Shapovalov authored
Summary: lg-zhang found the problem with the quadratic part of ePnP implementation: n262385 . It was caused by a coefficient returned from the linear equation solver being equal to exactly 0.0, which caused `sign()` to return 0, something I had not anticipated. I also made sure we avoid division by zero by clamping all relevant denominators. Reviewed By: nikhilaravi, lg-zhang Differential Revision: D21531200 fbshipit-source-id: 9eb2fa9d4f4f8f5f411d4cf1cffcc44b365b7e51
-
- 14 May, 2020 2 commits
-
-
Georgia Gkioxari authored
Summary: Make flat shading differentiable again Currently test fails with P130944403 which looks weird. Reviewed By: nikhilaravi Differential Revision: D21567106 fbshipit-source-id: 65995b64739e08397b3d021b65625e3c377cd1a5
-
Jeremy Reizenstein authored
Summary: pytorch is adding checks that mean integer tensors with requires_grad=True need to be avoided. Fix accidentally creating them. Reviewed By: jcjohnson, gkioxari Differential Revision: D21576712 fbshipit-source-id: 008218997986800a36d93caa1a032ee91f2bffcd
-
- 11 May, 2020 1 commit
-
-
Jeremy Reizenstein authored
Summary: Use `self.__class__` when creating new instances, to slightly accommodate inheritance. Reviewed By: nikhilaravi Differential Revision: D21504476 fbshipit-source-id: b4600d15462fc1985da95a4cf761c7d794cfb0bb
-
- 10 May, 2020 1 commit
-
-
David Novotny authored
Summary: Fixes the case where the rotation angle is exactly 0/PI. Added a test for `so3_log_map(identity_matrix)`. Reviewed By: nikhilaravi Differential Revision: D21477078 fbshipit-source-id: adff804da97f6f0d4f50aa1f6904a34832cb8bfe
-
- 06 May, 2020 2 commits
-
-
Nikhila Ravi authored
Summary: Fix to enable a mesh/point rasterizer to be initialized without having to specify the camera. Reviewed By: jcjohnson, gkioxari Differential Revision: D21362359 fbshipit-source-id: 4f84ea18ad9f179c7b7c2289ebf9422a2f5e26de
-
ywang authored
Summary: a quick fix for the clone issue fixes https://github.com/facebookresearch/pytorch3d/issues/178 Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/179 Reviewed By: bottler Differential Revision: D21414309 Pulled By: nikhilaravi fbshipit-source-id: 359d7724aa5d78bc88a0a9ffc05e6041056e3b3f
-
- 05 May, 2020 2 commits
-
-
Georgia Gkioxari authored
Summary: Add alignment modes for cubify operation. Reviewed By: nikhilaravi Differential Revision: D21393199 fbshipit-source-id: 7022044e591229a6ed5efc361fd3215e65f43f86
-
Jeremy Reizenstein authored
Summary: This has been failing intermittently Reviewed By: nikhilaravi Differential Revision: D21403157 fbshipit-source-id: 51b74d6c813b52effe72d14b565e250fcabbb463
-
- 04 May, 2020 2 commits
-
-
Jeremy Reizenstein authored
Summary: Fix documentation of KNN, issue #180 Reviewed By: gkioxari Differential Revision: D21384761 fbshipit-source-id: 2b36ee496f2060d17827d2fd66c490cdfa766866
-
Nikhila Ravi authored
Summary: Ran the linter. TODO: need to update the linter as per D21353065. Reviewed By: bottler Differential Revision: D21362270 fbshipit-source-id: ad0e781de0a29f565ad25c43bc94a19b1828c020
-
- 01 May, 2020 1 commit
-
-
Jeremy Reizenstein authored
Summary: Use nn.functional.interpolate instead of a TorchVision transform to resize texture maps to a common value. This works on all devices. This fixes issue #175. Also fix the condition so it only happens when needed. Reviewed By: nikhilaravi Differential Revision: D21324510 fbshipit-source-id: c50eb06514984995bd81f2c44079be6e0b4098e4
-
- 30 Apr, 2020 1 commit
-
-
Georgia Gkioxari authored
Summary: Fix self assignment of normals when estimating normals Reviewed By: nikhilaravi Differential Revision: D21315980 fbshipit-source-id: 2aa5864c3f066e39e07343f192cc6423ce1ae771
-
- 26 Apr, 2020 1 commit
-
-
Jeremy Reizenstein authored
Summary: Update version number for version 0.2.0. Reviewed By: nikhilaravi Differential Revision: D21157358 fbshipit-source-id: 32a5b93e5dc65a31a806a5ce7231f8603fe02e85
-
- 25 Apr, 2020 2 commits
-
-
Jeremy Reizenstein authored
Summary: Bump the nvidia driver used in the conda tests. Add an environment variable (unused) to allow building without ninja. Print relative error on assertClose failure. Reviewed By: nikhilaravi Differential Revision: D21227373 fbshipit-source-id: 5dd8eb097151da27d3632daa755a1e7b9ac97845
-
Nikhila Ravi authored
Summary: Some updates to the issue templates, readme and install.md Creating an FAQ for installation similar to: https://github.com/facebookresearch/detectron2/blob/master/INSTALL.md#common-installation-issues Reviewed By: gkioxari Differential Revision: D21117899 fbshipit-source-id: d287c3a7a99c2e425b4e0cffca55a7b225d79e11
-
- 24 Apr, 2020 4 commits
-
-
Nikhila Ravi authored
Summary: Cuda test failing on circle with the error `random_ expects 'from' to be less than 'to', but got from=0 >= to=0` This is because the `high` value in `torch.randint` is 1 more than the highest value in the distribution from which a value is drawn. So if there is only 1 cuda device available then the low and high are 0. Reviewed By: gkioxari Differential Revision: D21236669 fbshipit-source-id: 46c312d431c474f1f2c50747b1d5e7afbd7df3a9
-
Michele Sanna authored
Summary: Signed-off-by:
Michele Sanna <sanna@arrival.com> fixes the bin_size calculation with a formula for any image_size > 64. Matches the values chosen so far. simple test: ``` import numpy as np import matplotlib.pyplot as plt image_size = np.arange(64, 2048) bin_size = np.where(image_size <= 64, 8, (2 ** np.maximum(np.ceil(np.log2(image_size)) - 4, 4)).astype(int)) print(image_size) print(bin_size) for ims, bins in zip(image_size, bin_size): if ims <= 64: assert bins == 8 elif ims <= 256: assert bins == 16 elif ims <= 512: assert bins == 32 elif ims <= 1024: assert bins == 64 elif ims <= 2048: assert bins == 128 assert (ims + bins - 1) // bins < 22 plt.plot(image_size, bin_size) plt.grid() plt.show() ```  Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/90 Reviewed By: jcjohnson Differential Revision: D21160372 Pulled By: nikhilaravi fbshipit-source-id: 660cf5832f4ca5be243c435a6bed969596fc0188
-
Nikhila Ravi authored
Summary: Updates to: - enable cuda kernel launches on any GPU (not just the default) - cuda and contiguous checks for all kernels - checks to ensure all tensors are on the same device - error reporting in the cuda kernels - cuda tests now run on a random device not just the default Reviewed By: jcjohnson, gkioxari Differential Revision: D21215280 fbshipit-source-id: 1bedc9fe6c35e9e920bdc4d78ed12865b1005519
-
Nikhila Ravi authored
Summary: Updated the load obj function to support creating of a per face texture map using the information in an .mtl file. Uses the approach from in SoftRasterizer. Currently I have ported in the SoftRasterizer code but this is only to help with comparison and will be deleted before landing. The ShapeNet Test data will also be deleted. Here is the [Design doc](https://docs.google.com/document/d/1AUcLP4QwVSqlfLAUfbjM9ic5vYn9P54Ha8QbcVXW2eI/edit?usp=sharing). ## Added - texture atlas creation functions in PyTorch based on the SoftRas cuda implementation - tests to compare SoftRas vs PyTorch3D implementation to verify it matches (using real shapenet data with meshes consisting of multiple textures) - benchmarks tests ## Remaining todo: - add more tests for obj io to test the new functions and the two texturing options - replace the shapenet data with the output from SoftRas saved as a file. # MAIN FILES TO REVIEW - `obj_io.py` - `test_obj_io.py` [still some tests to be added but have comparisons with SoftRas for now] The reference SoftRas implementations are in `softras_load_obj.py` and `load_textures.cu`. Reviewed By: gkioxari Differential Revision: D20754859 fbshipit-source-id: 42ace9dfb73f26e29d800c763f56d5b66c60c5e2
-
- 23 Apr, 2020 2 commits
-
-
Jeremy Reizenstein authored
Summary: Use aten instead of torch interface in all cuda code. This allows the cuda build to work with pytorch 1.5 with GCC 5 (e.g. the compiler of ubuntu 16.04LTS). This wasn't working. It has been failing with errors like the below, perhaps due to a bug in nvcc. ``` torch/include/torch/csrc/api/include/torch/nn/cloneable.h:68:61: error: invalid static_cast from type ‘const torch::OrderedDict<std::basic_string<char>, std::shared_ptr<torch::nn::Module> >’ to type ‘torch::OrderedDict<std::basic_string<char>, std::shared_ptr<torch::nn::Module> > ``` Reviewed By: nikhilaravi Differential Revision: D21204029 fbshipit-source-id: ca6bdbcecf42493365e1c23a33fe35e1759fe8b6
-
Roman Shapovalov authored
Summary: davnov134 found that the algorithm crashes if X is an axis-aligned plane. This is because I implemented scaling control points by `X.std()` as a poor man’s version of PCA whitening. I checked that it does not bring consistent improvements, so let’s get rid of it. The algorithm still results in slightly higher errors on the axis aligned planes but at least it does not crash. As a next step, I will experiment with detecting a planar case and using 3-point barycentric coordinates rather than 4-points. Reviewed By: davnov134 Differential Revision: D21179968 fbshipit-source-id: 1f002fce5541934486b51808be0e910324977222
-
- 22 Apr, 2020 3 commits
-
-
Justin Johnson authored
Summary: We have multiple KNN CUDA implementations. From python, users can currently request a particular implementation via the `version` flag, but they have no way of knowing which implementations can be used for a given problem. This diff exposes a function `pytorch3d._C.knn_check_version(version, D, K)` that returns whether a particular version can be used. Reviewed By: nikhilaravi Differential Revision: D21162573 fbshipit-source-id: 6061960bdcecba454fd920b00036f4e9ff3fdbc0
-
Nikhila Ravi authored
Reviewed By: gkioxari Differential Revision: D21180328 fbshipit-source-id: 218919c614c1ea54b5147871bd91960b8346524b
-
Jeremy Reizenstein authored
Summary: Modify test_chamfer for more robustness. Avoid empty pointclouds, including where point_reduction is mean, for which we currently return nan (*), and so that we aren't looking at an empty gradient. Make sure we aren't using padding as points in the homogenous cases in the tests, which will lead to a tie between closest points and therefore a potential instability in the gradient - see https://github.com/pytorch/pytorch/issues/35699. (*) This doesn't attempt to fix the nan. Reviewed By: nikhilaravi, gkioxari Differential Revision: D21157322 fbshipit-source-id: a609e84e25a24379c8928ff645d587552526e4af
-