WO2023013037A1 - 点群データ処理装置、点群データ処理方法及びプログラム - Google Patents
点群データ処理装置、点群データ処理方法及びプログラム Download PDFInfo
- Publication number
- WO2023013037A1 WO2023013037A1 PCT/JP2021/029321 JP2021029321W WO2023013037A1 WO 2023013037 A1 WO2023013037 A1 WO 2023013037A1 JP 2021029321 W JP2021029321 W JP 2021029321W WO 2023013037 A1 WO2023013037 A1 WO 2023013037A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- point cloud
- cloud data
- data
- encoded
- merge
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 179
- 238000003672 processing method Methods 0.000 title claims description 4
- 238000005259 measurement Methods 0.000 claims abstract description 108
- 238000013500 data storage Methods 0.000 claims abstract description 84
- 238000000034 method Methods 0.000 description 79
- 230000008569 process Effects 0.000 description 73
- 238000010586 diagram Methods 0.000 description 19
- 230000000694 effects Effects 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B11/00—Measuring arrangements characterised by the use of optical techniques
- G01B11/24—Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
Definitions
- the present invention relates to a point cloud data processing device, a point cloud data processing method and a program.
- G-pcc Geometry based Point Cloud Compression
- the occupancy state of points included in the point cloud data is expressed in units of 2 n ⁇ 2 n ⁇ 2 n voxels in the structure of an Octree (hereinafter referred to as an octree).
- the object of encoding is the structure (see, for example, Non-Patent Document 1). This makes it easy to perform various processes on the points included in the point cloud data under a common standard.
- point cloud data there is a demand to integrate multiple point cloud data obtained by measuring at different times and different positions. For example, there is a demand to acquire point cloud data in the direction of the building from four positions of the building, integrate the acquired four point cloud data, and generate point cloud data of the building and surrounding structures. There is also a demand for updating to the latest point cloud data by merging already acquired point cloud data and newly acquired point cloud data. Generate point cloud data at any time or at any measurement position from already acquired point cloud data, and use the generated point cloud data to observe temporal changes in buildings and towns. There are also requests for
- Point cloud data for each time is generated.
- each time it is necessary to read a plurality of point cloud data and arrange them in chronological order with reference to the measured times, and this process takes a long time.
- the present invention aims to provide a technology that can shorten the time required to integrate multiple point cloud data acquired at arbitrary times and arbitrary measurement positions.
- One aspect of the present invention is a point cloud data storage unit that stores a plurality of point cloud data measured at arbitrary measurement times at a plurality of measurement positions in a three-dimensional space; Location data indicating the location of a point when the point cloud data and the point cloud data measured before the measurement time are integrated in chronological order, and reference data attached to each of the location data, wherein the location merging points for generating merging point cloud data including reference data specifying the point cloud data including the points indicated by the data in chronological order based on the point cloud data stored in the point cloud data storage unit; and a point cloud data processing device.
- a point cloud data storage unit stores a plurality of point cloud data measured at arbitrary measurement times at a plurality of measurement positions in a three-dimensional space
- a merged point cloud data generation unit includes any one of location data indicating the location of points when the point cloud data corresponding to one measurement time and the point cloud data measured before the measurement time are integrated in chronological order; based on the point cloud data stored in the point cloud data storage unit, merging point cloud data including reference data specifying the point cloud data in which the point indicated by the location data was included. It is a point cloud data processing method that generates in chronological order.
- One aspect of the present invention is a point cloud data storage means for storing a plurality of point cloud data measured at arbitrary measurement times at a plurality of measurement positions in a three-dimensional space.
- Location data indicating locations of points when the point cloud data and the point cloud data measured before the measurement time are integrated in chronological order, and reference data assigned to each location data, wherein the merging for generating merge point cloud data including reference data specifying the point cloud data containing the points indicated by the location data in chronological order based on the point cloud data stored in the point cloud data storage means; It is a program for functioning as point cloud data generating means.
- FIG. 1 is a block diagram showing the configuration of a point cloud data processing device according to a first embodiment
- FIG. It is a figure which shows an example of the file name of the point cloud data which the point cloud data storage part of 1st Embodiment memorize
- FIG. 4 is a diagram showing an example of a data format of merged point cloud data in the first embodiment
- FIG. 4 is a diagram showing an example of a data format of reference list data in the first embodiment
- FIG. FIG. 7 is a diagram showing the flow of processing for generating merge point cloud data and reference list data according to the first embodiment
- FIG. 10 is a diagram (part 1) showing an example of processing for generating merge point cloud data and reference list data according to the first embodiment
- FIG. 11 is a diagram (part 2) showing an example of processing for generating merged point cloud data and reference list data according to the first embodiment;
- FIG. 7 is a diagram for explaining repeated processing in the generation processing of merge point cloud data and reference list data according to the first embodiment;
- It is a figure which shows the flow of generation processing of the point-group data of 1st Embodiment.
- It is a figure showing an example of generation processing of point cloud data of a 1st embodiment.
- It is a block diagram which shows the structure of the point cloud data processing apparatus of 2nd Embodiment.
- FIG. 11 is a diagram for explaining octree encoding performed by an encoding processing unit according to the second embodiment;
- FIG. 10 is a diagram showing an example of a data format of encoded point cloud data in the second embodiment; It is a figure which shows an example of the file name of the point cloud data which the point cloud data storage part of 2nd Embodiment memorize
- FIG. 10 is a diagram showing an example of processing for generating merge point cloud data and reference list data in the second embodiment;
- FIG. 10 is a diagram (part 1) showing the flow of point cloud data generation processing according to the second embodiment;
- FIG. 11 is a diagram (part 2) showing the flow of point cloud data generation processing according to the second embodiment;
- FIG. 13 is a diagram showing the flow of a subroutine of tile merge processing performed in the point cloud data generation processing of the second embodiment;
- FIG. 11 is a diagram (part 1) showing an example of point cloud data generation processing in the second embodiment;
- FIG. 11 is a diagram (part 2) showing an example of point cloud data generation processing in the second embodiment;
- FIG. 1 is a block diagram showing the configuration of a point cloud data processing device 1 according to the first embodiment.
- the point cloud data processing device 1 includes a point cloud data acquisition unit 11, a point cloud data storage unit 12, a merge point cloud data generation unit 13, a merge point cloud data storage unit 14, a reference list generation unit 15, a reference list storage unit 16, and A point cloud data generator 17 is provided.
- the point cloud data acquisition unit 11 is connected to, for example, a measuring device such as a three-dimensional laser scanner that generates point cloud data. Obtained from the measuring device.
- the point cloud data storage unit 12 stores the point cloud data acquired by the point cloud data acquisition unit 11 .
- the point cloud data storage unit 12 stores a plurality of point cloud data in the form of files.
- the point cloud data storage unit 12 stores point cloud data files whose file names are "Pointcloud_DATA1", “Pointcloud_0001", and "Pointcloud_File1".
- the frame of reference numeral 30 indicates the data contained in the file "Pointcloud_DATA1”
- the frame of reference numeral 31 indicates the data contained in the file of "Pointcloud_0001”
- the reference numeral 32 indicates: It shows the data contained in the file "Pointcloud_File1”.
- the point cloud data includes measurement time data indicating the time when the measurement was performed, and the positions of each of a plurality of points included in the point cloud data in three dimensions, as indicated by frames 30, 31, and 32, respectively. and coordinate data indicated by coordinate values of the X-axis, Y-axis, and Z-axis of the coordinate system. In the example shown in FIG.
- the measurement time data is data indicating the time represented by year, month, day, hour, minute, and second. shall indicate the hour.
- the coordinate values of the X-axis, Y-axis, and Z-axis indicating the positions of points included in each of the plurality of point cloud data are coordinate values in the same three-dimensional coordinate system.
- the time indicated by the measurement time data included in the point cloud data strictly indicates the time when each point included in the point cloud data was measured because the point cloud data includes multiple points. Instead of, for example, the time when the point cloud data file was generated in the measuring device.
- Each point cloud data may be point cloud data generated by a different measurement device. Therefore, there may be point cloud data having the same measurement time.
- the size of the range in which the points included in the point cloud data in the three-dimensional space exist (hereinafter referred to as the range of the point cloud data) is different for each point cloud data. Sometimes it becomes The positions of the range of point cloud data may be the same or different. In the case of different positions, part of the range of point cloud data may overlap with the range of other point cloud data.
- the plurality of point cloud data obtained from the measuring device is a plurality of point cloud data with different measurement times, and the range of each point cloud data is the same position and the same size. become.
- the “.ply” format or the “.csv” format can be applied. It is predetermined as A plurality of point cloud data files are given different file names. As an example, FIG. 2 shows an example in which characters "DATA1", "0001", and "File1" are added to a common character "Pointcloud_".
- the point cloud data stored in the point cloud data storage unit 12 has various file names. , it is necessary to refer to the measurement time indicated by the measurement time data included in each of the point cloud data.
- the merge point cloud data generation unit 13 refers to the measurement time data included in all the point cloud data stored in the point cloud data storage unit 12 to obtain the points.
- the chronological order is the point cloud data generated at the earliest time, that is, the chronological order starting from the oldest point cloud data. shall be
- the merge point cloud data generation unit 13 repeats integration, that is, merging of point cloud data one by one in chronological order with respect to the leading point cloud data in chronological order.
- merge point cloud data generation unit 13 takes in generation instruction data including information indicating individual merging associated with a file name of one point cloud data
- the merge point cloud data that has already been generated is added to the generation instruction data.
- New merged point cloud data is generated by merging the point cloud data with the file name associated with the included information indicating individual merging.
- the merge point cloud data storage unit 14 stores the merge point cloud data generated by the merge point cloud data generation unit 13.
- the data format of the merge point cloud data is, for example, the data format shown in FIG. 3, and has items of "merge reference time", “coordinate data”, and “reference data”.
- the "merge reference time” is written with the time indicated by the measurement time data included in the last merged point cloud data.
- the coordinate data of the merged point cloud data is written in the "coordinate data” item.
- reference data which is data capable of specifying which point cloud data file contains each piece of merged coordinate data, is written. In FIG.
- the character strings “DATA1”, “0001”, and “File1”, which are the remaining character strings excluding the common character string “Pointcloud_” in the file names of the point cloud data, are written as reference data.
- the reference data may be any data as long as it is possible to specify which file of the point cloud data the reference data is contained in. For example, all the file names of the point cloud data may be
- the reference list generation unit 15 generates reference list data from the merge point cloud data stored in the merge point cloud data storage unit 14 .
- the data format of the reference list data is, for example, the data format shown in FIG. 4, and has items of "merge reference time" and "reference data".
- the “merge reference time” item the time written in the "merge reference time” item of the merge point cloud data referred to when the reference list generation unit 15 generates the reference list data is written.
- reference data different reference data among the reference data written in the "reference data” item of the merge point cloud data referred to when the reference list generation unit 15 generates the reference list data is displayed. Written in sequential order.
- the reference list generator 15 selects different reference data in chronological order, for example, as follows.
- the reference list generator 15 selects the reference data "DATA1" on the first line of the item "reference data" of the merge point cloud data as the first reference data, and then selects the "reference data" of the merge point cloud data.
- the reference data different from the previously selected reference data is detected.
- the reference list generator 15 selects the detected reference data as the second reference data.
- the reference list generator 15 selects "0001" as the second reference data.
- the reference list generation unit 15 repeats the same processing up to the last line.
- the reference data selected by the reference list generator 15 are "DATA1", "0001", and "File1", which are different reference data arranged in chronological order.
- the reference list storage unit 16 stores the reference list data generated by the reference list generation unit 15.
- the point cloud data generation unit 17 receives the operation of the user of the point cloud data processing device 1 and takes in the time designation data designated by the user.
- the point cloud data generation unit 17 detects reference list data corresponding to the time indicated by the captured time designation data from the reference list storage unit 16 .
- the point cloud data generation unit 17 reads the point cloud data from the point cloud data storage unit 12 in chronological order based on the reference data written in the "reference data" item of the detected reference list data.
- the point cloud data generation unit 17 merges the read point cloud data in chronological order to generate point cloud data corresponding to the time designated by the time designation data.
- FIG. 5 is a flow chart showing the flow of processing for generating merged point cloud data and reference list data by the point cloud data processing device 1 .
- N is an integer of 1 or more.
- the merge point cloud data generation unit 13 receives the operation of the user of the point cloud data processing device 1 and takes in the generation instruction data specified by the user (step Sa1). Here, it is assumed that the user has provided the merge point cloud data generation unit 13 with generation instruction data including information indicating all merging. The merge point cloud data generation unit 13 determines whether the information included in the fetched generation instruction data is information indicating all merging or information indicating individual merging (step Sa2).
- the merge point cloud data generation unit 13 determines that the information included in the generation instruction data is information indicating all merging. (Step Sa2, merge all).
- the merge point cloud data generation unit 13 reads out all the point cloud data, that is, N+1 point cloud data from the point cloud data storage unit 12 .
- the merge point cloud data generator 13 arranges the point cloud data in chronological order by referring to the measurement time data included in the read N+1 point cloud data (step Sa3).
- the merge point cloud data generation unit 13 sets the N+1 point cloud data arranged in chronological order as point cloud data A 0 , A 1 , . . . , A N .
- the leading point cloud data A0 is the point cloud data generated at the earliest time.
- some of the N+1 point cloud data may have the same measurement time, and in this case, the point cloud data at the same measurement time are arranged consecutively.
- the merge point cloud data generation unit 13 merges the first two point cloud data A0 in chronological order and the point cloud data A1 to generate merge point cloud data B1 .
- point cloud data A0 and point cloud data A1 are assumed to be point cloud data as shown in FIG. 6(a). It is assumed that the file name of the point cloud data A0 is "Pointcloud_DATA1" and the measurement time data is " t0 ".
- the point cloud data A 0 includes one point p 01 and the coordinate data of the point p 01 is "x 01 , y 01 , z 01 ". It is assumed that the file name of the point cloud data A1 is “Pointcloud_0001" and the measurement time data is " t1 ".
- the point cloud data A 1 includes three points p 11 , p 12 , p 13 , the coordinate data of the point p 11 is "x 11 , y 11 , z 11 ", and the coordinates of the point p 12 Assume that the data are " x12 , y12 , z12 " and the coordinate data of the point p13 are " x13 , y13 , z13 ".
- the merge point cloud data B1 generated by the merge point cloud data generator 13 by merging the point cloud data A0 and the point cloud data A1 is composed of four points as shown in FIG. p 01 , p 11 , p 12 , p 13 will be included. Therefore, as shown in FIG. 6(c), the merge point cloud data generation unit 13 adds the time "t 1 ” is written, and the coordinate data of the four points p 01 , p 11 , p 12 and p 13 are written in chronological order in the item of “coordinate data”.
- the merge point cloud data generation unit 13 generates “DATA1”, which is reference data specifying point cloud data whose points p 01 , p 11 , p 12 , and p 13 are included in the “reference data” item. "0001", “0001”, and “0001” are written to generate new merged point cloud data B1 .
- the merge point cloud data generation unit 13 After generating the merge point cloud data B1, the merge point cloud data generation unit 13 writes the generated merge point cloud data B1 to the merge point cloud data storage unit 14 for storage. After completing the writing of the merge point cloud data B1 to the merge point cloud data storage unit 14, the merge point cloud data generation unit 13 outputs a reference list generation start signal to the reference list generation unit 15 (step Sa4).
- the reference list generator 15 Upon receiving the reference list generation start signal from the merge point cloud data generator 13 , the reference list generator 15 reads the merge point cloud data B 1 from the merge point cloud data storage 14 .
- the reference list generator 15 refers to the read merge point cloud data B1 to generate reference list data R1 .
- the reference list generation unit 15 adds the "merge reference time” item of the merge point cloud data B1 to be referenced to the "merge reference time” item in the data format of the reference list data. Write the time 't 1 ' written in .
- the reference list generation unit 15 generates, in the item of "reference data”, "DATA1”, “ DATA1 ", "DATA1”, “DATA1” and " 0001” are written in chronological order. As a result, the reference list generator 15 generates reference list data R1 .
- the reference list generation unit 15 After generating the reference list data R1, the reference list generation unit 15 writes the generated reference list data R1 to the reference list storage unit 16 for storage. After finishing writing the reference list data R1 to the reference list storage unit 16, the reference list generation unit 15 outputs a reference list generation end signal to the merge point cloud data generation unit 13 (step Sa5).
- the merge point cloud data generation unit 13 When the merge point cloud data generation unit 13 receives the reference list generation end signal from the reference list generation unit 15, next, the processing of steps Sa6 to Sa8 is repeatedly performed on each of the point cloud data A 2 to A N. .
- n is an integer of 2 or more and N or less.
- the merge point cloud data generator 13 merges the read merge point cloud data B n ⁇ 1 and the point cloud data A n to generate new merge point cloud data B n .
- the merge point cloud data generator 13 merges the merge point cloud data B1 and the point cloud data A2 to generate the merge point cloud data B2 .
- the file name of the point cloud data A2 is "Pointcloud_File1" and the measurement time data is " t2 ". Note that t 2 ⁇ t 1 .
- the point cloud data A 2 includes three points p 21 , p 22 , p 23 , the coordinate data of the point p 21 is "x 21 , y 21 , z 21 ", and the coordinates of the point p 22
- the data are " x22 , y22 , z22 ", and the coordinate data of the point p23 are “ x23 , y23 , z23 ".
- the merged point cloud data B1 is point cloud data obtained by merging the point cloud data A0 and the point cloud data A1 , as described above.
- FIG. 7A is a diagram in which point cloud data A 0 , point cloud data A 1 , and point cloud data A 2 are arranged in chronological order.
- a position of “x 01 , y 01 , z 01 ” exists, and a predetermined constant size centered on the position of coordinate data “x 22 , y 22 , z 22 ” of point p 22 of point cloud data A 2
- the position of the coordinate data " x12 , y12 , z12 " of the point p12 of the point cloud data A1 exists within the range of height.
- merge point cloud data generation The unit 13 does not merge the coordinate data of the earlier point in chronological order, but merges the coordinate data of the later point in chronological order. Therefore, as shown in FIG. 7B, the merged point cloud data generator 13 merges the merged point cloud data B 1 and the point cloud data A 2 to obtain points p 11 , p 13 , p 21 , and p. 22 and p 23 are generated as merged point cloud data B 2 .
- the merging point cloud data generator 13 generates the merging point cloud data B2 , for example, as follows.
- the merge point cloud data generation unit 13 generates coordinate data “x 01 , y 01 , z 01 ”, “x 12 , y 12 , z 12 ” that are not to be merged from the merge point cloud data B 1 , and Delete the corresponding reference data "DATA1" and "0001".
- the merge point cloud data generation unit 13 adds " x 21 , y 21 , z 21 '', ⁇ x 22 , y 22 , z 22 '' , ⁇ x 23 , y 23 , z 23 '' are replaced with the already written ⁇ x 11 , y 11 , z 11 '', ⁇ x 13 , y 13 , z 13 '' and write to be the line after.
- the merge point cloud data generation unit 13 converts "File1", which is the reference data for each of the coordinate data of the points p21 , p22 , and p23 added to the "coordinate data” item, to the corresponding "reference data”. write to the line of the item in .
- the merge point cloud data generator 13 rewrites the item of "merge reference time" of the merge point cloud data B1 to the time " t2 " indicated by the measurement time data included in the point cloud data A2 . In this manner, the merging point cloud data generator 13 generates the merging point cloud data B2 shown in FIG. 7C from the merging point cloud data B1 (step Sa6).
- the merge point cloud data generation unit 13 deletes the merge point cloud data Bn ⁇ 1 stored in the merge point cloud data storage unit 14, and deletes the generated merge point cloud data Bn is written in the merge point cloud data storage unit 14 .
- the merging point cloud data stored in the merging point cloud data storage unit 14 is replaced with the merging point cloud data Bn ⁇ 1 to the merging point cloud data Bn .
- the merge point cloud data generation unit 13 outputs a reference list generation start signal to the reference list generation unit 15 (step Sa7).
- the reference list generation unit 15 When the reference list generation start signal is received from the merge point cloud data generation unit 13 , the reference list generation unit 15 reads the merge point cloud data Bn from the merge point cloud data storage unit 14 .
- the reference list generator 15 refers to the read merge point cloud data Bn to generate reference list data Rn .
- the reference list generation unit 15 adds " Write the time “t 2 ” written in the “merge reference time” item.
- the reference list generation unit 15 adds, in the item of "reference data”, reference data "0001", " File 1” are written in chronological order. As a result, the reference list generator 15 generates reference list data R2 .
- the reference list generation unit 15 After generating the reference list data Rn , the reference list generation unit 15 writes the generated reference list data Rn to the reference list storage unit 16 for storage. After finishing writing the reference list data Rn to the reference list storage unit 16, the reference list generation unit 15 outputs a reference list generation end signal to the merge point cloud data generation unit 13 (step Sa8).
- the reference list storage unit 16 will store the reference list data R 1 to R N
- the merge point cloud data storage unit 14 will store the last data generated by the merge point cloud data generation unit 13 .
- the merged point cloud data BN will be stored.
- the point cloud data acquisition unit 11 receives an operation of the user of the point cloud data processing device 1 and acquires one new point cloud data AM specified by the user from the measuring device.
- the point cloud data acquisition unit 11 writes the acquired point cloud data AM to the point cloud data storage unit 12 for storage.
- the merge point cloud data generation unit 13 generates generation instruction data including individual merge information associated with the file name of the newly added point cloud data AM in response to an operation by the user of the point cloud data processing device 1. Take in (step Sa1). The merge point cloud data generation unit 13 determines whether the information included in the fetched generation instruction data is information indicating all merging or information indicating individual merging (step Sa2).
- the generation instruction data includes information indicating individual merging. Therefore, the merge point cloud data generation unit 13 determines that the information included in the generation instruction data is information indicating individual merging. (step Sa2, individual merge).
- the merge point cloud data generation unit 13 reads from the point cloud data storage unit 12 the point cloud data AM corresponding to the file name associated with the information indicating the individual merge included in the generation instruction data.
- the merging point cloud data generation unit 13 reads out the merging point cloud data BN stored in the merging point cloud data storage unit 14, and sets the time written in the “merge reference time” item of the read merge point cloud data BN . read out.
- the time written in the "merge reference time” item of the merge point cloud data BN is " tN ".
- the merged point cloud data generator 13 reads the measurement time data included in the point cloud data AM .
- the time indicated by the measurement time data included in the point cloud data A M is "t M ".
- the merge point cloud data generation unit 13 determines whether the merge reference time " tN " of the merge point cloud data BN is before the time " tM " indicated by the measurement time data of the point cloud data AM , That is, it is determined whether or not t M ⁇ t N (step Sa9).
- the point cloud data AM newly added to the point cloud data storage unit 12 is point cloud data generated at a time later than time tN . If the point cloud data AM generated at the time before tN is stored in the measuring device, the point cloud data AM generated at the time before tN is stored in the point cloud data storage unit 12 It may be recorded. In such a case, it is necessary to regenerate the reference list data stored in the reference list storage unit 16 . Therefore, the merge point cloud data generation unit 13 changes the merge reference time " tN " of the merge point cloud data BN to the time " tM " indicated by the measurement time data of the point cloud data AM included in the generation instruction data.
- step Sa9 No
- the measurement time is earlier than the merge reference time of the latest merged point cloud data BN .
- An error message indicating that the point cloud data has been added is output to urge the user to regenerate the reference list data (step Sa10).
- the user refers to the output error message and determines that it is necessary to generate the reference list data again, the user provides the merge point cloud data generation unit 13 with generation instruction data including information indicating all merging. .
- the processing of steps Sa3 to Sa8 is performed, and the correct chronological order reference logic list data is generated by adding the point cloud data AM .
- the point cloud data A M is deleted from the point cloud data storage unit 12 .
- the merge point cloud data generation unit 13 determines that the merge reference time " tN " of the merge point cloud data BN is before the time " tM " indicated by the measurement time data of the point cloud data AM , that is, If it is determined that tM ⁇ tN (step Sa9, Yes), the merge point cloud data BN and the point cloud data AM are merged to generate new merge point cloud data BM (step Sa11 ).
- the merge point cloud data generation unit 13 After generating the merge point cloud data BM, the merge point cloud data generation unit 13 deletes the merge point cloud data BN stored in the merge point cloud data storage unit 14, and merges the generated merge point cloud data BM . Write to the point cloud data storage unit 14 . As a result, the merge point cloud data stored in the merge point cloud data storage unit 14 is replaced with the merge point cloud data BM from the merge point cloud data BN . After completing the writing of the merge point cloud data BM to the merge point cloud data storage unit 14, the merge point cloud data generation unit 13 outputs a reference list generation start signal to the reference list generation unit 15 (step Sa12).
- the reference list generation unit 15 When the reference list generation start signal is received from the merge point cloud data generation unit 13 , the reference list generation unit 15 reads the merge point cloud data BM from the merge point cloud data storage unit 14 .
- the reference list generation unit 15 refers to the read merge point cloud data BM and generates reference list data RM by the same procedure as the processing in steps Sa5 and Sa8. After generating the reference list data RM , the reference list generation unit 15 writes and stores the generated reference list data RM in the reference list storage unit 16 (step Sa13), and then terminates the process.
- FIG. 9 is a flow chart showing the flow of processing by the point cloud data generator 17. As shown in FIG. It is assumed that the processing shown in FIG. 5 has been completed before the processing shown in FIG. 9 is performed, and that the reference list storage unit 16 has stored at least N pieces of reference list data R 1 to R N .
- the point cloud data generation unit 17 receives the operation of the user of the point cloud data processing device 1 and takes in the time designation data designated by the user (step Sb1).
- the point cloud data generation unit 17 imports the reference list data Ri in which the time that matches the time indicated by the imported time designation data or the time that is closest to the time is written in the “merge reference time” item. However, it is detected from the reference list storage unit 16 as reference list data corresponding to the time indicated by the time designation data (step Sb2).
- i is any integer from 1 to N. Note that if there are two or more pieces of reference list data R i in which the time closest to the time indicated by the time designation data is written in the "merge reference time" item before and after the time indicated by the time designation data, The point cloud data generation unit 17 may select one of them, or may output a message to prompt the user to select one.
- the time indicated by the time designation data fetched by the point cloud data generation unit 17 is "t 2 ", and the point cloud data generation unit 17 retrieves the "merge data” shown in FIG.
- reference list data R2 in which " t2 " is written in the item "reference time” is detected.
- the point cloud data generation unit 17 sequentially selects the reference data written in the “reference data” item of the detected reference list data Ri from the first line to the last line, and refers to the selected reference data in the order of the selected reference data.
- Point cloud data corresponding to each of the data are read out from the point cloud data storage unit 12 .
- the point cloud data generator 17 acquires the point cloud data arranged in chronological order (step Sb3).
- the point cloud data generation unit 17 first generates the point cloud data A1 whose file name is "Pointcloud_0001" corresponding to the reference data "0001" in the first line of the "reference data” item. are read out from the point cloud data storage unit 12 at the same time.
- the point cloud data generation unit 17 stores the point cloud data A2 whose file name is “Pointcloud_File1” corresponding to the reference data “File1” in the second line of the “reference data” item. read from
- the point cloud data generation unit 17 merges the read point cloud data in chronological order, similarly to the merge processing performed by the merge point cloud data generation unit 13, and generates point cloud data corresponding to the time indicated by the time designation data. Generate (step Sb4).
- the point cloud data generator 17 reads out the point cloud data A1 and the point cloud data A2 as shown in FIG. 10(b).
- the point p12 of the point cloud data A1 exists in a range of a predetermined size centered on the position of the point p22 of the point cloud data A2 .
- the point cloud data generation unit 17 selects the later point p22 in chronological order as a merging target, as shown in FIG. , point cloud data including point p 11 , point p 13 , point p 21 , point p 22 , and point p 23 is generated as point cloud data corresponding to time t 2 .
- the point cloud data storage unit 12 stores a plurality of point cloud data measured at arbitrary measurement times at a plurality of measurement positions in a three-dimensional space.
- the merge point cloud data generation unit 13 integrates the point cloud data corresponding to any one measurement time and the point cloud data measured before the measurement time in chronological order.
- Merge point cloud data including data, that is, coordinate data indicating the position of a point, and reference data that is assigned to each location data and specifies the point cloud data in which the point indicated by the location data was included are generated in chronological order based on the point cloud data stored in the point cloud data storage unit 12 .
- the reference list generating unit 15 selects different reference data from the reference data included in the merged point cloud data generated by the merged point cloud data generating unit 13 in chronological order, and generates a reference list including the reference data selected in chronological order. Data is generated for each measurement time of a plurality of point cloud data.
- the order of merging can be specified. Therefore, in the point cloud data processing device 1 of the first embodiment, it is possible to shorten the time required to integrate a plurality of point cloud data acquired at arbitrary times and arbitrary measurement positions.
- the point cloud data processing device 1 of the first embodiment described above has the following advantages. As described above, data indicating the locations of points in arbitrary regions at arbitrary times can be generated by merging a plurality of point cloud data. However, in this case, it is not efficient to store data indicating the locations of all combinations. In addition, sensor data such as point cloud data accumulates over time, and the volume continues to increase. After extracting and performing necessary processing, the sensor data will be discarded. Regarding the merge point cloud data generated by the point cloud data processing apparatus 1 of the first embodiment, from the viewpoint of such a general way of handling sensor data in the past, the merge point at any time in any region It is common practice to discard the original point cloud data after generating the cloud data.
- the point cloud data processing apparatus 1 of the first embodiment described above does not store data indicating the location of points in an arbitrary region at an arbitrary time, that is, the merged point cloud data itself, but instead stores the original data.
- the relationship of the point cloud data constituting the data indicating the location of points in an arbitrary area at an arbitrary time is stored as reference list data.
- the desired point cloud data can be retrieved from the saved original point cloud data.
- the fact that it is possible to generate data also has an advantage over the conventional way of thinking.
- FIG. 11 is a block diagram showing the configuration of a point cloud data processing device 1a according to the second embodiment.
- the point cloud data processing device 1a includes a point cloud data acquisition unit 11, an encoding processing unit 18, a point cloud data storage unit 12a, a merge point cloud data generation unit 13a, a merge point cloud data storage unit 14a, a reference list generation unit 15a, A reference list storage unit 16, a point cloud data generation unit 17a, and a decoding processing unit 19 are provided.
- the encoding processing unit 18 is, for example, an encoder that generates encoded point cloud data by octatree encoding the point cloud data.
- the point cloud data acquisition unit 11 acquires and outputs the definition data according to the acquired definition data.
- Octtree encoding processing is performed on the point cloud data.
- FIG. 12A shows a three-dimensional space indicated by reference numeral 100 (hereinafter referred to as a three-dimensional space 100) is divided into cubes of the same size without gaps. Each of these cubes is hereinafter referred to as a tile.
- FIG. 12A shows the three-dimensional space 100 with 36 4 ⁇ 4 ⁇ 4 tiles, it is assumed that the tiles continue infinitely in the vertical and horizontal directions.
- the positions of the tiles are represented, for example, by coordinate values of a three-dimensional coordinate system of the X-axis, Y-axis, and Z-axis determined in advance in the three-dimensional space 100 .
- the position of one predetermined vertex of a cube, which is the shape of the tile, or the position of the center of the cube is defined as the tile reference position indicating the position of the tile.
- the coordinate data indicating the tile reference position of each tile hereinafter referred to as tile reference position data
- the size of the tile that is, one of the cubes forming one tile.
- Data indicating the length of the side are defined.
- the encoding processing unit 18 can specify the tile reference position for each tile and the size of one tile by referring to the definition data.
- Each point included in the point cloud data output by the point cloud data acquisition unit 11 exists at any position in the three-dimensional space 100, and the range in which this point cloud data exists is indicated by reference numeral 40.
- This point cloud data is hereinafter referred to as the point cloud data 40.
- the encoding processing unit 18 selects a tile group 101 including all or part of the range of the point cloud data 40, as shown in FIG. 12(b). Since the point cloud data 40 has various shapes, the shape of the tile group 101 selected by the encoding processing unit 18 is a shape corresponding to the shape of the point cloud data 40 . As shown in FIG. 12(b), when the tile group 101 has a shape in which the top three tiles are missing from a 3 ⁇ 3 ⁇ 3 tile, the tile group 101 includes 24 tiles. become.
- the encoding processing unit 18 performs octatree encoding described below on each of the 24 tiles included in the tile group 101 .
- the tile 101-1 is divided into 8 equally sized cubes by halving each side of .
- Each cube obtained by dividing a tile into eight is hereinafter referred to as a block, and each cube obtained by further dividing a block described below into eight is also referred to as a block.
- the tile 101-1 is divided into eight blocks, blocks 101-1-1 to 101-1-8.
- the encoding processing unit 18 further divides the blocks 101-1-1 to 101-1-8, which include any point of the point cloud data 40, into eight. For example, when block 101-1-5 includes any point of point cloud data 40, encoding processing unit 18 further converts block 101-1-5 to , divided into eight. In this way, the encoding processing unit 18 includes the points of the point cloud data 40 until one point is included in the block and the position of the one point becomes the position of the representative point of the block. It repeats recursively dividing the block into eight.
- the position of the representative point of the block is, for example, the position of the center of the block.
- the encoding processing unit 18 further divides the block 101-1-5 into eight blocks, which are included in block 101-1-5-3 which is one of the eight divided blocks. Assume that the points become one, and the position of the one point becomes the position of the representative point of block 101-1-5-3. In this case, the positions of points included in block 101-1-5-3 are determined by an octree structure rooted at root node 201-1 corresponding to tile 101-1, as shown in FIG. can be expressed.
- Block 101-1-5-3 is block 101-1-5, which is the fifth block of tile 101-1, and is also the third block of block 101-1-5. If this position is represented by an 8-bit string with the bit of the position of the block where the point exists as 1, the internal node 201-1-5 corresponding to the block 101-1-5 on the first layer is the 5th bit. It is represented by [00010000] where the bit is 1. The leaf node 201-1-5-3 corresponding to the block 101-1-5-3 in the second layer is represented by [00000100] with 1 in the third bit. If [00010000] of the first layer is expressed in decimal, it becomes "16". If [00000100] in the second layer is expressed in decimal, it becomes "4".
- the encoding processing unit 18 performs variable-length encoding on any combination of values from 1 to 255 in order from the first layer, thereby obtaining encoded data (hereinafter referred to as octatree encoding) for the tile 101-1. (referred to as branch tree encoded data).
- octatree encoding encoded data for the tile 101-1.
- branch tree encoded data encoded data for the tile 101-1.
- the encoding processing unit 18 can generate encoded point cloud data for the point cloud data 40 by performing the above-described octree encoding on all tiles included in the tile group 101 .
- the encoded point cloud data generated by the encoding processing unit 18 is data in which the amount of data is reduced compared to the coordinate data representing the points of the point cloud data 40 output by the point cloud data acquisition unit 11 .
- the encoding processing unit 18 converts the encoded point cloud into the data format shown in FIG. Generate data C n .
- n is any integer from 0 to N.
- the encoded point cloud data Cn has items of "measurement time”, "point cloud data header information”, “tile header information”, and "encoded data”.
- the time indicated by the measurement time data included in the point cloud data An is written in the "measurement time” item.
- Data indicating the range of the tile group including all or part of the range of the point cloud data 40 is written in the item of "point cloud data header information".
- the encoding processing unit 18 includes tile identification information such as "tile C n,1 " that can identify each tile that has been octree-encoded, and the tile identification information is written in association with tile reference position data such as (x T-01 , y T-01 , z T-01 ), which are coordinate values indicating the position of the tile indicated by .
- Octtree-encoded data for each tile that is octatree-encoded by the encoding processing unit 18 is written in the “encoded data” item.
- Each piece of octree - encoded data is associated with the tile identification information in the item of "tile header information". By specifying , it is possible to detect the octree-encoded data corresponding to the "tile C n,1 " in the "encoded data” item.
- the point cloud data storage unit 12a stores the encoded point cloud data generated by the encoding processing unit 18. As shown in FIG. 14, the point cloud data storage unit 12a stores a plurality of encoded point cloud data in file format. FIG. 14 shows an example in which the point cloud data storage unit 12 stores encoded point cloud data files with file names "Coded_DATA1", “Coded_0001", and "Coded_File1".
- Coded_DATA1 is the file name of the encoded point cloud data obtained by octatree-encoding the point cloud data whose file name is "Pointcloud_DATA1" in the first embodiment
- coded_0001 is the first The point cloud data whose file name in the embodiment is "Pointcloud_0001” is the file name of the encoded point cloud data obtained by octatree encoding
- coded_File1 is the file name of the first embodiment.
- ” is the file name of the coded point cloud data that has been octree-encoded.
- the merge point cloud data generation unit 13a When the merge point cloud data generation unit 13a takes in the generation instruction data including information indicating all merging, it is written in the “measurement time” item of all the encoded point cloud data stored in the point cloud data storage unit 12a. Arrange the encoded point cloud data in chronological order with reference to the current time.
- the merge point cloud data generation unit 13a repeats merging encoded point cloud data one by one in chronological order with respect to the first encoded point cloud data in chronological order, and merges one encoded point cloud data. Merge point cloud data is generated each time.
- the merge point cloud data generation unit 13a takes in the generation instruction data including information indicating individual merging associated with the file name of one piece of encoded point cloud data
- the merge point cloud data generation unit 13a adds the generation instruction to the already generated merge point cloud data.
- New merge point cloud data is generated by merging encoded point cloud data with file names associated with information indicating individual merging included in the data.
- the merge point cloud data storage unit 14a stores the merge point cloud data generated by the merge point cloud data generation unit 13a.
- the reference list generation unit 15a generates reference list data from the merge point cloud data stored in the merge point cloud data storage unit 14a.
- the data format of the reference list data generated by the reference list generator 15a is the same as the data format of the reference list data generated by the reference list generator 15 of the first embodiment shown in FIG.
- the point cloud data generation unit 17a receives the operation of the user of the point cloud data processing device 1a and takes in the definition data, the time specification data, and the range specification data specified by the user.
- the point cloud data generation unit 17a detects reference list data corresponding to the time indicated by the captured time designation data from the reference list storage unit 16.
- the point cloud data generation unit 17a reads the encoded point cloud data from the point cloud data storage unit 12a in chronological order based on the reference data written in the "reference data" item of the detected reference list data.
- the point cloud data generation unit 17a merges encoded point cloud data including points within the range indicated by the range designation data among the read encoded point cloud data according to the imported definition data.
- the point cloud data generation unit 17a merges the encoded point cloud data to be merged in chronological order to generate encoded point cloud data corresponding to the time specified by the time specification data and the range indicated by the range specification data. .
- the decoding processing unit 19 is, for example, a decoder that decodes the original point cloud data from the encoded point cloud data that has been octree-encoded.
- the decoding processing unit 19 receives the user's operation of the point cloud data processing device 1a and imports the definition data specified by the user, the decoding processing unit 19 decodes the encoded point cloud generated by the point cloud data generation unit 17a in accordance with the definition data thus imported. A decoding process is performed to restore the original point cloud data from the data.
- point cloud data is merged in the first embodiment
- point cloud data is merged in the second embodiment.
- the object to be merged is common in that it is data indicating the locations of points in the point cloud data.
- the process of merging the coordinate data indicating the position of the data point was performed.
- the data indicating the range written in the item of "point cloud data header information" of the encoded point cloud data and the data written in the item of "tile header information” A process of merging the tile identification information, the tile reference position data, and the octree encoded data written in the "encoded data" item is performed.
- the merge point cloud data generation unit 13a reads all encoded point cloud data, that is, N+1 encoded point cloud data from the point cloud data storage unit 12a, reads out
- the time written in the item of "measurement time" of the N+1 pieces of encoded point cloud data is referred to, and the encoded point cloud data are arranged in chronological order.
- the N+1 pieces of encoded point cloud data arranged in chronological order are assumed to be encoded point cloud data C 0 , C 1 , . . . , CN .
- the encoded point cloud data C 0 and C 1 are the encoded point cloud data C 0 and C 1 shown in FIG. 15(a) and t 1 ⁇ t 0 . It is assumed that the file names of the encoded point cloud data C 0 and C 1 are "Coded_DATA1" and "Coded_0001", respectively.
- the merge point cloud data generator 13a merges the encoded point cloud data C 0 and C 1 to generate the merge point cloud data D 1 shown in FIG. 15(b). process.
- the merge point cloud data D1 includes items of "merge reference time", "point cloud data header information”, “tile header information”, “reference data”, and "encoded data”. have
- the "tile header information” item includes the tile identification information and tile reference position data written in the "tile header information” item of the encoded point cloud data C0 , and the "tile header information" of the encoded point cloud data C1 .
- the tile identification information and tile reference position data written in the item "header information” are written in chronological order.
- each of the tiles C0,1 , C1,1 , C1,2 , and C1,3 specified by the tile identification information is included in which encoded point cloud data file.
- Reference data which is data that can identify whether the In FIG. 15(b), the characters "DATA1" and "0001" which are the remaining characters excluding the common character "Coded_" in the file names of the encoded point cloud data C0 and C1 are the reference data. shows an example written as The reference data may be any data as long as it is possible to specify which encoded point cloud data file it was included in. For example, the file name of the encoded point cloud data All of them may be used as reference data.
- the "encoded data” item includes the octree encoded data written in the "encoded data” item of the encoded point cloud data C0 and the “encoded data” of the encoded point cloud data C1 . ” is written in the octree-encoded data.
- the reference list generator 15a In the process of step Sa5 in the second embodiment, the reference list generator 15a generates the following from the "merge reference time” item and the "reference data” item of the merged point cloud data D1 as shown in FIG. 15(c). Processing for generating reference list data R1 is performed. As shown in FIG. 15(c), the reference list generation unit 15a writes the data format of the reference list data into the item of "reference time to merge” and the item of "reference time to merge” of the merged point cloud data D1 . Writes the time The reference list generation unit 15a adds different data selected from the "tile header information" item of the merged point cloud data D1 to the "reference data" item by the same procedure as the reference list generation unit 15 of the first embodiment. Write the reference data in chronological order.
- the reference list generator 15a generates reference list data R1 . That is, in the reference list data R1 generated by the reference list generator 15a, information is recorded as to which coded point cloud data includes the point represented by the merge point cloud data D1 at time t1 . It is supposed to be
- the loops La1s to La1e in the second embodiment are repeated for each of the encoded point cloud data C 2 to C N .
- the merge point cloud data generator 13a merges the encoded point cloud data Cn and the merge point cloud data Dn-1 to generate the merge point cloud data Dn . It becomes the process to generate.
- the merging point cloud data generation unit 13a adds the "tile header information" of the encoded point cloud data Cn to each of the "tile header information” and “encoded data” items of the merge point cloud data Dn -1. and “encoded data” items are added in chronological order.
- the merge point cloud data generator 13a writes the reference data corresponding to the added tile identification information and tile reference position data in the corresponding row of the "reference data” item.
- the merged point cloud data generation unit 13a generates data indicating the range written in the item of "point cloud data header information" of the merged point cloud data Dn -1 for the item of "point cloud data header information".
- the merge point cloud data generating unit 13a writes the time written in the item of "measurement time” of the encoded point cloud data Cn to the item of "reference time of merge”. Thereby, the merge point cloud data generator 13a generates new merge point cloud data Dn .
- the merge point cloud data generation unit 13a merges the encoded point cloud data C0 and the encoded point cloud data C1 in the process of step Sa4, and when the merge point cloud data D When merging n ⁇ 1 and encoded point cloud data Cn , the tile reference position data written in the “tile header information” item of the two data to be merged may indicate the same position.
- the merge point cloud data generation unit 13a generates the tile reference position data written in the "tile header information" item of the later data in chronological order, and the tile identification corresponding to the tile reference position data. Information is to be merged.
- the merging point cloud data generating unit 13a further selects the octree-encoded data corresponding to the tile identification information to be merged as a merging target.
- the merging point cloud data generation unit 13a generates merging point cloud data so as to include tile reference position data to be merged, tile identification information, and octree-encoded data.
- the tile reference position data of the tile C 1,1 of the encoded point cloud data C 1 in FIG. 15A is not (x T-02 , y T-02 , z T-02 ), Assume that it is (x T-01 , y T-01 , z T-01 ) which is the same as the tile reference position data of tile C 0,1 of data C 0 .
- the merge point cloud data D1 generated by the merge point cloud data generating unit 13a includes tile identification information of tiles C0 and C1 and tile reference information corresponding to the tile identification information in the item of "tile header information".
- Position data (x T-01 , y T-01 , z T-01 ) is not included, reference data "DATA1" in the “reference data” item is not included, and "encoded data” It will not contain the (octree-encoded data of tile C 0,1 ) of the item.
- the item of "point cloud data header information” is (data indicating the range of tiles C1,1 , C1,2 , C1,3 ).
- the merge point cloud data generation unit 13a converts the merge point cloud data D n ⁇ 1 stored in the merge point cloud data storage unit 14a into the newly generated merge point cloud data D It becomes the process of replacing with n .
- the process of step Sa8 in the second embodiment is a process in which the reference list generation unit 15a generates reference list data Rn from the merge point cloud data Dn stored in the merge point cloud data storage unit 14a. This processing is performed by the same procedure as the processing in which the merging point cloud data generator 13a generates the reference list data R1 from the merging point cloud data D1 .
- the point cloud data storage unit 12a When the user of the point cloud data processing device 1a gives generation instruction data including information indicating individual merging to the merge point cloud data generating unit 13a, the point cloud data storage unit 12a newly stores the information indicating individual merging.
- the file name of the added encoded point cloud data CM is associated.
- the encoded point cloud data CM is, for example, encoded point cloud data obtained by subjecting the point cloud data AM to octree encoding by the encoding processing unit 18 .
- the merging point cloud data generation unit 13a determines that the time written in the item of "merge reference time" of the merging point cloud data DN is the encoded point cloud data CM. It is determined whether or not the time is before the time written in the item of "measurement time".
- the processing of steps Sa11 to Sa13 in the second embodiment is performed in the same procedure as the processing of steps Sa6 to Sa8 in the above-described second embodiment.
- the merge point cloud data generation unit 13a generates the merge point cloud data DN stored in the merge point cloud data storage unit 14a and the encoded point cloud data CM .
- a process of merging to generate merge point cloud data DM is performed.
- the merge point cloud data generator 13a converts the merge point cloud data DN stored in the merge point cloud data storage unit 14a into the newly generated merge point cloud data DM .
- the reference list generator 15a performs a process of generating reference list data RM from the merged point cloud data DM .
- FIG. 16 and 17 are flowcharts showing the flow of processing by the point cloud data generation unit 17a and the decoding processing unit 19.
- FIG. 18 is a flow chart showing the flow of a subroutine of tile merge processing performed in the processing shown in FIGS. 16 and 17.
- FIG. 16 and 17 are flowcharts showing the flow of a subroutine of tile merge processing performed in the processing shown in FIGS. 16 and 17.
- the reference list storage unit 16 stores at least N pieces of reference list data. Assume that R 1 to R N are stored.
- the point cloud data generation unit 17a and the decoding processing unit 19 receive the user's operation of the point cloud data processing device 1a and take in the definition data specified by the user.
- the point cloud data generation unit 17a further receives the user's operation of the point cloud data processing device 1a, and takes in the time designation data and range designation data designated by the user (step Sc1).
- the point cloud data generation unit 17a imports the reference list data Ri in which the time that matches the time indicated by the imported time designation data or the time that is closest to the time is written in the item of "merge reference time". However, it is detected from the reference list storage unit 16 as reference list data corresponding to the time indicated by the time designation data (step Sc2).
- i is any integer from 1 to N. Note that if there are two or more pieces of reference list data R i in which the time closest to the time indicated by the time designation data is written in the "merge reference time" item before and after the time indicated by the time designation data, The point cloud data generation unit 17a may select one of them, or may output a message to prompt the user to select one.
- the time indicated by the time designation data fetched by the point cloud data generation unit 17a is "t 2 ", and the point cloud data generation unit 17a retrieves the "merge data” shown in FIG.
- reference list data R2 in which " t2 " is written in the item "reference time” is detected.
- the point cloud data generation unit 17a reads out the encoded point cloud data corresponding to the reference data written in the "reference data" item of the detected reference list data Ri from the point cloud data storage unit 12a in chronological order ( Step Sc3).
- Encoded point cloud data read out from the point cloud data storage unit 12a by the point cloud data generation unit 17a in chronological order are referred to as encoded point cloud data C i,0 , C i,1 , . . . , C i,K .
- K is an integer of 0 or more.
- the point cloud data generation unit 17a creates the encoded point cloud data C0 whose file name is "Coded_DATA1” corresponding to the reference data "DATA1" in the first line of the "reference data” item. is first read from the point cloud data storage unit 12a. Next, the point cloud data generator 17a stores the encoded point cloud data C1 whose file name is "Coded_0001” corresponding to the reference data "0001" in the second line of the item "reference data”. Read from the part 12a.
- the point cloud data generation unit 17a further stores the encoded point cloud data C2 whose file name is "Coded_File1" corresponding to the reference data "File1" on the third line of the item "reference data” in the point cloud data storage unit. 12a.
- the encoded point cloud data C 0 and C 1 are the data shown in FIGS. 19(b) and (c), respectively, and the encoded point cloud data C 2 is the data shown in FIG. 20(b).
- the point cloud data generator 17a initializes k to "0" (step Sc4).
- the point cloud data generator 17a selects the encoded point cloud data C i,k and C i,k+1 (step Sc5).
- the point cloud data generation unit 17a generates the code based on the data indicating the range written in the "point cloud data header information" item of each of the selected encoded point cloud data Ci ,k , Ci,k+1 . It is determined whether or not a part or the whole of each range of the point cloud data C i,k , C i,k+1 exists in the range indicated by the range designation data (Step Sc6).
- Step Sc6 When the point cloud data generation unit 17a determines that part and all of both ranges of the encoded point cloud data C i,k , C i,k+1 do not exist in the range indicated by the range designation data ( Step Sc6, both do not exist), and the value obtained by adding "2" to k is set as a new k (step Sc7).
- the case where both the ranges of the encoded point cloud data C i,k , C i,k+1 and all of them do not exist in the range indicated by the range designation data means that the encoded point cloud data C There is no overlapping range between the range of i, k and the range indicated by the range designation data, and the range of the encoded point cloud data Ci, k+1 and the range indicated by the range designation data overlap. does not exist.
- the point cloud data generation unit 17a determines whether or not the new k satisfies k>K (step Sc8). When the point cloud data generation unit 17a determines that k>K (step Sc8, Yes), it indicates that there is no target, that is, there is no point cloud data corresponding to both the time designation data and the range designation data. A message to that effect is output (step Sc9), and the process ends.
- step Sc8 No when the point cloud data generation unit 17a determines that k>K is not satisfied (step Sc8, No), the process proceeds to step Sc5, and in chronological order, the following two encoded point cloud data Choose C i,k , C i,k+1 .
- step Sc6 the point cloud data generation unit 17a determines whether or not part or all of the range of the encoded point cloud data Ci,K exists as indicated by the range designation data. Judgment processing will be performed.
- step Sc10 If the point cloud data generation unit 17a determines that part or all of the range of the encoded point cloud data Ci , K exists in the range indicated by the range designation data, the process proceeds to step Sc10. . On the other hand, when the point cloud data generation unit 17a determines that part or all of the range of the encoded point cloud data Ci , K does not exist in the range indicated by the range designation data, the process proceeds to step Sc7. Go ahead and then the process will end.
- step Sc6 the point cloud data generation unit 17a converts a part or all of the range of any one of the encoded point cloud data C i,k , C i,k+1 to the range indicated by the range designation data. If it is determined to exist (step Sc4, one exists), the coded point cloud data existing in the range indicated by the range designation data is set as the coded point cloud data E (step Sc10). After that, the process proceeds to the process of step Sc13 in FIG. 17, as indicated by connection point A in FIGS.
- step Sc6 the point cloud data generation unit 17a determines whether part or all of both ranges of the encoded point cloud data C i,k and C i,k+1 exist in the range indicated by the range designation data. (step Sc4 , both exist), the subroutine shown in FIG . (Step Sc11).
- the tile merge processing for the encoded point cloud data C i,k , C i,k+1 will be described with reference to the flowchart shown in FIG. 18 .
- the point cloud data generation unit 17a generates the tile header reference position data of the item “tile header information” of the encoded point cloud data C i,k and C i,k+1 which are two encoded point cloud data to be processed, Based on the size of the tiles indicated by the definition data, the combination of the tile identification information of the tiles whose range is partly or wholly present in the range indicated by the range specification data and the tile reference position data is encoded as a coding point. All are detected from the items of "tile header information" of each of the group data C i,k and C i,k+1 (step Sd1).
- the point cloud data generation unit 17a determines whether or not there is a combination of the detected tile identification information and the tile reference position data that has the same position indicated by the tile reference position data (step Sd2). ). When the point cloud data generation unit 17a determines that there is a combination in which the positions indicated by the tile reference position data are the same (step Sd2, Yes), among the combinations in which the positions indicated by the tile reference position data are the same,
- the coded point cloud data that comes later in order that is, the combination of the tile identification information of the coded point cloud data Ci,k+1 and the tile reference data, and the octree-coded data corresponding to the tile identification information
- Encoded point cloud data C i,k and encoded point cloud data C i,k+1 are merged to generate new encoded point cloud data (step Sd3).
- step Sd2 when the point cloud data generation unit 17a determines that there is no combination in which the positions indicated by the tile reference position data are the same (step Sd2, No), the encoded point cloud data Ci,k and the encoded points The group data Ci,k+1 are merged to generate new encoded point group data (step Sd4).
- the point cloud data generating unit 17a adds the item of "measurement time” of the encoded point cloud data Ci,k+1 that follows in chronological order to the item of "measurement time” of the newly generated encoded point cloud data. (step Sd5), and the subroutine processing ends.
- the point cloud data generation unit 17a sets the encoded point cloud data newly generated in the processing of the subroutine of step Sc11 as the encoded point cloud data E (step Sc12). After that, the process proceeds to the process of step Sc13 in FIG. 17, as indicated by connection point A in FIGS.
- the point cloud data generation unit 17a detects tile C 0,1 , tile C 1,1 , and tile C 1,2 in the process of step Sd1, but does not detect tile C 1,3 . It will be.
- step Sd4 the point cloud data generation unit 17a determines "No ” will be judged.
- step Sd4 the point cloud data generation unit 17a generates the tile C0,1 of the encoded point cloud data C0 and the tiles C1,1 and C1 of the encoded point cloud data C1. , 2 are merged and then the process of step Sd5 is performed to generate the encoded point cloud data E shown in FIG. 20(a).
- the item “measurement time” contains “t 1 ” written in the “measurement time” item of the later encoded point cloud data C 1 is written.
- Data indicating the ranges of the tiles C 0,1 , C 1,1 , and C 1,2 detected by the point cloud data generation unit 17a in the process of step Sd1 is written in the item “point cloud data header information”.
- tile identification information of each of the tiles C0,1 , C1,1 , and C1,2 detected by the point cloud data generation unit 17a in the process of step Sd1, and the tile reference position data is written.
- Octtree-encoded data corresponding to the tile identification information of each of the tiles C 0,1 , C 1,1 , and C 1,2 is written in the “encoded data” item.
- the point cloud data generation unit 17a sets a value obtained by adding "1" to k as a new "k” (step Sc13).
- the point cloud data generator 17a determines whether the new k satisfies k>K (step Sc14). When the point cloud data generation unit 17a determines that k>K is not satisfied (step Sc14, No), the item of "point cloud data header information" of the encoded point cloud data Ci,k selected based on the new k
- the data indicating the range written in it is determined whether part or all of the range of the encoded point cloud data Ci,k exists in the range indicated by the range designation data ( Step Sc15).
- step Sc15, No If the point cloud data generation unit 17a determines that part or all of the range of the encoded point cloud data Ci,k does not exist in the range indicated by the range designation data (step Sc15, No), the process to step Sc13. On the other hand, if the point cloud data generation unit 17a determines that part or all of the range of the encoded point cloud data Ci,k exists in the range indicated by the range designation data (step Sc15, Yes ), which is the processing of the subroutine shown in FIG. 18, the tile merge processing for the encoded point cloud data C i,k , E is performed (step Sc16). The point cloud data generation unit 17a sets the encoded point cloud data newly generated in the processing of the subroutine of step Sc16 as the encoded point cloud data E (step Sc17). After that, the process proceeds to the process of step Sc13.
- the point cloud data generation unit 17a generates tiles C 0,1 , C 1,1 , and C 1,2 of the encoded point cloud data E and a tile of the encoded point cloud data C 2 in the process of step Sd1. C 2,1 and C 2,2 will be detected.
- the point cloud data generation unit 17a determines that the detected position indicated by the reference position data of the tile C 1,1 and the position indicated by the tile reference position data of the tile C 2,1 are both (x T-02 , y T-02 , z T-02 ), the determination of "Yes" is made in the process of step Sd2. In the subsequent processing of step Sd3, the point cloud data generation unit 17a generates the encoded point cloud data E and the encoded point cloud so as to include the later tile C 2,1 in chronological order. After merging with the data C2 , the process of step Sd5 is performed to generate the encoded point cloud data E shown in FIG. 20(c).
- the encoded point cloud data E shown in FIG. 20(a) and the encoded point cloud data C1 shown in FIG. 20(b) are merged by tile merge processing.
- the item of "measurement time” is written with " t2 " written in the item of "measurement time” of the encoded point cloud data C2 that comes later in chronological order.
- the item "point cloud data header information” includes tiles C0,1 , C1,1 , C1,2 , C2,1 , C2 , 2 , data indicating the ranges of the remaining tiles C 0,1 , C 1,2 , C 2,1 , C 2,2 excluding the tile C 1,1 that was not subject to merging in the process of step Sd3 is written.
- Tile identification information for each of the tiles C 0,1 , C 1,2 , C 2,1 , and C 2,2 and tile reference position data are written in the “tile header information” item.
- Octtree encoded data corresponding to the tile identification information of each of the tiles C 0,1 , C 1,2 , C 2,1 , and C 2,2 is written in the “encoded data” item.
- step Sc14 when the point cloud data generation unit 17a determines that k>K (step Sc14, Yes), the point cloud data generation unit 17a decodes the last generated encoded point cloud data E. output to the conversion processing unit 19.
- the decoding processing unit 19 takes in the encoded point cloud data E output by the point cloud data generation unit 17a, and performs decoding processing on the taken in encoded point cloud data E according to the definition data. By performing the decoding process, the coordinate values of the X-axis, Y-axis, and Z-axis of each point indicated by the octree-encoded data included in the encoded point cloud data E are restored. Become.
- the decoding processing unit 19 generates point cloud data including the restored X-axis, Y-axis, and Z-axis coordinate values of each point and the time written in the "measurement time” item of the encoded point cloud data. and outputs the generated point cloud data to the outside (step Sc18).
- the point cloud data output to the outside becomes point cloud data corresponding to the time designation data and the range designation data.
- the point cloud data storage unit 12a encodes each point for each tile partially or wholly included in the point cloud data range.
- the encoded point cloud data is tile reference position data indicating the position of the tile containing the points included in the point cloud data and is location data. It has tile header information that contains location data.
- the point cloud data processing device 1a of the second embodiment has the following effects in addition to the effects of the point cloud data processing device 1 of the first embodiment. That is, in the point cloud data processing device 1a, the encoded point cloud data obtained by octree-encoding the point cloud data is subjected to merge processing. Since the encoded point cloud data is octree-encoded, it is possible to specify the range in which points exist in units of tiles. Therefore, the point cloud data processing device 1a narrows down the encoded point cloud data to be merged using the reference list data corresponding to the time indicated by the time designation data, and further selects the tiles in which the points in the encoded point cloud data exist.
- the point cloud data processing device 1a Based on the point cloud data header information indicating the range of , the encoded point cloud data in which points exist within the range indicated by the range designation data are narrowed down. Then, the point cloud data processing device 1a narrows down tiles having points within the range indicated by the range designation data, among the tiles of the narrowed down encoded point cloud data.
- the point cloud data processing device 1a merges the later tiles in chronological order as the merge target, thereby obtaining the merged code Generate point cloud data. Therefore, the point cloud data processing device 1a of the second embodiment can reduce the amount of data to be merged compared to the point cloud data processing device 1 of the first embodiment. In other words, the point cloud data processing device 1a of the second embodiment, like the point cloud data processing device 1 of the first embodiment, based on the coordinate data of each of the points included in the point cloud data Instead of performing merging, merging is performed for each tile based on tile reference position data indicating the position of the tile indicated in the tile header information.
- merging in units of tiles also means merging a plurality of points together.
- the point cloud data processing device 1a of the second embodiment merges a plurality of points together, the number of points is less than that of the point cloud data processing device 1 of the first embodiment which merges for each point. It is possible to merge in time. Being able to shorten the time required for merging means that the time required to generate reference list data and the time required to generate point cloud data based on the reference list data can be reduced. It means that Therefore, the point cloud data processing device 1a of the second embodiment reduces the time required to integrate a plurality of point cloud data acquired at arbitrary times and arbitrary measurement positions to the point cloud data of the first embodiment. It becomes possible to shorten it more than the data processor 1 .
- the encoding processing unit 18 divides the block into eight points until one point is included in the block and the position of the one point is the position of the representative point of the block. is repeated. On the other hand, the encoding processing unit 18 divides the block into eight blocks until the number of points included in the block reaches a predetermined number. Coordinate data indicating the relative coordinates of each point included in .
- the octree coding described in the above-described second embodiment is octree coding of reversible coding that perfectly reproduces the positions of points by decoding. On the other hand, the encoding processing unit 18 may perform octree encoding of irreversible encoding.
- the encoding processing unit 18 When performing octree encoding of lossy encoding, the encoding processing unit 18 further divides the lowest layer block with a predetermined number of points into a plurality of cubes of the same size. Then, the position of each point included in the lowest layer block is approximated by a representative point of the quantized cube, for example, the position of the center of the cube. The encoding processing unit 18 generates encoded point cloud data by associating the information indicating the approximate position with the octree encoded data indicating the lowest layer block.
- the merge point cloud data generation unit 13a generates merge point cloud data in the data format shown in FIG. 15(b).
- the merge point cloud data generation unit 13a generates the merge point cloud data in the data format generated by the merge point cloud data generation unit 13 of the first embodiment, that is, the merge point cloud in the data format shown in FIG. Data may be generated.
- the "coordinate data" item of the merge point cloud data includes "tile header information" in the merge point cloud data in the data format shown in FIG. 15(b).
- the tile reference position data of the item will be written.
- the point cloud data processing device 1a can generate reference list data by including the reference list generation unit 15 of the first embodiment instead of the reference list generation unit 15a of the second embodiment. It will be possible.
- the definition data is given to the point cloud data generation unit 17a, the encoding processing unit 18, and the decoding processing unit 19.
- definition data is determined in advance, and the predetermined definition data is stored in storage areas inside each of the point cloud data generation unit 17a, the encoding processing unit 18, and the decoding processing unit 19,
- the point cloud data generation unit 17a, the encoding processing unit 18, and the decoding processing unit 19 may refer to the definition data stored in the respective internal storage areas.
- the encoding processing unit 18 generates encoded point cloud data in the data format shown in FIG. 13, for example, but the data format shown in FIG.
- the processing unit 18 may generate encoded point cloud data in the G-pcc data format, for example.
- the data format of each point cloud data acquired by the point cloud data acquisition unit 11 is a data format including measurement time data, as shown in FIG.
- the data format of the point cloud data may be a data format that does not include the measurement time data.
- the user of the point cloud data processing apparatus 1 owns another file in which the file name of the point cloud data and the time indicated by the measurement time data are associated with each other.
- this correspondence may be correspondence in which measurement time data corresponding to the point cloud data is written at the head of the point cloud data, or correspondence between the point cloud data and the point cloud data.
- the correspondence may be such that one file is created by combining the measurement time data.
- the point cloud data storage unit 12 stores point cloud data that does not include measurement time data.
- the user provides the merge point cloud data generation unit 13 with the generation instruction data including information indicating all merging, and further including data indicating the chronological order of each piece of point cloud data.
- the merge point cloud data generator 13 takes in the generation instruction data, and if it determines in the process of step Sa2 that all of the information contained in the taken-in generation instruction data is information indicating merging, the data included in the generation instruction data Read out the data indicating the chronological order of each point cloud data.
- the merge point cloud data generation unit 13 reads the point cloud data from the point cloud data storage unit 12 in the order indicated by the data indicating the time series order of the read point cloud data, and arranges the read point cloud data in time series order. Line up. After that, the processing after step Sa4 is performed.
- the reference list generator 15 generates reference list data R i (where i is an integer from 1 to N) each time it generates reference list data R i output a message prompting the user to attach data indicating the time to When the user refers to the message, the user performs an operation to write the time corresponding to the reference list data Ri in the item of "merge reference time" of the reference list data Ri written in the reference list storage unit 16 .
- the merge point cloud data generator 13 determines in the process of step Sa2 that the information included in the generation instruction data is information indicating individual merge, it does not perform the processes of steps Sa9 and Sa10.
- the merge point cloud data generation unit 13 does not perform the processing of steps Sa9 and Sa10, but instead performs the measurement time of the point cloud data AM corresponding to the file name associated with the information indicating the individual merge. Assuming that the time is before the measurement time of each of the point cloud data A 1 to A N merged with the merged point cloud data B N stored in the storage unit 14, steps Sa11 to Sa13 are processed.
- the reference list generation unit 15 outputs a message prompting the user to add data indicating the time to the reference list data RM . .
- the user refers to the message, the user performs an operation to write the time corresponding to the reference list data RM in the item of "merge reference time" of the reference list data RM written in the reference list storage unit 16.
- the encoding processing unit 18 generates encoded point cloud data in which data is not written in the item of “measurement time” because measurement time data is not included in the point cloud data output by the point cloud data acquisition unit 11. is written in the point cloud data storage unit 12a.
- the user As in the first embodiment, the user generates merge point cloud data including data indicating the chronological order of each piece of encoded point cloud data in addition to the generation instruction data including information indicating all merging. Provided to section 13a.
- the merge point cloud data generator 13a takes in the generation instruction data, and if it determines in the process of step Sa2 that all of the information included in the taken-in generation instruction data is information indicating merging, the data included in the generation instruction data Read out the data indicating the chronological order of each encoded point cloud data.
- the merge point cloud data generation unit 13a reads the encoded point cloud data from the point cloud data storage unit 12a in the order indicated by the data indicating the chronological order of each of the read encoded point cloud data, and generates the read encoded point cloud data. Arrange the group data in chronological order. After that, the processes after step Sa4 in the second embodiment are performed. In subsequent processing, similarly to the processing of the first embodiment, every time the reference list generation unit 15a generates reference list data Ri , data indicating time is added to the reference list data Ri . output a message prompting the user to When the user refers to the message, the user performs an operation to write the time corresponding to the reference list data Ri in the item of "merge reference time" of the reference list data Ri written in the reference list storage unit 16 .
- the merged point cloud data generator 13a when the generation instruction data includes information indicating individual merging, the merged point cloud data generator 13a does not perform steps Sa9 and Sa10, as in the first embodiment.
- the measurement time of the encoded point cloud data CM corresponding to the file name associated with the information indicating the individual merge is merged with the merged point cloud data DN stored in the merged point cloud data storage unit 14a. Assuming that the time is before the measurement time of each of the encoded point cloud data C 1 to C N , the processing of steps Sa11 to Sa13 in the second embodiment is performed.
- the reference list generation units 15 and 15a when outputting a message prompting the user to add data indicating the time to the reference list data Ri ,
- the reference data in the last line of the item "reference data" of Ri may be included in the message and output.
- the user can, based on the reference data included in the message, write point cloud data or coded points corresponding to the time to be written in the "merge reference time" item of the reference list data Ri . It becomes possible to easily identify the file name of the group data.
- the time indicated by the measurement time data included in the point cloud data is, for example, the time when the point cloud data was generated by the measuring device.
- the time indicated by the measurement time data included in the point cloud data may be the following time.
- each point coordinate data may be associated with the measurement time at which the point was measured.
- the merge point cloud data generation unit 13 averages the earliest measurement time, the latest measurement time, or the earliest and latest measurement times of the points included in the point cloud data file. Any of the times obtained may be used as the measurement time of the file of the point cloud data.
- the file format of the point cloud data acquired by the point cloud data acquisition unit 11 is predetermined, and the merge point cloud data generation unit 13, the point cloud data generation unit 17, and the The encoding processing unit 18 refers to data included in the point cloud data according to a predetermined file format.
- transcoders for example, are applied as the merge point cloud data generators 13, 13a, the reference list generators 15, 15a, and the point cloud data generators 17, 17a.
- the merge point cloud data generator 13 and the reference list generator 15 may be realized by one transcoder.
- the merge point cloud data generating unit 13a and the reference list generating unit 15a may be realized by one transcoder.
- the point cloud data includes coordinate data indicating the positions of the points. data indicating the intensity value of , data indicating the reflection intensity, and the like. Note that the merge point cloud data generation unit 13, the point cloud data generation unit 17, the encoding processing unit 18, and the decoding processing unit 19 have different colors and reflection intensities even if the positions indicated by the coordinate data are the same. is treated as a different point.
- the objects to be merged are common in that they are both data indicating the locations of points in the point cloud data. That is, in the first embodiment described above, coordinate data indicating the position of a point is used as the location data indicating the location of the point, and reference data is associated with the coordinate data as attribute information. In the second embodiment, tile reference position data indicating the position of a tile containing a point is used as location data indicating the location of a point, and reference data is associated with the tile reference position data as attribute information. In addition to these, data indicating the positions of structures such as meshes and polygons containing points may be applied as location data indicating the locations of points, and reference data may be associated with the data as attribute information. .
- the merge point cloud data generation unit 13 and the point cloud data generation unit 17 center the point of the later point cloud data in chronological order. If there are points in the earlier point cloud data in chronological order within a range of a predetermined size as are processing.
- the merge point cloud data generation unit 13 can reduce the number of reference data included in the reference list data generated by the reference list generation unit 15, thereby generating point cloud data.
- the unit 17 can reduce the number of point cloud data when merging the point cloud data.
- the point cloud data generation unit 17 can perform the processing desired by the user.
- Point cloud data can be obtained. Therefore, the merge point cloud data generator 13 may not perform the above selection process.
- the merged point cloud data generation unit 13a when merging two pieces of encoded point cloud data, the merged point cloud data generation unit 13a includes tiles having the same tile reference position in the two pieces of encoded point cloud data. In this case, selection processing is performed to merge tiles later in chronological order, but for the same reason as above, the merged point cloud data generation unit 13a does not perform the selection processing. good too.
- time indicates time represented by year, month, day, hour, minute, and second, but it also includes units of hour, minute, and second.
- the time may be expressed in terms of year, month, and day.
- data indicating time such as measurement time data, is data including values in units of year, month, and day.
- the point cloud data processing devices 1 and 1a in the above-described embodiments may be realized by computers.
- a program for realizing this function may be recorded in a computer-readable recording medium, and the program recorded in this recording medium may be read into a computer system and executed.
- the "computer system” referred to here includes hardware such as an OS and peripheral devices.
- the term "computer-readable recording medium” refers to portable media such as flexible discs, magneto-optical discs, ROMs and CD-ROMs, and storage devices such as hard discs incorporated in computer systems.
- “computer-readable recording medium” means a medium that dynamically retains a program for a short period of time, like a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line. It may also include something that holds the program for a certain period of time, such as a volatile memory inside a computer system that serves as a server or client in that case. Further, the program may be for realizing a part of the functions described above, or may be capable of realizing the functions described above in combination with a program already recorded in the computer system. It may be implemented using a programmable logic device such as an FPGA (Field Programmable Gate Array).
- FPGA Field Programmable Gate Array
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Electromagnetism (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Recording Measured Values (AREA)
Abstract
三次元空間における複数の測定位置において任意の測定時刻に測定された複数の点群データを記憶する点群データ記憶部と、いずれか1つの測定時刻に対応する前記点群データと、当該測定時刻の以前に測定された点群データとを時系列順に統合した際の点の所在を示す所在データと、所在データごとに付与する参照データであって所在データによって示される点が含まれていた点群データを特定する参照データとを含むマージ点群データを点群データ記憶部が記憶する点群データに基づいて時系列順に生成するマージ点群データ生成部とを備える。
Description
本発明は、点群データ処理装置、点群データ処理方法及びプログラムに関する。
近年、点群データは、様々な分野において利用されており、点群データを共通の規格によって扱うために、例えば、現在、G-pcc(Geometry based Point Cloud Compression)という規格の検討が進められている。G-pccでは、2n×2n×2nのボクセル単位で、点群データに含まれる点の占有状態をOctree(以下、八分木という)の構造で表現し、表現した八分木の構造を符号化の対象としている(例えば、非特許文献1参照)。これにより、共通の規格の下で、点群データに含まれる点に対して様々な処理を行い易くしている。
ところで、点群データについては、異なる時刻、異なる位置で測定して取得された複数の点群データを統合したいという要求がある。例えば、建物の四方の位置から建物方向の点群データを取得し、取得した4つの点群データを統合して建物と周辺構造物の点群データを生成したいといった要求がある。既に取得済みの点群データと、新たに取得した点群データとをマージして最新の点群データに更新したいといった要求もある。既に取得済みの点群データの中から任意の時刻の点群データや任意の測定位置における点群データを生成し、生成した点群データを建物や街の時間的な変化を観察するのに役立てたいといった要求もある。
"Information technology - MPEG I (Coded Representation of Immersive Media) - Part9: Geometry-based Point Cloud Compression)", ISO/IEC 23090-9, ISO/IEC JTC 1/SC 29/WG 11, 2019.
上記したG-pccでは、HEVC(High Efficiency Video Coding)などの画像符号化の規格と同様に、どの場所で、いつ取得された点群データであるかを考慮するといったことはなされていない。そのため、上記のような要求を満たすことができていないという問題がある。
全ての測定位置において、全ての時刻の点群データが取得されているわけではない。そのため、上記したような時間的な変化を観察するような場合、大量に存在する複数の点群データから、複数の時刻の各々について、各々の時刻以前の複数の点群データを統合して、時刻ごとの点群データを生成することになる。この場合、その都度、複数の点群データを読み込んで、測定された時刻を参照して時系列順に並べる処理を行う必要があり、この処理に多くの時間を要するという問題がある。
上記事情に鑑み、本発明は、任意の時刻及び任意の測定位置で取得された複数の点群データを統合する際に要する時間を短縮することを可能にする技術の提供を目的としている。
本発明の一態様は、三次元空間における複数の測定位置において任意の測定時刻に測定された複数の点群データを記憶する点群データ記憶部と、いずれか1つの前記測定時刻に対応する前記点群データと、当該測定時刻の以前に測定された前記点群データとを時系列順に統合した際の点の所在を示す所在データと、前記所在データごとに付与する参照データであって前記所在データによって示される点が含まれていた前記点群データを特定する参照データとを含むマージ点群データを前記点群データ記憶部が記憶する前記点群データに基づいて時系列順に生成するマージ点群データ生成部と、を備える点群データ処理装置である。
本発明の一態様は、三次元空間における複数の測定位置において任意の測定時刻に測定された複数の点群データを点群データ記憶部に記憶させ、マージ点群データ生成部が、いずれか1つの前記測定時刻に対応する前記点群データと、当該測定時刻の以前に測定された前記点群データとを時系列順に統合した際の点の所在を示す所在データと、前記所在データごとに付与する参照データであって前記所在データによって示される点が含まれていた前記点群データを特定する参照データとを含むマージ点群データを前記点群データ記憶部が記憶する前記点群データに基づいて時系列順に生成する、点群データ処理方法である。
本発明の一態様は、コンピュータを三次元空間における複数の測定位置において任意の測定時刻に測定された複数の点群データを記憶する点群データ記憶手段、いずれか1つの前記測定時刻に対応する前記点群データと、当該測定時刻の以前に測定された前記点群データとを時系列順に統合した際の点の所在を示す所在データと、前記所在データごとに付与する参照データであって前記所在データによって示される点が含まれていた前記点群データを特定する参照データとを含むマージ点群データを前記点群データ記憶手段が記憶する前記点群データに基づいて時系列順に生成するマージ点群データ生成手段、として機能させるためのプログラムである。
この発明によれば、任意の時刻及び任意の測定位置で取得された複数の点群データを統合する際に要する時間を短縮することが可能になる。
(第1の実施形態)
以下、本発明の実施形態について図面を参照して説明する。図1は、第1の実施形態による点群データ処理装置1の構成を示すブロック図である。点群データ処理装置1は、点群データ取得部11、点群データ記憶部12、マージ点群データ生成部13、マージ点群データ記憶部14、参照リスト生成部15、参照リスト記憶部16及び点群データ生成部17を備える。
以下、本発明の実施形態について図面を参照して説明する。図1は、第1の実施形態による点群データ処理装置1の構成を示すブロック図である。点群データ処理装置1は、点群データ取得部11、点群データ記憶部12、マージ点群データ生成部13、マージ点群データ記憶部14、参照リスト生成部15、参照リスト記憶部16及び点群データ生成部17を備える。
点群データ取得部11は、例えば、点群データを生成する三次元レーザスキャナーなどの測定装置に接続し、点群データ処理装置1のユーザの操作を受けて、ユーザが指定する点群データを測定装置から取得する。点群データ記憶部12は、点群データ取得部11が取得した点群データを記憶する。点群データ記憶部12は、図2に示すように、複数の点群データをファイルの形式で記憶する。図2では、一例として、点群データのファイル名がそれぞれ「Pointcloud_DATA1」、「Pointcloud_0001」、「Pointcloud_File1」という点群データのファイルを点群データ記憶部12が記憶している例を示している。
符号30の枠内は、「Pointcloud_DATA1」のファイルに含まれているデータを示しており、符号31の枠内は、「Pointcloud_0001」のファイルに含まれているデータを示しており、符号32は、「Pointcloud_File1」のファイルに含まれているデータを示している。点群データは、符号30,31,32の各々の枠内によって示すように、測定が行われた時刻を示す測定時刻データと、点群データに含まれる複数の点の各々の位置を三次元座標系のX軸、Y軸、Z軸の座標値によって示した座標データとを含んでいる。図2に示す例では、例えば、符号30の枠内の「t0」、符号31の枠内の「t1」、符号32の枠内の「t2」が測定時刻データである。符号30の枠内の「x01,y01,z01」,「x02,y02,z02」,…、符号31の枠内の「x11,y11,z11」,「x12,y12,z12」,…、符号32の枠内の「x21,y21,z21」,「x22,y22,z22」,…が座標データである。
測定時刻データは、年、月、日、時、分、秒で表される時刻を示すデータであり、以下、「時刻」という場合、年、月、日、時、分、秒で表される時を示すものとする。複数の点群データの各々に含まれる点の位置を示すX軸、Y軸、Z軸の座標値は、同一の三次元座標系における座標値である。
点群データに含まれている測定時刻データが示す時刻は、点群データに複数の点が含まれていることから、厳密に点群データに含まれる各点が測定された時刻を示しているのではなく、例えば、測定装置において点群データのファイルが生成された時刻を示している。点群データの各々は、異なる測定装置によって生成された点群データであってもよい。そのため、測定時刻が、同一の時刻である点群データが存在する場合がある。三次元空間における点群データに含まれる点が存在する範囲(以下、点群データの範囲という)の大きさは、多くの場合、点群データの各々において異なる大きさであるが、同一の大きさになる場合もある。点群データの範囲の位置は、同一の位置になる場合もあれば、異なる位置になる場合もある。異なる位置である場合、点群データの範囲の一部が他の点群データの範囲と重複している場合もある。例えば、同一の建物の形状の時間的な変化を測定する場合、固定された位置に設置された測定装置によって測定する範囲の大きさが同一になるように測定される。この場合、当該測定装置から得られる複数の点群データは、測定時刻が異なる複数の点群データであって、各々の点群データの範囲が同一の位置、かつ同一の大きさの点群データになる。
点群データのファイルのファイルフォーマットとして、例えば、「.ply」形式や「.csv」形式などを適用することができ、いずれか1つのファイルフォーマットが点群データ処理装置1の処理対象のファイルフォーマットとして予め定められる。複数の点群データのファイルには、それぞれ異なるファイル名が付与される。図2では、一例として、「Pointcloud_」という共通の文字に、それぞれ「DATA1」,「0001」,「File1」という文字が付加された例を示している。
図2に示すように、点群データ記憶部12が記憶する点群データのファイル名は、様々であるため、点群データを測定時刻の順に並べる場合には、複数の点群データを読み込んで、点群データの各々に含まれている測定時刻データが示す測定時刻を参照する必要がある。マージ点群データ生成部13は、全部マージを示す情報を含む生成指示データを取り込むと、点群データ記憶部12が記憶する全ての点群データに含まれている測定時刻データを参照して点群データを時系列順に並べる。ここで、時系列順とは、最も早い時刻に生成された点群データ、すなわち、最も古い点群データを先頭とする時系列順であり、以下、時系列順という場合、同様の順番を示すものとする。マージ点群データ生成部13は、時系列順において先頭の点群データに対して時系列順に1つずつ点群データを統合、すなわち、マージすることを繰り返し、1つの点群データをマージするごとにマージ点群データを生成する。マージ点群データ生成部13は、1つの点群データのファイル名が関連付けられた個別マージを示す情報を含む生成指示データを取り込むと、既に生成してあるマージ点群データに、生成指示データに含まれている個別マージを示す情報に関連付けられているファイル名の点群データをマージして新たなマージ点群データを生成する。
マージ点群データ記憶部14は、マージ点群データ生成部13が生成するマージ点群データを記憶する。マージ点群データのデータ形式は、例えば、図3に示すデータ形式であり、「マージ基準時刻」、「座標データ」、「参照データ」の項目を有する。「マージ基準時刻」には、最後にマージした点群データに含まれている測定時刻データが示す時刻が書き込まれる。「座標データ」の項目には、マージされた点群データの座標データが書き込まれる。「参照データ」の項目には、マージされた座標データの各々が、どの点群データのファイルに含まれていたかを特定することが可能なデータである参照データが書き込まれる。図3では、点群データのファイル名のうち共通の文字列である「Pointcloud_」を除いた残りの文字列である「DATA1」,「0001」,「File1」の文字列が参照データとして書き込まれる例を示している。参照データは、どの点群データのファイルに含まれていたかを特定することが可能なデータであれば、どのようなデータであってもよく、例えば、点群データのファイル名の全てを参照データとしてもよい。
参照リスト生成部15は、マージ点群データ記憶部14が記憶するマージ点群データから参照リストデータを生成する。参照リストデータのデータ形式は、例えば、図4に示すデータ形式であり、「マージ基準時刻」、「参照データ」の項目を有する。「マージ基準時刻」の項目には、参照リスト生成部15が参照リストデータを生成する際に参照したマージ点群データの「マージ基準時刻」の項目に書き込まれている時刻が書き込まれる。「参照データ」の項目には、参照リスト生成部15が参照リストデータを生成する際に参照したマージ点群データの「参照データ」の項目に書き込まれている参照データのうち異なる参照データが時系列順に書き込まれる。
図3に示すマージ点群データの場合、参照リスト生成部15は、例えば、以下のようにして異なる参照データを時系列順に選択する。参照リスト生成部15は、マージ点群データの「参照データ」の項目の1行目の参照データ「DATA1」を1番目の参照データとして選択し、次に、マージ点群データの「参照データ」の項目の2行目を先頭として下方向に1行ずつ移動して、直前に選択した参照データと異なる参照データを検出する。参照リスト生成部15は、異なる参照データを検出すると、検出した参照データを2番目の参照データとして選択する。図3の例では、2番目の参照データとして、参照リスト生成部15は、「0001」を選択することになる。その後、参照リスト生成部15は、同様の処理を最後の行まで繰り返し行う。これにより、参照リスト生成部15が選択した参照データは、「DATA1」,「0001」,「File1」となり、それぞれが異なる参照データであって時系列順に並んだ参照データとなる。
参照リスト記憶部16は、参照リスト生成部15が生成した参照リストデータを記憶する。点群データ生成部17は、点群データ処理装置1のユーザの操作を受けて、ユーザが指定する時刻指定データを取り込む。点群データ生成部17は、取り込んだ時刻指定データが示す時刻に対応する参照リストデータを参照リスト記憶部16から検出する。点群データ生成部17は、検出した参照リストデータの「参照データ」の項目に書き込まれている参照データに基づいて、点群データ記憶部12から点群データを時系列順に読み出す。点群データ生成部17は、読み出した点群データを時系列順にマージして時刻指定データによって指定された時刻に対応する点群データを生成する。
(第1の実施形態におけるマージ点群データと参照リストデータの生成処理)
次に、図5から図8を参照しつつ点群データ処理装置1によるマージ点群データと参照リストデータの生成処理について説明する。図5は、点群データ処理装置1によるマージ点群データと参照リストデータの生成処理の流れを示すフローチャートである。
次に、図5から図8を参照しつつ点群データ処理装置1によるマージ点群データと参照リストデータの生成処理について説明する。図5は、点群データ処理装置1によるマージ点群データと参照リストデータの生成処理の流れを示すフローチャートである。
図5に示す処理が開始される前に、点群データ取得部11は、N+1個の点群データを取得し、取得した点群データを点群データ記憶部12に書き込んでいるものとする。ここで、Nは、1以上の整数である。
マージ点群データ生成部13は、点群データ処理装置1のユーザの操作を受けて、ユーザが指定する生成指示データを取り込む(ステップSa1)。ここでは、ユーザは、全部マージを示す情報を含む生成指示データをマージ点群データ生成部13に与えているものとする。マージ点群データ生成部13は、取り込んだ生成指示データに含まれている情報が、全部マージを示す情報であるか、または、個別マージを示す情報であるかを判定する(ステップSa2)。
上記したように、生成指示データには、全部マージを示す情報が含まれているため、マージ点群データ生成部13は、生成指示データに含まれている情報が、全部マージを示す情報であると判定する(ステップSa2、全部マージ)。マージ点群データ生成部13は、点群データ記憶部12から全ての点群データ、すなわち、N+1個の点群データを読み出す。マージ点群データ生成部13は、読み出したN+1個の点群データに含まれている測定時刻データを参照して、点群データを時系列順に並べる(ステップSa3)。ここで、マージ点群データ生成部13が、時系列順に並べたN+1個の点群データを点群データA0,A1,…,ANとする。この場合、先頭の点群データA0が、最も早い時刻に生成された点群データになる。なお、N+1個の点群データのうち幾つかは、同一の測定時刻になる場合もあり、この場合、同一の測定時刻の点群データが連続して並ぶことになる。
マージ点群データ生成部13は、時系列順の最初の2つの点群データA0と、点群データA1とをマージしてマージ点群データB1を生成する。例えば、点群データA0と、点群データA1とが、図6(a)に示すような点群データであるとする。点群データA0のファイル名は、「Pointcloud_DATA1」であり、測定時刻データは、「t0」であるとする。点群データA0は、1つの点p01を含んでおり、点p01の、座標データは、「x01,y01,z01」であるとする。点群データA1のファイル名は、「Pointcloud_0001」であり、測定時刻データは、「t1」であるとする。なお、ここでは、t1>t0としているが、上記したように点群データに含まれている測定時刻データが示す時刻が同一時刻である場合もあるため、t0=t1になる場合もある。点群データA1は、3つの点p11,p12,p13を含んでおり、点p11の、座標データは、「x11,y11,z11」であり、点p12の座標データは、「x12,y12,z12」であり、点p13の座標データは、「x13,y13,z13」であるとする。
ここで、点p11,p12,p13の各々の位置を中心とする予め定められる一定の大きさの範囲に、点p01が存在していないものとする。この場合、マージ点群データ生成部13が、点群データA0と点群データA1とをマージして生成するマージ点群データB1は、図6(b)に示すように4つの点p01,p11,p12,p13を含むことになる。したがって、マージ点群データ生成部13は、図6(c)に示すように、「マージ基準時刻」の項目に、時系列順において後になる点群データA1の測定時刻データが示す時刻「t1」を書き込み、「座標データ」の項目に、4つの点p01,p11,p12,p13の座標データを時系列順で書き込む。マージ点群データ生成部13は、「参照データ」の項目に、点p01,p11,p12,p13の各々が含まれていた点群データを特定する参照データである「DATA1」,「0001」,「0001」,「0001」を書き込んで、新たなマージ点群データB1を生成する。
マージ点群データ生成部13は、マージ点群データB1を生成すると、生成したマージ点群データB1をマージ点群データ記憶部14に書き込んで記憶させる。マージ点群データ生成部13は、マージ点群データB1のマージ点群データ記憶部14への書き込みを終了すると、参照リスト生成開始信号を参照リスト生成部15に出力する(ステップSa4)。
参照リスト生成部15は、マージ点群データ生成部13から参照リスト生成開始信号を受けると、マージ点群データ記憶部14からマージ点群データB1を読み出す。参照リスト生成部15は、読み出したマージ点群データB1を参照して参照リストデータR1を生成する。参照リスト生成部15は、図6(d)に示すように、参照リストデータのデータ形式において、「マージ基準時刻」の項目に、参照するマージ点群データB1の「マージ基準時刻」の項目に書き込まれている時刻「t1」を書き込む。参照リスト生成部15は、「参照データ」の項目に、参照するマージ点群データB1の「参照データ」の項目に書き込まれている参照データであって異なる参照データである「DATA1」,「0001」の2つを時系列順に書き込む。これにより、参照リスト生成部15は、参照リストデータR1を生成する。
参照リスト生成部15は、参照リストデータR1を生成すると、生成した参照リストデータR1を参照リスト記憶部16に書き込んで記憶させる。参照リスト生成部15は、参照リストデータR1の参照リスト記憶部16への書き込みを終了すると、参照リスト生成終了信号をマージ点群データ生成部13に出力する(ステップSa5)。
マージ点群データ生成部13が、参照リスト生成部15から参照リスト生成終了信号を受けると、次に、点群データA2~ANの各々に対してステップSa6~Sa8の処理が繰り返し行われる。マージ点群データ生成部13は、n=2を初期値として、マージ点群データ記憶部14からマージ点群データBn-1を読み出す。ここで、nは、2以上、N以下の整数である。
マージ点群データ生成部13は、読み出したマージ点群データBn-1と、点群データAnとをマージし、新たなマージ点群データBnを生成する。例えば、n=2の場合、マージ点群データ生成部13は、マージ点群データB1と、点群データA2とをマージしてマージ点群データB2を生成する。ここで、点群データA2のファイル名は、「Pointcloud_File1」であり、測定時刻データは、「t2」であるとする。なお、t2≧t1である。点群データA2は、3つの点p21,p22,p23を含んでおり、点p21の、座標データは、「x21,y21,z21」であり、点p22の座標データは、「x22,y22,z22」であり、点p23の座標データは、「x23,y23,z23」であるとする。
マージ点群データB1は、上記したように、点群データA0と、点群データA1とをマージした点群データである。図7(a)は、点群データA0、点群データA1、点群データA2を時系列順に並べた図である。ここで、点群データA2の点p23の座標データ「x23,y23,z23」の位置を中心とする予め定められる一定の範囲に点群データA0の点p01の座標データ「x01,y01,z01」の位置が存在し、点群データA2の点p22の座標データ「x22,y22,z22」の位置を中心とする予め定められる一定の大きさの範囲に、点群データA1の点p12の座標データ「x12,y12,z12」の位置が存在しているとする。
このように、時系列順において後になる方の点を中心とした予め定められる一定の大きさの範囲に、時系列順において前になる方の点が存在している場合、マージ点群データ生成部13は、時系列順において前になる方の点の座標データをマージの対象とせずに、時系列順において後になる方の点の座標データをマージの対象とする。したがって、マージ点群データ生成部13は、図7(b)に示すように、マージ点群データB1と、点群データA2とをマージして点p11,p13,p21,p22,p23を含むマージ点群データB2を生成する。マージ点群データ生成部13は、例えば、以下のようにして、マージ点群データB2を生成する。
マージ点群データ生成部13は、マージ点群データB1からマージの対象としない座標データ「x01,y01,z01」,「x12,y12,z12」の各々と、各々に対応する参照データ「DATA1」と「0001」とを削除する。マージ点群データ生成部13は、マージ点群データB1の「座標データ」の項目に、マージの対象とする点群データA2の点p21,p22,p23の座標データである「x21,y21,z21」、「x22,y22,z22」、「x23,y23,z23」を、既に書き込まれている「x11,y11,z11」,「x13,y13,z13」の後の行になるように書き込んで追加する。
マージ点群データ生成部13は、「座標データ」の項目に追加した点p21,p22,p23の座標データの各々の参照データである「File1」を、各々に対応する「参照データ」の項目の行に書き込む。マージ点群データ生成部13は、マージ点群データB1の「マージ基準時刻」の項目を点群データA2に含まれている測定時刻データが示す時刻「t2」に書き換える。このようにして、マージ点群データ生成部13は、マージ点群データB1から図7(c)に示すマージ点群データB2を生成する(ステップSa6)。
マージ点群データ生成部13は、マージ点群データBnを生成すると、マージ点群データ記憶部14が記憶するマージ点群データBn-1を削除して、生成したマージ点群データBnをマージ点群データ記憶部14に書き込む。これにより、マージ点群データ記憶部14が記憶するマージ点群データが、マージ点群データBn-1からマージ点群データBnに置き換えられることになる。マージ点群データ生成部13は、マージ点群データBnのマージ点群データ記憶部14への書き込みを終了すると、参照リスト生成開始信号を参照リスト生成部15に出力する(ステップSa7)。
参照リスト生成部15は、マージ点群データ生成部13から参照リスト生成開始信号を受けると、マージ点群データ記憶部14からマージ点群データBnを読み出す。参照リスト生成部15は、読み出したマージ点群データBnを参照して参照リストデータRnを生成する。n=2の場合、参照リスト生成部15は、図7(d)に示ように、参照リストデータのデータ形式において、「マージ基準時刻」の項目に、参照するマージ点群データB2の「マージ基準時刻」の項目に書き込まれている時刻「t2」を書き込む。参照リスト生成部15は、「参照データ」の項目に、参照するマージ点群データB2の「参照データ」の項目に書き込まれている参照データであって異なる参照データである「0001」,「File1」の2つを時系列順に書き込む。これにより、参照リスト生成部15は、参照リストデータR2を生成する。
参照リスト生成部15は、参照リストデータRnを生成すると、生成した参照リストデータRnを参照リスト記憶部16に書き込んで記憶させる。参照リスト生成部15は、参照リストデータRnの参照リスト記憶部16への書き込みを終了すると、参照リスト生成終了信号をマージ点群データ生成部13に出力する(ステップSa8)。
マージ点群データ生成部13は、参照リスト生成部15から参照リスト生成終了信号を受けると、その時点での「n」の値に「1」を加えた値を、新たな「n」の値とし、その後、n=Nになるまで、図8に示すように、ステップSa6~Sa8の処理が繰り返し行われる(ループLa1s~La1e)。「n」が「N+1」になると処理は、終了する。処理が終了した際に、参照リスト記憶部16は、参照リストデータR1~RNを記憶することになり、マージ点群データ記憶部14は、マージ点群データ生成部13が最後に生成したマージ点群データBNを記憶することになる。
(第1の実施形態において新たな点群データを1つ追加する場合の処理)
点群データ取得部11は、点群データ処理装置1のユーザの操作を受けて、ユーザが指定する1つの新たな点群データAMを測定装置から取得する。点群データ取得部11は、取得した点群データAMを点群データ記憶部12に書き込んで記憶させる。
点群データ取得部11は、点群データ処理装置1のユーザの操作を受けて、ユーザが指定する1つの新たな点群データAMを測定装置から取得する。点群データ取得部11は、取得した点群データAMを点群データ記憶部12に書き込んで記憶させる。
マージ点群データ生成部13は、点群データ処理装置1のユーザの操作を受けて、新たに追加された点群データAMのファイル名が関連付けられた個別マージの情報を含む生成指示データを取り込む(ステップSa1)。マージ点群データ生成部13は、取り込んだ生成指示データに含まれている情報が、全部マージを示す情報であるか、または、個別マージを示す情報であるかを判定する(ステップSa2)。
上記したように、生成指示データには、個別マージを示す情報が含まれているため、マージ点群データ生成部13は、生成指示データに含まれている情報が、個別マージを示す情報であると判定する(ステップSa2、個別マージ)。
マージ点群データ生成部13は、生成指示データに含まれている個別マージを示す情報に関連付けられているファイル名に対応する点群データAMを点群データ記憶部12から読み出す。マージ点群データ生成部13は、マージ点群データ記憶部14が記憶するマージ点群データBNを読み出し、読み出したマージ点群データBNの「マージ基準時刻」の項目に書き込まれている時刻を読み出す。ここで、マージ点群データBNの「マージ基準時刻」の項目に書き込まれている時刻が「tN」であるとする。マージ点群データ生成部13は、点群データAMに含まれている測定時刻データを読み出す。ここで、点群データAMに含まれている測定時刻データが示す時刻は「tM」であるとする。
マージ点群データ生成部13は、マージ点群データBNのマージ基準時刻「tN」が、点群データAMの測定時刻データが示す時刻「tM」以前の時刻であるか否か、すなわちtM≧tNであるか否かを判定する(ステップSa9)。
通常は、新たに点群データ記憶部12に追加される点群データAMは、時刻tNよりも後の時刻に生成された点群データになるが、例えば、ユーザが、tNの時刻よりも前の時刻に生成された点群データAMを測定装置に保存していた場合、tNの時刻よりも前の時刻に生成された点群データAMが点群データ記憶部12に記録されてしまう場合も想定される。このような場合、参照リスト記憶部16が記憶する参照リストデータを改めて生成する必要がある。そのため、マージ点群データ生成部13は、マージ点群データBNのマージ基準時刻「tN」が、生成指示データに含まれている点群データAMの測定時刻データが示す時刻「tM」以前の時刻でない、すなわちtM<tNであると判定した場合(ステップSa9、No)、測定時刻が、最新のマージ点群データBNのマージ基準時刻よりも前の時刻になっている点群データが追加されている旨のエラーのメッセージを出力して、ユーザに参照リストデータを改めて生成する必要がある旨を促す(ステップSa10)。
ユーザは、出力されたエラーのメッセージを参照して、改めて参照リストデータを生成する必要があると判断した場合、改めて全部マージを示す情報を含む生成指示データをマージ点群データ生成部13に与える。これにより、ステップSa3~ステップSa8の処理が行われ、点群データAMを加えた、正しい時系列順の参照理リストデータが生成されることになる。これに対して、ユーザは、出力されたエラーのメッセージを参照して、改めて参照リストデータを生成する必要がないと判断した場合、誤って点群データ記憶部12に記録した点群データAMを点群データ記憶部12から削除する。
一方、マージ点群データ生成部13は、マージ点群データBNのマージ基準時刻「tN」が、点群データAMの測定時刻データが示す時刻「tM」以前の時刻である、すなわちtM≧tNであると判定した場合(ステップSa9、Yes)、マージ点群データBNと、点群データAMとをマージして新たなマージ点群データBMを生成する(ステップSa11)。ここで、ステップSa9の判定基準として、tM=tNを含めているのは、マージ点群データBNのマージ基準時刻「tN」と同一時刻の点群データを、マージ点群データBNとマージしても、マージ点群データBNの「参照データ」の項目に書き込まれる参照データの時系列順は正しい順番で維持されるためである。
マージ点群データ生成部13は、マージ点群データBMを生成すると、マージ点群データ記憶部14が記憶するマージ点群データBNを削除して、生成したマージ点群データBMをマージ点群データ記憶部14に書き込む。これにより、マージ点群データ記憶部14が記憶するマージ点群データが、マージ点群データBNからマージ点群データBMに置き換えられることになる。マージ点群データ生成部13は、マージ点群データBMのマージ点群データ記憶部14への書き込みを終了すると、参照リスト生成開始信号を参照リスト生成部15に出力する(ステップSa12)。
参照リスト生成部15は、マージ点群データ生成部13から参照リスト生成開始信号を受けると、マージ点群データ記憶部14からマージ点群データBMを読み出す。参照リスト生成部15は、読み出したマージ点群データBMを参照して、ステップSa5,Sa8の処理と同様の手順により参照リストデータRMを生成する。参照リスト生成部15は、参照リストデータRMを生成すると、生成した参照リストデータRMを参照リスト記憶部16に書き込んで記憶させ(ステップSa13)、その後、処理を終了する。
(第1の実施形態における点群データを生成する処理)
次に、図9及び図10を参照しつつ点群データ生成部17による処理について説明する。図9は、点群データ生成部17による処理の流れを示すフローチャートである。図9に示す処理が行われる前に、図5に示す処理が終了しており、参照リスト記憶部16は、少なくともN個の参照リストデータR1~RNを記憶しているものとする。点群データ生成部17は、点群データ処理装置1のユーザの操作を受けて、ユーザが指定する時刻指定データを取り込む(ステップSb1)。
次に、図9及び図10を参照しつつ点群データ生成部17による処理について説明する。図9は、点群データ生成部17による処理の流れを示すフローチャートである。図9に示す処理が行われる前に、図5に示す処理が終了しており、参照リスト記憶部16は、少なくともN個の参照リストデータR1~RNを記憶しているものとする。点群データ生成部17は、点群データ処理装置1のユーザの操作を受けて、ユーザが指定する時刻指定データを取り込む(ステップSb1)。
点群データ生成部17は、取り込んだ時刻指定データが示す時刻に一致する時刻、または、当該時刻に最も近い時刻が「マージ基準時刻」の項目に書き込まれている参照リストデータRiを、取り込んだ時刻指定データが示す時刻に対応する参照リストデータとして参照リスト記憶部16から検出する(ステップSb2)。ここで、iは、1~Nのいずれかの整数である。なお、時刻指定データが示す時刻の前後の時刻において、時刻指定データが示す時刻に最も近い時刻が「マージ基準時刻」の項目に書き込まれている参照リストデータRiが2つ以上存在する場合、点群データ生成部17は、いずれか1つを選択してもよいし、ユーザにいずれか1つを選択させるためのメッセージを出力するようにしてもよい。
ここで、点群データ生成部17が取り込んだ時刻指定データが示す時刻が「t2」であり、点群データ生成部17は、参照リスト記憶部16から、図10(a)に示す「マージ基準時刻」の項目に「t2」が書き込まれている参照リストデータR2を検出したとする。
点群データ生成部17は、検出した参照リストデータRiの「参照データ」の項目に書き込まれている参照データを1行目から順に最終行まで選択し、選択した参照データの順番で、参照データの各々に対応する点群データを点群データ記憶部12から読み出す。これにより、点群データ生成部17は、時系列順に並んだ点群データを取得することになる(ステップSb3)。参照リストデータR2の場合、点群データ生成部17は、「参照データ」の項目の1行目の参照データ「0001」に対応するファイル名が「Pointcloud_0001」である点群データA1を最初に点群データ記憶部12から読み出す。点群データ生成部17は、次に、「参照データ」の項目の2行目の参照データ「File1」に対応するファイル名が「Pointcloud_File1」である点群データA2を点群データ記憶部12から読み出す。
点群データ生成部17は、マージ点群データ生成部13が行うマージの処理と同様に、読みだした点群データを時系列順にマージして時刻指定データが示す時刻に対応する点群データを生成する(ステップSb4)。参照リストデータR2の場合、点群データ生成部17は、図10(b)に示すように、点群データA1と、点群データA2とを読み出すことになる。点群データA2の点p22の位置を中心とした予め定められる一定の大きさの範囲には、点群データA1の点p12が存在している。そのため、点群データ生成部17は、点群データA1と、点群データA2とをマージする際に、時系列順において後になる方の点p22をマージ対象とし、図10(c)に示すように、点p11、点p13、点p21、点p22、点p23を含む点群データを時刻t2に対応する点群データとして生成する。
上記の第1の実施形態の点群データ処理装置1において、点群データ記憶部12は、三次元空間における複数の測定位置において任意の測定時刻に測定された複数の点群データを記憶する。マージ点群データ生成部13は、いずれか1つの測定時刻に対応する点群データと、当該測定時刻の以前に測定された点群データとを時系列順に統合した際の点の所在を示す所在データ、すなわち、点の位置を示す座標データと、所在データごとに付与する参照データであって所在データによって示される点が含まれていた点群データを特定する参照データとを含むマージ点群データを点群データ記憶部12が記憶する点群データに基づいて時系列順に生成する。参照リスト生成部15は、マージ点群データ生成部13が生成するマージ点群データに含まれている参照データから異なる参照データを時系列順に選択し、時系列順に選択した参照データを含む参照リストデータを複数の点群データの各々の測定時刻ごとに生成する。
点群データ生成部17に与えられる時刻指定データが示す時刻以前の点群データを全てマージすれば、時刻指定データが示す時刻に対応する点群データを生成することが可能である。ただし、この場合、時刻指定データが示す時刻が、新しい時刻になるほど、マージする点群データの数が増加するため、マージに要する時間が増えることになる。これに対して、第1の実施形態の点群データ処理装置1では、マージ対象の点群データと、マージする順番とを示した参照リストデータを点群データの測定時刻ごとに予め生成しており、更に、点群データを追加するごとに参照リストデータを生成する。そのため、任意の時刻に対応する点群データを生成したい場合に、生成してある参照リストデータの中から任意の時刻に対応する参照リストデータを選択することにより、マージに必要な点群データと、マージの順番とを特定することができる。したがって、第1の実施形態の点群データ処理装置1において、任意の時刻及び任意の測定位置で取得された複数の点群データを統合する際に要する時間を短縮することが可能になる。
また、上記の第1の実施形態の点群データ処理装置1には、以下のような優位性がある。上記したように任意の領域の任意の時刻における点の所在を示すデータは、複数の点群データをマージして生成することができる。ただし、この場合に、全ての組合せの点の所在を示すデータを保存しておくことは効率的ではない。また、点群データなどのセンサデータは、時間の経過に応じてデータが蓄積され、容量が増加し続けることから、従来におけるセンサデータの一般的な取り扱い方の考え方からすると、必要な特徴量を抽出したり、必要な処理を行ったりした後に、センサデータを破棄することになる。第1の実施形態の点群データ処理装置1が生成するマージ点群データについても、このような従来におけるセンサデータの一般的な取り扱い方の考え方からすると、任意の領域の任意の時刻におけるマージ点群データを生成したら元の点群データを破棄するというのが一般的な取り扱い方になる。これに対して、上記の第1の実施形態の点群データ処理装置1は、任意の領域の任意の時刻における点の所在を示すデータ、すなわちマージ点群データ自体を保存するのではなく、元の点群データを保存した上で、任意の領域の任意の時刻における点の所在を示すデータを構成する点群データの関係性を参照リストデータとして保存しておく構成を備えている。このような構成にしたことにより、第1の実施形態では、上記したように処理時間を短縮することを可能にしていることに加え、元の点群データと、参照リストデータとを保存しておくようにしているので、全ての組合せの点の所在を示すデータを保存しなくてもよい構成になっている。また、例えば、利用用途が変更されるなどの条件の変更に合わせてマージ手法が変更された場合などにも、第1の実施形態の構成では、保存してある元の点群データから所望のデータを生成することが可能になっているという点においても、従来における考え方と比較して優位性がある。
(第2の実施形態)
図11は、第2の実施形態による点群データ処理装置1aの構成を示すブロック図である。第2の実施形態において、第1の実施形態と同一の構成については、同一の符号を付し、以下、異なる構成について説明する。点群データ処理装置1aは、点群データ取得部11、符号化処理部18、点群データ記憶部12a、マージ点群データ生成部13a、マージ点群データ記憶部14a、参照リスト生成部15a、参照リスト記憶部16、点群データ生成部17a及び復号化処理部19を備える。
図11は、第2の実施形態による点群データ処理装置1aの構成を示すブロック図である。第2の実施形態において、第1の実施形態と同一の構成については、同一の符号を付し、以下、異なる構成について説明する。点群データ処理装置1aは、点群データ取得部11、符号化処理部18、点群データ記憶部12a、マージ点群データ生成部13a、マージ点群データ記憶部14a、参照リスト生成部15a、参照リスト記憶部16、点群データ生成部17a及び復号化処理部19を備える。
符号化処理部18は、例えば、点群データを八分木符号化した符号化点群データを生成するエンコーダである。符号化処理部18は、点群データ処理装置1aのユーザの操作を受けて、ユーザが指定する定義データを取り込むと、取り込んだ定義データにしたがって、点群データ取得部11が取得して出力する点群データに対して八分木符号化の処理を行う。
符号化処理部18が行う八分木符号化の処理について、図12を参照しつつ説明する。図12(a)に示すように、符号100で示される三次元空間(以下、三次元空間100という)が同一の大きさの立方体で隙間なく分割されているものとする。以下、この立方体の各々をタイルという。なお、図12(a)では、4×4×4の36個のタイルで三次元空間100を示しているが、タイルは、上下左右に無限に続いているものとする。
タイルの位置は、例えば、三次元空間100において予め定められるX軸、Y軸、Z軸の三次元座標系の座標値によって表される。具体的には、タイルの形状である立方体の予め定められる1つの頂点の位置、または、立方体の中心の位置が、タイルの位置を示すタイル基準位置として定められる。なお、符号化処理部18が取り込む定義データにおいて、タイルの各々のタイル基準位置を示す座標データ(以下、タイル基準位置データという)と、タイルのサイズ、すなわち、1つのタイルを構成する立方体の1辺の長さを示すデータとが定義されている。符号化処理部18は、定義データを参照することにより、タイルごとのタイル基準位置と、1つのタイルのサイズとを特定することができる。
点群データ取得部11が出力する点群データに含まれる各点は、三次元空間100のいずれかの位置に存在することになり、この点群データが存在する範囲が、符号40で示される範囲であるとする(以下、この点群データを、点群データ40という)。符号化処理部18は、図12(b)に示すように、点群データ40の範囲の全部、または、一部を含むタイル群101を選択する。点群データ40の形状は、様々であるため、符号化処理部18が選択するタイル群101の形状は、点群データ40の形状に応じた形状になる。図12(b)に示すように、タイル群101の形状が、3×3×3のタイルから上部の3つのタイルが欠けた形状である場合、タイル群101は、24個のタイルを含むことになる。符号化処理部18は、タイル群101に含まれる24個のタイルの各々に対して、以下に説明する八分木符号化を行う。
例えば、符号化処理部18は、タイル群101に含まれる1つのタイルであるタイル101-1に対して八分木符号化を行う場合、図12(c)に示すように、タイル101-1の各辺を1/2にすることにより8個の同一の大きさの立方体に分割する。以下、タイルを八分割した立方体の各々をブロックといい、以下で説明するブロックを更に八分割した立方体の各々もブロックという。タイル101-1は、ブロック101-1-1~101-1-8という8つのブロックに分割されることになる。
符号化処理部18は、ブロック101-1-1~101-1-8の中で、点群データ40のいずれかの点を含むブロックに対して、更に、八分割を行う。例えば、ブロック101-1-5に、点群データ40のいずれかの点が含まれる場合、符号化処理部18は、図12(d)に示すように、ブロック101-1-5を、更に、八分割する。このように、符号化処理部18は、ブロックに含まれる点が1つになり、更に、その1つの点の位置が、ブロックの代表点の位置になるまで、点群データ40の点を含むブロックを再帰的に八分割することを繰り返す。ここで、ブロックの代表点の位置とは、例えば、ブロックの中心の位置である。
図12(d)に示すように、符号化処理部18がブロック101-1-5を、更に、八分割し、八分割したブロックの1つであるブロック101-1-5-3に含まれる点が1つになり、更に、その1つの点の位置がブロック101-1-5-3の代表点の位置になったとする。この場合、ブロック101-1-5-3に含まれる点の位置を、図12(e)に示すように、タイル101-1に対応する根ノード201-1を根とする八分木構造によって表すことができることになる。
ブロック101-1-5-3は、タイル101-1の5番目のブロックであるブロック101-1-5であって、更に、ブロック101-1-5の3番目のブロックである。この位置を、点が存在するブロックの位置のビットを1とする8個のビット列で表すと、一階層目のブロック101-1-5に対応する内部ノード201-1-5は、5番目のビットが1である[00010000]で表される。二階層目のブロック101-1-5-3に対応する葉ノード201-1-5-3は、3番目のビットが1である[00000100]で表されることになる。一階層目の[00010000]を10進数で表すと「16」になる。二階層目の[00000100]を10進数で表すと「4」になる。
実際には、点群データ40に含まれる点は、数多く存在するため、一階層目のブロック101-1-1~101-1-8の幾つかに点が存在することになり、二階層目以下の各階層のブロックの幾つかにも点が存在することになる。例えば、一階層目のブロック101-1-1~101-1-8の全てに点が存在する場合、ビット列は、「11111111」になり10進数で表すと「255」になる。したがって、一階層目における点の所在を10進数で表す場合、1~255のいずれかの値で表されることになる。二階層目以下の階層における点の所在も、一階層目と同様に、1~255のいずれかの値で表されることになる。このようにして、最下層に至るまでの各々の階層における内部ノード、または、葉ノードを1~255のいずれかの値で表すことを繰り返すことにより、点群データ40における全ての点の所在を、1~255のいずれかの値の組み合わせによって表すことができることになる。
符号化処理部18は、1~255のいずれかの値の組み合わせを一階層目から順に可変長符号化していくことにより、タイル101-1に対する八分木符号化の符号化データ(以下、八分木符号化データという)を生成する。なお、G-pccでは、あるブロックに対して八分木符号化を行う場合に、近隣の符号化済みのブロックの八分木符号化の状況に応じて符号化テーブルを切り替えて八分木符号化を行う。そのため、符号化処理部18は、G-pccの規定による八分木符号化を行う場合、点を含まないブロック、すなわち、値が「0」のノードを考慮する必要があり、0を含めた0~255のいずれかの値の組み合わせを一階層目から順に可変長符号化していくことになる。符号化処理部18は、タイル群101に含まれる全てのタイルに対して、上記の八分木符号化を行うことにより、点群データ40に対する符号化点群データを生成することができる。符号化処理部18が生成する符号化点群データは、点群データ取得部11が出力する点群データ40の点を表す座標データよりもデータ量が削減されたデータになる。
符号化処理部18は、例えば、点群データ取得部11が出力する点群データAnを取り込んだ場合、上記した八分木符号化により、例えば、図13に示すデータ形式の符号化点群データCnを生成する。ここで、nは、0~Nのいずれかの整数である。符号化点群データCnは、「測定時刻」、「点群データヘッダ情報」、「タイルヘッダ情報」、「符号化データ」の項目を有する。
「測定時刻」の項目には、点群データAnに含まれている測定時刻データが示す時刻が書き込まれる。「点群データヘッダ情報」の項目には、点群データ40の範囲の全部、または、一部を含むタイル群の範囲を示すデータが書き込まれる。「タイルヘッダ情報」には、符号化処理部18が、八分木符号化を行ったタイルの各々を識別することができる「タイルCn,1」などのタイル識別情報と、当該タイル識別情報が示すタイルの位置を示す座標値である(xT-01,yT-01,zT-01)などのタイル基準位置データとが関連付けて書き込まれる。
「符号化データ」の項目には、符号化処理部18が八分木符号化したタイルごとの八分木符号化データが書き込まれる。なお、八分木符号化データの各々は、「タイルヘッダ情報」の項目のタイル識別情報に関連付けられており、例えば、符号化点群データCnにおいて、タイル識別情報「タイルCn,1」を指定することにより、「符号化データ」の項目の「タイルCn,1」に対応する八分木符号化データを検出することができるようになっている。
点群データ記憶部12aは、符号化処理部18が生成した符号化点群データを記憶する。点群データ記憶部12aは、図14に示すように、複数の符号化点群データをファイルの形式で記憶する。図14では、一例として、ファイル名がそれぞれ「Coded_DATA1」、「Coded_0001」、「Coded_File1」という符号化点群データのファイルを点群データ記憶部12が記憶している例を示している。例えば、「Coded_DATA1」が、第1の実施形態のファイル名が「Pointcloud_DATA1」である点群データが八分木符号化された符号化点群データのファイル名であり、「Coded_0001」が、第1の実施形態のファイル名が「Pointcloud_0001」である点群データが八分木符号化された符号化点群データのファイル名であり、「Coded_File1」が、第1の実施形態のファイル名が「Pointcloud_File1」の点群データが八分木符号化された符号化点群データのファイル名であるものとする。
マージ点群データ生成部13aは、全部マージを示す情報を含む生成指示データを取り込むと、点群データ記憶部12aが記憶する全ての符号化点群データの「測定時刻」の項目に書き込まれている時刻を参照して符号化点群データを時系列順に並べる。マージ点群データ生成部13aは、時系列順において先頭の符号化点群データに対して時系列順に1つずつ符号化点群データをマージすることを繰り返し、1つの符号化点群データをマージするごとにマージ点群データを生成する。マージ点群データ生成部13aは、1つの符号化点群データのファイル名が関連付けられた個別マージを示す情報を含む生成指示データを取り込むと、既に生成してあるマージ点群データに、生成指示データに含まれている個別マージを示す情報に関連付けられているファイル名の符号化点群データをマージして新たなマージ点群データを生成する。
マージ点群データ記憶部14aは、マージ点群データ生成部13aが生成するマージ点群データを記憶する。参照リスト生成部15aは、マージ点群データ記憶部14aが記憶するマージ点群データから参照リストデータを生成する。なお、参照リスト生成部15aが生成する参照リストデータのデータ形式は、図4に示した第1の実施形態の参照リスト生成部15が生成する参照リストデータのデータ形式と同一である。
点群データ生成部17aは、点群データ処理装置1aのユーザの操作を受けて、ユーザが指定する定義データと、時刻指定データと、範囲指定データとを取り込む。点群データ生成部17aは、取り込んだ時刻指定データが示す時刻に対応する参照リストデータを参照リスト記憶部16から検出する。点群データ生成部17aは、検出した参照リストデータの「参照データ」の項目に書き込まれている参照データに基づいて、点群データ記憶部12aから符号化点群データを時系列順に読み出す。点群データ生成部17aは、取り込んだ定義データにしたがって、読みだした符号化点群データのうち範囲指定データが示す範囲内に点を含む符号化点群データをマージ対象とする。点群データ生成部17aは、マージ対象とした符号化点群データを時系列順にマージして時刻指定データによって指定された時刻及び範囲指定データが示す範囲に対応する符号化点群データを生成する。
復号化処理部19は、例えば、八分木符号化された符号化点群データから元の点群データを復号化するデコーダである。復号化処理部19は、点群データ処理装置1aのユーザの操作を受けて、ユーザが指定する定義データを取り込むと、取り込んだ定義データにしたがって点群データ生成部17aが生成した符号化点群データから元の点群データを復元する復号化の処理を行う。
(第2の実施形態におけるマージ点群データと参照リストデータの生成処理)
第2の実施形態におけるマージ点群データと参照リストデータの生成処理は、点群データ記憶部12aに、符号化処理部18によって符号化されたN+1個の符号化点群データが書き込まれている前提で行われる。第2の実施形態におけるマージ点群データと参照リストデータの生成処理において、以下に示す点が異なる他は、図5に示した第1の実施形態のマージ点群データ生成部13が行うマージ点群データを生成する処理と同様の処理が、マージ点群データ生成部13aによって行われ、第1の実施形態の参照リスト生成部15が行う参照リストデータの生成する処理と同様の処理が、参照リスト生成部15aによって行われる。
第2の実施形態におけるマージ点群データと参照リストデータの生成処理は、点群データ記憶部12aに、符号化処理部18によって符号化されたN+1個の符号化点群データが書き込まれている前提で行われる。第2の実施形態におけるマージ点群データと参照リストデータの生成処理において、以下に示す点が異なる他は、図5に示した第1の実施形態のマージ点群データ生成部13が行うマージ点群データを生成する処理と同様の処理が、マージ点群データ生成部13aによって行われ、第1の実施形態の参照リスト生成部15が行う参照リストデータの生成する処理と同様の処理が、参照リスト生成部15aによって行われる。
第1の実施形態と第2の実施形態において異なる点は、第1の実施形態では、マージする対象が点群データであるのに対して、第2の実施形態では、マージする対象が符号化点群データになる点である。第1の実施形態及び第2の実施形態の両方において、マージする対象は、共に点群データの点の所在を示すデータという点では、共通しているが、第1の実施形態では、点群データの点の位置を示す座標データを対象としてマージする処理が行われていた。これに対して、第2の実施形態では、符号化点群データの「点群データヘッダ情報」の項目に書き込まれている範囲を示すデータと、「タイルヘッダ情報」の項目に書き込まれているタイル識別情報及びタイル基準位置データと、「符号化データ」の項目に書き込まれている八分木符号化データとを対象としてマージする処理が行われる。
第2の実施形態におけるステップSa3の処理では、マージ点群データ生成部13aは、点群データ記憶部12aから全ての符号化点群データ、すなわち、N+1個の符号化点群データを読み出し、読み出したN+1個の符号化点群データの「測定時刻」の項目に書き込まれている時刻を参照して、符号化点群データを時系列順に並べるという処理を行う。ここで、時系列順に並べられたN+1個の符号化点群データを、符号化点群データC0,C1,・・・,CNとする。上記したように、符号化点群データC0,C1,・・・,CNの各々は、点群データA0,A1,…,ANの各々が符号化処理部18によって八分木符号化されたデータである。
例えば、符号化点群データC0,C1の各々が、図15(a)に示す符号化点群データC0,C1であり、t1≧t0であるとする。符号化点群データC0,C1の各々のファイル名は、「Coded_DATA1」、「Coded_0001」であるとする。第2の実施形態におけるステップSa4の処理では、マージ点群データ生成部13aは、符号化点群データC0,C1をマージして図15(b)に示すマージ点群データD1を生成する処理を行う。図15(b)に示すように、マージ点群データD1は、「マージ基準時刻」、「点群データヘッダ情報」、「タイルヘッダ情報」、「参照データ」、「符号化データ」の項目を有する。
「マージ基準時刻」には、最後にマージした符号化点群データの「測定時刻」の項目の時刻が書き込まれる。したがって、マージ点群データD1の場合、符号化点群データC1の「測定時刻」の項目に書き込まれている「t1」が書き込まれる。「点群データヘッダ情報」の項目には、符号化点群データC0の「点群データヘッダ情報」の項目に書き込まれているタイルC0,1の範囲と、符号化点群データC1の「点群データヘッダ情報」の項目に書き込まれているタイルC1,1,C1,2,C1,3の範囲とを統合したタイルC0,1,C1,1,C1,2,C1,3範囲を示すデータが書き込まれる。「タイルヘッダ情報」の項目には、符号化点群データC0の「タイルヘッダ情報」の項目に書き込まれているタイル識別情報及びタイル基準位置データと、符号化点群データC1の「タイルヘッダ情報」の項目に書き込まれているタイル識別情報及びタイル基準位置データとが時系列順で書き込まれる。
「参照データ」の項目には、タイル識別情報によって特定されるタイルC0,1,C1,1,C1,2,C1,3の各々が、どの符号化点群データのファイルに含まれていたかを特定することが可能なデータである参照データが書き込まれる。図15(b)では、符号化点群データC0,C1のファイル名のうち共通の文字である「Coded_」を除いた残りの文字である「DATA1」,「0001」の文字が参照データとして書き込まれる例を示している。参照データは、どの符号化点群データのファイルに含まれていたかを特定することが可能なデータであれば、どのようなデータであってもよく、例えば、符号化点群データのファイル名の全てを参照データとしてもよい。「符号化データ」の項目には、符号化点群データC0の「符号化データ」の項目に書き込まれている八分木符号化データと、符号化点群データC1の「符号化データ」の項目に書き込まれている八分木符号化データとが書き込まれる。
第2の実施形態におけるステップSa5の処理では、参照リスト生成部15aは、マージ点群データD1の「マージ基準時刻」の項目と、「参照データ」の項目とから図15(c)に示す参照リストデータR1を生成する処理を行う。参照リスト生成部15aは、図15(c)に示すように、参照リストデータのデータ形式において、「マージ基準時刻」の項目に、マージ点群データD1の「マージ基準時刻」の項目に書き込まれている時刻を書き込む。参照リスト生成部15aは、「参照データ」の項目に、第1の実施形態の参照リスト生成部15と同様の手順により、マージ点群データD1の「タイルヘッダ情報」の項目から選択した異なる参照データを時系列順に書き込む。これにより、参照リスト生成部15aは、参照リストデータR1を生成する。すなわち、参照リスト生成部15aが生成する参照リストデータR1には、時刻t1におけるマージ点群データD1によって表される点が、どの符号化点群データに含まれているかという情報が記録されていることになる。
第2の実施形態におけるループLa1s~La1eの繰り返し処理は、符号化点群データC2~CNの各々に対して行われることになる。第2の実施形態におけるステップSa6の処理は、マージ点群データ生成部13aが、符号化点群データCnと、マージ点群データDn-1とをマージしてマージ点群データDnを生成する処理になる。
すなわち、マージ点群データ生成部13aは、マージ点群データDn-1の「タイルヘッダ情報」と「符号化データ」の項目の各々に、符号化点群データCnの「タイルヘッダ情報」と「符号化データ」の項目の各々に書き込まれているデータを時系列順に追加する。マージ点群データ生成部13aは、追加したタイル識別情報及びタイル基準位置データに対応する参照データを「参照データ」の項目の対応する行に書き込む。マージ点群データ生成部13aは、「点群データヘッダ情報」の項目に対して、マージ点群データDn-1の「点群データヘッダ情報」の項目に書き込まれている範囲を示すデータと、符号化点群データCnの「点群データヘッダ情報」の項目に書き込まれている範囲を示すデータとを統合した範囲を示すデータを書き込む。マージ点群データ生成部13aは、「マージ基準時刻」の項目に対して、符号化点群データCnの「測定時刻」の項目に書き込まれている時刻を書き込む。これにより、マージ点群データ生成部13aは、新たなマージ点群データDnを生成する。
なお、上記したマージ点群データ生成部13aが、ステップSa4の処理において符号化点群データC0と符号化点群データC1とをマージする場合及び、ステップSa6の処理においてマージ点群データDn-1と符号化点群データCnとをマージする場合、2つのマージ対象のデータの「タイルヘッダ情報」の項目に書き込まれているタイル基準位置データが同一の位置を示す場合もある。この場合、マージ点群データ生成部13aは、時系列順において後になる方のデータの「タイルヘッダ情報」の項目に書き込まれているタイル基準位置データと、当該タイル基準位置データに対応するタイル識別情報とをマージ対象とする。マージ点群データ生成部13aは、更に、マージ対象としたタイル識別情報に対応する八分木符号化データをマージ対象とする。マージ点群データ生成部13aは、マージ対象としたタイル基準位置データと、タイル識別情報と、八分木符号化データとを含むようにマージ点群データを生成する。
例えば、図15(a)の符号化点群データC1のタイルC1,1のタイル基準位置データが(xT-02,yT-02,zT-02)ではなく、符号化点群データC0のタイルC0,1のタイル基準位置データと同一の(xT-01,yT-01,zT-01)であるとする。この場合、マージ点群データ生成部13aが生成するマージ点群データD1は、「タイルヘッダ情報」の項目において、タイルC0,1のタイル識別情報と、当該タイル識別情報に対応するタイル基準位置データ(xT-01,yT-01,zT-01)を含まないことになり、「参照データ」の項目の参照データ「DATA1」を含まないことになり、「符号化データ」の項目の(タイルC0,1の八分木符号化データ)を含まないことになる。「点群データヘッダ情報」の項目は、(タイルC1,1,C1,2,C1,3の範囲を示すデータ)になる。
第2の実施形態におけるステップSa7の処理は、マージ点群データ生成部13aが、マージ点群データ記憶部14aが記憶するマージ点群データDn-1を、新たに生成したマージ点群データDnに置き換える処理になる。第2の実施形態におけるステップSa8の処理は、参照リスト生成部15aが、マージ点群データ記憶部14aが記憶するマージ点群データDnから参照リストデータRnを生成する処理である。この処理は、上記したマージ点群データ生成部13aがマージ点群データD1から参照リストデータR1を生成した処理と同様の手順によって行われる。
点群データ処理装置1aのユーザは、個別マージを示す情報を含む生成指示データをマージ点群データ生成部13aに与える場合、個別マージを示す情報に対して、点群データ記憶部12aに新たに追加された符号化点群データCMのファイル名を関連付けることになる。ここで、符号化点群データCMは、例えば、点群データAMが符号化処理部18によって八分木符号化された符号化点群データである。第2の実施形態におけるステップSa9の処理では、マージ点群データ生成部13aは、マージ点群データDNの「マージ基準時刻」の項目に書き込まれている時刻が、符号化点群データCMの「測定時刻」の項目に書き込まれている時刻以前の時刻であるか否かの判定を行うことになる。第2の実施形態におけるステップSa11~ステップSa13の処理は、上記した第2の実施形態におけるステップSa6~Sa8の処理と同様の手順によって行われる。
すなわち、第2の実施形態におけるステップSa11の処理において、マージ点群データ生成部13aは、マージ点群データ記憶部14aが記憶するマージ点群データDNと、符号化点群データCMとをマージしてマージ点群データDMを生成する処理を行う。第2の実施形態におけるステップSa12の処理において、マージ点群データ生成部13aは、マージ点群データ記憶部14aが記憶するマージ点群データDNを、新たに生成したマージ点群データDMに置き換える処理を行う。第2の実施形態におけるステップSa13の処理において、参照リスト生成部15aは、マージ点群データDMから参照リストデータRMを生成する処理を行う。
(第2の実施形態における点群データを生成する処理)
次に、図16から図20を参照しつつ点群データ生成部17aと復号化処理部19による処理について説明する。図16及び図17は、点群データ生成部17aと復号化処理部19による処理の流れを示すフローチャートである。図18は、図16及び図17に示す処理において行われるタイルマージ処理のサブルーチンの処理の流れを示すフローチャートである。
次に、図16から図20を参照しつつ点群データ生成部17aと復号化処理部19による処理について説明する。図16及び図17は、点群データ生成部17aと復号化処理部19による処理の流れを示すフローチャートである。図18は、図16及び図17に示す処理において行われるタイルマージ処理のサブルーチンの処理の流れを示すフローチャートである。
図16に示す処理が行われる前に、上記した第2の実施形態におけるマージ点群データと参照リストデータの生成処理が終了しており、参照リスト記憶部16は、少なくともN個の参照リストデータR1~RNを記憶しているものとする。
点群データ生成部17aと復号化処理部19は、点群データ処理装置1aのユーザの操作を受けて、ユーザが指定する定義データを取り込む。点群データ生成部17aは、更に、点群データ処理装置1aのユーザの操作を受けて、ユーザが指定する時刻指定データと、範囲指定データとを取り込む(ステップSc1)。
点群データ生成部17aは、取り込んだ時刻指定データが示す時刻に一致する時刻、または、当該時刻に最も近い時刻が「マージ基準時刻」の項目に書き込まれている参照リストデータRiを、取り込んだ時刻指定データが示す時刻に対応する参照リストデータとして参照リスト記憶部16から検出する(ステップSc2)。ここで、iは、1~Nのいずれかの整数である。なお、時刻指定データが示す時刻の前後の時刻において、時刻指定データが示す時刻に最も近い時刻が「マージ基準時刻」の項目に書き込まれている参照リストデータRiが2つ以上存在する場合、点群データ生成部17aは、いずれか1つを選択してもよいし、ユーザにいずれか1つを選択させるためのメッセージを出力するようにしてもよい。
ここで、点群データ生成部17aが取り込んだ時刻指定データが示す時刻が「t2」であり、点群データ生成部17aは、参照リスト記憶部16から、図19(a)に示す「マージ基準時刻」の項目に「t2」が書き込まれている参照リストデータR2を検出したとする。
点群データ生成部17aは、検出した参照リストデータRiの「参照データ」の項目に書き込まれている参照データに対応する符号化点群データを時系列順に点群データ記憶部12aから読み出す(ステップSc3)。点群データ生成部17aが点群データ記憶部12aから時系列順に読み出した符号化点群データを、符号化点群データCi,0,Ci,1,…,Ci,Kとする。ここで、Kは、0以上の整数である。
参照リストデータR2の場合、点群データ生成部17aは、「参照データ」の項目の1行目の参照データ「DATA1」に対応するファイル名が「Coded_DATA1」である符号化点群データC0を最初に点群データ記憶部12aから読み出す。点群データ生成部17aは、次に、「参照データ」の項目の2行目の参照データ「0001」に対応するファイル名が「Coded_0001」である符号化点群データC1を点群データ記憶部12aから読み出す。点群データ生成部17aは、更に、「参照データ」の項目の3行目の参照データ「File1」に対応するファイル名が「Coded_File1」である符号化点群データC2を点群データ記憶部12aから読み出す。ここで、符号化点群データC0,C1は、それぞれ図19(b),(c)に示すデータであり、符号化点群データC2は、図20(b)に示すデータであるとする。
点群データ生成部17aは、kを「0」に初期化する(ステップSc4)。点群データ生成部17aは、符号化点群データCi,k,Ci,k+1を選択する(ステップSc5)。点群データ生成部17aは、選択した符号化点群データCi,k,Ci,k+1の各々の「点群データヘッダ情報」の項目に書き込まれている範囲を示すデータに基づいて、符号化点群データCi,k,Ci,k+1の各々の範囲の一部、または、全部が、範囲指定データが示す範囲に存在しているか否かを判定する(ステップSc6)。
点群データ生成部17aは、符号化点群データCi,k,Ci,k+1の両方の範囲の一部及び、全部が、範囲指定データが示す範囲に存在していないと判定した場合(ステップSc6、両方とも存在しない)、kに「2」を加えた値を新たなkとする(ステップSc7)。ここで、符号化点群データCi,k,Ci,k+1の両方の範囲の一部及び、全部が、範囲指定データが示す範囲に存在していない場合とは、符号化点群データCi,kの範囲と、範囲指定データが示す範囲とにおいて、重複する範囲が存在せず、かつ符号化点群データCi,k+1の範囲と、範囲指定データが示す範囲とにおいて、重複する範囲が存在しない場合である。
点群データ生成部17aは、新たなkが、k>Kであるか否かを判定する(ステップSc8)。点群データ生成部17aは、k>Kであると判定した場合(ステップSc8、Yes)、対象無しである旨、すなわち、時刻指定データ及び範囲指定データの両方に対応する点群データが存在しない旨のメッセージを出力して(ステップSc9)、処理を終了する。
一方、点群データ生成部17aは、k>Kでないと判定した場合(ステップSc8、No)、処理を、ステップSc5の処理に進めて、時系列順において、次の2つの符号化点群データCi,k,Ci,k+1を選択する。なお、k=Kの場合、点群データ生成部17aは、その後に行うステップSc5の処理において、符号化点群データCi,K+1は存在しないため、符号化点群データCi,Kのみを選択することになる。この場合、点群データ生成部17aは、ステップSc6の処理において、符号化点群データCi,Kの範囲の一部、または、全部が、範囲指定データが示すに存在しているか否かを判定する処理を行うことになる。点群データ生成部17aは、符号化点群データCi,Kの範囲の一部、または、全部が、範囲指定データが示す範囲に存在していると判定した場合、処理をステップSc10に進める。一方、点群データ生成部17aは、符号化点群データCi,Kの範囲の一部及び、全部が、範囲指定データが示す範囲に存在していないと判定した場合、処理をステップSc7に進め、その後、処理は終了することになる。
ステップSc6の処理において、点群データ生成部17aは、符号化点群データCi,k,Ci,k+1のいずれか一方の範囲の一部、または、全部が、範囲指定データが示す範囲に存在していると判定した場合(ステップSc4、一方が存在する)、範囲指定データが示す範囲に存在している方の符号化点群データを符号化点群データEとする(ステップSc10)。その後、処理は、図16及び図17の接続点Aによって示されるように、図17のステップSc13の処理に進められる。
ステップSc6の処理において、点群データ生成部17aは、符号化点群データCi,k,Ci,k+1の両方の範囲の一部、または、全部が、範囲指定データが示す範囲に存在していると判定した場合(ステップSc4、両方が存在する)、図18に示すサブルーチンの処理であって、符号化点群データCi,k,Ci,k+1を対象とするタイルマージ処理を行う(ステップSc11)。
図18に示すフローチャートを参照しつつ、符号化点群データCi,k,Ci,k+1を対象とするタイルマージ処理について説明する。点群データ生成部17aは、処理対象の2つの符号化点群データである符号化点群データCi,k,Ci,k+1の「タイルヘッダ情報」の項目のタイルヘッダ基準位置データと、定義データが示すタイルのサイズとに基づいて、範囲指定データが示す範囲に、範囲の一部、または、全部が存在するタイルのタイル識別情報と、タイル基準位置データとの組み合わせを、符号化点群データCi,k,Ci,k+1の各々の「タイルヘッダ情報」の項目から全て検出する(ステップSd1)。
点群データ生成部17aは、検出したタイル識別情報と、タイル基準位置データとの組み合わせの中で、タイル基準位置データが示す位置が同一である組み合わせが存在するか否かを判定する(ステップSd2)。点群データ生成部17aは、タイル基準位置データが示す位置が同一である組み合わせが存在すると判定した場合(ステップSd2、Yes)、タイル基準位置データが示す位置が同一である組み合わせのうち、時系列順において後になる方の符号化点群データ、すなわち、符号化点群データCi,k+1のタイル識別情報と、タイル基準データとの組み合わせ及び当該タイル識別情報に対応する八分木符号化データを含むように符号化点群データCi,kと、符号化点群データCi,k+1とをマージして、新たな符号化点群データを生成する(ステップSd3)。
一方、点群データ生成部17aは、タイル基準位置データが示す位置が同一である組み合わせが存在しないと判定した場合(ステップSd2、No)、符号化点群データCi,kと、符号化点群データCi,k+1とをマージして、新たな符号化点群データを生成する(ステップSd4)。
点群データ生成部17aは、生成した新たな符号化点群データの「測定時刻」の項目に対して、時系列順において後の符号化点群データCi,k+1の「測定時刻」の項目に書き込まれていた時刻を書き込み(ステップSd5)、サブルーチンの処理を終了する。点群データ生成部17aは、ステップSc11のサブルーチンの処理において新たに生成した符号化点群データを、符号化点群データEとする(ステップSc12)。その後、処理は、図16及び図17の接続点Aによって示されるように、図17のステップSc13の処理に進められる。
例えば、図19(b)に示す符号化点群データC0と、図19(c)に示す符号化点群データC1との場合に、ステップSc11の処理、すなわち、符号化点群データC0と、符号化点群データC1とを対象とする図18に示すタイルマージ処理が行われるとする。ここで、符号化点群データC0の「タイルヘッダ情報」の項目のタイルC0,1及び符号化点群データC1の「タイルヘッダ情報」の項目のタイルC1,1,C1,2の範囲の一部、または、全部が、範囲指定データが示す範囲に存在しているとする。一方、符号化点群データC1の「タイルヘッダ情報」の項目のタイルC1,3の範囲の一部及び、全部が、範囲指定データが示す範囲に存在していないとする。この場合、点群データ生成部17aは、ステップSd1の処理において、タイルC0,1と、タイルC1,1と、タイルC1,2とを検出するが、タイルC1,3を検出しないことになる。
点群データ生成部17aは、検出したタイルC0,1と、タイルC1,1と、タイルC1,2のタイル基準位置の各々が異なる位置であるため、ステップSd2の判定処理において「No」の判定をする。ステップSd2の後に行うステップSd4の処理において、点群データ生成部17aは、符号化点群データC0のタイルC0,1と、符号化点群データC1のタイルC1,1,C1,2とをマージした上で、ステップSd5の処理を行うことにより、図20(a)に示す符号化点群データEを生成する。
図20(a)に示すように、符号化点群データC0,C1が、タイルマージ処理によりマージされた符号化点群データEにおいて、「測定時刻」の項目には、時系列順において後になる符号化点群データC1の「測定時刻」の項目に書き込まれている「t1」が書き込まれる。「点群データヘッダ情報」の項目には、点群データ生成部17aがステップSd1の処理において検出したタイルC0,1,C1,1,C1,2の範囲を示すデータが書き込まれる。
「タイルヘッダ情報」の項目には、点群データ生成部17aがステップSd1の処理において検出したタイルC0,1,C1,1,C1,2の各々のタイル識別情報と、タイル基準位置データとが書き込まれる。「符号化データ」の項目には、タイルC0,1,C1,1,C1,2の各々のタイル識別情報に対応する八分木符号化データが書き込まれる。
次に、図17を参照しつつ、ステップSc13以降の処理について説明する。点群データ生成部17aは、kに「1」を加えた値を新たな「k」とする(ステップSc13)。点群データ生成部17aは、新たなkが、k>Kであるか否かを判定する(ステップSc14)。点群データ生成部17aは、k>Kでないと判定した場合(ステップSc14、No)、新たなkに基づいて選択する符号化点群データCi,kの「点群データヘッダ情報」の項目に書き込まれている範囲を示すデータを参照し、符号化点群データCi,kの範囲の一部、または、全部が、範囲指定データが示す範囲に存在しているか否かを判定する(ステップSc15)。
点群データ生成部17aは、符号化点群データCi,kの範囲の一部及び、全部が、範囲指定データが示す範囲に存在していないと判定した場合(ステップSc15、No)、処理を、ステップSc13に進める。一方、点群データ生成部17aは、符号化点群データCi,kの範囲の一部、または、全部が、範囲指定データが示す範囲に存在していると判定した場合(ステップSc15、Yes)、図18に示すサブルーチンの処理であって、符号化点群データCi,k,Eを対象とするタイルマージ処理を行う(ステップSc16)。点群データ生成部17aは、ステップSc16のサブルーチンの処理において新たに生成した符号化点群データを、符号化点群データEとする(ステップSc17)。その後、処理は、ステップSc13の処理に進められる。
例えば、図20(a)に示す符号化点群データEと、図20(b)に示す符号化点群データC2との場合に、ステップSc16の処理、すなわち、符号化点群データEと、符号化点群データC2とを対象とする図18に示すタイルマージ処理が行われるとする。ここで、符号化点群データC2の「タイルヘッダ情報」の項目のタイルC2,1,C2,2の範囲の一部、または、全部が、範囲指定データが示す範囲に存在しているとする。この場合、点群データ生成部17aは、ステップSd1の処理において、符号化点群データEのタイルC0,1,C1,1,C1,2と、符号化点群データC2のタイルC2,1,C2,2とを検出することになる。
点群データ生成部17aは、検出したタイルC1,1の基準位置データが示す位置と、タイルC2,1のタイル基準位置データが示す位置とが共に(xT-02,yT-02,zT-02)であるため、ステップSd2の処理において「Yes」の判定をする。その後に行われるステップSd3の処理において、点群データ生成部17aは、時系列順において後になる方のタイルC2,1の方を含めるように、符号化点群データEと、符号化点群データC2とをマージした上で、ステップSd5の処理を行うことにより、図20(c)に示す符号化点群データEを生成する。
図20(c)に示すように、図20(a)に示す符号化点群データEと、図20(b)に示す符号化点群データC1とが、タイルマージ処理によってマージされた符号化点群データEにおいて、「測定時刻」の項目には、時系列順において後になる符号化点群データC2の「測定時刻」の項目に書き込まれている「t2」が書き込まれる。「点群データヘッダ情報」の項目には、ステップSd1の処理において、点群データ生成部17aが検出したタイルC0,1,C1,1,C1,2,C2,1C2,2から、ステップSd3の処理においてマージの対象としなかったタイルC1,1を除いた残りのタイルC0,1,C1,2,C2,1,C2,2の範囲を示すデータが書き込まれる。「タイルヘッダ情報」の項目には、タイルC0,1,C1,2,C2,1,C2,2の各々のタイル識別情報と、タイル基準位置データとが書き込まれる。「符号化データ」の項目には、タイルC0,1,C1,2,C2,1,C2,2の各々のタイル識別情報に対応する八分木符号化データが書き込まれる。
ステップSc14の処理において、点群データ生成部17aは、k>Kであると判定した場合(ステップSc14、Yes)、点群データ生成部17aは、最後に生成した符号化点群データEを復号化処理部19に出力する。復号化処理部19は、点群データ生成部17aが出力する符号化点群データEを取り込み、定義データにしたがって、取り込んだ符号化点群データEに対する復号化処理を行う。復号化処理を行うことにより、符号化点群データEに含まれている八分木符号化データによって示されている各点のX軸、Y軸、Z軸の座標値が復元されることになる。復号化処理部19は、復元した各点のX軸、Y軸、Z軸の座標値と、符号化点群データの「測定時刻」の項目に書き込まれている時刻を含む点群データを生成し、生成した点群データを外部に出力する(ステップSc18)。外部に出力された点群データが、時刻指定データ及び範囲指定データに対応する点群データになる。
上記の第2の実施形態の点群データ処理装置1aにおいて、点群データ記憶部12aは、点群データの範囲に一部、または、全部が含まれるタイルごとに各点が八分木符号化により符号化された符号化点群データを記憶しており、符号化点群データは、点群データに含まれる点を含むタイルの位置を示すタイル基準位置データであって所在データであるタイル基準位置データを含むタイルヘッダ情報を有する。
これにより、第2の実施形態の点群データ処理装置1aでは、第1の実施形態の点群データ処理装置1が奏する効果に加えて、以下のような効果を奏する。すなわち、点群データ処理装置1aでは、点群データを八分木符号化した符号化点群データをマージ処理の対象としている。符号化点群データは、八分木符号化していることから、点が存在する範囲をタイル単位で特定することができるようになっている。そのため、点群データ処理装置1aは、時刻指定データ示す時刻に対応する参照リストデータを用いてマージする符号化点群データを絞り込んだ上で、更に、符号化点群データにおける点が存在するタイルの範囲を示した点群データヘッダ情報に基づいて、範囲指定データが示す範囲の範囲内に点が存在する符号化点群データを絞り込む。その上で、点群データ処理装置1aは、絞り込んだ符号化点群データのタイルの中で、範囲指定データが示す範囲の範囲内に点が存在するタイルを絞り込む。
点群データ処理装置1aは、絞り込んだタイルの中で、同一の位置のタイルが存在する場合、時系列順の後の方のタイルをマージ対象として、タイル単位でマージすることにより、マージした符号化点群データを生成する。したがって、第2の実施形態の点群データ処理装置1aは、マージする対象のデータ量を、第1の実施形態の点群データ処理装置1に比べて削減することができる。言い換えると、第2の実施形態の点群データ処理装置1aは、第1の実施形態の点群データ処理装置1のように、点群データに含まれる複数の点の各々の座標データに基づいてマージを行うのではなく、タイルヘッダ情報に示されているタイルの位置を示すタイル基準位置データに基づいてタイル単位でマージを行っている。タイルの各々には、複数の点が含まれる場合が多いことから、タイル単位でマージするということは、複数の点をまとめてマージしているということにもなる。そうすると、第2の実施形態の点群データ処理装置1aは、複数の点をまとめてマージしていることから、点ごとにマージを行う第1の実施形態の点群データ処理装置1よりも少ない時間でマージを行うことが可能になっている。マージに要する時間を短縮することができるということは、すなわち、参照リストデータの生成に要する時間、及び、参照リストデータに基づいて点群データを生成する際に要する時間を短縮することを可能にしていることになる。したがって、第2の実施形態の点群データ処理装置1aは、任意の時刻及び任意の測定位置で取得された複数の点群データを統合する際に要する時間を、第1の実施形態の点群データ処理装置1よりも短縮することが可能になる。
上記の第2の実施形態では、符号化処理部18は、ブロックに含まれる点が1つになり、更に、その1つの点の位置が、ブロックの代表点の位置になるまで八分割することを繰り返すようにしている。これに対して、符号化処理部18は、ブロックに含まれる点の数が、予め定められる所定の数になるまで八分割するようにし、点の数が所定の数になった最下層のブロックに含まれる各点の相対座標を示す座標データを、当該最下層のブロックを示す八分木符号化データに関連付けて符号化点群データを生成するようにしてもよい。上記した第2の実施形態において説明した八分木符号化は、復号によって点の位置を完全に再現する可逆符号化の八分木符号化である。これに対して、符号化処理部18は、非可逆符号化の八分木符号化を行うようにしてもよい。非可逆符号化の八分木符号化を行う場合、符号化処理部18は、点の数が所定の数になった最下層のブロックを、更に、同一の大きさの複数の立方体で分割することにより量子化し、最下層のブロックに含まれる各点の位置を、量子化した立方体の代表点、例えば、当該立方体の中心の位置で近似する。符号化処理部18は、近似した位置を示す情報を当該最下層のブロックを示す八分木符号化データに関連付けて符号化点群データを生成することになる。
上記の第2の実施形態では、マージ点群データ生成部13aは、図15(b)に示すデータ形式のマージ点群データを生成するようにしている。これに対して、マージ点群データ生成部13aは、第1の実施形態のマージ点群データ生成部13が生成するデータ形式のマージ点群データ、すなわち、図3に示すデータ形式のマージ点群データを生成するようにしてもよい。図3に示すデータ形式のマージ点群データを生成する場合、マージ点群データの「座標データ」の項目には、図15(b)に示すデータ形式のマージ点群データにおける「タイルヘッダ情報」の項目のタイル基準位置データが書き込まれることになる。この場合、点群データ処理装置1aは、第2の実施形態の参照リスト生成部15aに替えて、第1の実施形態の参照リスト生成部15を備えることにより、参照リストデータを生成することができることになる。
上記の第2の実施形態では、定義データを、点群データ生成部17a、符号化処理部18及び復号化処理部19に与えるようにしている。これに対して、予め定義データを定めておき、点群データ生成部17a、符号化処理部18及び復号化処理部19の各々の内部の記憶領域に、予め定めた定義データを記憶させて、各々の内部の記憶領域に記憶されている定義データを、点群データ生成部17a、符号化処理部18及び復号化処理部19が参照するようにしてもよい。
上記の第2の実施形態では、符号化処理部18は、例えば、図13に示すデータ形式の符号化点群データを生成しているが、図13に示すデータ形式は一例であり、符号化処理部18は、例えば、G-pccのデータ形式の符号化点群データを生成するようにしてもよい。
(点群データに測定時刻データが含まれていない場合の処理(その1))
上記の第1及び第2の実施形態では、点群データ取得部11が取得する点群データの各々のデータ形式を、図2に示すように、測定時刻データを含むデータ形式としている。これに対して、点群データのデータ形式は、測定時刻データを含まないデータ形式であってもよい。この場合、例えば、点群データ処理装置1のユーザは、点群データのファイル名と、測定時刻データが示す時刻とを対応付けた別のファイルを所有しており、当該ファイルを参照しつつ、点群データ取得部11が取得する点群データのファイルを指定する操作をする際に、当該点群データに対応する測定時刻を示すデータを指定して点群データ取得部11に与える操作を行うようにしてもよい。これにより、点群データ取得部11は、点群データと、当該点群データの測定時刻を示すデータとを対応付けることが可能になる。この対応付けは、図2に示すように点群データの先頭に、当該点群データに対応する測定時刻データを書き込む対応付けであってもよいし、点群データと、当該点群データに対応する測定時刻データとを組み合わせて1つのファイルとするような対応付けであってもよい。
上記の第1及び第2の実施形態では、点群データ取得部11が取得する点群データの各々のデータ形式を、図2に示すように、測定時刻データを含むデータ形式としている。これに対して、点群データのデータ形式は、測定時刻データを含まないデータ形式であってもよい。この場合、例えば、点群データ処理装置1のユーザは、点群データのファイル名と、測定時刻データが示す時刻とを対応付けた別のファイルを所有しており、当該ファイルを参照しつつ、点群データ取得部11が取得する点群データのファイルを指定する操作をする際に、当該点群データに対応する測定時刻を示すデータを指定して点群データ取得部11に与える操作を行うようにしてもよい。これにより、点群データ取得部11は、点群データと、当該点群データの測定時刻を示すデータとを対応付けることが可能になる。この対応付けは、図2に示すように点群データの先頭に、当該点群データに対応する測定時刻データを書き込む対応付けであってもよいし、点群データと、当該点群データに対応する測定時刻データとを組み合わせて1つのファイルとするような対応付けであってもよい。
(点群データに測定時刻データが含まれていない場合の処理(その2))
点群データに測定時刻データが含まれていない場合、第1及び第2の実施形態において、以下のような処理を行うようにしてもよい。まず、第1の実施形態の場合の処理について説明する。点群データ記憶部12は、測定時刻データが含まれていない点群データを記憶する。ユーザは、全部マージを示す情報を含む生成指示データに対して、更に、点群データの各々の時系列順を示すデータを含めてマージ点群データ生成部13に与える。マージ点群データ生成部13は、生成指示データを取り込み、ステップSa2の処理において、取り込んだ生成指示データに含まれている情報が全部マージを示す情報であると判定した場合、生成指示データに含まれている点群データの各々の時系列順を示すデータを読み出す。
点群データに測定時刻データが含まれていない場合、第1及び第2の実施形態において、以下のような処理を行うようにしてもよい。まず、第1の実施形態の場合の処理について説明する。点群データ記憶部12は、測定時刻データが含まれていない点群データを記憶する。ユーザは、全部マージを示す情報を含む生成指示データに対して、更に、点群データの各々の時系列順を示すデータを含めてマージ点群データ生成部13に与える。マージ点群データ生成部13は、生成指示データを取り込み、ステップSa2の処理において、取り込んだ生成指示データに含まれている情報が全部マージを示す情報であると判定した場合、生成指示データに含まれている点群データの各々の時系列順を示すデータを読み出す。
マージ点群データ生成部13は、読み出した点群データの各々の時系列順を示すデータが示す順番で、点群データ記憶部12から点群データを読み出し、読み出した点群データを時系列順に並べる。その後、ステップSa4以降の処理が行われる。ステップSa5及びステップSa8の処理において、参照リスト生成部15は、参照リストデータRi(ここで、iは、1~Nの整数のいずれかである)を生成するごとに、参照リストデータRiに対して時刻を示すデータを付与することをユーザに促すメッセージを出力する。ユーザは、当該メッセージを参照すると、参照リスト記憶部16に書き込まれている参照リストデータRiの「マージ基準時刻」の項目に、当該参照リストデータRiに対応する時刻を書き込む操作を行う。
この場合、マージ点群データB1~BNの「マージ基準時刻」の項目には、データが書き込まれないことになる。そのため、マージ点群データ生成部13は、ステップSa2の処理において生成指示データに含まれている情報が、個別マージを示す情報であると判定した場合、ステップSa9、Sa10の処理を行わない。マージ点群データ生成部13は、ステップSa9、Sa10の処理を行わない代わりに、個別マージを示す情報に関連付けられているファイル名に対応する点群データAMの測定時刻が、マージ点群データ記憶部14に記憶されているマージ点群データBNにマージされた点群データA1~ANの各々の測定時刻以前の時刻であるとみなして、ステップSa11~Sa13の処理を行う。この場合も、参照リスト生成部15は、ステップSa13において、参照リストデータRMを生成した際に、参照リストデータRMに対して時刻を示すデータを付与することをユーザに促すメッセージを出力する。ユーザは、当該メッセージを参照すると、参照リスト記憶部16に書き込まれている参照リストデータRMの「マージ基準時刻」の項目に、当該参照リストデータRMに対応する時刻を書き込む操作を行う。
次に、第2の実施形態の場合の処理について説明する。符号化処理部18は、点群データ取得部11が出力する点群データに測定時刻データが含まれていないため「測定時刻」の項目にデータが書き込まれていない符号化点群データを生成して点群データ記憶部12aに書き込むことになる。第1の実施形態と同様に、ユーザは、全部マージを示す情報を含む生成指示データに対して、更に、符号化点群データの各々の時系列順を示すデータを含めてマージ点群データ生成部13aに与える。マージ点群データ生成部13aは、生成指示データを取り込み、ステップSa2の処理において、取り込んだ生成指示データに含まれている情報が全部マージを示す情報であると判定した場合、生成指示データに含まれている符号化点群データの各々の時系列順を示すデータを読み出す。
マージ点群データ生成部13aは、読み出した符号化点群データの各々の時系列順を示すデータが示す順番で、点群データ記憶部12aから符号化点群データを読み出し、読み出した符号化点群データを時系列順に並べる。その後、第2の実施形態におけるステップSa4以降の処理が行われる。その後の処理は、上記した第1の実施形態の処理と同様に、参照リスト生成部15aが、参照リストデータRiを生成するごとに、参照リストデータRiに対して時刻を示すデータを付与することをユーザに促すメッセージを出力する。ユーザは、当該メッセージを参照すると、参照リスト記憶部16に書き込まれている参照リストデータRiの「マージ基準時刻」の項目に、当該参照リストデータRiに対応する時刻を書き込む操作を行う。
第2の実施形態において、生成指示データに個別マージを示す情報が含まれている場合、マージ点群データ生成部13aは、第1の実施形態と同様に、ステップSa9,Sa10の処理を行わず、個別マージを示す情報に関連付けられているファイル名に対応する符号化点群データCMの測定時刻が、マージ点群データ記憶部14aに記憶されているマージ点群データDNにマージされた符号化点群データC1~CNの各々の測定時刻以前の時刻であるとみなして、第2の実施形態におけるステップSa11~Sa13の処理を行う。なお、第1及び第2の実施形態において、参照リスト生成部15,15aは、参照リストデータRiに対して時刻を示すデータを付与することをユーザに促すメッセージを出力する際、参照リストデータRiの「参照データ」の項目の最後の行の参照データをメッセージに含めて出力するようにしてもよい。このようにすることで、ユーザは、メッセージに含まれている参照データに基づいて、参照リストデータRiの「マージ基準時刻」の項目に書き込む時刻に対応する点群データ、または、符号化点群データのファイル名を容易に特定することが可能になる。
(第1及び第2の実施形態のその他の構成例について)
上記の第1及び第2の実施形態では、点群データに含まれている測定時刻データが示す時刻は、例えば、測定装置において点群データが生成された時刻であるとしている。これに対して、点群データに含まれている測定時刻データが示す時刻は、以下のような時刻であってもよい。例えば、点群データによっては、点の座標データごとに、当該点が測定された測定時刻が関連付けられていることもある。このような場合、マージ点群データ生成部13は、点群データのファイルに含まれる各点の測定時刻のうち最も早い時刻、または、最も遅い時刻、または、最も早い時刻と最も遅い時刻を平均した時刻のいずれかを当該点群データのファイルの測定時刻としてもよい。
上記の第1及び第2の実施形態では、点群データに含まれている測定時刻データが示す時刻は、例えば、測定装置において点群データが生成された時刻であるとしている。これに対して、点群データに含まれている測定時刻データが示す時刻は、以下のような時刻であってもよい。例えば、点群データによっては、点の座標データごとに、当該点が測定された測定時刻が関連付けられていることもある。このような場合、マージ点群データ生成部13は、点群データのファイルに含まれる各点の測定時刻のうち最も早い時刻、または、最も遅い時刻、または、最も早い時刻と最も遅い時刻を平均した時刻のいずれかを当該点群データのファイルの測定時刻としてもよい。
上記の第1及び第2の実施形態では、点群データ取得部11が取得する点群データのファイルフォーマットは、予め定められるとしており、マージ点群データ生成部13、点群データ生成部17及び符号化処理部18は、予め定められたファイルフォーマットにしたがって点群データに含まれているデータを参照するものとしている。これに対して、点群データ取得部11が複数のファイルフォーマットの点群データを取得する場合、マージ点群データ生成部13、点群データ生成部17及び符号化処理部18は、例えば、「.ply」や「.csv」などのファイル名に付与される拡張子に応じて異なる読み出し処理を行って、点群データに含まれているデータを取得するようにしてもよい。
上記の第1及び第2の実施形態において、マージ点群データ生成部13,13a、参照リスト生成部15,15a及び点群データ生成部17,17aとして、例えば、トランスコーダなどが適用される。トランスコーダを適用する場合において、第1の実施形態において、マージ点群データ生成部13と参照リスト生成部15を、1台のトランスコーダにより実現するようにしてもよく、第2の実施形態において、マージ点群データ生成部13aと参照リスト生成部15aを、1台のトランスコーダにより実現するようにしてもよい。
上記の第1及び第2の実施形態において、点群データは、点の位置を示す座標データを含むようにしているが、更に、点の色を示すデータ、例えば、赤、青、緑の各々の光の強度値を示すデータや、反射強度を示すデータなどを含んでいてもよい。なお、マージ点群データ生成部13、点群データ生成部17、符号化処理部18及び復号化処理部19は、座標データが示す位置が同じ点であっても、色や反射強度が異なる点については、異なる点として処理を行うことになる。
上記したように、第1の実施形態及び第2の実施形態の両方において、マージする対象は、共に点群データの点の所在を示すデータという点では、共通している。すなわち、上記の第1の実施形態では、点の所在を示す所在データとして、点の位置を示す座標データを適用し、座標データに参照データを属性情報として関連付けるようにしている。第2の実施形態では、点の所在を示す所在データとして、点を含むタイルの位置を示すタイル基準位置データを適用し、タイル基準位置データに参照データを属性情報として関連付けるようにしている。これらに加えて、点の所在を示す所在データとして、点を含むメッシュやポリゴン等の構造物の位置を示すデータを適用し、当該データに対して参照データを属性情報として関連付けるようにしてもよい。
上記の第1の実施形態において、マージ点群データ生成部13及び点群データ生成部17は、2つの点群データをマージする場合、時系列順において後の方の点群データの点を中心とする予め定められる一定の大きさの範囲に、時系列順において前の方の点群データの点が存在する場合、時系列順において後の方の点群データの点をマージ対象とする選択処理を行っている。マージ点群データ生成部13が、当該選択処理を行うことにより、参照リスト生成部15が生成する参照リストデータに含まれている参照データの数を減らすことができ、それにより、点群データ生成部17が、点群データをマージする際の点群データの数を減らすことができるという効果がある。ただし、マージ点群データ生成部13及び点群データ生成部17の両方において、上記のような同様の処理を行わなくても、点群データ生成部17の方において行うことにより、ユーザが所望する点群データを得ることができる。そのため、マージ点群データ生成部13は、上記の選択処理を行わないようにしてもよい。第2の実施形態においても、マージ点群データ生成部13aは、2つの符号化点群データをマージする場合、2つの符号化点群データに、タイル基準位置が同一の位置であるタイルが存在する場合、時系列順において後の方のタイルをマージ対象とする選択処理を行っているが、上記と同様の理由から、マージ点群データ生成部13aは、当該選択処理を行わないようにしてもよい。
上記の第1及び第2の実施形態において、「時刻」とは、年、月、日、時、分、秒で表される時を示すものとしているが、時、分、秒の単位まで含まない、年、月、日で表される時を示すものとしてもよく、この場合、例えば、測定時刻データなどの時刻を示すデータは、年、月、日の単位の値を含むデータになる。
上述した実施形態における点群データ処理装置1,1aをコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
複数の点群データに対する処理を行う技術に適用することが可能である。
1…点群データ処理装置、11…点群データ取得部、12…点群データ記憶部、13…マージ点群データ生成部、14…マージ点群データ記憶部、15…参照リスト生成部、16…参照リスト記憶部、17…点群データ生成部
Claims (8)
- 三次元空間における複数の測定位置において任意の測定時刻に測定された複数の点群データを記憶する点群データ記憶部と、
いずれか1つの前記測定時刻に対応する前記点群データと、当該測定時刻の以前に測定された前記点群データとを時系列順に統合した際の点の所在を示す所在データと、前記所在データごとに付与する参照データであって前記所在データによって示される点が含まれていた前記点群データを特定する参照データとを含むマージ点群データを前記点群データ記憶部が記憶する前記点群データに基づいて時系列順に生成するマージ点群データ生成部と、
を備える点群データ処理装置。 - 前記マージ点群データ生成部が生成する前記マージ点群データに含まれている前記参照データから異なる前記参照データを時系列順に選択し、時系列順に選択した前記参照データを含む参照リストデータを複数の前記点群データの各々の前記測定時刻ごとに生成する参照リスト生成部
を備える請求項1に記載の点群データ処理装置。 - 前記三次元空間を予め定められる同一の大きさの立方体に分割し、分割した前記立方体の各々がタイルとして予め定められており、
前記点群データ記憶部が記憶する前記点群データは、当該点群データの範囲に一部、または、全部が含まれる前記タイルごとに各点が八分木符号化により符号化された符号化点群データであり、前記符号化点群データは、前記点群データに含まれる点を含む前記タイルの位置を示すタイル基準位置データであって前記所在データであるタイル基準位置データを含むタイルヘッダ情報を有する、
請求項2に記載の点群データ処理装置。 - 時刻を指定する時刻指定データと、範囲を示す範囲指定データとを受け、受けた前記時刻指定データが示す時刻に対応する測定時刻の前記参照リストデータを選択し、選択した前記参照リストデータに含まれている前記参照データに対応する前記符号化点群データを前記点群データ記憶部から読み出し、読み出した前記符号化点群データに含まれている前記タイルヘッダ情報と、前記範囲指定データとに基づいて、読み出した前記符号化点群データをタイル単位で時系列順に統合して、前記時刻指定データが示す時刻及び前記範囲指定データが示す範囲に対応する符号化点群データを生成する点群データ生成部と、
前記点群データ生成部が生成する前記符号化点群データを復号化した点群データを生成する復号化処理部と、
を備える請求項3に記載の点群データ処理装置。 - 前記点群データ記憶部が記憶する前記符号化点群データは、更に、前記符号化点群データの範囲を示す点群データヘッダ情報を含んでおり、
前記点群データ生成部は、
前記点群データヘッダ情報と、前記範囲指定データとに基づいて、前記点群データ記憶部から読み出した前記符号化点群データの中から前記範囲指定データが示す範囲に点を含む前記符号化点群データを選択し、選択した前記符号化点群データを、前記タイルヘッダ情報と、前記範囲指定データとに基づいて、タイル単位で時系列順に統合して、前記時刻指定データが示す時刻及び前記範囲指定データが示す範囲に対応する符号化点群データを生成する、
請求項4に記載の点群データ処理装置。 - 前記点群データ生成部は、
前記符号化点群データをタイル単位で時系列順に統合する際、前記タイル基準位置データが示す位置が同一である前記タイルが存在する場合、時系列順において後の方の前記符号化点群データに含まれるタイルをマージ対象として、前記符号化点群データをタイル単位で時系列順に統合する、
請求項4または請求項5に記載の点群データ処理装置。 - 三次元空間における複数の測定位置において任意の測定時刻に測定された複数の点群データを点群データ記憶部に記憶させ、
マージ点群データ生成部が、いずれか1つの前記測定時刻に対応する前記点群データと、当該測定時刻の以前に測定された前記点群データとを時系列順に統合した際の点の所在を示す所在データと、前記所在データごとに付与する参照データであって前記所在データによって示される点が含まれていた前記点群データを特定する参照データとを含むマージ点群データを前記点群データ記憶部が記憶する前記点群データに基づいて時系列順に生成する、
点群データ処理方法。 - コンピュータを
三次元空間における複数の測定位置において任意の測定時刻に測定された複数の点群データを記憶する点群データ記憶手段、
いずれか1つの前記測定時刻に対応する前記点群データと、当該測定時刻の以前に測定された前記点群データとを時系列順に統合した際の点の所在を示す所在データと、前記所在データごとに付与する参照データであって前記所在データによって示される点が含まれていた前記点群データを特定する参照データとを含むマージ点群データを前記点群データ記憶手段が記憶する前記点群データに基づいて時系列順に生成するマージ点群データ生成手段、
として機能させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023539547A JPWO2023013037A1 (ja) | 2021-08-06 | 2021-08-06 | |
PCT/JP2021/029321 WO2023013037A1 (ja) | 2021-08-06 | 2021-08-06 | 点群データ処理装置、点群データ処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/029321 WO2023013037A1 (ja) | 2021-08-06 | 2021-08-06 | 点群データ処理装置、点群データ処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023013037A1 true WO2023013037A1 (ja) | 2023-02-09 |
Family
ID=85155409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/029321 WO2023013037A1 (ja) | 2021-08-06 | 2021-08-06 | 点群データ処理装置、点群データ処理方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2023013037A1 (ja) |
WO (1) | WO2023013037A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014073081A1 (ja) * | 2012-11-08 | 2014-05-15 | 株式会社日立製作所 | 時空間データ管理システム、時空間データ管理方法、及びプログラム |
WO2020013249A1 (ja) * | 2018-07-13 | 2020-01-16 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
WO2020059826A1 (ja) * | 2018-09-21 | 2020-03-26 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
WO2021024805A1 (ja) * | 2019-08-06 | 2021-02-11 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにプログラム |
-
2021
- 2021-08-06 JP JP2023539547A patent/JPWO2023013037A1/ja active Pending
- 2021-08-06 WO PCT/JP2021/029321 patent/WO2023013037A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014073081A1 (ja) * | 2012-11-08 | 2014-05-15 | 株式会社日立製作所 | 時空間データ管理システム、時空間データ管理方法、及びプログラム |
WO2020013249A1 (ja) * | 2018-07-13 | 2020-01-16 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
WO2020059826A1 (ja) * | 2018-09-21 | 2020-03-26 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置 |
WO2021024805A1 (ja) * | 2019-08-06 | 2021-02-11 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにプログラム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2023013037A1 (ja) | 2023-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4452242B2 (ja) | 漸進的な三次元メッシュ情報の符号化/復号化方法及びその装置 | |
US7991234B2 (en) | Apparatus and method for image-classifying, and recording medium storing computer-readable program for the same | |
JP4474365B2 (ja) | 3次元メッシュ情報のプログレッシブ符号化/復号化方法及びその装置 | |
JP5936687B2 (ja) | ツリー構造の適応的エントロピー符号化方法 | |
JP4873004B2 (ja) | 3次元データ処理システム | |
CN102265624A (zh) | 图像处理方法及其设备 | |
ES2288859T3 (es) | Aparato para registrar informacion de busqueda de imagenes dinamicas, y dispositivo de busqueda de imagenes dinamicas. | |
US11922579B2 (en) | Image processing apparatus and method for image processing by deriving voxel and mesh data to generate point cloud data | |
KR20060108499A (ko) | 3차원 메쉬 정보의 부호화/복호화 방법 및 장치 | |
CN104112007A (zh) | 一种影像层次分割结果的数据存储、组织及检索方法 | |
JP4064345B2 (ja) | メッシュ状オブジェクトのウェーブレット符号化方法 | |
CN118075494A (zh) | 点云数据编码方法、解码方法、装置、设备及存储介质 | |
KR20200140825A (ko) | 3d 객체를 나타내는 포인트 클라우드를 인코딩/디코딩하기 위한 방법 및 장치 | |
JP3530125B2 (ja) | 構造化ポリゴン・メッシュ・データの形成方法および装置、記憶媒体 | |
WO2023013037A1 (ja) | 点群データ処理装置、点群データ処理方法及びプログラム | |
CN115102935A (zh) | 一种点云编码方法、点云解码方法及相关设备 | |
KR20040096209A (ko) | 3차원 메쉬 모델의 압축 방법 | |
JP2000278683A (ja) | 解像度変換画像圧縮復号装置 | |
KR20000028583A (ko) | 손실탄력성을갖는점진적삼차원메쉬정보의부호화/복호화방법 | |
JP7415937B2 (ja) | 画像処理装置および方法 | |
JP3663645B2 (ja) | 動画像処理装置とその方法 | |
JP4232496B2 (ja) | 画像処理方法および画像処理装置ならびに画像処理プログラム | |
JP2002199401A (ja) | 画像符号化装置、画像復号化装置、電子カメラ、および記録媒体 | |
JP5176605B2 (ja) | 映像検索装置 | |
JP4194472B2 (ja) | 画像処理方法及び装置 |
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: 21952860 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2023539547 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |