![ ](fig/me.jpg width="20%")
I am a PhD candidate at the [College of Information and Computer Sciences](https://www.cics.umass.edu/) in the
[University of Massachusetts - Amherst](https://www.cics.umass.edu/).
Currently, I am working as a Research Assistant in the
[Computer Graphics Research Group](http://graphics.cs.umass.edu/) and in the
[Computer Vision Lab](http://vis-www.cs.umass.edu/) under the supervision of
[Prof. Rui Wang](https://people.cs.umass.edu/~ruiwang/) and
[Prof. Subhransu Maji](http://people.cs.umass.edu/~smaji/).
Prior to joining UMass, I've obtained my bachelor's and master's degrees in Computer Science
from [Federal University of Rio Grande do Norte](https://sistemas.ufrn.br/portal/PT/),
while working at IMAGINA Research Lab, under the supervision of Profs. Selan dos Santos
and Bruno Motta de Carvalho.
I am interested in Computer Graphics, Vision and their intersections with Machine Learning.
More recently, I've been working on 3D shape processing through deep learning
with [Prof. Subhransu Maji](http://people.cs.umass.edu/~smaji/) and
[Prof. Rui Wang](https://people.cs.umass.edu/~ruiwang/).
(#) Work Experience
![ ](fig/amazon_logo.png width="7%") **Amazon**. Applied Scientist Intern at Pasadena, CA. _Summer 2018_.
![ ](fig/adobe_logo.png width="7%") **Adobe**. Research Intern at San Jose, CA. _Summer 2019_.
(##) A Bayesian Perspective on the Deep Image Prior [CVPR 2019]
_Zezhou Cheng, **Matheus Gadelha**, Subhransu Maji, Daniel Sheldon_
![Denoising using SGLD vs. SGD.](fig/bayesdip.png width="30%")
The [deep image prior](https://dmitryulyanov.github.io/deep_image_prior) was recently introduced as a prior for natural images.
It represents images as the output of a convolutional network with random inputs.
We show that the deep image prior is asymptotically equivalent to a stationary Gaussian process
prior in the limit as the number of channels in each layer of the network goes to infinity, and derive the corresponding kernel.
This informs a Bayesian approach to inference.
We show that by conducting posterior inference using stochastic gradient Langevin we avoid the need for early stopping,
which is a drawback of the current approach, and improve results for denoising and impainting tasks.
(##) A Deeper Look at 3D Shape Classifiers [ECCV 2018 - 3DRMS Workshop]
_Jong-Chyi Su, **Matheus Gadelha**, Rui Wang, Subhransu Maji_
![Adversarial examples.](https://people.cs.umass.edu/~jcsu/papers/shape_recog/advers_examples.png width="25%")
We investigate the role of representations and architectures for classifying 3D shapes in terms of their computational efficiency,
generalization, and robustness to adversarial transformations.
Our analysis shows that multiview methods continue to offer the best generalization even without pretraining on
large labeled image datasets, and even when trained on simplified inputs such as binary silhouettes.
Furthermore, the performance of voxel-based 3D convolutional networks and point-based architectures can be improved
via cross-modal transfer from image representations.
Finally, we analyze the robustness of 3D shape classifiers to adversarial transformations and present a novel approach for
generating adversarial perturbations of a 3D shape for multiview classifiers using a differentiable renderer
(##) Multiresolution Tree Networks for Point Cloud Processing [ECCV 2018]
_**Matheus Gadelha**, Rui Wang, Subhransu Maji_
![Ordering and pooling induces multiple point cloud resolutions.](mrt/fig/smallabs.png width="25%")
We present multiresolution tree-structured networks to process point clouds
for 3D shape understanding and generation tasks. Our network represents a 3D
shape as a set of locality-preserving 1D ordered list of points at multiple
resolutions. This allows efficient feed-forward processing through 1D
convolutions, coarse-to-fine analysis through a multi-grid architecture, and it
leads to faster convergence and small memory footprint during training. The
proposed tree-structured encoders can be used to classify shapes, while
tree-structured decoders can be used for generating point clouds directly.
(##) Unsupervised 3D Shape Induction from 2D Views of Multiple Objects [3DV 2017]
_**Matheus Gadelha**, Subhransu Maji, Rui Wang_
![Learning to create shapes from images without any annotation.](prgan/fig/overview.png width="25%")
Our approach called "Projective Generative Adversarial Networks" (PrGANs) trains a deep generative
model of 3D shapes whose projections match the distributions of the input 2D views.
The addition of a projection module allows us to infer the underlying 3D shape distribution without
using any 3D, viewpoint information, or annotation during the learning phase.
We show that our approach produces 3D shapes of comparable quality to GANs trained on 3D data
for a number of shape categories including chairs, airplanes, and cars.
Experiments also show that the disentangled representation of 2D shapes into geometry and viewpoint
leads to a good generative model of 2D shapes.
The key advantage is that our model allows us to predict 3D, viewpoint, and generate novel views
from an input image in a completely unsupervised manner.
(##) 3D Shape Reconstruction from Sketches via Multi-view Convolutional Networks [3DV 2017 - _Oral_]
_Zhaoliang Lun, **Matheus Gadelha**, Evangelos Kalogerakis, Subhransu Maji, Rui Wang_
![Shapes from sketches.](fig/sketch.png width="25%")
We propose a method for reconstructing 3D shapes from 2D sketches in the form of line drawings.
Our method takes as input a single sketch, or multiple sketches,
and outputs a dense point cloud representing a 3D reconstruction of the input sketch(es).
The point cloud is then converted into a polygon mesh.
Based on our experiments, compared to other methods, such as volumetric networks,
our architecture offers several advantages, including more faithful reconstruction,
higher output surface resolution, better preservation of topology and shape structure.
(##) Shape Generation using Spatially Partitioned Point Clouds [BMVC 2017]
_**Matheus Gadelha**, Subhransu Maji, Rui Wang_
![_kd-tree_ sorted Point Clouds.](sppc/fig/airplanes_sorting_new2.png width="25%")
We propose a method to generate 3D shapes using point clouds.
Given a point-cloud representation of a 3D shape, our method builds a _kd-tree_ to spatially partition the points.
This orders them consistently across all shapes, resulting in reasonably good correspondences across all shapes.
We then use PCA analysis to derive a linear shape basis and optimize the point ordering
by iteratively minimizing the PCA reconstruction error.
We propose to use the expressive power of neural networks to learn a distribution over the shape coefficients in a generative-adversarial framework.
Compared to 3D shape generative models trained on voxel-representations,
our point-based method is considerably more light-weight and scalable, with little loss of quality.
Furthermore, our method can easily incorporate other point attributes such as normal and color information,
an additional advantage over voxel-based representations.
(##) Discrete Image Descriptors [ICPR 2014]
_**Matheus Gadelha**, Bruno Motta_
Computing descriptors for image features is a crucial task in many applications.
A good feature descriptor is capable of providing invariance to geometric and lightning transformations
while consuming as few memory as possible.
Binary descriptors only store a single bit per pixel comparison, and an useful portion of information,
about how large the difference of intensity is, is lost due to this quantization.
This work proposes a generalization of the binary descriptor idea: the discrete descriptor called DRINK.
Using this idea, we are able to use more information related to the intensity difference while
preserving the speed of the original binary descriptor.
(##) Interactive Mesh Deformation w/ ARAP Surface Modeling
![As Rigid as Possible Interactive Demo](https://www.youtube.com/watch?v=QUtpoybhYA8)
Implementation of the ARAP Surface Modeling paper.
It includes a software to deform any mesh, applying the computed transformation in real time.
It was coded in C++ with Eigen library and OpenGL.
(##) Rigid Body Simulation
Rigid body simulator coded in C++ with Eigen library and OpenGL.
The code includes a demo where you can load any model and interactively draw forces.
(##) Subdivision Surface
![Smoothing bunnies w/ subdivision surfaces.](fig/bunny_gets_better.png width="25%")
Code in C++ to perform subdivision of a closed triangular mesh. Made from scratch, so no
libraries are required.
(##) Generic A* implementation and CSP solver
Template-based implementation for the A* algorithm and CSP solver written in C++.
It is a generic solver, where you can simply define the successor and heuristic function for each problem.
Includes examples on solving knight shortest path problem and the classic TSP (w/ Minimum Spanning Tree heuristic).
CSP solver includes an efficient sudoku solver example.