WO2018037976A1 - データ処理装置、データ処理方法およびコンピュータプログラム - Google Patents

データ処理装置、データ処理方法およびコンピュータプログラム Download PDF

Info

Publication number
WO2018037976A1
WO2018037976A1 PCT/JP2017/029405 JP2017029405W WO2018037976A1 WO 2018037976 A1 WO2018037976 A1 WO 2018037976A1 JP 2017029405 W JP2017029405 W JP 2017029405W WO 2018037976 A1 WO2018037976 A1 WO 2018037976A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
point
blocks
data
point cloud
Prior art date
Application number
PCT/JP2017/029405
Other languages
English (en)
French (fr)
Inventor
大輔 中田
高宏 中山
Original Assignee
株式会社ソニー・インタラクティブエンタテインメント
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ソニー・インタラクティブエンタテインメント filed Critical 株式会社ソニー・インタラクティブエンタテインメント
Priority to US16/318,019 priority Critical patent/US11227357B2/en
Priority to EP17843459.3A priority patent/EP3503039A4/en
Publication of WO2018037976A1 publication Critical patent/WO2018037976A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Definitions

  • This invention relates to data processing technology.
  • point cloud also called “point cloud”
  • the quality of the image generated by the point group depends on the number of points in the point group, but the load of the drawing process increases depending on the number of points.
  • the present invention has been made in view of these problems, and a main object thereof is to provide a technique for improving the efficiency of data processing using point clouds.
  • a data processing device is a point group in which an appearance of a space is represented by a set of a plurality of points, and each point is assigned to any of a plurality of blocks into which the space is divided
  • a point group acquisition unit for acquiring a point group to which the block belongs, a priority determination unit for determining the priority of each block based on the number of points belonging to each of the plurality of blocks, and a priority determined by the priority determination unit
  • a point cloud processing unit that processes a plurality of blocks according to the degree.
  • This method is a point cloud that represents the appearance of a space by a set of a plurality of points, the step of acquiring a point cloud to which each point belongs to any of a plurality of blocks into which the space is divided,
  • the computer executes a step of determining the priority of each block based on the number of points belonging to and a step of processing a plurality of blocks according to the priority determined in the determining step.
  • the efficiency of data processing using point clouds can be increased.
  • a point cloud that represents the appearance of the real space as a set of points is generated by shooting the real space with multiple cameras and combining the captured images output by the multiple cameras. ing.
  • an image showing a real space is generated using the point cloud.
  • a point cloud including data of more than 100 million points may be generated.
  • 12 bytes 4 bytes for each of XYZ coordinate values) as data representing spatial coordinates, and 4 bytes (1 byte for each RGBA) as data representing colors
  • 16 bytes x 100 million points reaches about 1.6 gigabytes.
  • a priority is given to each point in the point cloud, and a data processing method is proposed in which information on important points is preferentially processed. This realizes efficient processing of a large number of points in the point cloud.
  • FIG. 1A shows the principle of the point cloud processing method in the embodiment.
  • the point group 10 of the embodiment is divided into a plurality of regions (hereinafter also referred to as “blocks”).
  • the actual point group 10 shows the appearance of a three-dimensional space photographed by a plurality of cameras, and individual blocks obtained by dividing the three-dimensional space indicated by the point group 10 are also three-dimensional spaces. This is simplified to show a two-dimensional block.
  • Block 12 includes 5 points
  • block 14 includes 7 points
  • block 16 includes 4 points
  • block 18 includes 2 points.
  • the point cloud has locality (local distribution) of points, and by dividing the space, a block with a relatively small number of points (for example, block 18) is generated.
  • the inventor considered that a block having a relatively small number of points is less important for the entire space. Further, the present inventor considered that when there are a considerable number of points in the space, even if a small amount of point information is not reflected in the image, the influence on the entire image is small and it is difficult for the user to feel uncomfortable. Therefore, in the image processing system according to the embodiment, the priority of communication or processing regarding a block with a small number of included points is lowered, specifically, the order of communication or processing is postponed.
  • the management device 20 in FIG. 1 cuts out a plurality of blocks from the space indicated by the point cloud 10, and the processing device 22 executes predetermined data processing (for example, drawing processing) based on the plurality of blocks cut out by the management device 20. To do. As shown in FIG. 1B, the management apparatus 20 sequentially transmits a plurality of blocks to the processing apparatus 22, and transmits a block having a larger number of points at an earlier timing. When the management device 20 cuts out the block shown in FIG. 1A, the management device 20 provides the processing device 22 in the order of the block 14, the block 12, the block 16, and the block 18.
  • predetermined data processing for example, drawing processing
  • FIG. 2 shows the principle of the point cloud processing method in the modification.
  • the processing device 22 executes data processing at an earlier timing for a block having a larger number of points. For example, for the four blocks shown in FIG. 1A, the processing device 22 performs data processing based on each block in the order of block 14, block 12, block 16, and block 18.
  • Data processing based on blocks includes drawing processing that generates an image showing the appearance of the block based on point data in the block, and various arithmetic processing such as collision determination based on point data included in the block including.
  • the processing device 22 can execute processing of a block with relatively high importance first, and in processing of a block with relatively high importance. It becomes easy to avoid the occurrence of delay. Further, by executing point group processing in units of blocks and with priorities, it is possible to efficiently process point groups including a large number of points.
  • a higher priority is assigned to a block having a larger number of included points.
  • a higher priority may be given to a block having a higher point density (for example, the number of points / the volume of blocks).
  • a block having a higher ratio of the number of points in the block to the total number of points in the point cloud (in the shooting space) is given higher priority. May be.
  • FIG. 3 shows the configuration of the image processing system of the embodiment.
  • the image processing system 30 includes a drawing node 34 a, a drawing node 34 b, a drawing node 34 c, a display control node 36, and a display device 38 that are collectively referred to as a master node 32 and a drawing node 34.
  • Each of these devices is connected via a communication network including a LAN, a WAN, the Internet, and the like.
  • the master node 32 and the drawing node 34 generate an image based on a point cloud input from a first external device (not shown), and the generated image data corresponds to a second external device (display control node 36). You may comprise the cloud system provided to an apparatus etc.).
  • the master node 32 is a data processing device corresponding to the management device 20 in FIG.
  • the master node 32 divides the space indicated by the point group 10 into a plurality of blocks, and transmits the data of each point included in the point group 10 to each of the drawing node 34a, the drawing node 34b, and the drawing node 34c in units of blocks.
  • Each of the drawing node 34a, the drawing node 34b, and the drawing node 34c is a data processing device corresponding to the processing device 22 in FIGS.
  • the drawing node 34 generates bitmap image data based on the data of each point in the point cloud by a known method.
  • the drawing node 34 a, the drawing node 34 b, and the drawing node 34 c are images (hereinafter referred to as “individual images”) that represent the appearance of blocks based on block unit point data (point data included in each block) received from the master node 32. Also called).
  • a plurality of individual images based on a plurality of blocks cut out from the same space are images to be displayed simultaneously on the display device 38. In other words, it is an image constituting a different part in an image (for example, an image of one frame) displayed on the display device 38 at a certain point in time.
  • the display control node 36 combines an individual image drawn by each of the drawing node 34a, the drawing node 34b, and the drawing node 34c to thereby display an image to be displayed on the display device 38 (hereinafter also referred to as “frame image”). Generate.
  • the display control node 36 causes the display device 38 to display the generated frame image.
  • the display control node 36 may be a stationary data processing apparatus (for example, a PC or a game machine), and the display device 38 may be a head mounted display (HMD). Further, the display control node 36 and the display device 38 may be integrated in the same housing as a portable game machine or the like.
  • FIG. 4 is a block diagram showing a functional configuration of the master node 32 of FIG.
  • the master node 32 includes a control unit 40, a storage unit 42, and a communication unit 44.
  • the control unit 40 executes data processing for managing image generation using point clouds.
  • the storage unit 42 is a storage area that stores data that is referred to or updated by the control unit 40.
  • the communication unit 44 communicates with an external device according to a predetermined communication protocol.
  • the control unit 40 transmits / receives data to / from each of the plurality of drawing nodes 34 via the communication unit 44.
  • each block of the control unit 40 may be implemented as a computer program (point cloud management program), and the point cloud management program may be installed in the storage of the master node 32. Then, the function of each block in the control unit 40 may be exhibited by the CPU of the master node 32 reading the point cloud management program into the main memory and executing it.
  • the storage unit 42 may be realized by the main memory or storage of the master node 32.
  • the storage unit 42 includes a spatial data storage unit 46, a block data storage unit 48, and a priority storage unit 50.
  • the space data storage unit 46 is a space photographed by a plurality of cameras, in other words, holds data of a space (hereinafter also referred to as “imaging space”) that can be rendered by the rendering node 34.
  • the shooting space data in the embodiment includes point cloud data representing the appearance (appearance and content) of the shooting space by a set of a plurality of points, and further includes data of each point constituting the point cloud.
  • the data of each point constituting the point group includes three-dimensional coordinate data indicating the position in the imaging space and data indicating the color.
  • the three-dimensional coordinate data includes, for example, a coordinate value in the horizontal direction (X-axis direction), a coordinate value in the vertical direction (Y-axis direction), and a coordinate value in the depth direction (Z-axis direction) indicating the absolute position in the imaging space. It may be a combination.
  • the data indicating the color may be, for example, an RGBA color model value.
  • the data of each point constituting the point group may further include data related to the normal (direction, etc.) and data related to the surface material (texture data, etc.).
  • data related to normals it is possible to support the calculation of the incident angle and reflection angle of light in the rendering process of the rendering node 34.
  • the drawing node 34 can distinguish between the front side and the back side, and can skip the drawing process on the back side.
  • data on the surface material it is possible to support calculation of light reflectance and absorption rate in the rendering processing of the rendering node 34.
  • the block data storage unit 48 is a plurality of blocks (individual areas) as a result of dividing the shooting space, and holds data of a plurality of blocks that constitute a part of the shooting space.
  • the data of each block includes block identification information, block boundary information (for example, coordinate values of the vertices of the block), and data of one or more points belonging to the block (the above-described coordinate data, color data, etc.).
  • the priority storage unit 50 stores data indicating the priority order assigned to each of the plurality of blocks.
  • the control unit 40 includes a space division unit 52, a point cloud acquisition unit 54, a visibility determination unit 56, a priority determination unit 58, and a point cloud processing unit 60.
  • the space division unit 52 reads the point cloud data of the shooting space held in the space data storage unit 46, and divides the shooting space according to a predetermined division algorithm.
  • the space division unit 52 stores data of a plurality of blocks as data indicating the result of division, and data of points belonging to each block in the block data storage unit 48.
  • the space division unit 52 may use a known algorithm such as an octree or a kd tree as a division algorithm.
  • the point cloud acquisition unit 54 acquires data of a point cloud set so that each point belongs to any of a plurality of blocks obtained by dividing the imaging space.
  • the point cloud acquisition unit 54 reads data of points belonging to each of a plurality of blocks from the block data storage unit 48.
  • the visibility determining unit 56 determines which block among a plurality of blocks in the imaging space is viewed by the user according to the viewpoint position, line-of-sight direction, posture, angle of view, etc. of the user.
  • the user here may be a user wearing a display device 38 (for example, an HMD), or may be a virtual camera virtually arranged at the user's viewpoint position.
  • the visibility determination unit 56 identifies a block (hereinafter referred to as “drawing target block”) that is a target of drawing processing among a plurality of blocks in the imaging space.
  • drawing target block a block that is a target of drawing processing among a plurality of blocks in the imaging space.
  • a plurality of drawing target blocks are specified.
  • the priority determination unit 58 determines the priority of each drawing target block based on the number of points belonging to each of the plurality of drawing target blocks specified by the visibility determination unit 56.
  • the priority determination unit 58 according to the embodiment counts the number of points belonging to each of a plurality of drawing target blocks, and assigns a higher priority to a drawing target block having a larger number of included points. For example, for the four blocks in FIG. 1A, the priority determination unit 58 assigns a higher priority in the order of block 14, block 12, block 16, and block 18.
  • the point cloud processing unit 60 processes a plurality of drawing target blocks in an order corresponding to the priority determined by the priority determination unit 58, and processes a block having a high priority among the plurality of blocks with a low priority. Executes prior to block processing.
  • the point group processing unit 60 according to the embodiment performs data processing based on a point of a drawing target block having a relatively high priority among a plurality of drawing target blocks rather than data processing based on a point of a block having a relatively low priority. Run preferentially. For example, for the four blocks in FIG. 1A, the point group processing unit 60 processes the point data of block 14 with the highest priority, and thereafter processes the point data in the order of block 12, block 16, and block 18. To do.
  • the point cloud processing unit 60 skips the processing of some of the drawing target blocks when the processing of some of the drawing target blocks among the plurality of drawing target blocks is not completed by a predetermined timing. In other words, the processing for the drawing target block is terminated while the processing of some of the drawing target blocks is not completed.
  • the point cloud processing unit 60 of the embodiment includes a point cloud distribution unit 62.
  • the point cloud distribution unit 62 transmits the point data of the first drawing target block among the plurality of drawing target blocks to the drawing node 34a, and draws the point data of the second drawing target block different from the first drawing target block. Transmit to node 34b. Further, the point cloud distribution unit 62 transmits point data of a third drawing target block different from the first and second drawing target blocks to the drawing node 34c. However, the point cloud distribution unit 62 sequentially transmits a plurality of drawing target blocks, and at that time, blocks with higher priority are transmitted at an earlier timing.
  • the point cloud distribution unit 62 includes a plurality of areas on the screen on which images based on the point cloud are displayed (individual areas form part of the screen) and a plurality of drawing nodes 34 (for example, the drawing nodes 34a and 34b). , The correspondence with the drawing node 34c) is held.
  • the point cloud distribution unit 62 transmits the point data of the drawing target block displayed in the screen area associated with each node to each of the plurality of drawing nodes 34. In other words, the point cloud distribution unit 62 transmits, to each of the plurality of drawing nodes 34, point data of a drawing target block that includes at least a part of the screen area associated with each node.
  • the transmission destination of the block 12 in FIG. 1 (the number of points is 5) is the drawing node 34a
  • the transmission destination of the block 14 in FIG. 1 (the number of points is 7) is the drawing node 34b
  • the block 16 in FIG. Assume that the transmission destination of the number 4) is the drawing node 34c.
  • the point cloud distribution unit 62 first transmits the point data of the block 14 to the drawing node 34b, then transmits the point data of the block 12 to the drawing node 34a, and then transmits the point data of the block 16 to the drawing node 34c. Send to.
  • the part drawing target 62 Skip sending blocks.
  • the process for the drawing target block is terminated without transmitting some of the drawing target blocks to the drawing node 34.
  • an image based on the drawing target block having a low priority is not generated.
  • FIG. 5 is a flowchart illustrating the operation of the image processing system 30 according to the embodiment.
  • a plurality of cameras (not shown) and a point cloud generation device are provided outside the image processing system 30, but may be provided inside the image processing system 30. Multiple cameras capture the same space in parallel from different directions and angles.
  • the point cloud generation device generates point cloud data by a known method based on a plurality of images output from a plurality of cameras. Here, it is assumed that data of one point group corresponds to one frame displayed on the display device 38.
  • the spatial data storage unit 46 of the master node 32 holds the point cloud data generated by the point cloud generation device as data indicating the imaging space. That is, the spatial data storage unit 46 holds data of a plurality of point groups corresponding to a plurality of frames displayed on the display device 38.
  • the point cloud generation device generates, in real time, point cloud data indicating the current state of the imaging space based on a plurality of images output from a plurality of cameras, and immediately generates the generated point cloud data as a master.
  • the data may be stored in the spatial data storage unit 46 of the node 32.
  • FIG. 6 schematically shows the division of the shooting space.
  • the space division unit 52 of the master node 32 reads the point cloud data indicating the shooting space 70 stored in the spatial data storage unit 46, and divides the shooting space 70 into a plurality of blocks according to a predetermined division algorithm (S10).
  • the space division unit 52 stores the point data of each block in the block data storage unit 48.
  • the point group acquisition unit 54 of the master node 32 reads the point data of each block stored in the block data storage unit 48.
  • FIG. 7 schematically shows the visibility determination for the imaging space.
  • the visibility determination unit 56 of the master node 32 determines which block among the plurality of blocks in the imaging space 70 is viewed by the user 71 according to the viewpoint position, posture, and line-of-sight direction of the user 71 (or virtual camera). judge.
  • the visibility determining unit 56 identifies a plurality of blocks visually recognized by the user 71 as the drawing target block 72 (S12).
  • the priority determination unit 58 of the master node 32 assigns a higher priority to each of a plurality of drawing target blocks as the number of included points is relatively larger (S14).
  • FIG. 8 shows how data is transmitted from the master node 32 to the drawing node 34.
  • the point cloud distribution unit 62 of the master node 32 sequentially transmits each of the plurality of drawing target blocks 72 to the corresponding drawing node 34, and at this time, the drawing target block 72 having a larger number of included points is transmitted earlier. (S16). If the drawing timing of a predetermined frame has not been reached (N in S18), the process returns to S16, and transmission of the drawing target block 72 having a low priority is continued. When the drawing timing is reached (Y in S18), transmission of the subsequent drawing target block 72 is stopped.
  • the processing of the master node 32 shown in S10 to S18 in FIG. 5 is processing related to drawing of one frame.
  • the master node 32 repeats the processes of S10 to S18 for a plurality of point group data corresponding to a plurality of frames.
  • Y of S18 is established, the master node 32 ends the processing of the previous frame, and proceeds to the processing of the next frame.
  • the plurality of drawing nodes 34 generate, in parallel, a bitmap image (hereinafter also referred to as “individual image”) showing the appearance of a part of the shooting space, based on the drawing target block 72 received from the master node 32 ( S20).
  • a bitmap image hereinafter also referred to as “individual image”
  • the drawing node 34a receives the point data of the block corresponding to the upper left area of the screen
  • Individual image data to be displayed in the upper left area of the screen may be generated.
  • the drawing node 34b may receive point data of a block corresponding to the lower left area of the screen and generate individual image data to be displayed in the lower left area of the screen.
  • the drawing node 34c may receive point data of a block corresponding to the lower right area of the screen and generate individual image data to be displayed in the lower right area of the screen.
  • Each of the drawing nodes 34 transmits the generated individual image data to the display control node 36.
  • the display control node 36 combines the individual images generated by the plurality of drawing nodes 34 in accordance with the correspondence relationship between the plurality of drawing nodes 34 and the plurality of areas in the screen, thereby generating an image of the entire frame (hereinafter referred to as “the entire frame”). (Also referred to as “frame image”) (S22).
  • FIG. 9 schematically shows generation of a frame image.
  • the display control node 36 arranges the individual image 74a generated by the drawing node 34a in the upper left area, arranges the individual image 74b generated by the drawing node 34b in the lower left area, and generates the individual image 74c generated by the drawing node 34c.
  • a frame image 76 may be generated in which the individual images 74d generated by other drawing nodes (not shown) are arranged in the upper right area.
  • the display control node 36 outputs the frame image data to the display device 38, and causes the display device 38 to display the frame image (S24).
  • the point group to be subjected to drawing processing may include billions of points, and there is a problem that real-time drawing is difficult with one device such as a normal PC.
  • image drawing based on a large amount of point data can be realized by performing a drawing process in a distributed manner by a plurality of drawing nodes (GPUs).
  • the communication or processing priority is lowered, for example, communication or Defer processing order.
  • communication or processing of a block having a large number of points, which is considered to be highly important for the entire point cloud, is preferentially executed, and communication or processing of a block having a high importance is performed. Can be suppressed.
  • blocks that are likely to attract the user's attention are preferentially drawn, while blocks that are not easily noticed by the user are drawn at best effort to achieve efficiency.
  • the master node 32 in FIG. 3 determines priorities for a plurality of blocks constituting the shooting space, and preferentially transmits data of blocks having higher priorities to the drawing node 34. .
  • the drawing node 34 (at least one of the drawing node 34a, the drawing node 34b, and the drawing node 34c) in FIG. It is also possible to preferentially generate an image based on data of a block having a higher priority. That is, the data processing corresponding to the priority of a plurality of blocks may be executed by the drawing node 34 instead of the master node 32, or the drawing node 34 may execute the master node 32 together with the master node 32.
  • the master node 32 in this modification may divide the shooting space represented by the point cloud into a plurality of blocks, and detect a block visually recognized by the user from the plurality of blocks as a drawing target block. Then, the point data of a plurality of drawing target blocks may be transmitted to one drawing node 34 without giving priority. In addition, the master node 32 may transmit, to the plurality of drawing nodes 34, the point data of the drawing target block corresponding to the area in which each node is in charge of drawing sequentially or in parallel.
  • FIG. 10 is a block diagram illustrating a functional configuration of the drawing node 34 according to the modification.
  • the control unit 80, the storage unit 82, and the communication unit 84 illustrated in FIG. 10 correspond to the control unit 40, the storage unit 42, and the communication unit 44 illustrated in FIG.
  • the point group acquisition unit 90, the priority determination unit 92, and the point group processing unit 94 illustrated in FIG. 10 correspond to the point group acquisition unit 54, the priority determination unit 58, and the point group processing unit 60 illustrated in FIG.
  • the point cloud acquisition unit 90 acquires point data of a plurality of drawing target blocks transmitted from the master node 32.
  • the priority determination unit 92 determines the priority of each drawing target block based on the number of points belonging to each of the plurality of drawing target blocks. For example, the priority determination unit 92 counts the number of points belonging to each of a plurality of drawing target blocks, and assigns a higher priority to a drawing target block having a larger number of included points.
  • the point cloud processing unit 94 includes a drawing unit 96.
  • the drawing unit 96 sequentially generates a plurality of individual images based on the point data of the plurality of drawing target blocks transmitted from the master node 32. At that time, the drawing unit 96 generates an individual image first for a drawing target block having a higher priority.
  • the image providing unit 98 transmits the individual image data generated by the drawing unit 96 to the display control node 36.
  • the drawing unit 96 When the drawing unit 96 has not yet generated individual images based on some drawing target blocks among a plurality of drawing target blocks by a predetermined drawing timing, the drawing unit 96 generates individual images based on some of the drawing target blocks. Skip processing. In other words, the process for the drawing target block is terminated without generating the individual images based on the part of the drawing target blocks. As a result, depending on the load of the drawing process, an image based on the drawing target block having a low priority may not be generated.
  • the drawing node 34 of this modification for a block having a small number of points among a plurality of blocks obtained by dividing the shooting space indicated by the point group, the drawing processing priority based on the block is lowered. Thereby, even when a point group contains a lot of point data, the load of drawing processing can be controlled.
  • the drawing node 34 according to the present modification may further include a spatial data storage unit 46, a spatial division unit 52, and a visibility determination unit 56 that function as the master node 32 in the embodiment.
  • the priority determination unit 92 that is a function of the drawing node 34 is a function of the master node 32, and the drawing unit 96 of the drawing node 34 is based on a plurality of blocks according to the priority order determined by the master node 32. A plurality of individual images may be generated.
  • the master node 32 in the above embodiment transmits the point data of the drawing target block displayed in the screen area associated with each node to each of the plurality of drawing nodes 34.
  • the screen on which the frame image is displayed is divided into four, the drawing target block data corresponding to the upper left area is transmitted to the drawing node 34a, the drawing target block data corresponding to the lower left area is transmitted to the drawing node 34b, The data of the drawing target block corresponding to the lower right region is transmitted to the drawing node 34c.
  • the master node 32 further includes an adjustment unit (not shown) that dynamically adjusts the assigned range of each drawing node so that the load on each drawing node is as even as possible.
  • the adjustment unit may adjust the assigned range of each drawing node so that the load distribution of each drawing node is equal to or less than a predetermined value.
  • FIG. 11 schematically shows a method for leveling the loads of a plurality of drawing nodes.
  • a drawing node 34d (not shown) exists as the fourth drawing node.
  • the adjustment unit divides the screen on which the frame image is displayed into four.
  • the drawing node 34a is responsible for drawing the region 100
  • the drawing node 34b is responsible for drawing the region 102
  • the drawing node 34c is responsible for drawing the region 104
  • the drawing node 34d is responsible for drawing the region 106.
  • the number in each area indicates the load of the drawing process. Specifically, the number of blocks included in each area is indicated.
  • region may show the ratio of the number of the points contained in each area
  • the size of load allowed in each drawing node (for example, the number of blocks allowed, hereinafter referred to as “allowable load”) is set to “5” in advance.
  • the adjustment unit determines that the region with the maximum load (the region with the maximum number of corresponding blocks) is the long side axis as shown in FIG. It divides into 2 along. For example, the middle points of the long sides may be connected and divided in half.
  • the adjustment unit again determines the area with the maximum load. Divide into two.
  • the adjustment unit calculates the difference between the load in each area and the allowable load.
  • FIG. 11D shows the calculation result.
  • the adjustment unit integrates regions where the difference from the allowable load is a predetermined value (here, 4) or more with adjacent regions.
  • FIG. 11F shows the result of integrating the regions.
  • the adjustment unit ends the adjustment process when the load distribution in each region becomes a predetermined value (eg, “1.6”) or less.
  • the point cloud distribution unit 62 of the master node 32 transmits the drawing target block data corresponding to the area 110 to the drawing node 34a, and transmits the drawing target block data corresponding to the area 112 to the drawing node 34b.
  • the drawing target block data corresponding to the region 114 is transmitted to the drawing node 34c
  • the drawing target block data corresponding to the region 116 is transmitted to the drawing node 34d.
  • the dispersion of the areas 100 to 106 is “13.5”, while the dispersion of the areas 110 to 116 in FIG. 11F is reduced to “1.5”.
  • the load of each drawing node can be leveled, and the load can be concentrated on a specific node, and the drawing can be prevented from being delayed at the specific node.
  • An external device (external system) for the image processing system 30 shoots the state of sports performed at a stadium or the like and generates point cloud data.
  • the external device transmits the generated point cloud data to the image processing system 30 as a cloud system via the communication network.
  • the image processing system 30 (here, the master node 32) divides the space indicated by the data of the point group into a plurality of blocks, and gives priority to each block based on the number of included points.
  • the image processing system 30 transmits the point cloud data to the client device (such as a user device that displays an image of an ongoing sport) in units of blocks, and at that time, the block data having a high priority is transmitted first. .
  • the external device that generates the data of the point group may further execute division into a plurality of blocks and transmit the point data of each block to the image processing system 30.
  • the image processing system 30 may execute processing after prioritization.
  • the client device acquires point cloud data stored in the server, and executes processing (drawing or the like).
  • This server has the function of the master node 32 of the embodiment, divides the space indicated by the data of the point cloud, gives priority to each block based on the number of included points, and data of the block with high priority Is first transmitted to the client device.
  • a block with a large number of points is delivered to the client device first, even if a communication delay occurs, a block with a large number of points, in other words, a portion with a lot of information is processed by the client device ( The possibility of being drawn) can be increased.
  • the technique described in the above embodiment is not limited to processing (drawing or the like) point cloud data indicating the state of the real space, but also when processing (drawing or the like) point cloud data indicating the state of the virtual space. It is applicable, and efficient point cloud processing can be realized as in the embodiment.
  • the present invention can be applied to an apparatus that executes data processing using a point cloud.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

