1083 Commits

Author SHA1 Message Date
generatedunixname89002005307016
09c1762939 suppress errors in vision/fair/pytorch3d
Differential Revision: D22519468

fbshipit-source-id: 6e39c2e50ef95f37df407dbc6d186cc97832fc7d
2020-07-13 18:40:17 -07:00
Justin Johnson
26d2cc24c1 CUDA kernel for interpolate_face_attributes
Summary: When rendering meshes with Phong shading, interpolate_face_attributes was taking up a nontrivial fraction of the overall shading time. This diff replaces our Python implementation of this function with a CUDA implementation.

Reviewed By: nikhilaravi

Differential Revision: D21610763

fbshipit-source-id: 2bb362a28f698541812aeab539047264b125ebb8
2020-07-13 12:59:37 -07:00
Patrick Labatut
0505e5f4a9 Make _open_file() return a context manager
Summary: Make the `_open_file()` function return a context manager and remove the associated file closure

Reviewed By: nikhilaravi

Differential Revision: D20720506

fbshipit-source-id: 7d96ceb2fd64b6ee3985d0b0faf8d8bf791b1966
2020-07-13 12:04:29 -07:00
Patrick Labatut
e2b47f047e Finish extracting _open_file()
Summary: Finish extracting _open_file() to a separate utils module (started with D20754859 (c9267ab7af) / previous version of this diff).

Reviewed By: nikhilaravi

Differential Revision: D20720344

fbshipit-source-id: 77ef201ff37a8f2a0cd19be162cb97ee99480158
2020-07-13 12:04:29 -07:00
Jeremy Reizenstein
20ef9195f0 Privacy terms
Summary: Simple method to add terms and privacy.

Reviewed By: nikhilaravi

Differential Revision: D22476671

fbshipit-source-id: 5b0503536f9a95961c46c93895c9e351c0401118
2020-07-10 10:11:40 -07:00
Georgia Gkioxari
3d7dea58e1 remove unused params + cubify note
Summary:
This diff
* removes the unused compositing params
* adds a note describing cubify

Reviewed By: nikhilaravi

Differential Revision: D22426191

fbshipit-source-id: e8aa32040bb594e1dfd7d6d98e29264feefcec7c
2020-07-09 18:04:06 -07:00
Jeremy Reizenstein
38eadb75e2 Deduplicate installation instructions
Summary: Remove abbreviated installation instructions from the homepage because they confuse.

Reviewed By: gkioxari

Differential Revision: D22160787

fbshipit-source-id: 8eb81030727f71951f8785f71c0a332ef58e790c
2020-07-09 07:15:22 -07:00
David Novotny
daf9eac801 Efficient PnP weighting bug fix
Summary:
There is a bug in efficient PnP that incorrectly weights points. This fixes it.

The test does not pass for the previous version with the bug.

Reviewed By: shapovalov

Differential Revision: D22449357

fbshipit-source-id: f5a22081e91d25681a6a783cce2f5c6be429ca6a
2020-07-09 06:40:38 -07:00
Roman Shapovalov
2f3cd98725 6D representation of rotations.
Summary: Conversion to/from the 6D representation of rotation from the paper http://arxiv.org/abs/1812.07035 ; based on David’s implementation.

Reviewed By: davnov134

Differential Revision: D22234397

fbshipit-source-id: 9e25ee93da7e3a2f2068cbe362cb5edc88649ce0
2020-07-08 04:01:22 -07:00
Nikhila Ravi
ce3da64917 Simplify transforms in point rasterizer
Summary: Update the transform step in the pointcloud rasterizer to use the `update_padded` method on `Pointclouds`.  There was an inefficient step using `offset_points` which went via the packed represntation (and required unecessary additional memory). I think this was before the `update_padded` method was added to `Pointclouds`.

Reviewed By: gkioxari

Differential Revision: D22329166

