# Detection of Household Furniture Storage Space in Depth Images
## 3 Methods
### Empty Storage Volume Detection Algorithm
#### 3.1.2 Detection of Empty Storage Volume Candidates  
Free space cores may be located inside a furniture model between its supporting surfaces or placed around the furniture. Cores in the furniture environment can be placed above, below, or next to the furniture model. The cores that are next to or below the furniture model have no required supporting surface, as defined in Section 3.1.1. Therefore, they are not considered for empty storage volume detection. Figure 2: Example of voxelized storage furniture model (bookshelf) with detected free space core (FSC—orange voxels). (**a**) Front view of furniture model with selected FSC (**b**) FSC zoomed, (**c**) One FSC layer in \(y\)-axis direction, (**d**) FSC layer adjusted. In an attempt to find the best axis-aligned cuboid that can be classified as an empty storage volume based on dilated free space core, the algorithm searches for the largest suitable volume per voxel grid axis. These volumes are referred to as storage volume candidates. Finally, the largest of the three proposed storage volume candidates is classified as a storage volume. A connected set of voxels with the same \(x,y\), or \(z\)-coordinate is referred to in this paper as a layer. A layer in a particular coordinate axis direction consists of voxels which have the same coordinate in this direction. An example is the layer in \(y\)-direction shown in Figure 1(c). To find the largest storage volume per axis, the algorithm analyses the free space core voxel layers individually in the direction of each axis. Additionally, the algorithm adjusts the free space core to a rectangular shape by computing its bounding box. Figure 1(a),b show free space core (orange voxels) consisting of 10 layers in the \(x\)-axis direction, 3 layers in the \(y\)-axis direction, and 7 layers in the \(z\)-axis direction. Figure 1(c) shows the extracted one free space core layer in \(y\)-axis direction. Note that the extracted free space core layers is not rectangular. Figure 1(d) shows free space core layer adjusted to a rectangular shape by computing its bounding box. When a free space core layer is extracted, the algorithm checks if that layer has only one connected component. If multiple connected components are detected, the algorithm skips this layer and proceeds to the next layer because a decomposed free space core layer could possibly result in redundant and overlapping storage volumes. The next step is to obtain a cuboidal volume based on the acquired free space core layer that can be proposed as a storage volume candidate. The free space core layer is dilated by the shortest distance to the nearest occupied voxels \(\delta\), as described in Section 3.1.1. An example is shown in Figure 3. Note that the obtained storage volume candidate can in some cases contain occupied voxels. This is corrected by the fine-tunning step explained in Section 3.1.4. The storage volume candidate can be classified as an empty storage volume if:  
1. it has a sufficient size for storing the objects of interests, and
2. it has a hard flat horizontal surface underneath. The minimum size of the storage volume candidate \(d_{sv}\) is defined in the mesh space, i.e., the space spanned by the mesh reference frame. Since storage volume candidates are created based on a voxelized model in the voxel space, their minimum size must be  
Figure 3: Rectangular free space core dilated by \(\delta\) yields an empty storage volume candidate (orange bounding box): (**a**) Front view, (**b**) Side view. specified in voxels instead of meters. The minimal size of a storage volume candidate in voxels is determined as a cube with the sides of:  
\[d_{bb}=\left\lceil\frac{d_{sp}}{d_{v}}\right\rceil\]  
where \(d_{v}\) is the size of one voxel in the mesh space. Storage volume candidates of size greater or equal to \(d_{bb}\) in all directions are further processed to determine their supporting surfaces, and those which do not satisfy this condition are rejected.