マスタノード32は、空間の外観を複数の点の集合により表した点群であって、上記空間を分割した複数のブロックのいずれかに各点が属する点群を取得する。マスタノード32は、複数のブロックのそれぞれに属する点の数に基づいて、各ブロックの優先度を決定する。マスタノード32は、複数のブロックのうち優先度が高いブロックの処理を、優先度が低いブロックの処理より優先的に実行する。

Description

データ処理装置、データ処理方法およびコンピュータプログラム
 この発明は、データ処理技術に関する。
 現実空間を点群(「ポイントクラウド」とも呼ばれる。)としてキャプチャし、その点群を用いて現実空間の様子を示す画像を生成することが行われてきている。
特開2014-216006号公報
 点群により生成される画像の品質は点群中の点の数に依存するが、点の数に応じて描画処理等の負荷も高まる。本発明は、こうした課題に鑑みてなされたものであり、主たる目的は、点群を用いたデータ処理の効率を高めるための技術を提供することである。
 上記課題を解決するために、本発明のある態様のデータ処理装置は、空間の外観を複数の点の集合により表した点群であって、空間を分割した複数のブロックのいずれかに各点が属する点群を取得する点群取得部と、複数のブロックのそれぞれに属する点の数に基づいて、各ブロックの優先度を決定する優先度決定部と、優先度決定部により決定された優先度に応じて複数のブロックを処理する点群処理部と、を備える。
 本発明の別の態様は、データ処理方法である。この方法は、空間の外観を複数の点の集合により表した点群であって、空間を分割した複数のブロックのいずれかに各点が属する点群を取得するステップと、複数のブロックのそれぞれに属する点の数に基づいて、各ブロックの優先度を決定するステップと、決定するステップで決定された優先度に応じて複数のブロックを処理するステップと、をコンピュータが実行する。
 なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
 本発明によれば、点群を用いたデータ処理の効率を高めることができる。
