## 3 Full Description of the Approach
### Segmentation into Structural Elements
#### 3.2.2. Segmentations into Planes and Point Classification  
Once room point clouds are identified, the altitudes of ceiling and floor of each room are determined. A plane segmentation is performed at these altitudes and points corresponding to ceilings and floors are extracted. A criterion of horizontality (\(\alpha_{\text{hz}}\)) is considered. A robust estimator namely the Maximum Likelihood Estimation SAmpe Consensus (MLESAC) is used for plane extraction. This estimator uses the same sampling strategy as RANSAC. However, it presents the benefit that the retained solution maximizes the likelihood rather than just the highest number of inliers as it is done by RANSAC [60]. A tolerance \(t\) defining the maximum distance between points and the corresponding plane has to be defined. In our case, it has been fixed to 2 cm for ceiling and floor extraction. After removing ceilings and floors, room point clouds still contain points belonging to walls but also points belonging to occluding objects such as furniture for example desks, computer equipment, chairs and cabinets (see Figure 5a). At this stage, two assumptions are done: on one hand, points located in the borders of rooms are presumably points belonging to walls, and on the other hand, occluding objects generally do not reach the ceilings. Thus based on both room boundaries determined during the room segmentation, and the higher part of the remaining room point cloud, top of walls are identified and then points belonging to walls can be isolated. Figure 5b shows the classification result obtained for a computer room. Points classified as walls are kept in real colours whereas points belonging to occluding objects are presented in red. Points belonging to occluding objects are removed and stored in a remaining point cloud. A reference point cloud containing points belonging to walls of the first floor of INSA building was segmented manually and compared to the result obtained automatically in order to determine the percentage of points correctly assigned to the wall class (true positives). The result is satisfying since about 93 percent of the points are correctly assigned to the wall class. Figure 4: Room segmentation: (a) Generated binary image for the 1 st floor of the INSA building. (b) Region growing result superimposed with an existing floor map in red. A plane segmentation is then performed for points classified as wall points. For that purpose, lines are first extracted in a slice of room point cloud at ceiling level projected in the horizontal plane. A buffer zone is considered around a line and a plane is determined based on points located in this zone. The extracted plane has to be composed of a minimum number of 1800 points (\(nb_{min}\)). This value was established by considering a plane of 1.8 m height (\(h_{min}\)) and 10 cm width as well as the spatial sampling of 1 cm applied to input point clouds. Once again MLESAC is used for plane extraction. The tolerance \(t\) defining the maximum distance between points and plane is fixed to 5 cm for wall plane extraction. Considering that portions of walls have to be extracted, a criterion of verticality is imposed. A maximum angular value related to the vertical \(\alpha_{vert}\) of one degree is defined. Moreover, a filter based on the Root Mean Square Error (RMSE) associated to the extracted planes is considered. Indeed, the extraction of planes can be disturbed by some objects fixed on the walls as for example black boards. A threshold \(\sigma_{p}\) of 2 cm was fixed so that extracted planes which have a RMSE higher than this threshold are not considered. Given our processing chain, the probability that the first segmentation extracts small planes is low, which is why several segmentations are performed sequentially. For each room point cloud, the number of segmentations to perform is determined automatically by thresholding both the percentage and the number of remaining points in the slice of points (\(\%pts_{remaining}>5\%\) and \(nbpts_{remaining}>400\)).