# Par3 DNet: Using 3 DCNNs for Object Recognition on Tridimensional Partial Views
## 3 Proposal
### Par3 DNet Architecture  
The Par3 DNet architecture is based on the PointNet [37]. It takes as an input a 3D volume, which represents the binary voxel representation of a point cloud. Then, this data is forwarded to a pipeline of convolutional layers with tridimensional filters, and dropout layers. Finally, a fully connected layer is in charge of performing classification. Figure 1 shows the architecture of Par3 DNet.  
The binary voxel representation, which is the input layer, consists of a tridimensional volume of \(65\times 65\times 65\) voxels. It is built by enclosing the 3D sample, which should be a point cloud, in a voxel grid. Each voxel is filled with a 1 if there are points in the space delimited by that voxel, or a 0 otherwise. This way, we generate a binary occupancy grid for each sample, which is then forwarded to the first 3D convolutional layer.  
The voxel representation length, width and depth units are set to fit the metric size of each dimension of the input point cloud, so the voxel size is not fixed to a specific metric unit. This way, the absolute size of the objects is missing. Nonetheless, this is a desirable feature as the CAD models do not usually match the actual size of the objects they represent. In fact, the aspect ratio of the objects is actually not desired.  
The specific size of \(65\times 65\times 65\) voxels was chosen to accommodate at least 10 samples of each category in a batch. This is done to benefit a smooth learning and fast convergence at training stage. The size of the representation could be enlarged in order to capture finer topological features at the expense of higher memory requirements.  
This unit is represented as the Input layer in Figure 1, followed by the size. Some samples of random point clouds converted to the input voxel representation can be seen in Figure 2.  
Figure 1: Architecture of Par3 DNet. The network receives a binary voxel representation of the point cloud of shape 65 \(\times\) 65 \(\times\) 65 as input. Then, it applies 2 consecutive 3D convolutions with 100 kernels of shape 5 \(\times\) 5 \(\times\) 5 with an stride of 2 for every dimension. Later, it performs a 3D convolution with 64 kernels of shape 3 \(\times\) 3 \(\times\) 3 with an stride of 2 for every dimension. Afterwards, it makes a \(1\times 1\times 1\) kernel convolution to reduce the dimensionality of the previous layers. Finally, it calculates classification probabilities for the given classes of the dataset with a softmax function. Dropout layers inhibit a ratio of connections in each step and benefit the generalization capabilities of the network.  
The tridimensional filters of the convolutional layers focus on learning the topological features of the samples, rather than the visual features which are learn by the 2D filters that are used in image data. In the Figure 1, the 3D convolutional layers are labeled as Conv3D. The number of filters of each layer are specified in the parameter \(k\), followed by its size. The stride parameter is \(s\). The activation function of every 3D convolutional layers is ReLU.  
The dropout layers randomly inhibit a ratio of connections in each feedforward step. This is done to benefit the generalization capabilities, as disabling connections coerces the network to deal with missing features that are even different each time. Thus, these layers also enhance the performance when the architecture is fed with occluded objects that yield missing parts. They are represented as Dropout in Figure 1 alongside the ratio of disconnections.  
Finally, the classification layer is a fully connected layer with 10 neurons. This parameter is set to fit the number of classes considered in out experiments. The activation function in this layer is softmax. In the Figure 1 this layer is labeled as Dense, followed by the number of neurons and the activation function.