実施例における点群処理方法の原理を示す図である。 変形例における点群処理方法の原理を示す図である。 実施例の画像処理システムの構成を示す図である。 図3のマスタノードの機能構成を示すブロック図である。 実施例の画像処理システムの動作を示すフローチャートである。 撮影空間の分割を模式的に示す図である。 撮影空間に対する可視判定を模式的に示す図である。 マスタノードから描画ノードへのデータの送信態様を示す図である。 フレーム画像の生成を模式的に示す図である。 変形例の描画ノードの機能構成を示すブロック図である。 複数の描画ノードの負荷を平準化する方法を模式的に示す図である。
 実施例を詳細に説明する前に実施例の概要を説明する。現実空間を複数台のカメラで撮影し、複数台のカメラが出力した撮影画像を合成等することにより、現実空間の外観(様子)を点の集合により表した点群を生成することが行われている。また、その点群を用いて現実空間を示す画像を生成することが行われている。点群における点の数が増えるほど、点群から生成される画像の品質は向上するが、その反面、描画処理等の負荷も高まる。
 近年では、1億個を超える点のデータを含む点群が生成されることもある。例えば、1つのフレームに対応する点群では、各点のデータとして、空間座標を表すデータとして12バイト(XYZの座標値各4バイト)、色彩を表現するデータとして4バイト(RGBAの各1バイト)を含み、合計16バイトのデータを含むことがある。16バイト×1億点は、約1.6ギガバイトに達する。このように、点群に大量の点のデータが含まれる場合、点群の通信時間や処理時間が非常に長くなってしまい、描画処理に遅延が生じることがある。
 そこで実施例では、点群内の各点に対して優先順位付けを行い、重要な点の情報ほど優先的に処理するデータ処理方法を提案する。これにより、点群内の大量の点を効率的に処理することを実現する。
 図1の(a)(b)は、実施例における点群処理方法の原理を示す。図1の(a)で示すように、実施例の点群10は複数の領域(以下「ブロック」とも呼ぶ。)に分割される。実際の点群10は、複数台のカメラにより撮影された3次元空間の外観を示すものであり、点群10が示す3次元空間を分割した個々のブロックも3次元空間となるが、図ではこれを簡素化し、2次元のブロックを示している。ブロック12は5個の点を含み、ブロック14は7個の点を含み、ブロック16は4個の点を含み、ブロック18は2個の点を含む。
 点群には点の局所性(偏在性)があり、空間を分割することで、点の数が相対的に少ないブロック(例えばブロック18)が生じる。本発明者は、点の数が相対的に少ないブロックは、空間全体に対する重要度が低いと考えた。また本発明者は、空間に相当数の点が存在する場合、少量の点の情報が画像に反映されなくても、画像全体への影響は少なく、ユーザに違和感を抱かせにくいと考えた。そこで、実施例の画像処理システムでは、内包する点の数が少ないブロックに関する通信または処理の優先度を低くし、具体的には通信または処理の順番を後回しにする。
 図1の管理装置20は、点群10が示す空間から複数のブロックを切り出し、処理装置22は、管理装置20により切り出された複数のブロックに基づいて所定のデータ処理(例えば描画処理)を実行する。図1の(b)で示すように、管理装置20は、複数のブロックを処理装置22へ順次送信し、点の個数が多いブロックほど早いタイミングで送信する。管理装置20は、図1の(a)で示すブロックを切り出した場合、ブロック14、ブロック12、ブロック16、ブロック18の順に処理装置22へ提供する。
 図2は、変形例における点群処理方法の原理を示す。処理装置22は、複数のブロックに基づいて所定のデータ処理を実行する場合に、点の個数が多いブロックほど早いタイミングでデータ処理を実行する。例えば図1の(a)で示す4つのブロックに対して、処理装置22は、ブロック14、ブロック12、ブロック16、ブロック18の順に、各ブロックに基づくデータ処理を実行する。ブロックに基づくデータ処理は、ブロック内の点のデータに基づいて当該ブロックの外観を示す画像を生成する描画処理を含み、また、ブロックに含まれる点のデータに基づく衝突判定等、種々の演算処理を含む。
 図1および図2で示した点群処理方法によると、処理装置22において、相対的に重要度が高いブロックの処理を先に実行させることができ、相対的に重要度が高いブロックの処理における遅延の発生を回避しやすくなる。また、点群の処理を、ブロック単位で、かつ、優先順位をつけて実行することにより、大量の点を含む点群を効率的に処理することを実現できる。
 なお、図1および図2で示した点群処理方法では、内包する点の個数が多いブロックほど高い優先順位を付与することとした。変形例として、点の密度(例えば点の個数/ブロックの体積)が高いブロックほど高い優先順位を付与してもよい。また、点群内(撮影空間内)の点の総数に占めるブロック内の点の個数の割合(例えばブロック内の点の個数/点群内の点の総数)が大きいブロックほど高い優先順位を付与してもよい。
 以下、実施例の構成を詳細に説明する。図3は、実施例の画像処理システムの構成を示す。画像処理システム30は、マスタノード32、描画ノード34で総称される描画ノード34a、描画ノード34b、描画ノード34c、表示制御ノード36、表示デバイス38を備える。これらの各装置は、LAN・WAN・インターネット等を含む通信網を介して接続される。マスタノード32および描画ノード34は、第1の外部装置(不図示)から入力された点群に基づいて画像を生成し、生成した画像データを第2の外部装置(表示制御ノード36に相当する装置等)へ提供するクラウドシステムを構成してもよい。
 マスタノード32は、図1(b)の管理装置20に対応するデータ処理装置である。マスタノード32は、点群10が示す空間を複数のブロックに分割し、点群10に含まれる各点のデータをブロック単位で描画ノード34a、描画ノード34b、描画ノード34cのそれぞれへ送信する。
 描画ノード34a、描画ノード34b、描画ノード34cのそれぞれは、図1(b)および図2の処理装置22に対応するデータ処理装置である。描画ノード34は、既知の方法により、点群内の各点のデータに基づいてビットマップ画像のデータを生成する。なお、画像処理システム30における描画ノード34の台数に制限はない。例えば1台であってもよく、4台以上であってもよい。
 描画ノード34a、描画ノード34b、描画ノード34cは、マスタノード32から受信したブロック単位の点データ(各ブロックに含まれる点のデータ)に基づいて、ブロックの外観を示す画像(以下「個別画像」とも呼ぶ。)を生成する。同一の空間から切り出された複数のブロックに基づく複数の個別画像は、表示デバイス38において同時に表示されるべき画像である。言い換えれば、ある時点で表示デバイス38に表示される画像(例えば1つのフレームの画像)における異なる部分を構成する画像である。
 表示制御ノード36は、描画ノード34a、描画ノード34b、描画ノード34cの各々で描画された個別画像を合成することにより、表示デバイス38に表示させるべき画像(以下「フレーム画像」とも呼ぶ。)を生成する。表示制御ノード36は、生成したフレーム画像を表示デバイス38に表示させる。表示制御ノード36は、据置型のデータ処理装置(例えばPC、ゲーム機)であってもよく、表示デバイス38は、ヘッドマウントディスプレイ(HMD)であってもよい。また、表示制御ノード36と表示デバイス38は、携帯型のゲーム機等として同一筐体に統合されてもよい。
 図4は、図3のマスタノード32の機能構成を示すブロック図である。マスタノード32は、制御部40、記憶部42、通信部44を備える。制御部40は、点群を用いた画像生成を管理するためのデータ処理を実行する。記憶部42は、制御部40により参照または更新されるデータを記憶する記憶領域である。通信部44は、所定の通信プロトコルにしたがって外部装置と通信する。制御部40は、通信部44を介して複数の描画ノード34のそれぞれとデータを送受する。
 本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのCPU・メモリをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
 例えば、制御部40の各ブロックの機能がコンピュータプログラム(点群管理プログラム)として実装され、点群管理プログラムがマスタノード32のストレージにインストールされてもよい。そしてマスタノード32のCPUが、点群管理プログラムをメインメモリへ読み出して実行することにより制御部40内の各ブロックの機能が発揮されてもよい。また、記憶部42は、マスタノード32のメインメモリやストレージにより実現されてもよい。
 記憶部42は、空間データ記憶部46、ブロックデータ記憶部48、優先度記憶部50を含む。空間データ記憶部46は、複数のカメラにより撮影された空間であり、言い換えれば、描画ノード34により描画対象となり得る空間(以下「撮影空間」とも呼ぶ。)のデータを保持する。実施例における撮影空間のデータは、撮影空間の外観(様子、内容とも言える)を複数の点の集合によって表した点群のデータを含み、点群を構成する各点のデータをさらに含む。
 点群を構成する各点のデータは、撮影空間内での位置を示す3次元の座標データと、色彩を示すデータを含む。3次元の座標データは、例えば、撮影空間内における絶対位置を示す横方向(X軸方向)の座標値、縦方向(Y軸方向)の座標値、奥行き方向(Z軸方向)の座標値の組み合わせであってもよい。また、色彩を示すデータは、例えばRGBAカラーモデルの値であってもよい。
 なお、点群を構成する各点のデータは、法線に関するデータ(向き等)と表面の材質に関するデータ(テクスチャデータ等)をさらに含んでもよい。法線に関するデータを含むことで、描画ノード34のレンダリング処理における光の入射角や反射角の計算を支援できる。それとともに、描画ノード34は、表と裏を区別でき、裏側の描画処理をスキップすることができる。また、表面の材質に関するデータを含むことで、描画ノード34のレンダリング処理における光の反射率や吸収率等の計算を支援できる。
 ブロックデータ記憶部48は、撮影空間を分割した結果としての複数のブロック(個別領域)であり、互いに撮影空間の一部を構成する複数のブロックのデータを保持する。各ブロックのデータは、ブロックの識別情報と、ブロックの境界情報(例えばブロックの頂点の座標値)、ブロックに属する1個以上の点のデータ(上述の座標データ、色彩データ等)を含む。優先度記憶部50は、複数のブロックのそれぞれに対して付与された優先順位を示すデータを保持する。
 制御部40は、空間分割部52、点群取得部54、可視判定部56、優先度決定部58、点群処理部60を備える。空間分割部52は、空間データ記憶部46に保持された撮影空間の点群データを読み出し、予め定められた分割アルゴリズムにしたがって撮影空間を分割する。空間分割部52は、分割の結果を示すデータとして、複数のブロックのデータであり、各ブロックに属する点のデータをブロックデータ記憶部48へ格納する。空間分割部52は、分割アルゴリズムとして、8分木(octree)、k-d木(k-d tree)等、公知のアルゴリズムを使用してもよい。
 点群取得部54は、撮影空間を分割した複数のブロックのいずれかに各点が属するように設定された点群のデータを取得する。実施例では、点群取得部54は、複数のブロックのデータであって、複数のブロックのそれぞれに属する点のデータをブロックデータ記憶部48から読み込む。
 可視判定部56は、ユーザの視点位置や視線方向、姿勢、画角等に応じて、撮影空間内の複数のブロックのうちどのブロックがユーザから視認されるかを判定する。ここでのユーザは、表示デバイス38(例えばHMD)を装着したユーザであってもよく、また、ユーザの視点位置に仮想的に配置された仮想カメラであってもよい。言い換えれば、可視判定部56は、撮影空間内の複数のブロックのうち描画処理の対象となるブロック(以下「描画対象ブロック」)を特定する。典型的には複数の描画対象ブロックを特定する。
 優先度決定部58は、可視判定部56により特定された複数の描画対象ブロックのそれぞれに属する点の数に基づいて、各描画対象ブロックの優先度を決定する。実施例の優先度決定部58は、複数の描画対象ブロックのそれぞれに属する点の数を計数し、内包する点の数が多い描画対象ブロックほど高い優先順位を付与する。例えば、図1(a)の4つのブロックに対して、優先度決定部58は、ブロック14、ブロック12、ブロック16、ブロック18の順に高い優先順位を付与する。
 点群処理部60は、優先度決定部58により決定された優先度に応じた順序で複数の描画対象ブロックを処理し、複数のブロックのうち優先度が高いブロックの処理を、優先度が低いブロックの処理より優先的に実行する。実施例の点群処理部60は、複数の描画対象ブロックのうち優先順位が相対的に高い描画対象ブロックの点に基づくデータ処理を、優先順位が相対的に低いブロックの点に基づくデータ処理より優先的に実行する。例えば、図1(a)の4つのブロックに対して、点群処理部60は、ブロック14の点データを最優先で処理し、以降、ブロック12、ブロック16、ブロック18の順に点データを処理する。
 点群処理部60は、予め定められたタイミングまでに、複数の描画対象ブロックのうち一部の描画対象ブロックの処理を未完了である場合、それら一部の描画対象ブロックの処理をスキップする。言い換えれば、それら一部の描画対象ブロックの処理を未完了のまま、描画対象ブロックに対する処理を終了する。
 実施例の点群処理部60は点群配信部62を含む。点群配信部62は、複数の描画対象ブロックうち第1の描画対象ブロックの点データを描画ノード34aへ送信し、第1の描画対象ブロックとは異なる第2の描画対象ブロックの点データを描画ノード34bへ送信する。さらに点群配信部62は、第1および第2の描画対象ブロックとは異なる第3の描画対象ブロックの点データを描画ノード34cへ送信する。ただし、点群配信部62は、複数の描画対象ブロックを順次送信し、その際に優先順位が高いブロックほど早いタイミングで送信する。
 点群配信部62は、点群に基づく画像が表示される画面の複数の領域(個々の領域は画面の一部を構成する)と、複数の描画ノード34(例えば描画ノード34a、描画ノード34b、描画ノード34c)との対応関係を保持する。点群配信部62は、複数の描画ノード34のそれぞれに対して、各ノードが対応付けられた画面領域で表示される描画対象ブロックの点データを送信する。言い換えれば、点群配信部62は、複数の描画ノード34のそれぞれに対して、各ノードが対応付けられた画面領域に少なくとも一部が含まれる描画対象ブロックの点データを送信する。
 例えば、図1のブロック12(点の個数は5)の送信先が描画ノード34a、図1のブロック14(点の個数は7)の送信先が描画ノード34b、図1のブロック16(点の個数は4)の送信先が描画ノード34cであるとする。この場合、点群配信部62は、まずブロック14の点データを描画ノード34bへ送信し、次にブロック12の点データを描画ノード34aへ送信し、次にブロック16の点データを描画ノード34cへ送信する。
 点群配信部62は、予め定められた配信タイミング(または描画タイミング)までに、複数の描画対象ブロックのうち一部の描画対象ブロックを描画ノード34へ未送信の場合、それら一部の描画対象ブロックの送信をスキップする。言い換えれば、それら一部の描画対象ブロックを描画ノード34へ送信しないまま描画対象ブロックに対する処理を終了する。この結果、マスタノード32と描画ノード34の通信状態によっては、優先度が低い描画対象ブロックに基づく画像は生成されない。
 以上の構成による画像処理システム30の動作を説明する。図5は、実施例の画像処理システム30の動作を示すフローチャートである。実施例では、複数台のカメラ(不図示)および点群生成装置(不図示)が画像処理システム30の外部に設けられることとするが、画像処理システム30の内部に設けられてもよい。複数台のカメラは、同一空間を異なる向き、角度から並行して撮像する。点群生成装置は、複数台のカメラから出力された複数の画像に基づいて公知の手法により点群のデータを生成する。ここでは、1つの点群のデータが、表示デバイス38に表示される1フレームに対応することとする。
 マスタノード32の空間データ記憶部46は、撮影空間を示すデータとして、点群生成装置により生成された点群のデータを保持する。すなわち空間データ記憶部46は、表示デバイス38に表示される複数のフレームに対応する複数の点群のデータを保持する。なお、点群生成装置は、複数台のカメラから出力された複数の画像に基づいて撮影空間の現在の様子を示す点群のデータをリアルタイムに生成し、生成した点群のデータを即時にマスタノード32の空間データ記憶部46へ格納してもよい。
 図6は、撮影空間の分割を模式的に示す。マスタノード32の空間分割部52は、空間データ記憶部46に格納された撮影空間70を示す点群データを読み出し、所定の分割アルゴリズムにしたがって撮影空間70を複数のブロックに分割する(S10)。空間分割部52は、各ブロックの点データをブロックデータ記憶部48へ格納する。マスタノード32の点群取得部54は、ブロックデータ記憶部48に格納された各ブロックの点データを読み出す。図7は、撮影空間に対する可視判定を模式的に示す。マスタノード32の可視判定部56は、ユーザ71(または仮想カメラ)の視点位置や姿勢、視線方向にしたがって、撮影空間70内の複数のブロックの中でどのブロックがユーザ71から視認されるかを判定する。可視判定部56は、ユーザ71から視認される複数のブロックを描画対象ブロック72として特定する(S12)。
 マスタノード32の優先度決定部58は、複数の描画対象ブロックのそれぞれに対して、内包する点の数が相対的に多いほど高い優先順位を付与する(S14)。図8は、マスタノード32から描画ノード34へのデータの送信態様を示す。マスタノード32の点群配信部62は、複数の描画対象ブロック72のそれぞれを対応する描画ノード34へ順次送信し、その際に、内包する点の個数が多い描画対象ブロック72ほど先に送信する(S16)。予め定められたフレームの描画タイミングに至ってなければ(S18のN)、S16に戻り、優先順位が低い描画対象ブロック72の送信を継続する。描画タイミングに至ると(S18のY)、以降の描画対象ブロック72の送信を中止する。
 図5のS10~S18で示したマスタノード32の処理は、1つのフレームの描画に係る処理である。マスタノード32は、複数のフレームに対応する複数の点群データに対して、S10~S18の処理を繰り返す。マスタノード32は、S18のYが成立するとそれまでのフレームの処理を終了し、次のフレームの処理へ移行する。
 複数の描画ノード34は、マスタノード32から受信した描画対象ブロック72に基づいて、撮影空間の一部の外観を示すビットマップ画像(以下「個別画像」とも呼ぶ。)を並行して生成する(S20)。例えば、フレーム画像を表示する画面を左上領域、左下領域、右下領域、右上領域の4領域に分割する場合、描画ノード34aは、画面の左上領域に該当するブロックの点データを受信して、画面の左上領域に表示すべき個別画像のデータを生成してもよい。また描画ノード34bは、画面の左下領域に該当するブロックの点データを受信して、画面の左下領域に表示すべき個別画像のデータを生成してもよい。また描画ノード34cは、画面の右下領域に該当するブロックの点データを受信して、画面の右下領域に表示すべき個別画像のデータを生成してもよい。複数の描画ノード34のそれぞれは、生成した個別画像のデータを表示制御ノード36へ送信する。
 表示制御ノード36は、複数の描画ノード34と画面内の複数領域との対応関係にしたがって、複数の描画ノード34で分散して生成された個別画像を合成することにより、フレーム全体の画像(以下「フレーム画像」とも呼ぶ。)を生成する(S22)。図9は、フレーム画像の生成を模式的に示す。表示制御ノード36は、描画ノード34aで生成された個別画像74aを左上領域に配置し、描画ノード34bで生成された個別画像74bを左下領域に配置し、描画ノード34cで生成された個別画像74cを右下領域に配置し、他の描画ノード(不図示)で生成された個別画像74dを右上領域に配置したフレーム画像76を生成してもよい。表示制御ノード36は、フレーム画像のデータを表示デバイス38へ出力し、表示デバイス38にフレーム画像を表示させる(S24)。
 既述したように、描画処理の対象となる点群は億単位の点を含むことがあり、通常のPC等のデバイス1台ではリアルタイムの描画が困難という問題があった。実施例の画像処理システム30では、複数の描画ノード(GPU)により描画処理を分散実行することで、大量の点データに基づく画像描画を実現できる。また、実施例の画像処理システム30によると、点群が示す撮影空間を分割した複数のブロックのうち点の数が少ないブロックについては、その通信または処理の優先度を低くし、例えば、通信または処理の順番を後回しにする。これにより、点群が大量の点データを含む場合でも、通信負荷を低減でき、また、処理負荷(描画処理の負荷等)を抑制できる。
 また、実施例の画像処理システム30によると、点群全体に対する重要度が高いと考えられる、点の数が多いブロックの通信または処理を優先的に実行し、重要度が高いブロックの通信または処理の遅延を抑制できる。実施例の画像処理システム30では、ユーザの注目を集めやすいブロックを優先的に描画し、その一方、ユーザに気付かれにくいブロックについてはベストエフォートで描画することで効率化を実現する。
 以上、本発明を実施例をもとに説明した。この実施例は例示であり、各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下変形例を説明する。
 第1変形例を説明する。上記実施例の画像処理システム30では、図3のマスタノード32が、撮影空間を構成する複数のブロックに対する優先順位を決定し、優先順位が高いブロックのデータを優先的に描画ノード34へ送信した。変形例として、図2で示したように、図3の描画ノード34(描画ノード34a、描画ノード34b、描画ノード34cのうち少なくとも1つ)が、撮影空間を構成する複数のブロックに対する優先順位を決定し、優先順位が高いブロックのデータに基づく画像を優先的に生成してもよい。すなわち、複数のブロックの優先度に応じたデータ処理を、マスタノード32に代わって描画ノード34が実行してもよく、または、マスタノード32とともに描画ノード34が実行してもよい。
 この変形例におけるマスタノード32は、点群により表された撮影空間を複数のブロックに分割して、複数のブロックの中からユーザにより視認されるブロックを描画対象ブロックとして検出してもよい。そして、優先順位を付与することなく、複数の描画対象ブロックの点データを1つの描画ノード34へ送信してもよい。また、マスタノード32は、複数の描画ノード34に対して、各ノードが描画を担当する領域に該当する描画対象ブロックの点データを順次もしくは並行して送信してもよい。
 図10は、変形例の描画ノード34の機能構成を示すブロック図である。図10に示す制御部80、記憶部82、通信部84は、図4の制御部40、記憶部42、通信部44に対応する。また、図10に示す点群取得部90、優先度決定部92、点群処理部94は、図4の点群取得部54、優先度決定部58、点群処理部60に対応する。
 点群取得部90は、マスタノード32から送信された複数の描画対象ブロックの点データを取得する。優先度決定部92は、複数の描画対象ブロックのそれぞれに属する点の数に基づいて、各描画対象ブロックの優先度を決定する。例えば、優先度決定部92は、複数の描画対象ブロックのそれぞれに属する点の数を計数し、内包する点の数が多い描画対象ブロックほど高い優先順位を付与する。
 点群処理部94は描画部96を含む。描画部96は、マスタノード32から送信された複数の描画対象ブロックの点データに基づいて、複数の個別画像を順次生成する。その際に、描画部96は、優先順位が高い描画対象ブロックほど先に個別画像を生成する。画像提供部98は、描画部96により生成された個別画像のデータを表示制御ノード36へ送信する。
 描画部96は、予め定められた描画タイミングまでに、複数の描画対象ブロックのうち一部の描画対象ブロックに基づく個別画像を未生成の場合、それら一部の描画対象ブロックに基づく個別画像の生成処理をスキップする。言い換えれば、それら一部の描画対象ブロックに基づく個別画像を生成しないまま描画対象ブロックに対する処理を終了する。この結果、描画処理の負荷によっては、優先度が低い描画対象ブロックに基づく画像が生成されないことがある。
 本変形例の描画ノード34によると、点群が示す撮影空間を分割した複数のブロックのうち点の数が少ないブロックについては、そのブロックに基づく描画処理の優先度を低くする。これにより、点群が大量の点データを含む場合でも、描画処理の負荷を抑制できる。なお、本変形例の描画ノード34は、実施例ではマスタノード32の機能とした空間データ記憶部46、空間分割部52、可視判定部56をさらに備えてもよい。また、本変形例では描画ノード34の機能とした優先度決定部92はマスタノード32の機能とし、描画ノード34の描画部96は、マスタノード32が決定した優先順位にしたがって複数のブロックに基づく複数の個別画像を生成してもよい。
 第2変形例を説明する。上記実施例のマスタノード32は、複数の描画ノード34のそれぞれに対して、各ノードが対応付けられた画面領域で表示される描画対象ブロックの点データを送信した。例えば、フレーム画像が表示される画面を4分割し、左上領域に該当する描画対象ブロックのデータを描画ノード34aへ送信し、左下領域に該当する描画対象ブロックのデータを描画ノード34bへ送信し、右下領域に該当する描画対象ブロックのデータを描画ノード34cへ送信した。
 ここで撮影空間には点の偏在性があるため、常時同じ態様で画面を分割して描画対象ブロックの送信先を決定すると、特定の描画ノードに負荷が偏ることがある。例えば、ある描画ノードでは描画負荷が許容値を大幅に超える一方、別の描画ノードでは描画負荷が許容値を大幅に下回ると言う状況が生じうる。結果、負荷が集中した描画ノードでは、描画処理が遅延しやすくなる。そこで、変形例のマスタノード32は、各描画ノードの負荷ができるだけ均等になるように、各描画ノードの担当範囲を動的に調整する調整部(不図示)をさらに備える。調整部は、各描画ノードの負荷の分散が所定値以下になるように、各描画ノードの担当範囲を調整してもよい。
 図11は、複数の描画ノードの負荷を平準化する方法を模式的に示す。ここでは、図3の描画ノード34a、描画ノード34b、描画ノード34cに加えて、第4の描画ノードとして描画ノード34d(不図示)が存在する。図11(a)に示すように、調整部は、フレーム画像を表示させる画面を4分割する。デフォルトでは、描画ノード34aが領域100の描画を担当し、描画ノード34bが領域102の描画を担当し、描画ノード34cが領域104の描画を担当し、描画ノード34dが領域106の描画を担当する。各領域の数字は、描画処理の負荷の大きさを示す。具体的には、各領域に含まれるブロック数を示すこととする。別の態様として、各領域の数字は、各領域に含まれる点の個数の比率を示すものでもよい。図11(a)の例では、素朴に画面を4等分すると、描画ノード34aに負荷が集中することになる。
 各描画ノードにおいて許容される負荷の大きさ(例えば許容されるブロック数であり、以下「許容負荷」と呼ぶ。)が、予め「5」に定められたこととする。いずれかの領域の負荷が「5」を超える場合、調整部は、図11の(b)で示すように、負荷が最大の領域(該当するブロック数が最大の領域)を、その長辺軸に沿って2分割する。例えば、長辺の中点を結んで半分に分割してもよい。図11の(b)に示す1回目の分割では1つの領域の負荷が依然として「5」を超えるため、調整部は、図11の(c)で示すように、再度、負荷が最大の領域を2分割する。
 各領域の負荷が許容負荷以下になった場合、調整部は、各領域の負荷と許容負荷との差を計算する。図11の(d)は、この計算結果を示している。図11の(e)で示すように、調整部は、許容負荷との差が所定値(ここでは4)以上の領域を、隣接する領域と統合する。図11の(f)は領域を統合した結果を示している。調整部は、各領域の負荷の分散が所定値(例えば「1.6」)以下になった場合に調整処理を終了する。マスタノード32の点群配信部62は、例えば、領域110に該当する描画対象ブロックのデータを描画ノード34aへ送信し、領域112に該当する描画対象ブロックのデータを描画ノード34bへ送信する。また、領域114に該当する描画対象ブロックのデータを描画ノード34cへ送信し、領域116に該当する描画対象ブロックのデータを描画ノード34dへ送信する。
 図11の(a)における領域100~領域106の分散は「13.5」である一方、図11の(f)における領域110~領域116の分散は「1.5」に低下している。このように本変形例の態様によると、各描画ノードの負荷を平準化でき、特定のノードに負荷が集中すること、またその特定のノードで描画が遅延することを抑制できる。
 第3変形例として、実施例の画像処理システム30の利用例を説明する。画像処理システム30に対する外部装置(外部システム)は、スタジアム等でなされるスポーツの様子を撮影して点群のデータを生成する。この外部装置は、生成した点群のデータを、通信網を介して、クラウドシステムとしての画像処理システム30へ送信する。画像処理システム30(ここではマスタノード32)は、実施例と同様に、点群のデータが示す空間を複数のブロックに分割し、内包する点の個数に基づいて各ブロックに優先度を付与する。画像処理システム30は、点群のデータをブロック単位にクライアント装置(進行中のスポーツの画像を表示するユーザ装置等)へ送信し、その際に、優先度が高いブロックのデータを先に送信する。
 点の個数が多いブロックを先にクライアント装置へ届けるため、仮に通信に遅延が発生しても、点の個数が多いブロック、言い換えれば、情報が多い部分が所定のタイミングまでにクライアント装置へ配信される可能性を高めることができる。なお、点群のデータを生成する外部装置は、複数のブロックへの分割をさらに実行して、各ブロックの点データを画像処理システム30へ送信してもよい。この場合、画像処理システム30は、優先度付け以降の処理を実行してもよい。
 第4変形例として、実施例の画像処理システム30の別の利用例を説明する。ここでは、サーバ内に保存されている点群のデータをクライアント装置が取得し、処理(描画等)を実行する。このサーバは、実施例のマスタノード32の機能を備え、点群のデータが示す空間を分割し、内包する点の個数に基づいて各ブロックに優先度を付与し、優先度が高いブロックのデータを先にクライアント装置へ送信する。この変形例でも、点の個数が多いブロックを先にクライアント装置へ届けるため、仮に通信に遅延が発生しても、点の個数が多いブロック、言い換えれば、情報が多い部分がクライアント装置で処理(描画等)される可能性を高めることができる。
 上記実施例に記載の技術は、現実空間の様子を示す点群データを処理(描画等)することに制限されず、仮想空間の様子を示す点群データを処理(描画等)する場合にも適用可能であり、実施例と同様に効率的な点群処理を実現できる。
 上述した実施例および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施例および変形例それぞれの効果をあわせもつ。
 請求項に記載の各構成要件が果たすべき機能は、上述した実施例および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
 30 画像処理システム、 32 マスタノード、 34 描画ノード、 52 空間分割部、 54 点群取得部、 58 優先度決定部、 60 点群処理部、 62 点群配信部、 90 点群取得部、 92 優先度決定部、 96 描画部。
 この発明は、点群を用いたデータ処理を実行する装置に適用できる。