fbshipit-source-id: 76db8a19654fb2f7807635d4f1c1729debdf3320
2020-07-07 15:30:09 -07:00
Martin Rünz
876bdff2f6 Fix function call in Transform3d documentation (#233)
Summary:
The documentation of `Transform3d` highlights that the class handles points as well as normals. However, `transform_points` is applied to points and normals in the documentation instead of using `transform_normals` for normals, which I believe was intended.

This pull request fixes this typo in the documentation.
Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/233

Reviewed By: bottler

Differential Revision: D22287642

Pulled By: nikhilaravi

fbshipit-source-id: 0bc8754097b2e17a34fa3071319d00b78c3bc803
2020-07-07 10:54:42 -07:00
Georgia Gkioxari
2f0fd60186 fix pts scale, save ply
Summary:
Fix:
* Scaling of point clouds for scalars
* save_ply compatible cat

Reviewed By: nikhilaravi

Differential Revision: D22298609

fbshipit-source-id: abe94a5b64baf325587202d20adfc36912cc1478
2020-07-03 10:21:12 -07:00
Jeremy Reizenstein
275ddade66 CPU device for tutorials
Reviewed By: nikhilaravi

Differential Revision: D22357376

fbshipit-source-id: c103f9b0c798d4425d642781b5bfbb1a27310270
2020-07-03 08:52:41 -07:00
Jeremy Reizenstein
52979226bc strip output from tutorials
Summary: It's easier to understand code changes if we don't store the output in the notebooks. This is just a run of nbstripout on all the notebooks.

Reviewed By: nikhilaravi

Differential Revision: D22357375

fbshipit-source-id: bffdb426af2f676d448630d717658d609c224811
2020-07-03 08:52:41 -07:00
generatedunixname89002005307016
ec82b46681 suppress errors in vision/fair/pytorch3d
Summary:
Automatic run to suppress type errors.
 #pyreupgrade

Differential Revision: D22369027

fbshipit-source-id: 2beb1a43e429a0850944a8849d416bedefd516ed
2020-07-02 17:43:57 -07:00
Nikhila Ravi
806ca361c0 making sorting for K >1 optional in KNN points function
Summary: Added `sorted` argument to the `knn_points` function. This came up during the benchmarking against Faiss - sorting added extra memory usage. Match the memory usage of Faiss by making sorting optional.

Reviewed By: bottler, gkioxari

Differential Revision: D22329070

fbshipit-source-id: 0828ff9b48eefce99ce1f60089389f6885d03139
2020-07-02 16:09:05 -07:00
Nikhila Ravi
dd4a35cf9f mesh rasterizer settings fix
Summary:
Fix default setting of `max_faces_per_bin` and update mesh rasterization benchmark tests.
The previous setting of `max_faces_per_bin` was wrong and for larger mesh sizes and batch sizes it was causing a significant slow down due to an unecessarily large intermediate tensor being created.

Reviewed By: gkioxari

Differential Revision: D22301819

fbshipit-source-id: d5e817f5b917fb5633c9c6a8634b6c8ff65e3508
2020-06-30 12:43:57 -07:00
Nikhila Ravi
88f579389f fix default settings for point rasterization and update benchmark
Summary:
Fixes the default setting of `max_points_per_bin` in `rasterize_points.py`. For large batches with large size pointclouds this was a causing the rasterizer to be very slow.

Expanded the pointcloud rendering benchmarks to include larger size pointclouds and fixed cuda synchronization issue in benchmark.

Reviewed By: gkioxari

Differential Revision: D22301185

fbshipit-source-id: 5077c1ba2c43d73efc1c659f0ec75959ceddf893
2020-06-30 12:41:59 -07:00
Luya Gao
b636f2950d Adding datasets.rst to modules
Summary: Adding datasets.rst to modules and update index.rst.

Reviewed By: nikhilaravi

Differential Revision: D22187578

fbshipit-source-id: e70cf49fa276db8a106c67a2edab530b6dba2dee
2020-06-29 13:15:51 -07:00
Jeremy Reizenstein
0baeb05a32 specify full pytorch version for conda nightly builds.
Summary: Now pytorch 1.5.1 is released, pytorch 1.5 is ambiguous and causes problems. Now have specific builds for pytorch 1.5.0 and 1.5.1. Here we only change the conda builds.

Reviewed By: gkioxari

Differential Revision: D22196016

fbshipit-source-id: 478327e870f538f54d3480d5a268a1ece5c5c680
2020-06-24 03:19:46 -07:00
Luya Gao
2ea6a7d8ad Adding support for selecting categories and ver2 for ShapeNetCore
Summary: Adding support so that users can select which categories they would like to load with wordnet synset offsets or labels or a combination of both. ShapeNetCore now also supports loading v2.

Reviewed By: nikhilaravi

Differential Revision: D22039207

fbshipit-source-id: 1f0218acb790e5561e2ae373e99cebb9823eea1a
2020-06-17 20:31:01 -07:00
Luya Gao
9d279ba543 Skeleton of ShapeNetCore class
Summary: Skeleton of ShapeNetCore class that loads ShapeNet v1 from a given directory to a Dataset object. Overrides _init_, _len_, and _getitem_ from torch.utils.data.Dataset. Currently getitem returns verts, faces and id_str, where id_str is a concatenation of synset_id and obj_id. Planning on adding support for loading ShapeNet v2, retrieving textures and returning wordnet synsets (not just ids) in next diffs.

Reviewed By: nikhilaravi

Differential Revision: D21986222

fbshipit-source-id: c2c515303f1898b6c495b52cb53c74d691585326
2020-06-17 20:31:01 -07:00
Jeremy Reizenstein
2f6387f239 Restore C++14 compatibility
Summary: Fix the new CPU implementation of point_mesh functionality to be compatible with older C++.

Reviewed By: nikhilaravi

Differential Revision: D22066785

fbshipit-source-id: a245849342019a93ff68e186a10985458b007436
2020-06-16 14:19:21 -07:00
Jeremy Reizenstein
74659aef26 CPU implementation for point_mesh functions
Summary:
point_mesh functions were missing CPU implementations.
The indices returned are not always matching, possibly due to numerical instability.

Reviewed By: gkioxari

Differential Revision: D21594264

fbshipit-source-id: 3016930e2a9a0f3cd8b3ac4c94a92c9411c0989d
2020-06-15 10:11:26 -07:00
Jeremy Reizenstein
7f1e63aed1 Take care with single integers on gpu
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
2020-06-10 14:13:30 -07:00
Yedidya Feldblum
d0e7426a06 Cut FOR_EACH_KV
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
2020-06-09 13:20:47 -07:00
Luya Gao
e053d7c456 Adding join_mesh in pytorch3d.structures.meshes
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
2020-06-09 08:33:23 -07:00
guanming001@e.ntu.edu.sg
4b78e95eeb Fixed look_at_rotation bug for 3 camera positions (#220)
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
2020-06-04 04:05:11 -07:00
Jeremy Reizenstein
5444c53cee Avoid plain division involving integers
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
2020-06-03 11:32:05 -07:00
Yedidya Feldblum
40b068e4bc Cut FOR_EACH_ENUMERATE
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
2020-06-01 13:52:02 -07:00
Luya Gao
65620e716c Adding support for changing background color
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
2020-06-01 08:00:57 -07:00
Nikhila Ravi
e3819a49df update rasterizer transform method
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
2020-05-23 10:28:21 -07:00
Georgia Gkioxari
1fb97f9c84 update padded in meshes
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
2020-05-22 22:38:29 -07:00
generatedunixname89002005307016
ae68a54f67 suppress errors in vision - batch 1
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
2020-05-21 19:43:04 -07:00
Georgia Gkioxari
d689baac5e fix alpha compositing
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
2020-05-20 09:27:42 -07:00
Jeremy Reizenstein
f2d1d2db69 Alternative type names in PLY #205
Summary: Add ability to decode ply files which use types like int32.

Reviewed By: nikhilaravi

Differential Revision: D21639208

fbshipit-source-id: 0ede7d4aa353a6e940446680a18e7ac0c48fafee
2020-05-20 01:13:23 -07:00
Michele Sanna
b4fd9d1d34 fixes to shader error strings (#204)
Summary: Pull Request resolved: https://github.com/facebookresearch/pytorch3d/pull/204

Reviewed By: gkioxari

Differential Revision: D21621695

Pulled By: nikhilaravi

fbshipit-source-id: 556f297bef4211c331dfde6471e10762a9956f98
2020-05-18 19:37:56 -07:00
Justin Johnson
d8987c6f48 Add benchmark for diffuse and specular lighting
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
2020-05-16 15:55:10 -07:00
Nikhila Ravi
3fef506895 Make cuda tensors contiguous in host function and remove contiguous check
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
2020-05-15 15:00:25 -07:00
Roman Shapovalov
a8377f1f06 Numerical stability of ePnP.
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
2020-05-15 01:36:21 -07:00
Georgia Gkioxari
a0e14cae1e flat shading fix
Summary:
Make flat shading differentiable again

Currently test fails with P130944403 which looks weird.

Reviewed By: nikhilaravi

Differential Revision: D21567106

fbshipit-source-id: 65995b64739e08397b3d021b65625e3c377cd1a5
2020-05-14 13:34:09 -07:00
Jeremy Reizenstein
728179e848 avoid converting a TensorOptions from float to integer
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
2020-05-14 13:16:05 -07:00
Jeremy Reizenstein
6a365d203f Pointclouds, Meshes and Textures self-references
Summary: Use `self.__class__` when creating new instances, to slightly accommodate inheritance.

Reviewed By: nikhilaravi

Differential Revision: D21504476

fbshipit-source-id: b4600d15462fc1985da95a4cf761c7d794cfb0bb
2020-05-11 12:57:55 -07:00
David Novotny
34a0df0630 SO3 log map fix for singularity at PI
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
2020-05-10 13:15:37 -07:00
Nikhila Ravi
17ca6ecd81 allow cameras to be None in rasterizer initialization
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
2020-05-05 22:32:57 -07:00
ywang
9c5ab57156 fix clone type issue (#179)
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
2020-05-05 22:32:57 -07:00
Georgia Gkioxari
a61c9376d5 add align modes for cubify
Summary: Add alignment modes for cubify operation.

Reviewed By: nikhilaravi

Differential Revision: D21393199

fbshipit-source-id: 7022044e591229a6ed5efc361fd3215e65f43f86
2020-05-05 11:09:45 -07:00
Jeremy Reizenstein
8fc28baa27 Looser gradient check in test_rasterize_meshes
Summary: This has been failing intermittently

Reviewed By: nikhilaravi

Differential Revision: D21403157

fbshipit-source-id: 51b74d6c813b52effe72d14b565e250fcabbb463
2020-05-05 09:26:47 -07:00
Jeremy Reizenstein
06ad1fb6c4 KNN return order documentation
Summary: Fix documentation of KNN, issue #180

Reviewed By: gkioxari

Differential Revision: D21384761

fbshipit-source-id: 2b36ee496f2060d17827d2fd66c490cdfa766866
2020-05-04 13:37:25 -07:00
Nikhila Ravi
0eca74fa5f lint fixes
Summary:
Ran the linter.
TODO: need to update the linter as per D21353065.

Reviewed By: bottler

Differential Revision: D21362270

fbshipit-source-id: ad0e781de0a29f565ad25c43bc94a19b1828c020
2020-05-04 09:56:44 -07:00