# Detection of Household Furniture Storage Space in Depth Images
## 4 Evaluation
### Adaptation and Training of Neural Networks  
VoteNet takes as input a 3D point cloud and returns as output a set of oriented 3D bounding boxes of the detected objects, where each bounding box is assigned probabilities of belonging to each of the considered object classes. This neural network consists of a backbone, a voting module, and a proposal module. The VoteNet's backbone feature learning network is based on PointNet++ [37], which has four set abstraction (SA) layers and two feature propagation (FP) layers. Each SA layer assigns a feature vector to a subset of points from the previous SA layer contained in a spherical receptive field with a given receptive radius. The SA layer also subsamples the input point cloud with the farthest point sampling. The SA layers have increasing receptive radii of 0.2, 0.4, 0.8, and 1.2 in meters, and they sub-sample the input into 2048, 1024, 512, and 256 points, respectively. Each feature propagation layer performs upsampling of the point features, where the output point features are computed as weighted averages of the three nearest input points' features. In addition, it also combines the skip-linked features through a multi-layer perceptron (MLP), where the interpolated features and the skip-linked features are concatenated before being fed into the MLP. The two FP layers up-sample the 4 th SA layer's output back into 1024 points with 256-dim features and 3D coordinates. The output of the VoteNet's backbone is a set of seed points with assigned feature vectors. Given a set of seed points, a shared voting module generates votes from each seed point independently. The voting module is realized with an MLP with fully connected (FC) layers of sizes 256, 256, and 259; ReLU; and batch normalization, which computes the Euclidean space offset and a feature offset for each seed point. A vote is generated for each seed point by adding the computed offsets to the seed point's coordinate vector and its feature vector. Then, vote clustering is performed by selecting a subset of K votes using the farthest point sampling and forming clusters of votes in a spherical neighborhood of each of these selected votes. For each cluster, an object proposal is generated by MLPs that compute a proposal vector consisting of an objectness score, bounding box parameters and classification scores for each target object class. The proposals are post-processed by 3D non-maximum suppression (NMS), resulting in the final object predictions. The VoteNet was initially created for detection of ten classes in SUN RGB-D dataset: bed, table, sofa, chair, toilet, desk, dresser, night stand, bookshelf, and bathtub in depth images. Adapting VoteNet to detect only a single class--a storage volume--was straightforward: we simply used our training dataset, in which all storage volume bounding boxes had the same label. Since only this one class label occurs in the dataset, we effectively trained VoteNet to recognize only a single class. The network was trained end-to-end and from scratch with the Adam optimizer, batch size 8, and an initial learning rate of 0.001. Training the network on the proposed dataset of 7194 scenes for 180 epochs on NVIDIA GeForce GTX 1060 took around 32 h.  
The FCAF3D neural network accepts a colored 3D point cloud as input and outputs a set of 3D object bounding boxes. Its architecture consists of a backbone, a neck, and a head. Similarly to GSDN [38], the sparse 3D modification of ResNet34 [39] named HDResNet34 [40] is used as the backbone. The backbone generates four levels of hierarchical sparse tensor feature maps \(\mathbf{B}_{I}\), 1 = 1, 2, 3, 4 from the feature maps of the previous level. The neck processes feature maps \(\mathbf{B}_{I}\) and generates tensors \(\mathbf{N}_{I}\) at each feature level \(l\). The tensors \(\mathbf{N}_{I}\) are obtained by skip connections between tensor feature maps \(\mathbf{B}_{I}\) and upsampled tensors \(\mathbf{N}_{l+1}\).