Claims (8)

  1.  空間の外観を複数の点の集合により表した点群であって、前記空間を分割した複数のブロックのいずれかに各点が属する点群を取得する点群取得部と、
     前記複数のブロックのそれぞれに属する点の数に基づいて、各ブロックの優先度を決定する優先度決定部と、
     前記優先度決定部により決定された優先度に応じて前記複数のブロックを処理する点群処理部と、
     を備えることを特徴とするデータ処理装置。
  2.  前記優先度決定部は、点の数が多いブロックほど高い優先度を決定することを特徴とする請求項1に記載のデータ処理装置。
  3.  前記点群処理部は、通信網を介して、前記点群に基づくデータ処理を実行すべき外部装置に対してブロック単位に点のデータを送信し、その際に、優先度が高いブロックの点のデータを先に送信することを特徴とする請求項1または2に記載のデータ処理装置。
  4.  前記点群処理部は、各ブロックの点に基づいて各ブロックの画像を生成し、その際に、優先度が高いブロックの画像を先に生成することを特徴とする請求項1または2に記載のデータ処理装置。
  5.  前記点群処理部は、優先度が高いブロックの点に基づくデータ処理を先に実行し、所定時点までにデータ処理が未完了のブロックがあればそのブロックの点に基づくデータ処理をスキップすることを特徴とする請求項1または2に記載のデータ処理装置。
  6.  所定のアルゴリズムにしたがって前記空間を複数のブロックに分割する分割部をさらに備えることを特徴とする請求項1から5のいずれかに記載のデータ処理装置。
  7.  空間の外観を複数の点の集合により表した点群であって、前記空間を分割した複数のブロックのいずれかに各点が属する点群を取得するステップと、
     前記複数のブロックのそれぞれに属する点の数に基づいて、各ブロックの優先度を決定するステップと、
     前記決定するステップで決定された優先度に応じて前記複数のブロックを処理するステップと、
     をコンピュータが実行することを特徴とするデータ処理方法。
  8.  空間の外観を複数の点の集合により表した点群であって、前記空間を分割した複数のブロックのいずれかに各点が属する点群を取得する機能と、
     前記複数のブロックのそれぞれに属する点の数に基づいて、各ブロックの優先度を決定する機能と、
     前記決定する機能により決定された優先度に応じて前記複数のブロックを処理する機能と、
     をコンピュータに実現させるためのコンピュータプログラム。
