# Detection of Household Furniture Storage Space in Depth Images
## 3 Methods  
Several aspects must be considered when creating an appropriate training dataset for machine learning. First, it must be determined how large the training dataset must be for satisfactory neural network performance. There are some common estimates for the required number of scenes in the dataset, but it is impossible to know exactly how large the dataset needs to be. Second, the dataset should contain scenes which must reflect important characteristics of the robot's work environment. Existing datasets of 3D indoor scenes either have a predefined clutter that cannot change, or they are clutter-free. Consequently, training a neural network on such a dataset would limit its application to that type ofenvironment. Third, the characteristics of the robot visual sensor should be taken into account by simulating camera imperfections.  
The solution to these problems is the development of a method which automatically generates realistic, scalable datasets that can be easily expanded and contain arbitrary type and amount of clutter. Datasets, which consist of scenes captured by real visual sensors, cannot be easily extended, as this would require the acquisition of additional scenes and their manual annotation, which is time-consuming and impractical. In contrast, new synthetic scenes can be generated relatively easily, making them more suitable for a scalable dataset. Due to the large number of publicly available 3D models of various classes, synthetic datasets also provide the ability to quickly change clutter in scenes, making it easy to change the context of the scene. However, synthetic images differ from images acquired by a real robot sensor.  
The first part of the solution consists of a novel method that automatically detects empty storage volumes in 3D furniture models. For a given 3D model of a piece of furniture, this method provides one or multiple 3D bounding boxes, each representing a storage volume. The second part of our solution is a method which generates realistic scenes using 3D furniture models and adds clutter within the storage volumes under controlled conditions. Controlled conditions means that the user can select categories of objects to be used as clutter and specify their size and number. To create a realistic scene, 3D furniture models are placed on a floor, and some models are placed against a wall. The final step of this process is to render images from the created scenes. Simulated camera noise is superposed to the rendered depth images in order to obtain images similar to those captured by a real visual sensor. The described process is summarized in Algorithm 1. Inputs to the algorithm are a CAD model of empty furniture \(M_{CAD}\) and a set of CAD models _clutter set_ to be used to generate clutter, and outputs are furniture model depth image \(I_{3D}\) with set of annotated oriented bounding boxes of storage volumes \(OBB\). The first part of the Algorithm 1 process consists of \"voxelization\" and \"empty storage volume detection\" procedures which are further explained in Section 3.1. The second part is the procedure \"synthetic scene generator,\" described in Section 3.2. The proposed training set generation method was tested by training a neural network and applying the trained network to detect storage volumes in depth images captured by a real 3D camera. An overview of the overall testing procedure is shown in Figure 1.