WO2019058052A1 - Procédé de traitement de données d'une représentation bidimensionnelle d'une zone géographique - Google Patents
Procédé de traitement de données d'une représentation bidimensionnelle d'une zone géographique Download PDFInfo
- Publication number
- WO2019058052A1 WO2019058052A1 PCT/FR2018/052285 FR2018052285W WO2019058052A1 WO 2019058052 A1 WO2019058052 A1 WO 2019058052A1 FR 2018052285 W FR2018052285 W FR 2018052285W WO 2019058052 A1 WO2019058052 A1 WO 2019058052A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- points
- wall
- point
- walls
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0007—Image acquisition
Definitions
- the invention relates to the field of optimization methods for two-dimensional representations of a geographical area and the devices implementing such methods.
- capturing building plans can be done using Google Tango TM capture devices. These devices make it possible in particular to provide the plot of displacements made by the user of the device during the capture of building plans, in addition to measuring distances. By triangulation, it is possible by aiming a wall with the device, to know the vertical plane support of this wall, then to calculate the intersections between each plane in order to define the walls composing a part of the building.
- the device is successively pointed on each wall in the direction of clockwise.
- the vertical planes to which the walls belong are stored in memory. Once the set of vertical planes is stored, the intersections between the plans, and therefore between the walls, are calculated, in order to obtain points defining the angles of the room.
- This operation is repeated in each of the rooms composing the building.
- the acquisition method has a limited degree of precision and the resulting plan can thus include a number of defects.
- the present invention improves the situation.
- it proposes a method for processing data of a first set of data, the first set of data corresponding to a two-dimensional representation of a geographical area comprising at least two rooms and a set of walls respectively marked by two points. representing the respective ends of the wall, the first data set comprising a set of points respectively representing an intersection of two walls, the method being implemented by computer means and comprising:
- the first data processing is applied to the data of the first data set
- the second data processing is applied to the data of the second set of data.
- the first data processing is applied to the data of the third data set
- the second data processing is applied to the data of the first set of data.
- the proposed method therefore provides, depending on the embodiment, to apply the first data processing before the second data processing, and to apply the second data processing to data generated by the first data processing or to conversely, to apply the second data processing before the first data processing, and to apply the first data processing to data generated by the second data processing.
- the proposed method therefore makes it possible to remedy the defects of the planes so as to make the plan directly exploitable.
- the proposed method also makes it possible to increase the processing speed, since the defects are corrected directly, that is to say without human intervention.
- the segmentation of the at least one wall includes adding at least one corresponding intermediate point in the geographical area to a point between the points corresponding to the respective ends of the wall.
- the added intermediate point is the projection of a point representing an end of the unsegmented wall on the at least one wall.
- the segmentation of the at least one wall is performed if a distance between the projected point and the projection of the projected point on the at least one wall is less than a predetermined projection threshold Sp.
- the proposed method advantageously allows in particular to determine if two walls represented by data in the first set of data are shared walls.
- the points created during the first data processing are useful for the application of the second data processing which makes it possible to remedy the defects of the plane, namely that the points schematizing the intersections of the same two walls seen from two different adjacent rooms do not do not overlap, and that a wall shared by two different rooms appears in the form of two different walls that do not overlap.
- the second data processing is applied in particular to data from the first data processing.
- the projection threshold Sp may be chosen less than 60 cm.
- the value of the projection threshold Sp may be determined or chosen so as to avoid confusing points defining for example a small wall return.
- the second data processing further comprises calculating a barycentre of points separated by a distance less than the collection threshold Sr, the points separated by a distance less than the gathering threshold Sr being collected in the third set of data in their calculated barycentre.
- the calculation of the center of gravity advantageously allows to gather a plurality of points in one, so that the points which do not overlap are gathered in a single point: their barycentre.
- the use of the center of gravity is particularly advantageous because it is difficult to know at what point (s) is a defect.
- the calculation of the center of gravity thus makes it possible to draw closer to the real plane.
- the second data processing comprises calculating the center of gravity of two points separated by a distance less than the collection threshold Sr, at least one of the two points being a calculated center of gravity.
- the second treatment is applied to all the points, including the centroids calculated during the second treatment.
- the collection threshold Sr is chosen equal to or greater than the projection threshold Sp.
- the proposed method includes storing the third set of data in a memory.
- the proposed method includes storage in a memory of the first set of data, and storage in the memory of the third dataset, the third data set being stored as a replacement for the first set of data.
- the proposed method therefore allows a concrete optimization of the output data, since the storage of the data of the third data set requires less space in memory than the storage of the data of the first set of data, in particular in that the redundant information has been eliminated. .
- the accuracy of stored information relative to the topology of places is improved.
- the data set stored in memory can be used in one and / or the following of the following applications:
- the output data of the proposed method are therefore potentially exploitable in many applications.
- the exploitation of the data by a user can be immediate, in that the proposed method can be configured, in particular by means of a software program executed on a computer or any machine equipped with a processor, to apply the processing operations. data described herein directly, i.e. without user intervention or minimizing user intervention, on the first set of data.
- an electronic device comprising: a controller comprising a processor, an interface unit, a memory, and a data processing unit operatively coupled to the controller, and configured for the implementation of a data processing method proposed herein.
- a controller comprising a processor, an interface unit, a memory, and a data processing unit operatively coupled to the controller, and configured for the implementation of a data processing method proposed herein.
- Another aspect relates to a computer program, loadable into a memory associated with a processor, and comprising portions of code for the implementation of a data processing method proposed herein when executing said program by the processor.
- Another aspect relates to a set of data representing, for example by compression or encoding, a computer program as proposed.
- Another aspect relates to a non-transient storage medium of a computer executable program, comprising a data set representing one or more programs, said one or more programs including instructions for executing said one or more programs.
- a computer comprising a processing unit comprising a processor operatively coupled to a memory and an input / output interface module, driving the computer to perform data processing according to a data processing method proposed herein .
- a computing device that includes:
- FIG. 1 is a diagram illustrating the proposed method, and in particular the first and second treatments, according to one or more embodiments,
- FIG. 2 is a schematic view of a plan of a three-piece building obtained by a device for capturing building plans
- FIG. 3 is a diagrammatic view of the plan of a three-room building showing the projection of the end points of the walls of the building rooms after the implementation of a first treatment according to one or more embodiments of the proposed method.
- FIG. 4 is an enlarged view of the intersection zone of the three rooms
- FIG. 5 is an enlarged view of the intersection zone of the three pieces after the implementation of a second treatment according to one or more embodiments of the proposed method
- FIG. 6 is a schematic view of the plan of a three-piece building after the implementation of the proposed method according to one or more embodiments,
- FIG. 7 is a diagram illustrating a first treatment according to one or more embodiments of the proposed method.
- FIGS. 8a and 8b are diagrams illustrating embodiments of a second treatment according to one or more embodiments of the proposed method
- FIG. 9 is a diagram illustrating a third data processing of the proposed method in one or more embodiments.
- FIG. 10 is a diagram illustrating a device configured for implementing the method proposed in one or more embodiments.
- a first set of data corresponding to a two-dimensional representation of a geographical area, for example a building, comprising at least two rooms, is provided (SI) input of the proposed method.
- SI a two-dimensional representation of a geographical area
- a "geographical area” may be a spatial area that corresponds to a particular environment such as a house, a building, or any other type of building.
- the two-dimensional representation (also referred to herein as a "plan") of a geographical area can be obtained by any acquisition or data capture device configured to generate a set of data usable in a geographical area.
- input of the proposed method such as, for example, the Google Tango TM device, or any other device having equivalent or similar functionality in acquiring and / or capturing bidimensional representation data of a geographical area any.
- the two-dimensional geographical area corresponds to an apartment comprising three parts, respectively denoted in Figure 2 Fl, F2, F3 respectively from left to right and from top to bottom.
- the plan provides a representation of the geographic area and may include, in one or more embodiments, elements of representation of the following types:
- part identifier F1, F2, F3 in the example of the plane of FIG. 2
- each point being associated with a pair of planar coordinates (Cartesian or polar for example) and possibly with a part identifier, directly or indirectly (each point can be directly associated with a part identifier, or alternatively indirectly associated with a part identifier through an association between the point set to which it belongs and a part identifier).
- planar coordinates Cartesian or polar for example
- the data set representing the geographic area will typically include one or more room IDs, and a set of points for each room identified in the data set.
- the walls may be marked by two points respectively corresponding to their ends, which will be referred to in the following as the "extreme point".
- the data set representing the geographical area may thus comprise, alternatively, a set of points and a set of walls, each wall corresponding to two points of the set of points.
- the implementation of the proposed method uses in one or more embodiments advantageously only the data described above (part identifier (s) and set (s) of points or, depending on the embodiment, sets of points and walls), which can thus be considered sufficient to represent the two-dimensional geographical area for the purpose of implementing the proposed data processing method representing a two-dimensional geographical area, which in particular makes it possible to avoid storage and processing other data representing the two-dimensional geographical area.
- the proposed method may be implemented from a data set including data representing points, and data representing walls, without the data set including parts data, let alone that the data in the set are associated, directly or indirectly, with data representing or identifying parts.
- the data representing the walls may advantageously comprise pairs of extreme points, the data set used for the implementation of the proposed method then comprising data representing extreme points, and data representing pairs of end points respectively corresponding to walls.
- two rooms may have two shared walls, in whole or in part.
- shared wall is meant, in the geographical area, a common wall, in whole or in part, with two rooms in the area.
- the proposed method advantageously comprises a determination that two walls represented in the data to be processed are actually, that is to say in the geographical area, two shared walls.
- the proposed method further allows identification of a wall portion that is only partially shared with a wall of an adjacent room (called a “sharing wall”), by operating a segmentation of the wall split partly into two parts of walls, one of which is substantially totally shared with the sharing wall, and the other is not shared with the sharing wall.
- the segmentation of one of the two walls can create a point that corresponds to the sharing end (with the other wall) on the segmented wall, regardless of the length of each wall (and in particular regardless of whether the two shared walls are of different lengths).
- the proposed method thus advantageously makes it possible to generate, in a set of data corresponding to a two-dimensional representation of the geographical area, within a wall, sharing end points with other walls represented in the data set. which make it possible to represent in the set of data generated the boundaries of the zones or portions of sharing with other walls.
- the proposed process will segment the wall into three walls corresponding respectively to the wall portions shared with each of the three sharing walls, and thus identify the three wall segments respectively shared with three different adjacent rooms.
- Parts of the geographical area may also have shared extreme point (s), especially when two adjacent rooms include a wall shared between them.
- shared walls of two rooms may not be properly represented on the initial plan. More specifically, two shared walls, which should be represented as a single wall common to both rooms, can be represented on the original plan (generated by the plan capture or data acquisition device) by two separate walls or in whole or in part dissociated from each other. In other words, the sharing information of a wall between two rooms may not be captured or present errors, in the initial representation generated by the plan capture or data acquisition device used. This is because the shared endpoints of two pieces may not be correctly represented on the initial plan. For example, two extreme points that are actually shared may be represented on the original plane as being dissociated from each other, whereas these two shared extreme points should be represented as a single extreme point common to two pieces. This may be due to the thickness of the actual walls, while the walls are represented by a line on the plane. This may also be due to measurement errors when capturing the plan.
- the data representing the plane illustrated in FIG. 2, namely the identifiers of the pieces (F1, F2, F3) and the points associated with their respective coordinates, constitute a first set of data (DATA 1) to which the data processing method proposed can as discussed above be applied.
- DATA 1 a first set of data
- an improved plan can be generated by applying the proposed method to certain data of the initial plan.
- the improved plan thus generated has the advantage of being directly exploitable in many fields of application, as discussed below.
- the first data processing may, in one or more embodiments, be applied to the first data set (DATA 1), which as discussed above includes data representing points representing each piece of the geographical area being processed. As indicated above, a limited number of points, for example corresponding to extreme points of walls, may be sufficient to represent a part of the geographical area treated for the purposes of implementing the proposed method, and in particular the implementation of the first data processing.
- This first data processing operates a segmentation of at least one wall among two walls shared by two adjacent rooms, the two shared walls being in the nonlimiting example illustrated in Figure 2 of different lengths.
- the data (DATA 1) representing the plane may comprise, in one or more embodiments, a set of dots representing the coin corners (or, equivalently, representing intersections of two successive walls d the same room), as well as the respective coordinates of these points, and the room to which they belong.
- the proposed method can provide in the context of this first treatment to add at least one intermediate point at the wall to segment to create two aligned walls, the intermediate point added becoming a point extreme of at least one of the two walls created in the segmented wall.
- provision can be made to determine whether two walls are shared walls (by two adjacent rooms) prior to the segmentation of at least one of the two walls.
- the first data processing may comprise performing (S2) a projection of each point of the plane (ie each point in the data set corresponding to the two-dimensional representation of the geographic area being processed) on all the walls to which the treated point does not belong.
- S2 a projection of each point of the plane (ie each point in the data set corresponding to the two-dimensional representation of the geographic area being processed) on all the walls to which the treated point does not belong.
- the first data processing can comprise the definition for each pair of extreme points of a wall of a line passing through the two extreme points, then projections of each point of the data set processed on all defined lines to which the projected point does not belong. It can then be determined if the projection of the point lies well between the two extreme points included on the line on which the projection is made. Indeed, the projection is performed on the line segment between two extreme points, the line segment between these two points defining a wall.
- the proposed method may provide, instead of projecting a point on all defined lines, to project a point of a given piece only on the straight walls of the rooms adjacent to the given room. It is thus possible, depending on the embodiment chosen, to reduce the complexity of the first treatment.
- the proposed method provides for determining whether two walls, represented in the processed data, are shared walls. Those skilled in the art will understand that this determination can be made for any set of two distinct walls (for example because at least two of their respective extreme points are distinct) represented in the processed data set, for example using a software loop operating on all or part of the walls represented in the processed data set.
- this determination comprises determining (S3) a distance d between the projected point and the intermediate point resulting from its projection.
- a predetermined projection threshold Sp the two walls are determined to be shared. If the distance between the projected endpoint and the intermediate point from its projection is not less than the predetermined projection threshold Sp, the process may loop back onto the projection operation (S2) applied, for the projected point to another wall to which it does not belong, then to another point when all projections of a projected point provided for by the first treatment have been made.
- S4 a segmentation of one of the two walls is performed (S4), as described above.
- it may be provided, prior to the projection (S2), to gather at a single point the points separated by a distance less than a threshold of evidence. This operation advantageously makes it possible to reduce the number of treatments applied during the implementation of the proposed method.
- the threshold of evidence can be chosen very low, for example equal to or less than 20 cm. Thus, possible grouping errors can be avoided.
- Each extreme point p e is projected orthogonally onto the walls to which they do not belong, as described with reference to FIG. 1 (S2). As a variant, this operation may be limited to a subset of extreme points, such as those located in zone IV, as illustrated in FIG. 3.
- the intermediate point p it is determined whether, after performing the projection of an extreme point p e on a wall, the intermediate point p ; thus created (corresponding to the project of the extreme point p e on the wall) already exists in the first set of data (DATA 1), for example as extreme point defining a wall in the first set of data.
- the intermediate point p may not be retained. This case is illustrated in FIGS. 3 and 4, where the projection of the extreme points p e 1 and p e 2 does not lead to the creation of an intermediate point p i .
- the projection of the end point p e 3 of the part F2, which leads to the creation of the intermediate point p; l on the wall of the part Fl, is performed.
- the distance dl between the extreme point p e 3 and the intermediate point p i is calculated (reference S3 in FIG. 1) in order to determine if this distance d 1 is less than the projection threshold Sp. In this example, the distance d 1 is less than Projection threshold Sp.
- the intermediate point is then created (reference S4 in Figure 1), and it is determined that the wall of the room Fl defined by the end points p e l and p e 7 and the wall of the room F2 defined by the extreme points p e 2 and p e 3 are two walls shared by the pieces Fl and F2.
- the wall of the piece F1 is then segmented into a first part, defined by the end point p e 1 and the intermediate point p 1, and in a second part, defined by the intermediate point Pil and the end point p e 7.
- the extreme point p e 5 of the piece F3 is projected on the walls of the adjacent rooms Fl and F2.
- the intermediate points p; 2 and p; 3 are respectively created on the walls of the rooms F2 and Fl, from the projection of the extreme point p e 5.
- the distance d2 between the extreme point p e 5 and the intermediate point p ; 2 is determined (reference S3 in Fig. 1) less than the projection threshold Sp, so that the intermediate point p ; 2 is in turn created between the end points p e 3 and p e 4 of the piece F2.
- the wall of the room F3 defined by the end points p e 5 and p e 6 is shared with the wall of the room F 2 defined by the end points p e 3 and p e 4.
- the wall of the piece F3 defined by the extreme points p e 5 and p e 6 is broken up into a first part, defined by the extreme point p e 5 and the intermediate point p ; 4, and a second part, defined between the intermediate point p; 4 and the extreme point p e 6.
- the distance d 3 between the extreme point p e 5 and the intermediate point p 3 is also determined less than the projection threshold Sp.
- the intermediate point p 3 is also created. It is determined that the wall of the room Fl is shared with the wall of the room F3 defined by the end points p e 5 and p e 7.
- the wall of the room F1 defined by the end points p e 1 and p e 7 is then segmented to define a new part, a new wall, defined by the extreme point p e 7 and the intermediate point i 3.
- this wall can be replaced in the data set treated in one or more embodiments by the two new walls defined by the endpoints p e l and pil for one, and p and p e 7 for the other.
- the intermediate point pi3 resulting from the projection of the extreme point p e 5 on the right of the initial wall defined by the end points p e 1 and p e 7 is in this case obtained by projection of the extreme point pe5 on the line corresponding to the new wall defined by the ends pil and pe7.
- the projection threshold Sp can be determined at the time of the capture of the plane. Indeed, depending on the capture device used or capture conditions (brightness, movement of the manipulator of the plan capture device, etc.), a drift of the device can be measured. More precisely, the plane obtained from a particular capture has defects that can be quantified from the drift observed during capture. The observed drift can be measured by a distance, corresponding for example to a maximum distance between shared extreme points of two different rooms, or a maximum distance between shared walls of two different rooms.
- the projection threshold Sp is for example determined prior to the implementation of the data processing on a plane.
- the projection threshold Sp may preferably vary between 40 and 60 cm.
- the projection threshold Sp can also, alternatively or in addition, be chosen so as not to confuse shared extreme points of two different rooms with end points included on the same wall and defining for example a stall in a wall resulting in by a very short portion of wall.
- a second set of data (DATA 2) is thus obtained (S5) following processing (S2-S4) carried out on the first set of data (DATA 1), of which examples of implementation are described above.
- the second set of data (DATA 2) comprises the first set of data (DATA 1), as well as the intermediate points and their respective coordinates, created at the end of the implementation of the first set of data (DATA 1). data processing on the first data set (DATA 1).
- the second data processing may comprise grouping a plurality of points at a single point if the distance 1 between these points is less than a predetermined gathering threshold Sr.
- a processing loop whose one iteration performs an implementation of the second data processing on a point of the processed data set (for example the second set of data (DATA 2)) can thus be implemented in one or more embodiments of the proposed method, which has the advantage of traversing the points of the processed data set to possibly group them with other points of this set of which they are close.
- a distance l between a first point of the processed data set and another point, distinct from the first point is calculated (S6).
- the center of gravity b of these two points is calculated (S7).
- the two points are then replaced (S8) in the data set processed by their barycentre whose coordinates have been calculated.
- the method performs a new distance calculation 1 with another selected point again distinct from the first point.
- the second data processing may be configured to include, when a barycenter b of two points is calculated (S7) and replaces the two points (S8) in the processed data set (in the example of FIG. 1, DATA 2), a determination (S9) of the distance (Ib) between the barycentre b and another point of the processed data set, distinct from the barycenter, and a comparison of the distance Ib with the collecting threshold Sr.
- the operations S7 and S8 are then repeated (comparison with the collection threshold Sr and possible calculation of a new barycenter), until the last barycenter calculated is at a distance (Ib) of other point in the processed dataset that is not less than the collection threshold (Sr).
- the use of the center of gravity is particularly advantageous because it is difficult to know with certainty on what point is an error.
- the calculation of the center of gravity makes it possible to realize an average, and thus to get as close as possible to the real plane.
- a point is at a distance greater than the staging threshold of any other point in the plane, it may be determined in one or more embodiments that the point is its own center of gravity.
- the collection threshold Sr will preferably be chosen greater than or equal to the projection threshold Sp, so that the projected points and the points resulting from the projection of these points can be collected in a single point at the end of the second data processing. in the embodiments where the second data processing is performed following the first data processing.
- the processing of a point of the processed data set with the operations of the second data processing described above can continue iteratively by traversing the points of the processed data set. , including in its updates during the operations of the second processing, in particular by treating the points corresponding to a barycentre calculated for two treated points, until one has traversed all the points of the set set up-to-date without having performed a grouping, in which case the processing loop is considered complete (S 10). In the opposite case (S 10), the processing loops back to be applied to another point of the processed data set, possibly updated during the previous iterations of the processing loop.
- a third set of data (DATA 3) is thus generated (SU), following the grouping operations described above.
- the third set of data (DATA 3) includes the calculated centroids and their associated coordinates, as well as the identifiers of the parts.
- the third set of data (DATA 3) is stored in memory (S 12) of a device for implementing the proposed method. If the first set of data (DATA 1) and / or the second set of data (DATA 2) have also been stored in memory, the third set of data (DATA 3) can be stored (S 12) instead of the first set and or the second set of data (DATA 1, DATA 2), so as to generate only a set of data (DATA 3) stored in memory at the output of the proposed method (S 13).
- Figures 5 and 6 illustrate an example of implementation of the second treatment.
- the set of data processed during the first iteration of the loop of the second data processing comprises the points p e 1, p e 2, p e 3, p e 4, p e 5 , p,
- the distance 11 between the extreme points p e 1 and p e 2 is determined to be lower than the collection threshold Sr (reference S6 in FIG. 1). Their barycentre bl is calculated (reference S7 in Figure 1), then the extreme points p e l and p e 2 are gathered in their barycentre bl (S8).
- the set of processed data includes the updated bl points p e 3, e p 4, p 5 e, pil, ft2, p, 3 and pi4.
- the second data processing is for example applied as part of a new loop iteration at the extreme point p e 4.
- the distance 12 between the extreme point p e 4 and the associated intermediate point p ; 4 is determined to be below the collection threshold S r (reference S6 in FIG. 1).
- the center of gravity b2 of points p e 4 and p ; 4 is calculated (reference S7 in FIG. 1), then the points p e 4 and p; 4 are gathered in their center of gravity b 2 by replacing in the data set these two points by their barycenter (reference S 8 in FIG. ).
- the updated processed data set includes the points bl, bl, p e 3, p e 5, p ; l, p ; 2 and p ; 3.
- a new iteration of the loop of the second data processing is then carried out for the treatment of the extreme point p e 3.
- the distance between the extreme point p e 3 and the intermediate point p ; 2 is determined to be lower than the collection threshold Sr (reference S6 in FIG. 1).
- Their center of gravity b3 (not shown in Figure 5) is calculated (reference S6 in Figure 1), then the points p e 3 and p; 2 are gathered in their barycentre b3 by replacing in the dataset these two points by their center of gravity (reference S 8 in Figure 1).
- centroid b3 being determined (reference S9 in FIG. 1) at a distance from the point p e 5 below the collection threshold Sr, the centroid b4 between the points b3 and p e 5 is calculated (reference S7 in Figure 1), then the points p e 5 and b3 are gathered in their barycentre b4 by replacing in the data set these two points by their barycentre (reference S8 in Figure 1). These operations are repeated until all points are grouped together when possible, that is, when they are separated by a distance less than the collection threshold Sr.
- the points p; 1, p ; 2, p ; 3, p e 3 and p e 5 are grouped together in a same barycentre bS.
- the distances 1 between these points and the intermediate barycenters b3 and b4 are not represented.
- the extreme point processing iteration p e 3 ends, and the updated processed data set includes points b1, b2, and bs.
- At least one point, supposed to be gathered with a group of points is at a distance greater than the collection threshold Sr of the points belonging to the group of points. This can be due in particular to a cumulation of the drifts during the capture of the plane.
- FIG. 6 illustrates an optimized final plan corresponding to a third set of data as obtained (S13) at the output of an embodiment of the proposed method.
- the optimized final plan can notably find applications in augmented or virtual reality navigation. For example, such a plan can guide a user from one point to another by knowing the topology of a building.
- Another application can be found in home automation, in particular by placing virtual objects on optimized planes in order to give a user a general view of several connected objects belonging to the same network in order to operate them.
- the optimized plan makes it possible to position radio emission sources and to calculate the propagation of radio waves through a building whose plan is known.
- This plan can also allow an expert system to calculate, from the topology of the parts, the diffusion of the noise pollution, the conditions of illumination at each point of the plane, the circulation of the volumes of air or the planning of the regulating the temperature of a building.
- Datasets can potentially be used for many applications. Thus, a centralized storage of the data can be provided, in order to allow the exploitation and sharing with other applications.
- At least one database can be stored in remote computer servers, communicating via a network, typically the Internet.
- Fig. 7 shows a diagram illustrating an embodiment of the first data processing of the proposed method.
- This set of data of the first DATA (1) processing corresponds to a two-dimensional representation of a geographic area comprising at least two rooms, and can be generated by a plan data acquisition device of the type described above.
- DATA (1) each point represents a wall end, the walls being moreover defined by pairs of points described in the set of data, so that the input dataset does not require a description of the parts of the geographic area, and or more embodiments, data describing points and walls.
- the first process illustrated in FIG. 7 performs an iterative loop to process each point pe k of the set each iteration of the loop operating a processing of a point of the set.
- the loop traverses the set of points I n I e through a loop index k is incremented (106) in each loop iteration, k being initialized to the value 1 (101) and the loop ending (113) when k reaches the value "(104 ).
- the second loop traverses the set of walls ⁇ Wm I n I e through a loop index m which is incremented (112) each loop iteration, m being initialized to the value 1 (103) and the ending loop (105) for the wall W m when m reaches the value M.
- the processing for a point pe k and a wall W m comprises the determination of a projection of the point pe k orthogonally on the wall W m .
- this project exists only when it is located on the wall W m , that is to say when it is located between the two extreme points defining the wall in the wall. data set of the first treatment, which is not always the case.
- a projected point coordinate calculation routine (108), which will be called an intermediate point as above, denoted by Pi pe k , 1 ⁇ ), that in the case of FIG. where it is considered that this intermediate point exists, that is to say that it corresponds to the orthogonal intersection of the line segment corresponding to the wall W m with the half-line coming from the extreme point pe k .
- Calculating (108) of the projected point P pe k, m on the wall W can be preceded in one or more embodiments of a determination (107) that the point p £ k pe, are within the meaning described above, and to be performed only in the case where it is determined that the intermediate point p £ k , exists. In the opposite case, the loop iteration for the wall W m ends and the index m is incremented (112).
- a check (109) carrying or not one or more preconditions (cumulative or not) to create the intermediate point Pi .P e k > W m ⁇ ) in the processing data set (in the example shown in Fig. 7, DATA (1)) can be performed in one or more embodiments.
- this set of data representing a plan is not updated by adding the data relating to this intermediate point p i pe k, W m) .
- the loop iteration to the wall W m ends and the index m is incremented (112).
- the intermediate point p £ k pe, Wm) is created (110) in the entire processing data.
- the wall is further divided into two segments, a first segment of wall corresponding to the two ends that are the first end point of the wall and the intermediate point Vi (.V e k > Wm), and a second wall segment corresponding to the two ends that are the intermediate point Vi .V e k > ⁇ m) and I e second end point of the wall.
- each increment of the index m of loop on this list can be followed, in one or more embodiments, d a determination (114) that the next point in the list exists, i.e., it has not been previously replaced by an element representing an empty position in the list.
- the set of walls Vm Can be coded as a linked list of pointers.
- the updated list of walls described above, in which a segmented wall is replaced by two new walls in the wall list, is performed by removing the segmented wall from the linked list, which is done without creating empty position, but by stringing together the two elements of the list that were adjacent to the element to be deleted, and inserting the two walls created at the beginning of the list.
- the DATA (1) dataset is also updated, removing the segmented wall and inserting the two newly created walls.
- the use of a linked list advantageously makes it possible to avoid managing the index increment for an indexed list. It is not necessary to treat empty positions in the list, which are not generated in the linked list.
- a precondition for creating the intermediate point Vi .v e k > m) in the processing data set may include a test on the distances of I and 2 separating respectively the intermediate point of the end points of the wall W m .
- the intermediate point Vi e .V k> ⁇ m) and the end wall W m corresponding to the distance I or 2 determined lower than Sp are considered too close to each other, and the intermediate point Pi pe k , Wm) is not created in the processing data set.
- these prerequisites may be used individually, as an alternative to one another, or cumulatively. Further, it will be understood by those skilled in the art that other prerequisites for creating the intermediate point p t pe k in the processing data set, such as variations of the preconditions examples defined above, may be be used for the implementation of the proposed process, without limiting the scope thereof.
- Fig. 8a shows a diagram illustrating an embodiment of the second data processing of the proposed method.
- This set of data of the second processing DATA (2) corresponds to a two-dimensional representation of a geographic area comprising at least two rooms, and may be generated by a plan data acquisition device of the type described above.
- a plan data acquisition device of the type described above.
- this set of data of the second processing may correspond in whole or in part to the set of data generated at the output of the first processing according to its different embodiments described above.
- This set of data of the second processing may thus correspond, in whole or in part, to the data set of the first treatment in which one or more intermediate points have been added and one or more walls (respectively described in one or more embodiments by pairs of dots) could have been replaced by wall segments, viewed from the point of view of the data generated by the processing as new walls, as described in the exemplary embodiments above.
- This case has the advantage that, the second processing operating a grouping of points of a plane that are close to each other, the intermediate points that may have been created are taken into account for the operations of the second processing.
- the second processing illustrated in FIG. 8a performs an iterative loop to process each point of this set, each iteration of the loop operating a processing of a point of the set.
- the treatment of one point of the set may lead to the update of this set, by replacing one or more points by a point corresponding to the grouping of the points replaced between them or with other points of the set.
- the set can thus be updated during an iteration of the loop of the second processing, the following iterations then operating on the points of the updated set which have not yet been processed.
- the points of the data set of the second processing are thus scanned as updated as the second processing operations progress.
- the loop traverses the set of points f the core and measuring its updates through a loop index i is incremented (157) in each loop iteration, i being initialized (151) to the value 1 and the loop ending (153 ) when i reaches (152) the value / (updated as the different iterations of the loop).
- i initialized (151) to the value 1 and the loop ending (153 ) when i reaches (152) the value / (updated as the different iterations of the loop).
- a second processing loop is initiated on the set of distinct points in order to traverse this set, by means of the index j of loop which is incremented (159) at each loop iteration, j being initialized (155) to the value 1 corresponding to the first iteration of the loop, and the loop ending when j reaches (158) the value] (V).
- j the index of loop which is incremented
- j being initialized (155) to the value 1 corresponding to the first iteration of the loop, and the loop ending when j reaches (158) the value] (V).
- the two points are grouped together by the calculation (162) of a centroid B (pt_diffj (i), pti ) of these two points.
- the second data processing of the proposed method can operate on a set of points encoded as a linked list of pointers.
- the update of the list described above, in which the points pt_diffj (i) and pt t are replaced by their center of gravity B (pt_dif fj (i), ⁇ ⁇ ), can be performed by updating the objects on which the pointers of the points pt_diffj (i) and pt t point to.
- Fig. 8b shows a diagram illustrating another embodiment of the second data processing of the proposed method.
- FIG. 8b the elements identical to those illustrated in FIG. 8a and described above with reference to FIG. 8a bear the same references and will not be described again to avoid redundancies.
- the second processing illustrated in FIG. 8b differs from that explained above in connection with FIG. 8a, in particular in the operations performed during the iterations of the loop of the set of distinct points ⁇ t_dt ( ⁇ _ 1] ( ⁇
- Each iteration of this loop includes the determination and storage (160a) of a distance dj (pt_diffj (i), pti) between the distinct point pt_diffj (i) and the point pt ⁇ .
- a third data processing may possibly be implemented once the first and second treatments have been carried out.
- the purpose of the third data processing is to remove from the dataset representing a geographic area the duplicate walls, that is, the walls that are represented twice in this set, to list the walls of each piece in a unique way. For example, it is desirable that a wall shared by two rooms be listed only once in a data set including data representing a list of walls.
- a fourth data set DATA 4 (S21) of a two-dimensional representation of a geographical area is considered.
- This set of data of the third processing can comprise, according to the embodiment chosen, representation elements of the set of points type, each point representing a wall end, a wall being defined by its two extreme points, and of the wall type. each element possibly being associated, directly or indirectly in the data set, with a part identifier.
- the fourth set of data will correspond to the third set of data, itself having been generated by applying the first treatment to a first set of data. data set, and then applying the second processing to the second set of data generated by applying the first processing.
- a list of walls represented in the fourth set of data is established (S22), each wall being for example defined by two extreme points, and possibly associated with the identifier of the room to which it belongs. Once the list of walls is established, we compare the walls listed two by two to determine (S23) if two walls defined by two same extreme points are listed. In the case where two walls defined by two same extreme points are listed, one of the two walls is removed from the list (S24).
- the remaining wall is possibly associated with two part identifiers (the part identifier of the preserved wall and that of the adjacent part of the removed wall), and by two extreme points, which leads to a fifth data set (DATA 5). obtained by applying the third data processing.
- DATA 5 fifth data set
- the method loops to make a comparison of another pair of walls of the list.
- a fifth data set is thus obtained (S25). It includes, in one or more embodiments, only single walls associated with two part identifiers and two extreme points associated with a pair of coordinates.
- the fifth data set is possibly stored.
- the proposed method is not limited to a particular order of application of the three data processes described herein, it may be preferentially chosen to apply the second data processing following the first data processing, as illustrated. by Figure 1. Indeed, the partitioning of shared walls may result in an addition of points, which will advantageously possibly be processed by the second data processing. Likewise, it is preferable to perform the third data processing (which is optional) after the first and second data processing, since duplicate walls may be created during the first data processing phase. Of moreover, it may be considered of little use to delete the duplicate walls during the first and second data processing.
- the proposed method can be implemented by means of software and / or hardware components.
- module and “unit” may correspond in this document as well to a software component, to a hardware component or to a set of hardware and / or software components, capable of implementing a function or a set of functions, as described for the module or unit concerned.
- a software component corresponds to one or more computer programs executable by a processor, one or more subroutines of a program, or more generally to any element of a program or software.
- Such software component is stored in memory then loaded and executed by a data processor of a physical entity (media gateway, user equipment, terminal, etc.) and is able to access the hardware resources of this physical entity (memories, recording media, communication buses, I / O boards, user interfaces, etc.).
- a material component corresponds to any element of a material set (or hardware). It may be a hardware component that is programmable or has an integrated processor for executing software, for example an integrated circuit (such as an Application Specific Integrated Circuit (ASIC). , a system on chip (SOC), a smart card, an electronic card for executing a firmware, etc.
- ASIC Application Specific Integrated Circuit
- SOC system on chip
- SOCs are embedded systems that integrate all components of an electronic system into a single chip.
- An ASIC is a dedicated electronic circuit that brings together custom features for a given application. ASICs are usually configured during their manufacture and can only be simulated by the user.
- a data processing method as proposed can also use hybrid architectures, for example architectures based on a CPU + FPGA, a GPU (Graphics Processing Unit) or an MPPA (English). Multi- Purpose Processor Array ").
- the proposed method may furthermore be implemented in the form of a combination of software and hardware elements, such as for example a software program intended to be loaded and executed on a component of the programmable logic circuit type (FPGA). "Programmable Field Treats Array”). FPGAs are reconfigurable electronic circuits by the user.
- the proposed method can be implemented in the form of software developed in object-oriented programming language such as Csharp (or "C #") in the Unity development environment.
- Csharp or "C #”
- the Unity environment makes it possible to deploy the software for all applications implemented in this framework on multiple hardware and software platforms (PC-type computer, web browser with a specific "plugin", Android, iOS, etc.).
- Fig. 10 is a diagram illustrating a data processing device configured for implementing one or more embodiments of the proposed method.
- the data processing device DIS is an electronic device which comprises a controller CTRL, a memory unit MEM, an interface unit INTF, and a data processing unit PROC.
- the MEM memory unit, the INTF interface unit, and the PROC data processing unit are operably coupled to one another via the CTRL controller. .
- the memory unit MEM may comprise one or more memories, of read-only memory or ROM type (for "Read-Only Memory”) and RAM type (for "Random Access Memory”), including a read-only memory in which is stored a computer program executable by a processor CTRL controller of the electronic device DIS.
- the memory unit MEM is preferably chosen able to store first (DATA 1, DATA (1)), second (DATA 2, DATA (2)), third (DATA 3), fourth (DATA 4) and fifth (DATA 5) data sets, as well as intermediate data generated during the implementation of the proposed process treatments, such as the list of walls generated during the implementation of the third treatment described above, for example in a RAM memory.
- the MEM memory unit may furthermore be chosen able to store one or more correspondence tables between part identifiers and point coordinates belonging to these parts, as well as data representing pairs of walls for the purpose of determining whether these walls are shared, as described above.
- the memory unit (s) of the memory unit MEM contain computer program instructions which, when executed by the controller CTRL, cause the controller CTRL to perform or control the interface portions of the memory device.
- INTF input / output and PROC process data processing examples of the proposed method described herein.
- the INTF interface unit may be configured to receive sets of data to be processed, typically corresponding to two-dimensional representations of a geographic area comprising at least two rooms, also referred to herein as planes, acquired by an acquisition system. of data, to store them in memory MEM.
- the data processing unit PROC can be configured to perform the data processing for the implementation of the proposed method, and in particular the first, second and / or third data processing of the examples of implementation of the proposed method described. herein.
- the data processing unit PROC can be configured to generate a second set of data by a first data processing operating, on the data of a set of data of the first processing, a determination that two walls represented in the data set of the first processing are shared by two adjacent rooms, and a segmentation of at least one wall among the two shared walls, and generating a third set of data by a second operating data processing, on the data of one data set of the second processing, a collection of at least two points at a single point if the distance between the at least two points is less than a predetermined gathering threshold Sr, the data set of the first processing and the set data from the second processing correspond respectively to the first set of data and the second set of data, or to the third data set and the first set of data, the first set of data corresponding to a representation two-dimensional region of at least two rooms (Fl, F2, F3), the first set of data comprising a set of points respectively representing an intersection of two walls, and a set of walls respectively marked by two points representing the ends of the wall.
- the controller CTRL is configured to control the units of the electronic device DIS, and in particular the data processing unit PROC.
- the controller CTRL may comprise a component implementing one or more processors, and be controlled by an application or a computer program, configured to implement one or more embodiments of the proposed method.
- the code instructions of the computer program are for example loaded into a RAM memory MEM memory unit, before being executed by a processor controller CTRL.
- the interface unit INTF and / or the data processing unit PROC can be implemented in the form of software (computer program) which, when loaded into a memory of the memory unit MEM and executed by a processor of the electronic device DIS, implements the data processing according to the proposed method.
- the interface unit INTF and / or the data processing unit PROC can be implemented in software form, as described above, or in hardware form, such as an application specific integrated circuit or ASIC, or in the form of a combination of hardware and software elements, such as a software program intended to be loaded and executed on an FPGA type component.
- the architecture of the electronic device illustrated in FIG. 10 is however not limiting.
- the electronic device may be a computer (for example of the PC or laptop type) or a computer network, or another device comprising a processor operably coupled to a memory, and, depending on the embodiment chosen, other associated hardware elements such as a network interface and a media player for reading a removable storage medium and writing on such a medium (not shown in the figure), such as a smartphone or tablet.
- the removable storage medium may be, for example, a compact disc (CD), a digital video / versatile disc (DVD), a flash disk, a USB key, etc.
- CD compact disc
- DVD digital video / versatile disc
- flash disk a USB key
- certain acts, actions, events or functions of each of the methods described in this document may be performed or occur in a different order from that in which they were described, or may be added, merged or not to be performed or not to occur, as the case may be.
- certain acts, actions or events are performed or occur concurrently and not successively.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
Un procédé de traitement de données d'un premier ensemble de données correspondant à une représentation bidimensionnelle d'une zone géographique comprenant au moins deux pièces (F1, F2, F3) et un ensemble de murs respectivement repérés par deux points représentant les extrémités respectives du mur. Chaque pièce (F1, F2, F3) est décrite par un ensemble de points représentant respectivement une intersection de deux murs de la pièce (F1, F2, F3). Le procédé est mis en œuvre par des moyens informatiques et comprend : - générer un deuxième ensemble de données par un premier traitement de données opérant une segmentation d'au moins un mur parmi deux murs partagés par deux pièces (F1, F2, F3) adjacentes et de longueurs différentes; et - générer un troisième ensemble de données par un deuxième traitement de données dans lequel au moins deux points sont rassemblés en un unique point si la distance entre les deux points est inférieure à un seuil prédéterminé de rassemblement.
Description
Procédé de traitement de données d'une représentation bidimensionnelle d'une zone géographique L'invention concerne le domaine des procédés d'optimisation de représentations bidimensionnelles d'une zone géographique et les dispositifs mettant en œuvre de tels procédés.
La capture de plans de bâtiments peut par exemple être effectuée à l'aide de dispositifs de capture de type Google Tango™. Ces dispositifs permettent notamment de fournir le tracé des déplacements réalisés par l'utilisateur du dispositif lors de la capture des plans de bâtiments, en plus de mesurer des distances. Par triangulation, il est possible en visant un mur avec le dispositif, de connaître le plan vertical support de ce mur, puis de calculer les intersections entre chaque plan afin de définir les murs composant une pièce du bâtiment.
Le dispositif est pointé successivement sur chaque mur dans le sens des aiguilles d'une montre. Les plans verticaux auxquels appartiennent les murs sont stockés en mémoire. Une fois que l'ensemble des plans verticaux est stocké, les intersections entre les plans, donc entre les murs, sont calculés, afin d'obtenir des points définissant les angles de la pièce.
Cette opération est répétée dans chacune des pièces composant le bâtiment.
Toutefois, la méthode d'acquisition a un degré de précision limité et le plan obtenu peut ainsi comporter un certain nombre de défauts.
Par exemple, les points schématisant les intersections de deux mêmes murs vus à partir de deux pièces différentes adjacentes ne se superposent pas. De même, un mur partagé par deux pièces différentes apparaît sous la forme de deux murs différents qui ne se superposent pas.
Actuellement, les défauts sont corrigés à la main, ce qui est lent et coûteux. Le plan obtenu par le dispositif décrit plus haut n'est donc pas directement exploitable.
La présente invention vient améliorer la situation.
A cet effet, elle propose un procédé de traitement de données d'un premier ensemble de données, le premier ensemble de données correspondant à une représentation bidimensionnelle d'une zone géographique comprenant au moins deux pièces et un ensemble de murs respectivement repérés par deux points représentant les extrémités respectives du mur, , le premier ensemble de données comprenant un ensemble de points représentant respectivement une intersection de deux murs, le procédé étant mis en œuvre par des moyens informatiques et comprenant :
- générer un deuxième ensemble de données par un premier traitement de données opérant, sur les données d'un ensemble de données du premier traitement, une détermination que deux murs représentés dans l'ensemble de données du premier traitement sont partagés par deux pièces adjacentes, et une segmentation d'au moins un mur parmi les deux murs partagés ; et
- générer un troisième ensemble de données par un deuxième traitement de données opérant, sur les données d'un ensemble de données du deuxième traitement, un rassemblement d'au moins deux points en un unique point si la distance entre les au moins deux points est inférieure à un seuil de rassemblement Sr prédéterminé, dans lequel l'ensemble de données du premier traitement et l'ensemble de données du deuxième traitement correspondent respectivement au premier ensemble de données et au deuxième ensemble de données, ou au troisième ensemble de données et au premier ensemble de données.
Dans un ou plusieurs modes de réalisation, le premier traitement de données est appliqué aux données du premier ensemble de données, et le deuxième traitement de données est appliqué aux données du deuxième ensemble de données. Dans d'autres modes de réalisation, le premier traitement de données est appliqué aux données du troisième ensemble de données, et le deuxième traitement de données est appliqué aux données du premier ensemble de données. Le procédé proposé prévoit donc, en fonction du mode de réalisation, d'appliquer le premier traitement de données avant le deuxième traitement de données, et d'appliquer le deuxième traitement de données sur des données générées par le premier traitement de données ou, à l'inverse, d'appliquer le deuxième traitement de données avant le premier traitement de données, et d'appliquer le premier traitement de données sur des données générées par le deuxième traitement de données.
Le procédé proposé permet donc de remédier aux défauts des plans de manière à rendre le plan directement exploitable. Le procédé proposé permet également d'augmenter la vitesse de traitement, puisque les défauts sont corrigés directement, c'est-à-dire sans intervention humaine.
Dans un ou plusieurs modes de réalisation, la segmentation de l'au moins un mur comprend l'ajout d'au moins un point intermédiaire correspondant dans la zone géographique à un point situé entre les points correspondants aux extrémités respectives du mur.
Dans un ou plusieurs modes de réalisation, le point intermédiaire ajouté est la projection d'un point représentant une extrémité du mur non segmenté sur l'au moins un mur.
Dans un ou plusieurs modes de réalisation, la segmentation de l'au moins un mur est opérée si une distance entre le point projeté et la projection du point projeté sur l'au moins un mur est inférieure à un seuil de projection Sp prédéterminé.
Le procédé proposé permet avantageusement notamment de déterminer si deux murs représentés par des données dans le premier ensemble de données sont des murs partagés. Les points créés lors du premier traitement de données sont utiles à l'application du deuxième traitement de données qui permet de remédier aux défauts du plan, à savoir que les points schématisant les intersections de deux mêmes murs vus à partir de deux pièces différentes adjacentes ne se superposent pas, et qu'un mur partagé par deux pièces différentes apparaît sous la forme de deux murs différents qui ne se superposent pas. Aussi, dans un ou plusieurs modes de réalisation, le deuxième traitement de données est appliqué notamment à des données issues du premier traitement de données.
En fonction du mode de réalisation, le seuil de projection Sp pourra être choisi inférieur à 60 cm.
Dans un ou plusieurs modes de réalisation, la valeur du seuil de projection Sp pourra être déterminée ou choisie de manière à éviter de confondre des points définissant par exemple un retour de mur de petite dimension.
Dans un ou plusieurs modes de réalisation, le deuxième traitement de données comprend en outre le calcul d'un barycentre de points séparés par une distance inférieure au seuil de rassemblement Sr, les points séparés par une distance inférieure au seuil de rassemblement Sr étant rassemblés dans le troisième ensemble de données en leur barycentre calculé.
Le calcul du barycentre permet avantageusement de rassembler une pluralité de points en un seul, de manière à ce que les points qui ne se superposent pas soient rassemblés en un unique point : leur barycentre. L'utilisation du barycentre est particulièrement avantageuse car il est difficile de savoir sur quel(s) point(s) se situe un défaut. Le calcul du barycentre permet donc utilement de se rapprocher du plan réel.
Dans un ou plusieurs modes de réalisation, le deuxième traitement de données comprend le calcul du barycentre de deux points séparés par une distance inférieure au seuil de rassemblement Sr, au moins un des deux points pouvant être un barycentre calculé.
Grâce à ces dispositions, tout point de l'ensemble de données traité situé à une distance d'un autre point (point extrême, point intermédiaire ou barycentre calculé) inférieure au seuil de rassemblement Sr, est défini comme appartenant à un groupe de points devant être rassemblés. Ainsi, le deuxième traitement est appliqué à l'ensemble des points, y compris les barycentres calculés durant le deuxième traitement.
Dans un ou plusieurs modes de réalisation, le seuil de rassemblement Sr est choisi égal ou supérieur au seuil de projection Sp.
Ainsi, certains des points extrêmes et des points intermédiaires, situés à proximité les uns des autres, peuvent être rassemblés en un unique point à l'issu du deuxième traitement de données.
Dans un ou plusieurs modes de réalisation, le procédé proposé comprend un stockage du troisième ensemble de données dans une mémoire.
Dans un ou plusieurs modes de réalisation, le procédé proposé comprend un stockage dans une mémoire du premier ensemble de données, et le stockage dans la mémoire du troisième
ensemble de données, le troisième ensemble de données étant stocké en remplacement du premier ensemble de données. Le procédé proposé permet donc une optimisation concrète des données en sortie, puisque le stockage des données du troisième ensemble de données nécessite moins de place en mémoire que le stockage des données du premier ensemble de données, notamment en ce que les informations redondantes ont été éliminées. De plus, la précision des informations stockées relativement à la topologie des lieux est améliorée.
En fonction du mode de réalisation choisi, l'ensemble de données stocké en mémoire peut être utilisé dans l'une et/ou l'autre des applications suivantes :
- réalité augmentée,
- réalité virtuelle,
- Internet des objets,
- planification de propagation d'ondes radio,
- thermique du bâtiment.
Les données en sortie du procédé proposé sont donc potentiellement exploitables dans de nombreuses applications. L'exploitation des données par un utilisateur peut être immédiate, en ce sens que le procédé proposé peut être configuré, notamment par le biais d'un programme logiciel exécuté sur un ordinateur ou toute machine munie d'un processeur, pour appliquer les traitements de données décrits dans les présentes de manière directe, c'est-à- dire sans intervention de l'utilisateur ou en minimisant les interventions de l'utilisateur, sur le premier ensemble de données.
Dans un ou plusieurs modes de réalisation, le deuxième traitement des données est appliqué aux données du deuxième ensemble de données. Selon un deuxième aspect, il est proposé un dispositif électronique comprenant : un contrôleur comprenant un processeur, une unité d'interface, une mémoire, et une unité de traitement de données couplées de manière opérationnelle au contrôleur, et configurées pour la mise en œuvre d'un procédé de traitement de données proposé dans les présentes.
Un autre aspect concerne un programme d'ordinateur, chargeable dans une mémoire associée à un processeur, et comprenant des portions de code pour la mise en œuvre d'un procédé traitement de données proposé dans les présentes lors de l'exécution dudit programme par le processeur.
Un autre aspect concerne un ensemble de données représentant, par exemple par voie de compression ou d'encodage, un programme d'ordinateur tel que proposé.
Un autre aspect concerne un support de stockage non-transitoire d'un programme exécutable par ordinateur, comprenant un ensemble de données représentant un ou plusieurs programmes, lesdits un ou plusieurs programmes comprenant des instructions pour, lors de l'exécution desdits un ou plusieurs programmes par un ordinateur comprenant une unité de traitement comprenant un processeur couplée de manière opérationnelle à une mémoire et à un module d'interface entrées/sorties, conduire l'ordinateur à effectuer des traitements de données selon un procédé de traitement de données proposé dans les présentes.
Selon encore un autre aspect, un dispositif informatique est proposé, qui comprend :
- un circuit de traitement pour la mise en œuvre du procédé proposé,
- une interface d'entrée pour recevoir le premier ensemble de données,
- une interface de sortie pour délivrer le troisième ensemble de données.
D'autres avantages et caractéristiques de l'invention apparaîtront à la lecture de la description détaillée ci-après d'exemples de réalisation, et à l'examen des dessins annexés sur lesquels :
- La figure 1 est un diagramme illustrant le procédé proposé, et notamment les premier et deuxième traitements, selon un ou plusieurs modes de réalisation,
- La figure 2 est une vue schématique d'un plan d'un bâtiment de trois pièces obtenu par un dispositif de capture de plans de bâtiments,
- La figure 3 est une vue schématique du plan d'un bâtiment de trois pièces sur lequel apparaît la projection des points extrêmes des murs des pièces du bâtiment après mise en œuvre d'un premier traitement selon un ou plusieurs modes de réalisation du procédé proposé,
- La figure 4 est une vue agrandie de la zone d'intersection des trois pièces,
- La figure 5 est une vue agrandie de la zone d'intersection des trois pièces après la mise en œuvre d'un deuxième traitement selon un ou plusieurs modes de réalisation du procédé proposé,
- La figure 6 est une vue schématique du plan d'un bâtiment de trois pièces après la mise en œuvre du procédé proposé selon un ou plusieurs modes de réalisation,
- La figure 7 est un diagramme illustrant un premier traitement selon un ou plusieurs modes de réalisation du procédé proposé,
- Les figures 8a et 8b sont des diagrammes illustrant des modes de réalisation d'un deuxième traitement selon un ou plusieurs modes de réalisation du procédé proposé,
- La figure 9 est un diagramme illustrant un troisième traitement de données du procédé proposé dans un ou plusieurs modes de réalisation, et
- La figure 10 est un diagramme illustrant un dispositif configuré pour la mise en oeuvre du procédé proposé dans un ou plusieurs modes de réalisation.
En référence à la figure 1, un premier ensemble de données (DATA 1) correspondant à une représentation bidimensionnelle d'une zone géographique, par exemple un bâtiment, comprenant au moins deux pièces, est fourni (SI) en entrée du procédé proposé. En fonction du mode de réalisation, une « zone géographique » peut être une zone spatiale qui correspond à un environnement particulier comme une maison, un immeuble, ou n'importe quel autre type de bâtiment.
La représentation bidimensionnelle (à laquelle il peut aussi être fait référence sous le terme « plan » dans les présentes) d'une zone géographique peut être obtenue par tout dispositif d'acquisition ou de capture de données configuré pour générer un ensemble de données utilisable en entrée du procédé proposé, tel que, par exemple le dispositif Google Tango™, ou tout autre dispositif présentant des fonctionnalités équivalentes ou similaires pour ce qui est de l'acquisition et/ou de la capture de données de représentation bidimensionnelle d'une zone géographique quelconque.
Lors de la capture/acquisition du plan par un tel dispositif, des données représentant des plans verticaux des murs peuvent être acquises ou générées.
Dans l'exemple non limitatif que constitue le plan de la figure 2, la zone géographique bidimensionnelle correspond à un appartement comprenant trois pièces, respectivement dénotées sur la figure 2 Fl, F2, F3 respectivement de gauche à droite et de haut en bas.
Le plan fournit une représentation de la zone géographique et peut comprendre, dans un ou plusieurs modes de réalisation, des éléments de représentation des types suivants :
- identifiant de pièce (Fl, F2, F3 dans l'exemple du plan de la figure 2);
- ensemble de points représentant les coins d'une pièce mesurée, chaque point étant associé à un couple de coordonnées planaires (cartésiennes ou polaires par exemple) et éventuellement à un identifiant de pièce, directement ou indirectement (chaque point pourra être directement associé à un identifiant de pièce, ou en variante indirectement associé à un identifiant de pièce par le biais d'une association entre l'ensemble de point auquel il appartient et un identifiant de pièce).
L'ensemble de données représentant la zone géographique comprendra typiquement un ou plusieurs identifiants de pièces, et un ensemble de points pour chaque pièce identifiée dans l'ensemble de données.
Dans un ou plusieurs modes de réalisation, les murs pourront être repérés par deux points correspondant respectivement à leurs extrémités, auxquels il sera fait référence dans la suite sous l'appellation de « point extrême ». L'ensemble de données représentant la zone géographique pourra ainsi comprendre, en variante, un ensemble de points et un ensemble de murs, chaque mur correspondant à deux points de l'ensemble de points.
La mise en œuvre du procédé proposé n'utilise dans un ou plusieurs modes de réalisation avantageusement que les données décrites ci-dessus (identifiant(s) de pièce et ensemble(s) de points ou, en fonction du mode de réalisation, ensembles de points et de murs), qui pourront ainsi être considérées comme suffisantes pour représenter la zone géographique bidimensionnelle aux fins de mettre en œuvre le procédé proposé de traitement de données représentant une zone géographique bidimensionnelle, ce qui permet notamment d'éviter le stockage et le traitement d'autres données représentant la zone géographique bidimensionnelle.
En particulier, dans un ou plusieurs modes de réalisation, le procédé proposé pourra être mis en œuvre à partir d'un ensemble de données comprenant des données représentant des points, et des données représentant des murs, sans que l'ensemble de données comprenne des données relatives aux pièces, ni a fortiori que les données de l'ensemble soient associées, directement ou indirectement, à des données représentant ou identifiant des pièces. Les données représentant les murs pourront avantageusement comprendre des couples de points extrêmes, l'ensemble de données utilisé pour la mise en œuvre du procédé proposé comprenant alors des données représentant des points extrêmes, et des données représentant des couples de points extrêmes correspondants respectivement à des murs.
Dans la zone géographique modélisée, deux pièces peuvent avoir deux murs partagés, en tout ou partie. Par « mur partagé », on entend, dans la zone géographique, un mur commun, en tout ou partie, à deux pièces de la zone. Le procédé proposé comprend avantageusement une détermination que deux murs représentés dans les données à traiter sont en réalité, c'est- à-dire dans la zone géographique, deux murs partagés. Dans un ou plusieurs modes de réalisation, le procédé proposé permet en outre d'identifier une partie de mur qui n'est partagé qu'en partie avec un mur d'une pièce adjacente (appelé « mur de partage »), en opérant une segmentation du mur partagé en partie en deux parties de murs, dont l'une est substantiellement totalement partagée avec le mur de partage, et l'autre n'est pas partagée avec le mur de partage. Ainsi, lorsque les murs partagés ne le sont que partiellement, c'est- à-dire que sur une partie de la longueur de l'un d'entre eux ou des deux, la segmentation d'un des deux murs permet de créer un point qui correspond à l'extrémité de partage (avec l'autre mur) sur le mur segmenté, et ce indépendamment de la longueur de chaque mur (et en particulier indépendamment du fait que les deux murs partagés soient ou non de longueurs différentes). Le procédé proposé permet ainsi avantageusement de générer, dans un ensemble de données correspondant à une représentation bidimensionnelle de la zone géographique, au sein d'un mur, des points d'extrémité de partage avec d'autres murs représentés dans l'ensemble de données qui permettent de représenter dans l'ensemble de données généré les délimitations des zones ou portions de partage avec d'autres murs. Par exemple, lorsqu'un mur est en partie partagé avec des murs de partage de trois pièces contigues, le procédé proposé permettra de segmenter le mur en trois murs correspondants respectivement aux parties de mur partagées avec chacun des trois murs de partage, et ainsi d'identifier les trois segments de mur respectivement partagés avec trois pièces adjacentes différentes.
Les pièces de la zone géographique peuvent également présenter un ou des points extrêmes partagés, notamment lorsque deux pièces adjacentes comprennent un mur partagé entre elles.
Toutefois, les murs partagés de deux pièces peuvent ne pas être correctement représentés sur le plan initial. Plus particulièrement, deux murs partagés, qui devraient être représentés sous la forme d'un seul mur commun aux deux pièces, peuvent l'être sur le plan initial (généré par le dispositif de capture de plan ou d'acquisition de données) par deux murs distincts ou en tout ou partie dissociés l'un de l'autre. Autrement dit, l'information de partage d'un mur entre deux pièces peut ne pas être capturée ou présenter des erreurs, dans la représentation initiale générée par le dispositif de capture de plan ou d'acquisition de données utilisé. Cela est dû au fait que les points extrêmes partagés de deux pièces peuvent ne pas être correctement représentés sur le plan initial. Par exemple, deux points extrêmes qui sont en réalité partagés peuvent être représentés sur le plan initial comme étant dissociés l'un de l'autre, alors que ces deux points extrêmes partagés devraient être représentés sous la forme d'un seul point extrême commun aux deux pièces. Cela peut être dû à l'épaisseur des murs réels, alors que les murs sont représentés par une ligne sur le plan. Cela peut également être dû aux erreurs de mesure lors de la capture du plan.
Les données représentant le plan illustré sur la figure 2, à savoir les identifiants des pièces (Fl, F2, F3) et les points associés à leurs coordonnées respectives, constituent un premier ensemble de données (DATA 1) auquel le procédé de traitement de données proposé peut comme discuté ci-dessus être appliqué. Ainsi, à partir du plan initial non satisfaisant de la figure 2, un plan amélioré peut être généré par application du procédé proposé à certaines données du plan initial. Le plan amélioré ainsi généré a l'avantage d'être directement exploitable dans de nombreux champs d'application, comme discuté ci-dessous.
Dans un ou plusieurs modes de réalisation, on peut distinguer pour la mise en œuvre du procédé proposé de traitement de données deux traitements de données décrits ci-après dans différents modes de réalisation.
Le premier traitement de données (références S2 à S5 sur la figure 1) peut, dans un ou plusieurs modes de réalisation, être appliqué sur le premier ensemble de données (DATA 1), qui comme discuté ci-dessus comprend des données représentant des points représentant chaque pièce de la zone géographique traitée. Comme indiqué ci-dessus, un nombre limité de points, par exemple correspondant à des points extrêmes de murs, peut suffire pour représenter une pièce de la zone géographique traitée pour les besoins de la mise en œuvre du procédé proposé, et en particulier de la mise en œuvre du premier traitement de données. Ce premier traitement de données opère une segmentation d'au moins un mur parmi deux murs partagés par deux pièces adjacentes, les deux murs partagés étant dans l'exemple non limitatif illustré sur la figure 2 de longueurs différentes.
Comme discuté ci-dessus, les données (DATA 1) représentant le plan peuvent comprendre, dans un ou plusieurs modes de réalisation, un ensemble de points représentant les coins de pièces (ou, de manière équivalente, représentant des intersections de deux murs successifs d'une même pièce), ainsi que les coordonnées respectives de ces points, et la pièce à laquelle ils appartiennent. Aussi, afin de segmenter un mur en plusieurs parties, le procédé proposé peut prévoir dans le cadre de ce premier traitement d'ajouter au moins un point intermédiaire au niveau du mur à segmenter pour créer deux murs alignés, le point intermédiaire ajouté devenant un point extrême d'au moins un des deux murs créés dans le mur segmenté.
Dans un ou plusieurs modes de réalisation, on peut prévoir de déterminer si deux murs sont des murs partagés (par deux pièces adjacentes) préalablement à la segmentation d'au moins un des deux murs.
Dans un ou plusieurs modes de réalisation, le premier traitement de données peut comprendre de réaliser (S2) une projection de chaque point du plan (soit de chaque point de l'ensemble de données correspondant à la représentation bidimensionnelle de la zone géographique traitée) sur tous les murs auxquels le point traité n'appartient pas. Comme indiqué précédemment, on peut utiliser un mode de représentation des éléments de la zone géographique dans lequel les murs sont représentés par leurs deux points extrêmes. Dans ce cas de figure, le premier traitement de données peut comprendre la définition pour chaque couple de points extrêmes d'un mur d'une droite passant par les deux points extrêmes, puis
des projections de chaque point de l'ensemble de données traité sur toutes les droites définies auxquelles le point projeté n'appartient pas. Il peut être ensuite déterminé si la projection du point se situe bien entre les deux points extrêmes compris sur la droite sur laquelle se fait la projection. En effet, la projection est effectuée sur le segment de droite compris entre deux points extrêmes, le segment de droite compris entre ces deux points définissant un mur.
Dans un autre mode de réalisation, le procédé proposé peut prévoir, au lieu de projeter un point sur toutes les droites définies, de ne projeter un point d'une pièce donnée que sur les droites des murs des pièces adjacentes à la pièce donnée. Il est ainsi possible, en fonction du mode de réalisation choisi, de réduire la complexité du premier traitement.
Dans la suite de la description, on se réfère indifféremment à des murs ou à des segments de droites compris entre deux points extrêmes correspondants.
La projection d'un point extrême sur un mur est en outre appelée « point intermédiaire » dans la suite de la description. Dans un ou plusieurs modes de réalisation, le procédé proposé prévoit de déterminer si deux murs, représentés dans les données traitées, sont des murs partagés. L'homme du métier comprendra que cette détermination pourra être effectuée pour tout ensemble de deux murs distincts (par exemple parce que deux au moins parmi leurs points extrêmes respectifs sont distincts) représentés dans l'ensemble de données traité, par exemple à l'aide d'une boucle logicielle opérant sur tout ou partie des murs représentés dans l'ensemble de données traité.
En référence à la figure 1, cette détermination comprend la détermination (S3) d'une distance d entre le point projeté et le point intermédiaire issu de sa projection. Lorsque la distance d entre ces deux points est inférieure à un seuil de projection Sp prédéterminé, les deux murs sont déterminés comme étant partagés. Si la distance entre le point extrême projeté et le point intermédiaire issu de sa projection n'est pas inférieure au seuil de projection Sp prédéterminé, le procédé peut reboucler sur l'opération de projection (S2) appliquée, pour le point projeté à un autre mur auquel il n'appartient pas, puis à un autre point lorsque toutes les projections d'un point projeté prévues par le premier traitement ont été effectué.
Lorsqu'il est déterminé que les deux murs sont des murs partagés, une segmentation d'un des deux murs est effectuée (S4), comme décrit ci-dessus.
Dans un ou plusieurs modes de réalisation, il peut être prévu, préalablement à la projection (S2), de rassembler en un unique point les points séparés par une distance inférieure à un seuil d'évidence. Cette opération permet avantageusement de diminuer le nombre de traitements appliqués lors de la mise en œuvre du procédé proposé.
Le seuil d'évidence peut être choisi très bas, par exemple égal ou inférieur à 20 cm. Ainsi, d'éventuelles erreurs de regroupement peuvent être évitées.
En référence aux figures 3 et 4, on note (pel, pe7), (pe2, pe3, pe4), et (pe5, pe7) les points extrêmes respectifs des murs des pièces Fl, F2 et F3 se trouvant dans une zone (notée IV sur la Figure 3) définie pour les seuls besoins d'illustration de l'exemple montré sur ces figures.
Chaque point extrême pe est projeté orthogonalement sur les murs auxquels ils n'appartiennent pas, tel que décrit en référence à la figure 1 (S2). En variante, cette opération peut être limitée à un sous-ensemble de points extrêmes, tel que par exemple ceux situés dans la zone IV, comme illustré sur la Figure 3.
Dans un ou plusieurs modes de réalisation, on détermine si, après avoir réalisé la projection d'un point extrême pe sur un mur, le point intermédiaire p; ainsi créé (correspondant au projeté du point extrême pe sur le mur) existe déjà dans le premier ensemble de données (DATA 1), par exemple en tant que point extrême définissant un mur dans le premier ensemble de données. Dans la situation où il est déterminé que le point intermédiaire pi ainsi créé existe déjà dans le premier ensemble de données (DATA 1), le point intermédiaire p; peut ne pas être conservé. Ce cas de figure est illustré sur les figures 3 et 4, où la projection des points extrêmes pel et pe2 ne mène pas à la création d'un point intermédiaire p;.
En référence aux Figures 1 et 3, la projection du point extrême pe3 de la pièce F2, qui mène à la création du point intermédiaire p;l sur le mur de la pièce Fl, est effectuée. La distance
dl entre le point extrême pe3 et le point intermédiaire p;l est calculée (référence S3 sur la Figure 1) afin de déterminer si cette distance dl est inférieure au seuil de projection Sp. Dans cet exemple, la distance dl est inférieure au seuil de projection Sp. Le point intermédiaire il est alors créé (référence S4 sur la Figure 1), et il est déterminé que le mur de la pièce Fl défini par les points extrêmes pel et pe7 et le mur de la pièce F2 défini par les points extrêmes pe2 et pe3 sont deux murs partagés par les pièces Fl et F2. Le mur de la pièce Fl est alors segmenté en une première partie, définie par le point extrême pel et le point intermédiaire p;l, et en une deuxième partie, définie par le point intermédiaire Pil et le point extrême pe7.
De la même manière, le point extrême pe5 de la pièce F3 est projeté sur les murs des pièces adjacentes Fl et F2. Les points intermédiaires p;2 et p;3 sont respectivement créés sur les murs des pièces F2 et Fl, à partir de la projection du point extrême pe5.
La distance d2 entre le point extrême pe5 et le point intermédiaire p;2 est déterminée (référence S3 sur la Fig. 1) inférieure au seuil de projection Sp, de sorte que le point intermédiaire p;2 est à son tour créé entre les points extrêmes pe3 et pe4 de la pièce F2. De la même façon on détermine que le mur de la pièce F3 défini par les points extrêmes pe5 et pe6, est partagé avec le mur de la pièce F2 défini par les points extrêmes pe3 et pe4. Le mur de la pièce F3 défini par les points extrêmes pe5 et pe6 est morcelé en une première partie, définie par le point extrême pe5 et le point intermédiaire p;4, et une deuxième partie, définie entre le point intermédiaire p;4 et le point extrême pe6.
Sur la Figure 3, la distance d3 entre le point extrême pe5 et le point intermédiaire p;3 est également déterminée inférieure au seuil de projection Sp. Le point intermédiaire p;3 est lui aussi créé. Il est déterminé que le mur de la pièce Fl est partagé avec le mur de la pièce F3 défini par les points extrêmes pe5 et pe7. Le mur de la pièce Fl défini par les points extrêmes pel et pe7 est alors segmenté pour définir une nouvelle partie, soit un nouveau mur, défini par le point extrême pe7 et le point intermédiaire i3. Dans le cas où la mise en œuvre du premier traitement opère une première segmentation du mur défini par les points extrêmes pel et pe7, ce mur peut être remplacé dans l'ensemble de données traité dans un ou plusieurs modes de réalisation par les deux nouveaux murs définis par les points d'extrémité
pel et pil pour l'un, et p et pe7 pour l'autre. Le point intermédiaire pi3 résultant de la projection du point extrême pe5 sur la droite du mur initial défini par les points extrêmes pel et pe7 est dans ce cas obtenu par projection du point extrême pe5 sur la droite correspondant au nouveau mur défini par les extrémités pil et pe7. C'est ce nouveau mur qui est segmenté en deux nouveaux murs, définis respectivement par les extrémités il et ρ;3, et i3 et pe7, ce qui conduit à une segmentation du mur initial défini par les points extrêmes pel et pe7 en trois murs, définis respectivement par les extrémités (pel ; , 1), (p;l ; p;3), et (p;3 ; pe7). Le point extrême pe7 étant déterminé commun aux pièces Fl et F3 dans l'exemple illustré, il peut ne pas être projeté sur un mur, au contraire des points extrêmes pe3, pe4 et pe5 comme décrit ci-dessus.
Dans un ou plusieurs modes de réalisation, le seuil de projection Sp peut être déterminé au moment de la capture du plan. En effet, en fonction du dispositif de capture utilisé ou encore des conditions de capture (luminosité, mouvement du manipulateur du dispositif de capture du plan, etc.), une dérive du dispositif peut être mesurée. Plus précisément, le plan obtenu à partir d'une capture particulière présente des défauts pouvant être quantifiés à partir de la dérive observée lors de la capture. La dérive observée peut être mesurée par une distance, correspondant par exemple à une distance maximale entre des points extrêmes partagés de deux pièces différentes, ou encore une distance maximale entre des murs partagés de deux pièces différentes.
Dans un ou plusieurs modes de réalisation, on peut choisir de définir le seuil de projection Sp de manière à atténuer cette dérive. Le seuil de projection Sp est par exemple déterminé antérieurement à la mise en œuvre du traitement de données sur un plan.
Dans un ou plusieurs modes de réalisation, le seuil de projection Sp peut préférentiellement varier entre 40 et 60cm. Le seuil de projection Sp peut également, en variante ou en complément, être choisi de manière à ne pas confondre des points extrêmes partagés de deux pièces différentes avec des points extrêmes compris sur un même mur et définissant par exemple un décrochage dans un mur se traduisant par une portion de mur très courte.
Un deuxième ensemble de données (DATA 2) est ainsi obtenu (S5) suite aux traitements (S2 - S4) effectués sur le premier ensemble de données (DATA 1) dont des exemples de
mise en œuvre sont décrits ci-dessus. Dans un ou plusieurs modes de réalisation, le deuxième ensemble de données (DATA 2) comprend le premier ensemble de données (DATA 1), ainsi que les points intermédiaires et leurs coordonnées respectives, créés à l'issue de la mise en oeuvre du premier traitement de données sur le premier ensemble de données (DATA 1).
Dans un ou plusieurs modes de réalisation, le deuxième traitement de données peut comprendre le regroupement de plusieurs points en un point unique si la distance l entre ces points est inférieure à un seuil de rassemblement Sr prédéterminé. Une boucle de traitement dont une itération opère une mise en œuvre du deuxième traitement de données sur un point de l'ensemble de données traité (par exemple le deuxième ensemble de données (DATA 2)) peut ainsi être mise en œuvre dans un ou plusieurs modes de réalisation du procédé proposé, ce qui présente l'avantage de parcourir les points de l'ensemble de données traité pour éventuellement les regrouper avec d'autres points de cet ensemble dont ils sont proches.
En référence à la figure 1, une distance l entre un premier point de l'ensemble de données traité et un autre point, distinct du premier point, est calculée (S6). Lorsque la distance l entre deux points est inférieure au seuil de rassemblement Sr, le barycentre b de ces deux points est calculé (S7). Les deux points sont ensuite remplacés (S8) dans l'ensemble de données traité par leur barycentre dont les coordonnées ont été calculées. Lorsque la distance l entre deux points n'est pas inférieure au seuil de rassemblement Sr, le procédé effectue un nouveau calcul de distance 1 avec un autre point choisi à nouveau distinct du premier point.
Dans un ou plusieurs modes de réalisation, le deuxième traitement de données peut être configuré pour comprendre, lorsqu'un barycentre b de deux points est calculé (S7) et vient remplacer les deux points (S8) dans l'ensemble de données traité (dans l'exemple de la Figure 1, DATA 2), une détermination (S9) de la distance (Ib) entre le barycentre b et un autre point de l'ensemble de données traité, distinct du barycentre, et une comparaison de la distance Ib avec le seuil de rassemblement Sr. Les opérations S7 et S8 sont ensuite répétées (comparaison avec le seuil de rassemblement Sr et éventuel calcul d'un nouveau barycentre), jusqu'à ce que le dernier barycentre calculé soit à une distance (Ib) de tout autre
point de l'ensemble de données traité qui ne soit pas inférieure au seuil de rassemblement (Sr). L'utilisation du barycentre est particulièrement avantageuse car il est difficile de savoir avec certitude sur quel point se trouve une erreur. Le calcul du barycentre permet de réaliser une moyenne, et donc de se rapprocher le plus possible du plan réel.
Si un point est à une distance supérieure au seuil de rassemblement de tout autre point du plan, il peut être déterminé, dans un ou plusieurs modes de réalisation, que le point est son propre barycentre.
Le seuil de rassemblement Sr sera de préférence choisi supérieur ou égal au seuil de projection Sp, de sorte que les points projetés et les points issus de la projection de ces points puissent être rassemblés en un unique point à l'issue du deuxième traitement de données dans les modes de réalisation où le deuxième traitement de données est effectué à la suite du premier traitement de données.
Dans un ou plusieurs modes de réalisation, le traitement d'un point de l'ensemble de données traité avec les opérations du deuxième traitement de données décrites ci-dessus peut se poursuivre de manière itérative en parcourant les points de l'ensemble de données traité, y compris dans ses mises à jour lors des opérations du deuxième traitement, notamment en traitant les points correspondants à un barycentre calculé pour deux points traités, jusqu'à ce que l'on ait parcouru l'ensemble des points de l'ensemble mis à jour au fur et à mesure, sans avoir effectué de regroupement, auquel cas la boucle de traitement est considérée terminée (S 10). Dans le cas contraire (S 10), le traitement reboucle pour être appliqué sur un autre point de l'ensemble de données traité, éventuellement mis à jour lors des précédentes itérations de la boucle de traitement. En référence à la figure 1, un troisième ensemble de données (DATA 3) est ainsi généré (SU), suite aux opérations de regroupements de points décrites ci-dessus. Dans un ou plusieurs modes de réalisation, le troisième ensemble de données (DATA 3) comprend les barycentres calculés et leurs coordonnées associées, ainsi que les identifiants des pièces.
Dans un ou plusieurs modes de réalisation, le troisième ensemble de données (DATA 3) est stocké en mémoire (S 12) d'un dispositif de mise en œuvre du procédé proposé. Si le premier ensemble de données (DATA 1) et/ou le deuxième ensemble de données (DATA 2) ont aussi été stocké en mémoire, le troisième ensemble de données (DATA 3) peut être stocké (S 12) en remplacement du premier et/ou du deuxième ensemble de données (DATA 1, DATA 2), de sorte à ne générer qu'un ensemble de données (DATA 3) stocké en mémoire en sortie du procédé proposé (S 13). Les figures 5 et 6 illustrent un exemple de mise en œuvre du deuxième traitement.
Sur l'exemple de la Figure 5, l'ensemble de données traité lors de la première itération de la boucle du deuxième traitement de données comprend les points pel, pe2, pe3, pe4, pe5, p ,
La distance 11 entre les points extrêmes pel et pe2 est déterminée comme inférieure au seuil de rassemblement Sr (référence S6 sur la Figure 1). Leur barycentre bl est calculé (référence S7 sur la Figure 1), puis les points extrêmes pel et pe2 sont rassemblés en leur barycentre bl (S8). Les distances respectives lb;, i=l - 7 entre le barycentre bl et tous les autres points du plan (sur la Figure 5, pe3, pe4, pe5, p , p;2, p;3 et p;4) étant ensuite déterminées comme n'étant pas inférieures au seuil de rassemblement Sr (S9) aucun autre barycentre n'est calculé et l'itération de traitement du point extrême pel se termine. Sur l'exemple de la Figure 5, l'ensemble de données traité mis à jour comprend les points bl, pe3, pe4, pe5, pil, pi2, p,3 et pi4.
Puis, le deuxième traitement de données est par exemple appliqué dans le cadre d'une nouvelle itération de boucle au point extrême pe4. La distance 12 entre le point extrême pe4 et le point intermédiaire associé p;4 est déterminée comme inférieure au seuil de rassemblement Sr (référence S6 sur la Figure 1). Le barycentre b2 des points pe4 et p;4 est calculé (référence S7 sur la Figure 1), puis les points pe4 et p;4 sont rassemblés en leur barycentre b2 en remplaçant dans l'ensemble de données ces deux points par leur barycentre (référence S 8 sur la Figure 1). Les distances respectives entre le barycentre b2 et tous les autres points de l'ensemble de données mis à jour (sur la Figure 5, bl, pe3, pe5, pil, pi2 et pi3) étant déterminées comme n'étant pas inférieures au seuil de rassemblement Sr (S9), aucun autre barycentre n'est calculé et l'itération de traitement du point extrême pe4 se
termine. Sur l'exemple de la Figure 5, l'ensemble de données traité mis à jour comprend les points bl, bl, pe3, pe5, p;l, p;2 et p;3. Une nouvelle itération de la boucle du deuxième traitement de données est ensuite effectuée pour le traitement du point extrême pe3. La distance entre le point extrême pe3 et le point intermédiaire p;2 est déterminée comme inférieure au seuil de rassemblement Sr (référence S6 sur la Figure 1). Leur barycentre b3 (non représenté sur la Figure 5) est calculé (référence S6 sur la Figure 1), puis les points pe3 et p;2 sont rassemblés en leur barycentre b3 en remplaçant dans l'ensemble de données ces deux points par leur barycentre (référence S 8 sur la Figure 1).
Lors d'une itération ultérieure, le barycentre b3 étant déterminé (référence S9 sur la Figure 1) à une distance du point pe5 inférieure au seuil de rassemblement Sr, le barycentre b4 entre les points b3 et pe5 est calculé (référence S7 sur la Figure 1), puis les points pe5 et b3 sont rassemblés en leur barycentre b4 en remplaçant dans l'ensemble de données ces deux points par leur barycentre (référence S8 sur la Figure 1). Ces opérations sont répétées jusqu'à ce que tous les points soient regroupés lorsque cela est possible, c'est-à-dire lorsque ils sont séparés d'une distance inférieure au seuil de rassemblement Sr.
Dans l'exemple illustré sur la Figure 5, les points p;l, p;2, p;3, pe3 et pe5 sont regroupés en un même barycentre bS. Par souci de clarté, les distances 1 entre ces points et les barycentres intermédiaires b3 et b4 ne sont pas représentées. L'itération de traitement du point extrême pe3 se termine, et l'ensemble de données traité mis à jour comprend les points bl, b2, et bS.
Dans certains cas particuliers, il peut arriver qu'au moins un point, censé être rassemblé avec un groupe de points, se trouve à une distance supérieure au seuil de rassemblement Sr des points appartenant au groupe de points. Cela peut notamment être dû à une cumulation des dérives lors de la capture du plan.
Il peut alors être prévu, dans un ou plusieurs modes de réalisation, de sélectionner manuellement les points les plus éloignés pour les intégrer au calcul du barycentre du groupe de points.
Le troisième ensemble de données (DATA 3) contenant les barycentres calculés est ensuite stocké en remplacement du deuxième ensemble de données (DATA 2). Le procédé proposé permet donc une optimisation concrète des données en sortie puisque la taille en mémoire nécessaire au stockage du troisième ensemble de données (DATA 3) est moins importante que celle nécessaire au stockage du premier ensemble de données (DATA 1). La figure 6 illustre un plan final optimisé correspondant à un troisième ensemble de données tel qu'obtenu (S13) en sortie d'un mode de réalisation du procédé proposé.
Le plan final optimisé peut notamment trouver des applications dans la navigation en réalité augmentée ou virtuelle. Par exemple, un tel plan peut permettre de guider un utilisateur d'un point à un autre au moyen de la connaissance de la topologie d'un bâtiment.
Une autre application peut se trouver dans la domotique, notamment en plaçant des objets virtuels sur des plans optimisés afin de donner à un utilisateur une vision générale de plusieurs objets connectés appartenant à un même réseau afin d'en assurer l'exploitation.
Cela peut également servir dans la planification de propagation d'ondes radio. Le plan optimisé permet de positionner des sources d'émission radio et de calculer la propagation des ondes radio à travers un bâtiment dont le plan est connu. Ce plan peut également permettre à un système expert de calculer, à partir de la topologie des pièces, la diffusion de la pollution sonore, les conditions d'éclairement en chaque point du plan, la circulation des volumes d'air ou la planification de la régulation de la température d'un bâtiment. Les ensembles de données peuvent potentiellement être utilisés pour de nombreuses applications. Ainsi, un stockage centralisé des données peut être prévu, afin d'en permettre l'exploitation et le partage avec d'autres applications.
Par exemple, au moins une base de données peut être stockée dans des serveurs informatiques distants, communiquant par l'intermédiaire d'un réseau, typiquement internet.
La figure 7 montre un diagramme illustrant un mode de réalisation du premier traitement de données du procédé proposé.
On suppose que l'on dispose en entrée de ce premier traitement de données un ensemble de données (DATA(l)) comprenant un ensemble de points et un ensemble de couples de points définissant respectivement des murs. Cet ensemble de données du premier traitement DATA(l) correspond à une représentation bidimensionnelle d'une zone géographique comprenant au moins deux pièces, et peut être généré par un dispositif d'acquisition de données de plan du type décrit plus haut. L'homme du métier comprendra qu'il peut être considéré que dans cet ensemble de données du premier traitement DATA(l) chaque point représente une extrémité de mur, les murs étant par ailleurs définis par des couples de points décrits dans l'ensemble de données, de sorte qu'il n'est pas requis, pour les besoins du premier traitement de données, que l'ensemble de données en entrée comprenne une description des pièces de la zone géographique, et qu'on pourra se limiter, dans un ou plusieurs modes de réalisation, à des données décrivant des points et des murs.
On considère (100) donc un ensemble de K points d'extrémité de mur {pek}k=1 K compris dans l'ensemble de données du premier traitement DATA(l). Le premier traitement illustré sur la figure 7 effectue une boucle itérative pour traiter chaque point pek de l'ensemble
chaque itération de la boucle opérant un traitement d'un point de l'ensemble.
On parcourt ainsi l'ensemble des points contenus dans l'ensemble de données du premier traitement. Dans l'exemple illustré sur la figure 7, la boucle parcourt l'ensemble de points
Par Ie biais d'un indice k de boucle qui est incrémenté (106) à chaque itération de boucle, k étant initialisé à la valeur 1 (101) et la boucle se terminant (113) lorsque k atteint la valeur " (104).
Pour chaque point pek, une liste de murs {Wm(pek)}m=1 M est tout d'abord établie (102), qui contient l'ensemble des murs décrits dans l'ensemble de données du premier traitement DATA(l) auxquels le point pek n'appartient pas. Le traitement de chaque point pek opère ensuite une deuxième boucle sur cet ensemble de murs {H^n(pefe)}jn=1 M correspondant. Dans l'exemple illustré sur la figure 7, la deuxième boucle parcourt l'ensemble de murs {Wm
Par Ie biais d'un indice m de boucle qui est incrémenté (112) à chaque
itération de boucle, m étant initialisé à la valeur 1 (103) et la boucle se terminant (105) pour le mur Wm lorsque m atteint la valeur M. Le traitement pour un point pek et un mur Wm comprend la détermination d'un projeté du point pek orthogonalement sur le mur Wm. Dans un ou plusieurs modes de réalisation, on considérera que ce projeté n'existe que lorsqu'il est situé sur le mur Wm, c'est-à-dire lorsqu'il est situé entre les deux points extrêmes définissant le mur dans l'ensemble de données du premier traitement, ce qui n'est pas toujours le cas. On pourra, dans ces modes de réalisation, effectuer une routine (108) de calcul de coordonnées de point projeté, que l'on dénommera point intermédiaire comme ci-dessus, noté Pi pek, 1 ^), que dans le cas de figure où il est considéré que ce point intermédiaire existe, c'est-à-dire qu'il correspond à l'intersection orthogonale du segment de droite correspondant au mur Wm avec la demi- droite issue du point extrême pek.
Le calcul (108) du point projeté Pi pek, sur le mur Wm peut donc être précédé dans un ou plusieurs modes de réalisation d'une détermination (107) que ce point p£ pek, existe, au sens décrit ci-dessus, et n'être effectué que dans le cas où il est déterminé que le point intermédiaire p£ pek, existe. Dans le cas contraire, l'itération de boucle pour le mur Wm se termine et l'indice m est incrémenté (112). Une fois le point intermédiaire Pi (.Pek> Wm~) calculé (109), une vérification (109) de la réalisation ou non d'une ou de plusieurs conditions préalables (cumulatives ou non) à la création du point intermédiaire Pi .Pek> Wm~) dans l'ensemble de données du traitement (dans l'exemple illustré sur la Fig. 7, DATA(l)) peut être effectuée dans un ou plusieurs modes de réalisation.
Si aucune des conditions préalables à la création du point intermédiaire p£ pek, dans l'ensemble de données du traitement n'est remplie, le point intermédiaire Pi pek, n'est pas créé dans l'ensemble de données du traitement. Autrement dit, cet ensemble de données représentant un plan n'est pas mis à jour par ajout des données relatives à ce point intermédiaire pÎ pek, Wm) .Dans ce cas de figure, l'itération de boucle pour le mur Wm se termine et l'indice m est incrémenté (112).
Dans le cas contraire, le point intermédiaire p£ pek, Wm) est créé (110) dans l'ensemble de données du traitement. Le mur est en outre divisé en deux segments, un premier segment de
mur correspondant aux deux extrémités que sont le premier point d'extrémité du mur et le point intermédiaire Vi (.Vek> Wm) , et un second segment de mur correspondant aux deux extrémités que sont le point intermédiaire Vi .Vek> ^m) et Ie second point d'extrémité du mur. L'ensemble de murs {Wm(pek)}m=1 M est mis à jour (111) par ajout de ces deux nouveaux murs (correspondants à des segments du mur Wm). Dans un mode de réalisation, la mise à jour (111) de l'ensemble des murs \Wm(]p ek }m=1 M dans l'ensemble de données (DATA(l)) peut comprendre le remplacement du mur Wm par ces deux nouveaux murs. Une fois cette mise à jour effectuée, l'itération de boucle pour le mur Wm se termine et l'indice m est incrémenté (112).
Dans un ou plusieurs modes de réalisation dans lesquels l'ensemble des murs {Wm
est codé sous forme d'une liste indexée, cette mise à jour peut se faire en remplaçant dans la liste Vm
Ie mur segmenté par un élément représentant (par exemple par convention) une position vide dans la liste, et en y insérant les deux nouveaux murs en fin de liste (après le dernier élément de la liste courante) et en incrémentant le nombre total M d'élément de la liste {I/^n(pefe)}jn=1 M de deux. Lorsque ce mode de mise à jour de la liste {Wm(pek)}m=1 M est utilisé, chaque incrément de l'indice m de boucle sur cette liste peut être suivi, dans un ou plusieurs modes de réalisation, d'une détermination (114) que le point suivant dans la liste existe, c'est-à-dire qu'il n'a pas été précédemment remplacé par un élément représentant une position vide dans la liste. Dans le cas où il est déterminé que le point suivant dans la liste existe, l'itération suivante de la boucle peut se dérouler avec une vérification (105) que l'on n'a pas atteint la fin de boucle, et dans le cas contraire l'indice m peut être à nouveau incrémenté pour passer à la position suivante dans la liste {Wm(pek)}m=1^ M.
En variante, l'ensemble des murs Vm
Peut etre codé sous la forme d'une liste chaînée de pointeurs. La mise à jour de la liste de murs décrite ci-dessus, dans laquelle un mur segmenté est remplacé par deux nouveaux murs dans la liste de murs, est effectuée en supprimant le mur segmenté de la liste chaînée, ce qui s'effectue sans créer de position vide, mais en chaînant ensemble les deux éléments de la liste qui étaient voisins de l'élément à supprimer, et en insérant les deux murs créés en début de liste. L'ensemble de données DATA(l) est aussi mis à jour, en y supprimant le mur segmenté et en y insérant les deux murs nouvellement créés. L'utilisation d'une liste chaînée permet avantageusement d'éviter
la gestion de l'incrément d'index pour une liste indexée. Il n'est en effet pas nécessaire de traiter des positions vides dans la liste, qui ne sont pas générées dans la liste chaînée. L'utilisation d'une liste chaînée dans laquelle les murs nouvellement créés sont insérés en début de liste, c'est-à-dire dans une position en amont de la position du mur en cours de traitement dans la boucle, permet aussi avantageusement d'éviter les cas de figure où l'algorithme effectue des projections d'un même point sur des murs qui ont été créés suite à une ou plusieurs précédentes projections de ce même point, ce qui augmente la rapidité d'exécution de l'algorithme dans ce mode de réalisation.
Dans un ou plusieurs modes de réalisation, une condition préalable à la création du point intermédiaire Vi .Vek> ^m) dans l'ensemble de données du traitement peut comprendre un test sur les distances d'I et d'2 séparant respectivement le point intermédiaire des points d'extrémité du mur Wm. Lorsque la distance d'I ou la distance d'2 est déterminée inférieure à un seuil de projection Sp prédéterminé, le point intermédiaire Vi .Vek> ^m) et l'extrémité du mur Wm correspondant à la distance d'I ou d'2 déterminée inférieure à Sp sont considérés trop proches l'un de l'autre, et le point intermédiaire Pi pek, Wm) n'est pas créé dans l'ensemble de données du traitement. Par exemple, en référence à la Figure 3, si la distance d'l(pi2, pe3) < Sp, ou si la distance d'2 (pi2, pe4) < Sp, alors le point pi2 n'est pas créé. Dans le cas contraire, il est créé dans l'ensemble DATAI.
En fonction du mode de réalisation, ces conditions préalables peuvent être utilisées individuellement, à titre d'alternative l'une à l'autre, ou bien cumulativement. En outre, l'homme du métier comprendra que d'autres conditions préalables à la création du point intermédiaire pt pek, dans l'ensemble de données du traitement, telles que des variantes des exemples de conditions préalables définies ci-dessus, peuvent être utilisées pour la mise en œuvre du procédé proposé, sans que cela limite la portée de celui-ci.
La figure 8a montre un diagramme illustrant un mode de réalisation du deuxième traitement de données du procédé proposé.
On suppose que l'on dispose en entrée de ce deuxième traitement de données un ensemble de données (DATA (2)) comprenant un ensemble de points. Cet ensemble de données du deuxième traitement DATA(2) correspond à une représentation bidimensionnelle d'une
zone géographique comprenant au moins deux pièces, et peut être généré par un dispositif d'acquisition de données de plan du type décrit plus haut. L'homme du métier comprendra qu'il peut être considéré que dans cet ensemble de données du deuxième traitement DATA(2) chaque point représente une extrémité de mur.
Dans un ou plusieurs modes de réalisation, cet ensemble de données du deuxième traitement pourra correspondre en tout ou partie à l'ensemble de données généré en sortie du premier traitement selon ses différents modes de réalisation décrits ci-dessus. Cet ensemble de données du deuxième traitement pourra ainsi correspondre, en tout ou partie, à l'ensemble de données du premier traitement dans lequel un ou plusieurs points intermédiaires auront été ajoutés et un ou plusieurs murs (respectivement décrits dans un ou plusieurs modes de réalisation par des couples de points) auront pu être remplacés par des segments de murs, considérés du point de vue des données générées par le traitement comme des nouveaux murs, comme décrit dans les exemples de mode de réalisation ci-dessus. Ce cas de figure présente l'avantage que, le deuxième traitement opérant un regroupement de points d'un plan qui sont proches les uns des autres, les points intermédiaires qui auront pu être créés sont pris en compte pour les opérations du deuxième traitement. On considère (150) donc un ensemble de données DATA(2) comprenant un ensemble de / points ti)i=1 . Le deuxième traitement illustré sur la figure 8a effectue une boucle itérative pour traiter chaque point de cet ensemble, chaque itération de la boucle opérant un traitement d'un point de l'ensemble. Comme expliqué ci-dessous, le traitement d'un point de l'ensemble
pourra conduire à la mise à jour de cet ensemble, par remplacement d'un ou plusieurs points par un point correspondant au regroupement des points remplacés, entre eux ou avec d'autres points de l'ensemble. L'ensemble peut ainsi être mis à jour lors d'une itération de la boucle du deuxième traitement, les itérations suivantes opérant alors sur les points de l'ensemble mis à jour qui n'ont pas encore été traités. On parcourt ainsi les points de l'ensemble de données du deuxième traitement tel que mis à jour au fur et à mesure des opérations du deuxième traitement. Dans l'exemple illustré sur la figure 8a, la boucle parcourt l'ensemble de points
au fur et à mesure de ses mises à jour par le biais d'un indice i de boucle qui est incrémenté (157) à chaque itération de boucle, i étant initialisé (151) à la valeur 1 et la boucle se terminant (153) lorsque i atteint (152) la valeur / (mise à jour au fur et à mesure des différentes itérations de la boucle).
Pour chaque point pt , on détermine (154) l'ensemble pt_diffj (i) ._ des points de l'ensemble de points traités mis à jour qui sont distincts du point pt^. Une deuxième boucle de traitement est initiée sur l'ensemble de points distincts afin de parcourir cet ensemble, par le biais de l'indice j de boucle qui est incrémenté (159) à chaque itération de boucle, j étant initialisé (155) à la valeur 1 correspondant à la première itération de la boucle, et la boucle se terminant lorsque j atteint (158) la valeur ](V). Pour chaque point distinct pt_diffj (i) traité, on calcule (160) une distance d(pt_diffj (i), pti) entre ce point pt_diffj (i) et le point pti, puis on compare (161) cette distance avec un seuil de rassemblement Sr prédéfini. Lorsqu'il est déterminé que la distance d(pt_diffj (i), pti) n'est pas inférieure au seuil de rassemblement Sr, les points ne sont pas regroupés et l'indice j est incrémenté (159) pour traiter le point distinct suivant dans l'ensemble {pt_dt (t)} _1 ](^γ
Lorsqu'il est déterminé que la distance d(pt_diffj (V), pti) est inférieure au seuil de rassemblement Sr, les deux points sont regroupés par le biais du calcul (162) d'un barycentre B(pt_diffj (i), pti) de ces deux points. Lorsque le barycentre est calculé, l'ensemble de points (ρίέ)έ=1 Λ est mis à jour (163) en y remplaçant les points pt_diffj (V) et pti par leur barycentre B ( >t_diffj (i), pti). Dans un ou plusieurs modes de réalisation dans lesquels l'ensemble de points (ρίέ)έ=1 Λ est codé sous forme d'une liste indexée, cette mise à jour peut se faire en remplaçant dans la liste ti)i=1 les deux points pt_diffj (V) et ptt par un élément représentant (par exemple par convention) une position vide dans la liste, en y insérant le barycentre B (pt_dif fj (i) , pti) en fin de liste (après le dernier élément de la liste) et en incrémentant le nombre total / d'élément de la liste (ρίέ)έ=1 j. Lorsque ce mode de mise à jour de la liste (pti i=i...i est utilisé, chaque incrément de l'indice i de boucle sur cette liste (ρίέ)έ=1 Λ peut être suivi dans un ou plusieurs modes de réalisation d'une détermination (156) que le point suivant dans la liste (ρίέ)έ=1 j existe, c'est-à-dire qu'il n'a pas été précédemment remplacé par un élément représentant une position vide dans la liste (ρίέ)έ=1 Λ. Dans le cas où il est déterminé que le point suivant dans la liste (ρίέ)έ=1 j existe, l'itération suivante de la boucle peut se dérouler avec une vérification (152) que l'on n'a pas atteint la fin de boucle, et dans le cas contraire l'indice i peut être à nouveau incrémenté pour passer à la position suivante dans la liste (ρίέ)έ=1 Λ.
En variante, le deuxième traitement de données du procédé proposé peut opérer sur un ensemble de points
codé sous forme d'une liste chaînée de pointeurs. La mise à jour de la liste décrite ci-dessus, dans laquelle les points pt_diffj (i) et ptt sont remplacés par leur barycentre B (pt_dif fj (i) , ίέ) , peut être effectuée par mise à jour des objets sur lesquels les pointeurs des points pt_diffj (i) et ptt pointent. L'ensemble de points
(pti i=i...i est amsi mis à jour sans changement de taille. Les mises à jour subséquentes requièrent alors la mise à jour de tous les points précédemment mis à jour, le cas échéant. Par exemple, si dans la liste de points
les points ptw et ptx sont remplacés par le barycentre BY, et que lors d'une itération ultérieure le barycentre BY est lui-même remplacé par un autre barycentre Bz, les pointeurs des points ptw et ptx seront tous deux mis à jour avec le barycentre Bz. Ainsi, la mise à jour de la liste chaînée peut être effectuée en parcourant la liste pour mettre à jour tous les éléments qui doivent l'être.
La figure 8b montre un diagramme illustrant un autre mode de réalisation du deuxième traitement de données du procédé proposé.
Sur la figure 8b, les éléments identiques à ceux illustrés sur la figure 8a et décrits ci-dessus en référence à la figure 8a portent les mêmes références et ne seront pas à nouveau décrits pour éviter des redondances.
Le deuxième traitement illustré sur la figure 8b diffère de celui exposé ci-dessus en lien avec la figure 8a notamment dans les opérations effectuées lors des itérations de la boucle de parcours de l'ensemble des points distincts { t_dt ( } _1 ](^y Chaque itération de cette boucle comprend la détermination et la mise en mémoire (160a) d'une distance dj (pt_diffj (i), pti) entre le point distinct pt_diffj (i) et le point pt^ . Une fois cette distance dj (pt_diffj (i), pti) calculée, l'indice j de boucle est incrémenté (159). Lorsque la distance dj (pt_diffj (i), pti) a été calculée pour tous les points de l'ensemble des points distincts { t_dt ( } _1 j^y la boucle sur cet ensemble se termine (158), et l'on compare chacune des distances dj (pt_diffj (i), pti) calculées avec un seuil de rassemblement Sr prédéfini. S'il existe (161a) au moins un point distinct pt_diffj(i) pour
lequel la distance dj(pt_diffj(i), pti) est déterminée inférieure au seuil de rassemblement Sr, on établit (162a) une liste {pt_diffj(i)} _ dont la distance dj( >t_diffj(i), pti) au point pti est inférieure au seuil de rassemblement Sr.
du point pti, afin de regrouper, en une seule opération, l'ensemble de ces points qui sont proches les uns des autres, puis on met à jour (164) l'ensemble de points ( ίέ)έ=1 Λ est mis à jour (163) en y remplaçant les points pt_diffj (V) et ptt par leur barycentre B (pt_dif fj (i) , pti) . Cette mise à jour peut être effectuée dans un ou plusieurs modes de réalisation selon les méthodes décrites ci-dessus en référence à la figure 8a.
Dans un ou plusieurs modes de réalisation, un troisième traitement de données pourra éventuellement être mis en œuvre une fois les premier et deuxième traitements effectués.
Le troisième traitement de données a pour objet de supprimer de l'ensemble de données représentant une zone géographique les murs qui sont en doublon, c'est-à-dire les murs qui sont représentés deux fois dans cet ensemble, permet de lister les murs de chaque pièce de façon unique. Il est par exemple souhaitable qu'un mur partagé par deux pièces ne soit listé qu'une seule fois dans un ensemble de données comprenant des données représentant une liste de murs.
En référence à la figure 9, on considère un quatrième ensemble de données DATA 4 (S21) d'une représentation bidimensionnelle d'une zone géographique. Cet ensemble de données du troisième traitement peut comprendre, en fonction du mode de réalisation choisi, des éléments de représentation du type ensemble de points, chaque point représentant une extrémité de mur, un mur étant défini par ses deux points extrêmes, et du type mur, chaque élément étant éventuellement associé, directement ou indirectement dans l'ensemble de données, à un identifiant de pièce.
De préférence, le quatrième ensemble de données correspondra au troisième ensemble de données, lui-même ayant été généré en appliquant le premier traitement à un premier
ensemble de données, puis en appliquant le deuxième traitement au deuxième ensemble de données généré par application du premier traitement. Dans un mode de réalisation, on établit (S22) une liste de murs représenté dans le quatrième ensemble de données, chaque mur étant par exemple défini par deux points extrêmes, et éventuellement associé à l'identifiant de la pièce auquel il appartient. Une fois la liste de murs établie, on compare les murs listés deux à deux pour déterminer (S23) si deux murs définis par deux mêmes points extrêmes sont listés. Dans le cas où deux murs définis par deux mêmes points extrêmes sont listés, un des deux murs est supprimé de la liste (S24). Le mur restant est éventuellement associé à deux identifiants de pièce (l'identifiant de pièce du mur conservé et celui de la pièce adjacente du mur supprimé), et par deux points extrêmes, ce qui conduit à un cinquième ensemble de données (DATA 5) obtenu par application du troisième traitement de données. Dans le cas où les deux murs comparés ne sont pas définis par deux mêmes points extrêmes, le procédé reboucle pour effectuer une comparaison d'une autre paire de murs de la liste.
Cela permet, notamment dans l'application de planification de propagation d'ondes radio, d'éviter une multiplication inutile de l'affaiblissement de la propagation d'ondes radio, puisque un mur apparaissant en double sur le plan peut engendrer un calcul faussé de la propagation des ondes radio à travers ce mur.
Un cinquième ensemble de données est ainsi obtenu (S25). Il comprend, dans un ou plusieurs modes de réalisation, uniquement des murs uniques associés à deux identifiants de pièces et deux points extrêmes associés à un couple de coordonnées. Le cinquième ensemble de données est éventuellement stocké.
Bien que le procédé proposé ne soit pas limité à un ordre particulier d'application des trois traitements de données décrits dans les présentes, il pourra être préférentiellement choisi d'appliquer le deuxième traitement de données à la suite du premier traitement de données, comme illustré par la figure 1. En effet, la segmentation de murs partagés pourra résulter en un ajout de points, qui seront avantageusement éventuellement traités par le deuxième traitement de données. De même, il est préférable d'effectuer le troisième traitement de données (qui est optionnel) après les premier et deuxième traitements de données, car des murs en doublons peuvent être créés pendant la phase du premier traitement de données. De
plus, il peut être considéré peu utile de supprimer les murs en doublon durant les premier et deuxième traitements de données. Le procédé proposé peut être mis en oeuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, les termes « module » et « unité » peuvent correspondre dans ce document aussi bien à un composant logiciel, qu'à un composant matériel ou à un ensemble de composants matériels et/ou logiciels, apte à mettre en oeuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit pour le module ou l'unité concerné.
Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur exécutable par un processeur, un ou plusieurs sous-programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel. Un tel composant logiciel est stocké en mémoire puis chargé et exécuté par un processeur de données d'une entité physique (passerelle multimédia, équipement utilisateur, terminal, etc.) et est susceptible d'accéder aux ressources matérielles de cette entité physique (mémoires, supports d'enregistrement, bus de communication, cartes électroniques d'entrées/sorties, interfaces utilisateur, etc.). De la même manière, un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware). Il peut s'agir d'un composant matériel programmable ou avec processeur intégré pour l'exécution de logiciel, par exemple un circuit intégré (comme un circuit intégré pour application spécifique (ASIC, de l'anglais « Application-Specific Integrated Circuit »), un système sur puce (SOC, de l'anglais « System On Chip »), une carte à puce, une carte électronique pour l'exécution d'un micrologiciel (firmware), etc.
Les SOC sont des systèmes embarqués qui intègrent tous les composants d'un système électronique dans une puce unique. Un ASIC est un circuit électronique spécialisé qui regroupe des fonctionnalités sur mesure pour une application donnée. Les ASIC sont généralement configurés lors de leur fabrication et ne peuvent être que simulés par l'utilisateur.
Un procédé de traitement de données tel que proposé peut également utiliser des architectures hybrides, comme par exemple des architectures basées sur un CPU+FPGA, un GPU (de l'anglais « Graphics Processing Unit ») ou un MPPA (de l'anglais « Multi-
Purpose Processor Array »).
Le procédé proposé peut en outre être mis en œuvre sous forme d'une combinaison d'éléments logiciels et matériels, comme par exemple un programme logiciel destiné à être chargé et exécuté sur un composant de type circuits logiques programmables (FPGA, de l'anglais « Field Programmable Gâte Array »). Les FPGA sont des circuits électroniques reconfigurables par l'utilisateur. Par exemple, le procédé proposé peut être mis en œuvre sous la forme d'un logiciel développé en langage de programmation orienté objet tel que Csharp (ou « C# ») dans l'environnement de développement Unity. L'environnement Unity permet en effet avantageusement de déployer le logiciel pour toutes les applications réalisées dans ce framework sur de multiples plateformes matérielles et logicielles (ordinateur de type PC, navigateur Web avec un « plugin » spécifique, Android, iOS, etc.).
La figure 10 est un diagramme illustrant un dispositif de traitement de données configuré pour la mise en œuvre d'un ou de plusieurs modes de réalisation du procédé proposé. En référence à la figure 10, le dispositif de traitement de données DIS est un dispositif électronique qui comprend un contrôleur CTRL, une unité mémoire MEM, une unité d'interface INTF, et une unité de traitement de données PROC.
Dans l'architecture illustrée sur la figure 10, l'unité mémoire MEM, l'unité d'interface INTF, et l'unité de traitement de données PROC sont couplées de manière opérationnelle les unes avec les autres par l'intermédiaire du contrôleur CTRL.
L'unité mémoire MEM peut comprendre une ou plusieurs mémoires, de type mémoire morte ou ROM (pour « Read-Only Memory ») et de type mémoire vive RAM (pour « Random Access Memory »), dont une mémoire morte dans laquelle est stocké un programme d'ordinateur exécutable par un processeur du contrôleur CTRL du dispositif électronique DIS. L'unité mémoire MEM est de préférence choisie apte à stocker des premier (DATA 1, DATA(l)), deuxième (DATA 2, DATA(2)), troisième (DATA 3), quatrième (DATA 4) et cinquième (DATA 5) ensembles de données, ainsi que des données intermédiaires générées lors de la mise en œuvre des traitements du procédé proposé, telles
que la liste des murs générée lors de la mise en œuvre du troisième traitement décrit ci- dessus, par exemple dans une mémoire RAM. L'unité mémoire MEM peut en outre être choisie apte à stocker une ou plusieurs tables de correspondance entre des identifiants de pièces et des coordonnées de points appartenant à ces pièces, ainsi que des données représentant des paires de murs aux fins de déterminer si ces murs sont partagés, comme décrit ci-dessus.
En fonction du mode de réalisation, la/les mémoires de l'unité mémoire MEM contiennent des instructions de programme d'ordinateur qui, lorsqu'elles sont exécutées par le contrôleur CTRL, amènent ce contrôleur CTRL à effectuer ou contrôler les parties interface d'entrée/sortie INTF et traitements de données PROC des exemples de mise en œuvre du procédé proposé décrits dans les présentes. L'unité d'interface INTF peut être configurée pour recevoir des ensembles de données à traiter, correspondant typiquement à des représentations bidimensionnelles d'une zone géographique comprenant au moins deux pièces, aussi appelées plans dans les présentes, acquis par un système d'acquisition de données, pour les consigner en mémoire MEM. L'unité de traitement de données PROC peut être configurée pour effectuer les traitements de données pour la mise en œuvre du procédé proposé, et en particulier les premier, deuxième et/ou troisième traitements de données des exemples de mise en œuvre du procédé proposé décrits dans les présentes. En particulier, l'unité de traitement des données PROC peut être configurée pour générer un deuxième ensemble de données par un premier traitement de données opérant, sur les données d'un ensemble de données du premier traitement, une détermination que deux murs représentés dans l'ensemble de données du premier traitement sont partagés par deux pièces adjacentes, et une segmentation d'au moins un mur parmi les deux murs partagés, et générer un troisième ensemble de données par un deuxième traitement de données opérant, sur les données d'un ensemble de données du deuxième traitement, un rassemblement d'au moins deux points en un unique point si la distance entre les au moins deux points est inférieure à un seuil de rassemblement Sr prédéterminé, l'ensemble de données du premier traitement et l'ensemble de données du deuxième traitement correspondent respectivement au premier ensemble de données et au deuxième ensemble de données, ou au troisième ensemble de données et au premier ensemble de données, premier ensemble de données correspondant à une représentation
bidimensionnelle d'une zone géographique comprenant au moins deux pièces (Fl, F2, F3), le premier ensemble de données comprenant un ensemble de points représentant respectivement une intersection de deux murs, et un ensemble de murs respectivement repérés par deux points représentant les extrémités respectives du mur.
Le contrôleur CTRL est configuré pour piloter les unités du dispositif électronique DIS, et en particulier l'unité de traitement de données PROC. Le contrôleur CTRL peut comprendre un composant implémentant un ou plusieurs processeurs, et être piloté par une application ou un programme d'ordinateur, configurés pour la mise en œuvre d'un ou de plusieurs modes de réalisation du procédé proposé. A l'initialisation, les instructions de code du programme d'ordinateur sont par exemple chargées dans une mémoire RAM de l'unité mémoire MEM, avant d'être exécutées par un processeur du contrôleur CTRL. L'unité d'interface INTF et/ou l'unité de traitement de données PROC peuvent être mises en œuvre sous forme d'un logiciel (programme d'ordinateur) qui, lorsqu'il est chargé dans une mémoire de l'unité mémoire MEM et exécuté par un processeur de la dispositif électronique DIS, met en œuvre les traitements de données selon le procédé proposé. En outre, l'unité d'interface INTF et/ou l'unité de traitement de données PROC peuvent être mises en œuvre sous forme logicielle, comme décrit ci-dessus, ou sous forme matérielle, comme un circuit intégré spécifique application ou ASIC, ou sous forme d'une combinaison d'éléments matériels et logiciels, comme par exemple un programme logiciel destiné à être chargé et exécuté sur un composant de type FPGA. L'architecture du dispositif électronique illustrée sur la figure 10 n'est toutefois pas limitative. Le dispositif électronique peut être un ordinateur (par exemple de type PC ou portable) ou un réseau d'ordinateurs, ou un autre appareil comportant un processeur couplé de manière opérationnelle à une mémoire, ainsi que, selon le mode de réalisation choisi, d'autres éléments matériels associés comme une interface de réseau et un lecteur de support pour lire un support de stockage amovible et écrire sur un tel support (non représentés sur la figure), comme par exemple un smartphone ou une tablette. Le support de stockage amovible peut être, par exemple, un disque compact (CD), un disque vidéo/polyvalent numérique (DVD), un disque flash, une clé USB, etc.
En fonction du mode de réalisation choisi, certains actes, actions, événements ou fonctions de chacune des méthodes décrites dans le présent document peuvent être effectués ou se produire selon un ordre différent de celui dans lequel ils ont été décrits, ou peuvent être ajoutés, fusionnés ou bien ne pas être effectués ou ne pas se produire, selon le cas. En outre, dans certains modes de réalisation, certains actes, actions ou événements sont effectués ou se produisent concurremment et non pas successivement.
Bien que décrits à travers un certain nombre d'exemples de réalisation détaillés, le procédé d'encodage proposé et l'équipement pour la mise en œuvre du procédé comprennent différentes variantes, modifications et perfectionnements qui apparaîtront de façon évidente à l'homme de l'art, étant entendu que ces différentes variantes, modifications et perfectionnements font partie de la portée de l'invention, telle que définie par les revendications qui suivent. De plus, différents aspects et caractéristiques décrits ci-dessus peuvent être mis en œuvre ensemble, ou séparément, ou bien substitués les uns aux autres, et l'ensemble des différentes combinaisons et sous combinaisons des aspects et caractéristiques font partie de la portée de l'invention. En outre, il se peut que certains systèmes et équipements décrits ci-dessus n'incorporent pas la totalité des modules et fonctions décrits pour les modes de réalisation préférés.
Références :
Point extrême pe
Point intermédiaire pi
Pièce F
Barycentre b
Distance d, l
Seuil de projection Sp
Seuil de rassemblement Sr
Claims
1. Procédé de traitement de données d'un premier ensemble de données, le premier ensemble de données correspondant à une représentation bidimensionnelle d'une zone géographique comprenant au moins deux pièces (Fl, F2, F3) et un ensemble de murs respectivement repérés par deux points représentant les extrémités respectives du mur, le premier ensemble de données comprenant un ensemble de points représentant respectivement une intersection de deux murs, le procédé étant mis en œuvre par des moyens informatiques et comprenant :
- générer un deuxième ensemble de données par un premier traitement de données opérant, sur les données d'un ensemble de données du premier traitement, une détermination que deux murs représentés dans l'ensemble de données du premier traitement sont partagés par deux pièces adjacentes, et une segmentation d'au moins un mur parmi les deux murs partagés ;
- générer un troisième ensemble de données par un deuxième traitement de données opérant, sur les données d'un ensemble de données du deuxième traitement, un rassemblement d'au moins deux points en un unique point si la distance entre les au moins deux points est inférieure à un seuil de rassemblement Sr prédéterminé, dans lequel l'ensemble de données du premier traitement et l'ensemble de données du deuxième traitement correspondent respectivement au premier ensemble de données et au deuxième ensemble de données, ou au troisième ensemble de données et au premier ensemble de données.
2. Procédé selon la revendication 1, dans lequel la segmentation de l'au moins un mur comprend l'ajout d'au moins un point intermédiaire correspondant dans la zone géographique à un point situé entre les points correspondants aux extrémités respectives du mur.
3. Procédé selon la revendication 2, dans lequel le point intermédiaire ajouté est la projection d'un point représentant une extrémité du mur non segmenté sur l'au moins un mur.
4. Procédé selon la revendication 3, dans lequel la segmentation de l'au moins un mur est opérée si une distance entre le point projeté et la projection du point projeté sur l'au moins un mur est inférieure à un seuil de projection Sp prédéterminé.
5. Procédé selon la revendication 4, dans lequel le seuil de projection Sp est inférieur à 60 cm.
6. Procédé selon l'une des revendications 1 à 5, dans lequel le deuxième traitement de données comprend en outre le calcul d'un barycentre de points séparés par une distance inférieure au seuil de rassemblement Sr, les points séparés par une distance inférieure au seuil de rassemblement Sr étant rassemblés dans le troisième ensemble de données en leur barycentre calculé.
7. Procédé selon la revendication 6, dans lequel le deuxième traitement de données comprend le calcul du barycentre de deux points séparés par une distance inférieure au seuil de rassemblement Sr, au moins un des deux points pouvant être un barycentre calculé.
8. Procédé selon l'une des revendications 4 à 7, dans lequel le seuil de rassemblement Sr est égal ou supérieur au seuil de projection Sp.
9. Programme d'ordinateur, chargeable dans une mémoire associée à un processeur, et comprenant des portions de code pour la mise en œuvre d'un procédé selon l'une quelconque des revendications 1 à 8 lors de l'exécution dudit programme par le processeur.
10. Dispositif électronique comprenant : un contrôleur comprenant un processeur, une unité d'interface, une mémoire, et une unité de traitement de données couplées de manière opérationnelle au contrôleur, et configurées pour la mise en œuvre d'un procédé de traitement de données selon l'une quelconque des revendications 1 à 8.
11. Ensemble de données représentant, par exemple par voie de compression ou d'encodage, un programme d'ordinateur selon la revendication 10.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1758807A FR3071631B1 (fr) | 2017-09-22 | 2017-09-22 | Procede de traitement de donnees d'une representation bidimensionnelle d'une zone geographique |
| FR1758807 | 2017-09-22 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019058052A1 true WO2019058052A1 (fr) | 2019-03-28 |
Family
ID=60923628
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/FR2018/052285 Ceased WO2019058052A1 (fr) | 2017-09-22 | 2018-09-19 | Procédé de traitement de données d'une représentation bidimensionnelle d'une zone géographique |
Country Status (2)
| Country | Link |
|---|---|
| FR (1) | FR3071631B1 (fr) |
| WO (1) | WO2019058052A1 (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111159795A (zh) * | 2019-11-22 | 2020-05-15 | 久瓴(上海)智能科技有限公司 | 玻璃幕墙生成方法、装置、计算机设备和存储介质 |
-
2017
- 2017-09-22 FR FR1758807A patent/FR3071631B1/fr active Active
-
2018
- 2018-09-19 WO PCT/FR2018/052285 patent/WO2019058052A1/fr not_active Ceased
Non-Patent Citations (6)
| Title |
|---|
| ANONYMOUS: "Merge vertices, edges, or faces into one vertex | Maya | Autodesk Knowledge Network", 9 September 2014 (2014-09-09), XP055458617, Retrieved from the Internet <URL:https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/Combining-separating-and-splitting-Merge-vertices-edges-or-faces-into-one-vertex-htm.html> [retrieved on 20180313] * |
| CLAUDIO MURA ET AL: "Automatic room detection and reconstruction in cluttered indoor environments with complex room layouts", COMPUTERS & GRAPHICS, vol. 44, 1 November 2014 (2014-11-01), pages 20 - 32, XP055458631 * |
| FROEHLICH ET AL: "An investigation of Google Tango tablet for low cost 3D scanning", ISARC 2017 - PROCEEDINGS OF THE 34TH INTERNATIONAL SYMPOSIUM ON AUTOMATION AND ROBOTICS IN CONSTRUCTION; (TAIPEI) : 2017.06.28-07.01, 1 January 2017 (2017-01-01), pages 864 - 871, XP009504011 * |
| GIOVANNI PINTORE ET AL: "Effective mobile mapping of multi-room indoor structures", THE VISUAL COMPUTER, vol. 30, no. 6-8, 4 May 2014 (2014-05-04), pages 707 - 716, XP055458632 * |
| SEBASTIAN OCHMANN ET AL: "Automatic reconstruction of parametric building models from indoor point clouds", COMPUTERS & GRAPHICS, vol. 54, 1 February 2016 (2016-02-01), pages 94 - 103, XP055458626 * |
| TURNER ERIC ET AL: "Floor plan generation and room labeling of indoor environments from laser range data", 2014 INTERNATIONAL CONFERENCE ON COMPUTER GRAPHICS THEORY AND APPLICATIONS (GRAPP), SCITEPRESS, 5 January 2014 (2014-01-05), pages 1 - 12, XP032791898 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111159795A (zh) * | 2019-11-22 | 2020-05-15 | 久瓴(上海)智能科技有限公司 | 玻璃幕墙生成方法、装置、计算机设备和存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| FR3071631B1 (fr) | 2021-01-29 |
| FR3071631A1 (fr) | 2019-03-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111951397B (zh) | 一种多机协同构建三维点云地图的方法、装置和存储介质 | |
| US11257298B2 (en) | Reconstructing three-dimensional scenes in a target coordinate system from multiple views | |
| JP6498872B2 (ja) | 2dビューを用いた3dモデル化オブジェクトの設計 | |
| KR102170620B1 (ko) | 지역적 특징을 가지는 분류기 학습을 위한 학습 데이터 생성 방법 및 그 시스템 | |
| Liu et al. | Image-based reconstruction of wire art | |
| CN113554661B (zh) | 集成交互式图像分割 | |
| FR3028333A1 (fr) | Creation de maillage de reservoir utilisant un raffinement anisotrope prolonge, adapte a la geometrie, d'un polyedre | |
| CN113284237A (zh) | 一种三维重建方法、系统、电子设备及存储介质 | |
| US20210383172A1 (en) | Three-dimensional map inconsistency detection using neural network | |
| FR2977023A1 (fr) | Generation de donnees de carte | |
| US20210312634A1 (en) | Image reconstruction based on edge loss | |
| EP3549041A1 (fr) | Procede de construction d'une maquette numerique 3d a partir d'un plan 2d | |
| WO2020065177A1 (fr) | Procede, programme d'ordinateur et systeme de detection et localisation d'objet dans une scene tridimensionnelle | |
| CN118159997A (zh) | 使用神经网络对深度图像数据去噪 | |
| WO2019217126A1 (fr) | Vision artificielle par optimisation matérielle simulée | |
| JP2021105987A (ja) | インタラクティブなオブジェクト選択 | |
| Mauro et al. | An integer linear programming model for view selection on overlapping camera clusters | |
| WO2019058052A1 (fr) | Procédé de traitement de données d'une représentation bidimensionnelle d'une zone géographique | |
| FR3044446A1 (fr) | Systeme et procede pour combiner un flux de travaux | |
| FR3065097B1 (fr) | Procede automatise de reconnaissance d'un objet | |
| EP2359339A1 (fr) | Procédé de conception assistée par ordinateur pour créer une surface dans un système complexe | |
| CN110119721B (zh) | 用于处理信息的方法和装置 | |
| CN111460166A (zh) | 实体关系数据处理方法、装置、终端及存储介质 | |
| Laksono | CloudSfM: 3D Reconstruction using structure from motion web service | |
| EP3622445A1 (fr) | Procede, mise en oeuvre par ordinateur, de recherche de regles d'association dans une base de donnees |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18799572 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 18799572 Country of ref document: EP Kind code of ref document: A1 |