PCT/JP2017/029405 2016-08-22 2017-08-15 データ処理装置、データ処理方法およびコンピュータプログラム WO2018037976A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/318,019 US11227357B2 (en) 2016-08-22 2017-08-15 Data processing apparatus, data processing method, and computer program
EP17843459.3A EP3503039A4 (en) 2016-08-22 2017-08-15 DATA PROCESSING DEVICE, DATA PROCESSING METHOD AND COMPUTER PROGRAM

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-162289 2016-08-22
JP2016162289A JP6637855B2 (ja) 2016-08-22 2016-08-22 データ処理装置、データ処理方法およびコンピュータプログラム

Publications (1)

Publication Number Publication Date
WO2018037976A1 true WO2018037976A1 (ja) 2018-03-01

Family

ID=61246480

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/029405 WO2018037976A1 (ja) 2016-08-22 2017-08-15 データ処理装置、データ処理方法およびコンピュータプログラム

Country Status (4)

Country Link
US (1) US11227357B2 (ja)
EP (1) EP3503039A4 (ja)
JP (1) JP6637855B2 (ja)
WO (1) WO2018037976A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021060229A1 (ja) * 2019-09-26 2021-04-01 シャープ株式会社 三次元表現変換装置、および、三次元表現逆変換装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11204962B2 (en) * 2018-10-01 2021-12-21 Palo Alto Networks, Inc. Explorable visual analytics system having reduced latency
EP3846058A1 (en) 2019-12-30 2021-07-07 TMRW Foundation IP SARL Multi-dimensional 3d engine computing and virtualization-based dynamic load balancing of virtual or real worlds

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015197329A (ja) * 2014-03-31 2015-11-09 三菱重工業株式会社 データ伝送システム、データ伝送装置、データ伝送方法、及びデータ伝送プログラム
JP2015210186A (ja) * 2014-04-25 2015-11-24 東芝プラントシステム株式会社 3次元データ表示装置、3次元データ表示方法、及び3次元データ表示プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6414680B1 (en) 1999-04-21 2002-07-02 International Business Machines Corp. System, program product and method of rendering a three dimensional image on a display
US7843959B2 (en) * 2004-01-30 2010-11-30 Telefonaktiebolaget Lm Ericsson Prioritising data elements of a data stream
US7804498B1 (en) 2004-09-15 2010-09-28 Lewis N Graham Visualization and storage algorithms associated with processing point cloud data
US8933943B2 (en) * 2008-04-30 2015-01-13 Intel Corporation Technique for performing load balancing for parallel rendering
US20120218277A1 (en) * 2011-02-25 2012-08-30 ST-Ericcson SA Display list mechanism and scalable display engine structures
US9380321B2 (en) * 2012-01-18 2016-06-28 Disney Enterprises, Inc. Method and apparatus for low-latency camera control in a wireless broadcasting system
US20140172377A1 (en) * 2012-09-20 2014-06-19 Brown University Method to reconstruct a surface from oriented 3-d points
US9069415B2 (en) 2013-04-22 2015-06-30 Fuji Xerox Co., Ltd. Systems and methods for finger pose estimation on touchscreen devices
US9763591B2 (en) * 2014-05-05 2017-09-19 Pacesetter, Inc. Method and system to subdivide a mapping area for mechanical activation analysis
KR102238693B1 (ko) 2014-06-20 2021-04-09 삼성전자주식회사 포인트 클라우드에서 특징 영역을 추출하는 방법 및 장치
US9787557B2 (en) * 2015-04-28 2017-10-10 Google Inc. Determining semantic place names from location reports
US11297346B2 (en) * 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
US10803561B2 (en) * 2017-06-02 2020-10-13 Wisconsin Alumni Research Foundation Systems, methods, and media for hierarchical progressive point cloud rendering

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015197329A (ja) * 2014-03-31 2015-11-09 三菱重工業株式会社 データ伝送システム、データ伝送装置、データ伝送方法、及びデータ伝送プログラム
JP2015210186A (ja) * 2014-04-25 2015-11-24 東芝プラントシステム株式会社 3次元データ表示装置、3次元データ表示方法、及び3次元データ表示プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of EP3503039A4 *
TARO SUZUKI ET AL.: "Outdoor 3D Mapping and its Application for Mobile Robots", JOURNAL OF THE SOCIETY OF INSTRUMENT AND CONTROL ENGINEERS, vol. 49, no. 9, 10 September 2010 (2010-09-10), pages 640 - 645, XP009513652, ISSN: 0453-4662 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021060229A1 (ja) * 2019-09-26 2021-04-01 シャープ株式会社 三次元表現変換装置、および、三次元表現逆変換装置

Also Published As

Publication number Publication date
US11227357B2 (en) 2022-01-18
EP3503039A4 (en) 2020-06-03
JP6637855B2 (ja) 2020-01-29
JP2018032112A (ja) 2018-03-01
US20190304050A1 (en) 2019-10-03
EP3503039A1 (en) 2019-06-26

Similar Documents

Publication Publication Date Title
US11379948B2 (en) Mixed reality system with virtual content warping and method of generating virtual content using same
JP6620079B2 (ja) 画像処理システム、画像処理方法およびコンピュータプログラム
KR102221937B1 (ko) 임의의 뷰 생성
US10313661B2 (en) Wide baseline stereo for low-latency rendering
JP7123127B2 (ja) 前の目線からのレンダリングされたコンテンツおよびレンダリングされなかったコンテンツを使用した新しいフレームの生成
US11004255B2 (en) Efficient rendering of high-density meshes
US11539935B2 (en) Videotelephony with parallax effect
US10163251B2 (en) Arbitrary view generation
US20210217225A1 (en) Arbitrary view generation
WO2018037976A1 (ja) データ処理装置、データ処理方法およびコンピュータプログラム
TW201921318A (zh) 用於產生場景之舖磚式三維影像表示之設備及方法
JP7366563B2 (ja) 画像生成装置、画像生成方法、及びプログラム
EP3564905A1 (en) Conversion of a volumetric object in a 3d scene into a simpler representation model
Scheer et al. A client-server architecture for real-time view-dependent streaming of free-viewpoint video
WO2022244131A1 (ja) 画像データ生成装置、表示装置、画像表示システム、画像データ生成方法、画像表示方法、および、画像データのデータ構造
JP2011048545A (ja) 画像合成装置及びプログラム
WO2022176719A1 (ja) 画像処理装置、画像処理方法及びプログラム
US20230008125A1 (en) Augmenting a view of a real-world environment with a view of a volumetric video object

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: 17843459

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2017843459

Country of ref document: EP