WO2019203628A1 - 3차원 데이터를 프로세싱하기 위한 방법 및 장치 - Google Patents

3차원 데이터를 프로세싱하기 위한 방법 및 장치 Download PDF

Info

Publication number
WO2019203628A1
WO2019203628A1 PCT/KR2019/004839 KR2019004839W WO2019203628A1 WO 2019203628 A1 WO2019203628 A1 WO 2019203628A1 KR 2019004839 W KR2019004839 W KR 2019004839W WO 2019203628 A1 WO2019203628 A1 WO 2019203628A1
Authority
WO
WIPO (PCT)
Prior art keywords
point
processor
points
bits
projection
Prior art date
Application number
PCT/KR2019/004839
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 EP19788875.3A priority Critical patent/EP3783886A4/en
Priority to US17/048,757 priority patent/US11430185B2/en
Publication of WO2019203628A1 publication Critical patent/WO2019203628A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/128Adjusting depth or disparity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/008Cut plane or projection plane definition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals

Definitions

  • the technical idea of the present disclosure relates to an apparatus and a method of operating the same, and more particularly, to an apparatus for processing 3D data and a method of operating the same.
  • a point cloud which is a method of representing 3D data, refers to a set of vast amounts of points, and a large amount of three-dimensional data may be represented by a point cloud.
  • a point cloud is a value that is compared with a 2D image.
  • the point cloud is a method of representing a point on a three-dimensional image.
  • the point cloud may be represented as (x, y, z, R, G, B).
  • the point cloud which is composed of numerous colors and location data and forms a spatial structure, becomes more specific as the density gets higher and becomes a 3D model.
  • the technical idea of the present disclosure relates to an apparatus and method for processing three-dimensional data, and provides an apparatus and method for transforming a point cloud.
  • a method for processing three-dimensional data for a point cloud identifying a plurality of points constituting the point cloud; And generating a projection image by projecting the identified plurality of points on a projection plane, wherein the number of bits representing a projection point corresponding to at least one point of the plurality of points projected on the projection image includes: A first point is determined based on at least one of a distance between a first point and a second point of the plurality of points and a number of intermediate points located between the first point and the second point, the first point being the projection One of the at least one point on the normal to the plane is the closest to the projection plane, and the second point is the point furthest from the projection plane within a critical distance from the first point of the at least one point on the normal.
  • an apparatus for processing three-dimensional data for the point cloud a processor; And a memory configured to store instructions executable by the processor, the processor to identify a plurality of points constituting the point cloud and to project the identified plurality of points onto a projection plane to generate a projection image. And a bit number representing a projection point corresponding to at least one of the plurality of points projected on the projection image, the distance between a first point and a second point of the plurality of points and the first point.
  • the first point being the closest point to the projection plane of at least one point on the normal to the projection plane
  • the second point is the one of at least one point on the normal The point farthest from the projection plane within a threshold distance from the first point.
  • a method for processing 3D data for a point cloud may include extracting color information corresponding to a first point included in an ROI; Extracting color information corresponding to a second point located within a threshold distance from the first point; Comparing a threshold and a difference between the color information corresponding to the first point and the color information corresponding to the second point; And if the difference is less than or equal to the threshold, determining that the second point is included in the region of interest.
  • a processor configured to store the executable instructions by the processor, wherein the processor extracts color information corresponding to a first point included in the ROI, and is located at a second distance from the first point within a threshold distance. Extracts color information corresponding to a second value, compares a difference between a color information corresponding to the first point and a color information corresponding to the second point, and a threshold value; and if the difference is less than or equal to the threshold value, And determine that a second point is included in the region of interest.
  • an apparatus and method capable of processing three-dimensional data for a point cloud can be provided.
  • FIG. 1 illustrates an overall system for transmitting and receiving a point cloud according to an exemplary embodiment of the present disclosure.
  • FIG. 2 shows a block diagram of an apparatus according to an exemplary embodiment of the present disclosure.
  • FIG 3 illustrates an embodiment in which an apparatus according to an exemplary embodiment of the present disclosure converts three-dimensional data for a point cloud into two-dimensional data.
  • FIG. 4 illustrates an embodiment in which an apparatus according to an exemplary embodiment of the present disclosure fixedly allocates the number of bits representing the 3D data in the process of converting the 3D data for the point cloud into the 2D data.
  • FIG. 5A illustrates an embodiment in which an apparatus variably allocates the number of bits representing 3D data in a process of converting 3D data for a point cloud into 2D data according to an exemplary embodiment of the present disclosure.
  • 5B illustrates an embodiment in which an apparatus variably allocates the number of bits representing 3D data in a process of converting 3D data for a point cloud into 2D data according to an exemplary embodiment of the present disclosure.
  • FIG. 6 is a table for explaining an embodiment of variably allocating bits according to an exemplary embodiment of the present disclosure.
  • FIG. 7 is a table illustrating instructions executable by a processor in accordance with example embodiments of the present disclosure.
  • FIG. 8 is a table illustrating a distribution probability of 3D data constituting a point cloud according to an exemplary embodiment of the present disclosure.
  • 9 is a table showing the number of bits required in an embodiment of variably allocating the number of bits according to an exemplary embodiment of the present disclosure.
  • FIG. 10 is a table showing the number of bits required in an embodiment of variably allocating the number of bits according to an exemplary embodiment of the present disclosure.
  • FIG. 11 illustrates an example of an error occurring in 3D data restoration according to an exemplary embodiment of the present disclosure.
  • FIG. 12 is a table illustrating instructions executable by a processor and a description thereof according to an exemplary embodiment of the present disclosure.
  • FIG. 13 shows a flowchart of the operation of an apparatus according to an exemplary embodiment of the present disclosure.
  • FIG. 14 shows a flowchart of the operation of an apparatus according to an exemplary embodiment of the present disclosure.
  • module means a unit for processing at least one function or operation, which may be implemented in hardware or software, or a combination of hardware and software.
  • minimum unit means a minimum unit designated to distinguish a step of a depth value between a plurality of points constituting a point cloud.
  • critical distance and “critical unit” mean any distance defined in advance.
  • region of interest means any area defined in advance.
  • threshold value means any number defined in advance.
  • FIG. 1 illustrates an overall system for transmitting and receiving a point cloud according to an exemplary embodiment of the present disclosure.
  • the transmitter 10 may include a transform module 100 and a compression module 110
  • the receiver 20 may include a decompression module 120 and an inverse transform module 130. Can be.
  • the conversion module 100 may convert Dataset_1 into Dataset_2, which is a data type that the compression module 110 can process.
  • Dataset_1 may be three-dimensional data
  • Dataset_2 may be two-dimensional data.
  • the compression module 110 may compress Dataset_2 to generate Dataset_3.
  • the size of Dataset_3 may be smaller than the size of Dataset_2.
  • the decompression module 120 may reconvert Dataset_3 to Dataset_4 having the same data type as Dataset_2.
  • the inverse transform module 130 may reconvert Dataset_4 to Dataset_5 having the same data type as Dataset_1.
  • the compression module 110 may include a HEVC (High Efficiency VideoVideo Codec) encoder or an Entropy encoder
  • the decompression module 120 may include an HEVC decoder or an Entropy decoder.
  • FIG. 2 shows a block diagram of an apparatus according to an exemplary embodiment of the present disclosure.
  • the conversion module 100 may include a processor 200 and a memory 210.
  • the processor 200 may identify a plurality of points constituting a point cloud, which is three-dimensional data input to the transformation module 100.
  • the processor 200 may generate a projection image by projecting a plurality of points constituting a point cloud onto a projection plane in order to convert 3D data input to the conversion module 100 into 2D data.
  • the projection plane may be any cross section through the point cloud, which is three-dimensional data input to the transform module 100.
  • Memory 210 may store software code that is computer readable and / or computer executable and includes a plurality of instructions.
  • the memory 210 may store a plurality of signal processing algorithms for signal processing of wireless communication.
  • the plurality of signal processing algorithms stored in the memory 210 may be executed as various functional blocks included in the modem. For example, at least two or more of the signal processing algorithms stored in the memory 210 may have different complexity.
  • the memory 210 may include, for example, a volatile memory device such as a dynamic random access memory (DRAM) or a synchronous dynamic random access memory (SDRAM).
  • the memory 140 may include, for example, electrically erasable programmable read-only memory (EEPROM), flash memory, phase change random access memory (PRAM), resistance random access memory (RRAM), and nano floating (NFGM). It may also include a nonvolatile memory device such as a gate memory (PoRAM), a polymer random access memory (PoRAM), a magnetic random access memory (MRAM), or a ferroelectric random access memory (FRAM).
  • EEPROM electrically erasable programmable read-only memory
  • PRAM phase change random access memory
  • RRAM resistance random access memory
  • NFGM nano floating
  • It may also include a nonvolatile memory device such as a gate memory (PoRAM), a polymer random access memory (PoRAM), a magnetic random access memory (MRAM), or a ferroelectric random access memory (FRAM
  • the complexity of the algorithm may vary based on the amount of calculation, the number of clocks, the number of logic blocks, the number of adders, the number of iterations in the algorithm, the number of samples of the result, the degree of prior information used, and the like. .
  • the complexity increases, and as the number of logic blocks for performing the algorithm decreases, the complexity decreases.
  • the signal processing algorithm may increase in complexity as the signal processing level is higher.
  • FIG 3 illustrates an embodiment in which an apparatus according to an exemplary embodiment of the present disclosure converts three-dimensional data for a point cloud into two-dimensional data.
  • the processor 200 of FIG. 2 includes a plurality of points D0 (i), D0 (i + 1), and D1 (i + 1) that form a point cloud, which is three-dimensional data input to the transformation module 100 of FIG. 2. ), D0 (i + 2), D1 (i + 2), D0 (i + 3), and the like.
  • the processor 200 may generate a projection image by projecting a plurality of points to the projection plane 300, which is any cross section passing through the point cloud.
  • the processor 200 generates position information p [i], p [i + 1], p [i + 2], p [i + 3] for a plurality of points projected on the projection plane 300. can do. For example, a plurality of points lying on the same normal with respect to the projection plane 300 may have the same location information.
  • the processor 200 determines the points closest to the projection plane 300 among the plurality of points constituting the point cloud, from the first points D0 (i), D0 (i + 1), D0 (i + 2), and D0. (i + 3)).
  • the processor 200 is a first point of a plurality of points lying on the same normal as the first points D0 (i), D0 (i + 1), D0 (i + 2), and D0 (i + 3).
  • the point furthest from the projection plane 300 within the threshold distance 310 can be designated as the second point D1 (i + 1). D1 (i + 2).
  • the processor 200 may designate the second point as the same as the first points D0 (i) and D0 (i + 3).
  • the processor 200 may allocate the number of bits representing the projection points included in the projection image projected onto the projection plane 300 to 2 bits. For example, the processor 200 stores information about the first points D0 (i), D0 (i + 1), D0 (i + 2), and D0 (i + 3) in one of two bits. And information on the second point (D0 (i), D1 (i + 1). D1 (i + 2), D0 (i + 3)) may be stored in the remaining 1 bit. In an example, the information about the first point and the second point may be based on the relative position of the first point and the second point with respect to the projection plane 300 or the distance of the first point and the second point with respect to the projection plane 300. It may be information indicating.
  • the conversion module 100 of FIG. 2 may output two-dimensional data representing a projection point in two bits including information about the first point and the second point.
  • FIG. 4 illustrates an embodiment in which an apparatus according to an exemplary embodiment of the present disclosure fixedly allocates the number of bits representing the 3D data in the process of converting the 3D data for the point cloud into the 2D data.
  • the processor 200 of FIG. 2 may identify a plurality of points constituting a point cloud, which is three-dimensional data input to the transformation module 100 of FIG. 2.
  • the processor 200 may generate a projection image by projecting a plurality of points to the projection plane 300, which is any cross section passing through the point cloud.
  • the processor 200 performs position information p [i], p [i + 1], p [i + 5], p [i + 8], p [with respect to the plurality of points projected on the projection plane 300. i + 11], p [i + 13]). For example, a plurality of points lying on the same normal with respect to the projection plane 300 may have the same location information.
  • the processor 200 may designate the points closest to the projection plane 300 among the plurality of points constituting the point cloud as the first points D0.
  • the transmitting device 10 of FIG. 1 may transmit the first point D0 and the second point D1 to the receiving device 20 through different layers.
  • the processor 200 designates the point furthest from the projection plane as the second point D1 within a threshold thickness from the first point among a plurality of points lying on the same normal as the first point D0.
  • the surface thickness may be five.
  • the second point D0 D1. Each may be designated as the same as the first point.
  • the processor 200 includes in-between points passing through the same normal as the first point D0 and the second point D1 between the first point D0 and the second point D1 on the same normal. Can be identified. In an example embodiment, the processor 200 may identify a position relative to the first point and the second point of the in-between points.
  • the processor 200 may determine the number of bits representing the projection point included in the projection image projected onto the projection plane 300 to be one less than the threshold distance (SurfaceThickness). For example, when the surface thickness is 5, the processor 200 may allocate the number of bits representing the projection point to 4 bits. In an exemplary embodiment, the processor 200 may store information about in-between points in three of four bits, and store information about the second point D1 in one remaining bit, respectively. Can be.
  • the processor 200 may indicate, for example, whether a middle point and a second point are present in a bit representing a projection point as a value of 1 or 0.
  • the processor 200 may allocate the number of bits representing the projection point to 4 bits when the threshold thickness is 5, with each bit in order from the first point D0. This may mean that the point is located relatively far from.
  • a first bit of the allocated 4 bits may indicate the presence or absence of a projection point at a point at which the distance from the first point D0 is 1, and the second bit has a distance of 2 from the first point D0.
  • the third bit may indicate the presence or absence of the projection point at a point 3 distance from the first point (D0), the fourth bit from the first point (D0) It can indicate the presence or absence of the projection point at the point where the distance of 4.
  • two intermediate points In-between points and a second point D1 are sequentially located with respect to the first point D0.
  • the processor 200 means that the first bit and the second bit of the allocated 4 bits have in-between points at a point at which the distance from the first point D0 is 1 and at a point at 2. You can assign 1 to.
  • the processor 200 may assign 1 to the third bit of the allocated 4 bits, which means that the second point D1 exists at the point where the distance from the first point D0 is three.
  • the processor 200 may allocate 0, which means that the 3D point does not exist at the point where the distance from the first point D0 is 4 to the fourth bit among the allocated 4 bits.
  • the first point D0 whose projection position with respect to the projection plane 300 is p [i + 8] is the first point D0 and the second point D1. Is the same.
  • the processor 200 determines the distance between the first point D0, the point 1, the point 2, the point 3, and the point 4 at the first, second, third, and fourth bits of the allocated four bits. We can assign 0 to mean that there are no three-dimensional points in.
  • the first point D0 and the second point D1 having the projection position with respect to the projection plane 300 as p [i + 13] are the first point D0.
  • the second point D1 is positioned continuously with respect to.
  • the processor 200 may allocate 1, which means that the second point D1 exists at a point at which the distance from the first point D0 is 1 to the first bit of the allocated 4 bits.
  • the processor 200 indicates that there are no three-dimensional points at points 2, 3, and 4 from the first point D0 at the second, third, and fourth bits of the allocated four bits. You can assign 0 to mean.
  • FIG. 5A illustrates an embodiment in which an apparatus variably allocates the number of bits representing 3D data in a process of converting 3D data for a point cloud into 2D data according to an exemplary embodiment of the present disclosure.
  • the processor 200 of FIG. 2 may identify a plurality of points constituting a point cloud, which is three-dimensional data input to the transformation module 100 of FIG. 2.
  • the processor 200 may generate a projection image by projecting a plurality of points to the projection plane 300, which is any cross section passing through the point cloud.
  • the processor 200 performs position information p [i], p [i + 1], p [i + 5], p [i + 8], p [with respect to the plurality of points projected on the projection plane 300. i + 11], p [i + 13]). For example, a plurality of points lying on the same normal with respect to the projection plane 300 may have the same location information.
  • the processor 200 may designate the points closest to the projection plane 300 among the plurality of points constituting the point cloud as the first points D0.
  • the processor 200 designates the point furthest from the projection plane as the second point D1 within a threshold thickness from the first point among a plurality of points lying on the same normal as the first point D0.
  • the surface thickness may be five.
  • the second point D0 D1. Each may be designated as the same as the first point.
  • the processor 200 may determine the number of bits representing the second point D1 as 1.
  • the minimum unit is a minimum unit that is designated to distinguish the step of the depth value between the plurality of points constituting the point cloud. For example, since the second point D1 having the projection position with respect to the projection plane 300 is p [i + 13] is continuously positioned with respect to the first point D0, the processor 200 may based on this. The number of bits representing the two points D1 may be determined as one, and the bit value representing the second point D1 may be stored as one.
  • the processor 200 may determine that the second point D1 is disposed when the first point D0 and the second point D1 are separated by n (n is an integer, n> 1) times the minimum unit.
  • the number of bits representing may be determined as the minimum value needed to store a binary number of n.
  • the second point D1 having the projection position p [i] with respect to the projection plane 300 is located at a distance three times the minimum unit with respect to the first point D0. Based on this, the processor 200 determines the number of bits representing the second point D1 as 2, which is the minimum value necessary to store 11 (2) , which is a binary number of 3, and the bit value representing the second point D1. Can be stored as 11.
  • the second point D1 having the projection position p [i + 11] with respect to the projection plane 300 has a second point D1 separated by two times the minimum unit with respect to the first point D0. Since it is located, the processor 200 determines the number of bits representing the second point D1 as 2, which is the minimum value necessary to store 10 (2) , which is a binary number of 2, and represents the second point D1.
  • the bit value can be stored as 10.
  • the processor 200 includes in-between points passing through the same normal as the first point D0 and the second point D1 between the first point D0 and the second point D1 on the same normal. Can be identified. In an example embodiment, the processor 200 may identify a position relative to the first point and the second point of the in-between points.
  • the processor 200 may determine the number of bits representing the projection points included in the projection image projected onto the projection plane 300 and the distance between the first point D0 and the second point D1 and the first point D0 and the first point D0. The determination may be based on at least one of the number of intermediate points located between two points D1. For example, the projection point may be a set of in-between points on the same normal.
  • the processor 200 may determine that the number of bits representing the projection point is zero. Referring to FIG. 5A, in the exemplary embodiment, the second point D1 having the projection position p [i + 13] with respect to the projection plane 300 is continuously positioned with respect to the first point D1. The processor 200 may determine the number of bits representing the second point D1 as 0 based on this.
  • the processor 200 determines the number of bits representing the projection point as an n-1 value. Can be.
  • the processor 200 may indicate the presence or absence of an intermediate point in a bit indicating a projection point as a value of 1 or 0. FIG. For example, when a plurality of bits are allocated, each bit may mean a point located relatively far from the first point D0 in order from the front.
  • the second point D1 having the projection position p [i] with respect to the projection plane 300 has a second point D1 with respect to the first point D0. Since it is located three times apart from the minimum unit, the processor 200 may determine the number of bits representing the projection point as 2 based on this. In addition, the processor 200 may assign 1 to the first bit of the allocated 2 bits, which means that the 3D point exists at the point where the distance from the first point D0 is 1. In addition, the processor 200 may allocate 1 to the second bit of the allocated 2 bits, which means that the 3D point exists at the point where the distance from the first point D0 is 2.
  • the second point D1 having the projection position p [i + 5] with respect to the projection plane 300 is the second point D1 with respect to the first point D0.
  • the processor 200 may determine the number of bits representing the projection point as 3 based on this.
  • the processor 200 may assign 1 to the first bit of the allocated 3 bits, which means that the 3D point exists at a point having a distance from the first point D0.
  • the processor 200 may assign 0 to the second bit of the allocated 3 bits, which means that the 3D point does not exist at the point where the distance from the first point D0 is 2.
  • the processor 200 may assign 1 to the third bit of the allocated 3 bits, which means that the 3D point is present at the point where the distance from the first point D0 is 3.
  • FIG. 5B illustrates an embodiment in which an apparatus variably allocates the number of bits representing 3D data in a process of converting 3D data for a point cloud into 2D data according to an exemplary embodiment of the present disclosure.
  • the description overlapping with FIG. 5A will be omitted.
  • the processor 200 of FIG. 2 may identify a plurality of points constituting a point cloud, which is three-dimensional data input to the transformation module 100 of FIG. 2.
  • the processor 200 may generate a projection image by projecting a plurality of points to the projection plane 300, which is any cross section passing through the point cloud.
  • the processor 200 performs position information p [i], p [i + 2], p [i + 4], p [i + 8], p [for a plurality of points projected on the projection plane 300. i + 10], p [i + 12]).
  • the processor 200 may designate the points closest to the projection plane 300 among the plurality of points constituting the point cloud as the first points D0.
  • the processor 200 designates the point furthest from the projection plane as the second point D1 within a threshold thickness from the first point among a plurality of points lying on the same normal as the first point D0. Can be.
  • the processor 200 includes in-between points passing through the same normal as the first point D0 and the second point D1 between the first point D0 and the second point D1 on the same normal. Can be identified. In an example embodiment, the processor 200 may identify a position relative to the first point and the second point of the in-between points.
  • the processor 200 may determine the number of bits representing the projection points included in the projection image projected onto the projection plane 300 and the distance between the first point D0 and the second point D1 and the first point D0 and the first point D0. The determination may be based on at least one of the number of in-between points located between two points D1. For example, the projection point may be a set of in-between points on the same normal.
  • the processor 200 determines that the number of bits representing the projection point is 0. Can be.
  • the processor 200 may determine the number of bits representing the projection point as 0. have.
  • the second point D1 having the projection position p [i + 10] with respect to the projection plane 300 is the second point D1 with respect to the first point D0.
  • the processor 200 may determine the number of bits representing the projection point as 0 based on this.
  • the processor 200 may determine that the number of bits representing the projection point is zero.
  • the processor 200 projects when the first point D0 and the second point D1 are separated by n (n is an integer, n> 2) times the minimum unit, and there are one or more in-between points.
  • the number of bits representing a point may be determined as an n-1 value.
  • the processor 200 may indicate the presence or absence of an intermediate point in a bit indicating a projection point as a value of 1 or 0. FIG. For example, when a plurality of bits are allocated, each bit may mean a point located relatively far from the first point D0 in order from the front.
  • the second point D1 having the projection position p [i] with respect to the projection plane 300 has the second point D1 with respect to the first point D0. Since four times the minimum unit is located and there is one in-between points, the number of bits representing the projection point may be determined as three.
  • the processor 200 may assign 1 to the first bit of the allocated 3 bits, which means that the 3D point exists at a point having a distance from the first point D0.
  • the processor 200 may assign 0 to the second bit of the allocated 3 bits, which means that the 3D point does not exist at the point where the distance from the first point D0 is 2.
  • the processor 200 may assign 0 to the third bit of the allocated 3 bits, which means that the 3D point does not exist at the point where the distance from the first point D0 is 3.
  • FIG. 6 is a table for explaining an embodiment of variably allocating bits according to an exemplary embodiment of the present disclosure.
  • the processor 200 of FIG. 2 identifies a plurality of points constituting a point cloud, which is three-dimensional data input to the conversion module 100 of FIG. 2, and is a point closest to the projection plane 300 among the plurality of points.
  • the second point D1 that is the furthest point from the projection plane within the surface thickness from the first point among the plurality of points lying on the same normal as the first point D0 and the first point D0. Can be specified.
  • the processor 200 may identify a depth value existing between the first point D0 and the second point D1.
  • the depth value corresponds to the distance present between the first point D0 and the second point D1.
  • the processor 200 determines that a depth value does not exist between the first point D0 and the second point D1 when the first point D0 and the second point D1 are separated by the minimum unit.
  • the number of bits needed to record the depth value can be determined as zero. For example, when the first point D0 and the second point D1 are separated by the minimum unit, D1 is 1.
  • the processor 200 may have the first point D0 and the second point D1.
  • the depth value existing in between may be determined as a set including at least one of a number from 0 to n-1, and the number of bits required to record the depth value may be determined as an n-1 value.
  • D1 is n.
  • D1 is four.
  • the processor 200 determines a depth value existing between the first point D0 and the second point D1 as a set including at least one of a number from 0 (null) to 3, The number of bits needed to record the depth value can be determined as three.
  • the processor 200 may determine a depth value existing between the first point D0 and the second point D1 by ⁇ 0 (null) ⁇ , ⁇ 1 ⁇ , ⁇ 2. ⁇ , ⁇ 3 ⁇ , ⁇ 1, 2 ⁇ . ⁇ One. 3 ⁇ and ⁇ 2, 3 ⁇ , ⁇ 1, 2, 3 ⁇ .
  • the number of bits required for the recording of the depth value is smaller than the number of cases of the depth value existing between the first point D0 and the second point D1.
  • FIG. 7 is a table illustrating instructions executable by a processor in accordance with example embodiments of the present disclosure.
  • FIG. 7 illustrates an instruction for determining the number of bits representing the second point D1 and the intermediate point when the surface thickness is five.
  • the processor 200 of FIG. 2 may designate a field for storing a bit value indicating the second point D1 as Most_significant_flag.
  • a bit value indicating the second point D1 is a bit value indicating the second point D1 as Most_significant_flag.
  • the processor 200 may code Most_significant_flag as 1 when the first point D0 and the second point D1 are separated by two to five times the minimum unit.
  • the processor 200 may determine that the number of bits for storing the second point D1 is 1. For example, if the second point D1 is equal to the first point D0, the processor 200 codes D1_value as 0, and the first point D0 and the second point D1 are separated by a minimum unit. If present, D1_value can be coded as 1.
  • the processor 200 corresponds one-to-one to D1_value to reduce the bit value representing the second point D1 when the first point D0 and the second point D1 are separated by two to five times the minimum unit.
  • D1_index may have a value less than D1_value by two. For example, when D1_value is 2, D1_index is 0, when D1_value is 3, D1_index is 1, when D1_value is 4, D1_index is 2, and when D1_value is 5, D1_index may be 3.
  • the processor 200 may store a binary value of D1_index in a bit representing the second point D1.
  • the processor 200 may determine that the number of bits for indicating the second point D1 is 2.
  • D1_value may be coded as 2 and D1_index may be coded as 0. Since the binary value of D1_index is stored in the bit for indicating the second point D1, the processor 200 may store 00 (2) , which is a binary number of 0, in the determined two bits.
  • the processor 200 may code D1_value as 3 and code D1_index as 1. . Since the binary value of D1_index is stored in the bit for indicating the second point D1, the processor 200 may store 01 (2) , which is a binary number of 1, in the determined two bits.
  • the processor 200 may code D1_value as 4 and code D1_index as 2. . Since a binary value of D1_index is stored in a bit for indicating the second point D1, the processor 200 may store 10 (2) , which is a binary number of 2, in the determined two bits.
  • the processor 200 may code D1_value as 5 and D1_index as 3. . Since a binary value of D1_index is stored in a bit for indicating the second point D1, the processor 200 may store 11 (2) , which is a binary number of 3, in the determined two bits.
  • the processor 200 may designate a field for storing the presence or absence of an intermediate point as In_between_flag. In addition, the processor 200 may designate a field for storing the number of bits representing the intermediate point as In_between_id. In an exemplary embodiment, the processor 200 may allocate 1 bit to In_between_flag, code 0 in In_between_flag when there is no intermediate point, and code 1 in In_between_flag when there is an intermediate point.
  • the processor 200 may determine that there is no intermediate point, and may not perform coding for determining the number of bits representing the intermediate point to be stored in In_between_id.
  • D1_value When D1_index is 0, D1_value is 2, so the first point D0 and the second point D1 are separated by two times the minimum unit. Since In_between_flag is not 0, it corresponds to a case where an intermediate point exists between the first point D0 and the second point D1. In this case, when the first point D0 and the second point D1 are separated by two times the minimum unit, only one intermediate point may exist. Therefore, if In_between_flag is not 0 and D1_index is 0, there is one case. Only the number of cases is possible.
  • In_between_flag is If D1_index is 0 but not 0, the number of bits representing the intermediate point stored in In_between_id can be coded as 0.
  • D1_index When D1_index is 1, D1_value is 3, so the first point D0 and the second point D1 are separated by three times the minimum unit. Since In_between_flag is not 0, it corresponds to a case where an intermediate point exists between the first point D0 and the second point D1. In an exemplary embodiment, when In_between_flag is not 0 and D1_index is 1, the processor 200 may code the number of bits representing an intermediate point stored in In_between_id as 2.
  • D1_index When D1_index is 2, D1_value is 4, so the first point D0 and the second point D1 are separated by 4 times the minimum unit. Since In_between_flag is not 0, it corresponds to a case where an intermediate point exists between the first point D0 and the second point D1. In an exemplary embodiment, when In_between_flag is not 0 and D1_index is 2, the processor 200 may code the number of bits representing an intermediate point stored in In_between_id as 3.
  • D1_index 3
  • D1_value 5
  • In_between_flag 3
  • the processor 200 may code the number of bits representing an intermediate point stored in In_between_id as 4.
  • FIG. 8 is a table illustrating a distribution probability of 3D data constituting a point cloud according to an exemplary embodiment of the present disclosure.
  • the processor 200 of FIG. 2 identifies a plurality of points constituting a point cloud, which is three-dimensional data input to the conversion module 100 of FIG. 2, and is a point closest to the projection plane 300 among the plurality of points.
  • the second point D1 that is the furthest point from the projection plane within the surface thickness from the first point among the plurality of points lying on the same normal as the first point D0 and the first point D0. Can be specified.
  • the processor 200 may identify a depth value existing between the first point D0 and the second point D1. Referring to FIG. 8, at least one point except for the second point D1, which is the maximum value among the D1 distributions, may correspond to the intermediate point.
  • FIG. 8 illustrates a relative occurrence probability of a state according to a distribution state of at least one intermediate point when the first point D0, the second point D1, and the intermediate point exist.
  • 9 is a table showing the number of bits required in an embodiment of variably allocating the number of bits according to an exemplary embodiment of the present disclosure.
  • the second point D1 when the surface thickness is 4, the second point D1 may have a value of 0 to 4 depending on the distance between the first point D0 and the second point D1. Can be.
  • the bit representing the second point D1 is a binary number of the value representing the second point D1
  • the maximum value of the number of bits required to represent the second point D1 is a binary number of four. 3 bits needed to store 100 (2) .
  • the processor 200 of FIG. 2 may determine the number of bits representing the second point D1 as 3 according to an exemplary embodiment.
  • the number of additional bits required to store the depth value existing between the first point D0 and the second point D1 is 0. to be.
  • the number of additional bits required to store a depth value existing between the first point D0 and the second point D1 is 1. to be.
  • the number of additional bits required to store the depth value existing between the first point D0 and the second point D1 is 2. to be.
  • the number of additional bits required to store a depth value existing between the first point D0 and the second point D1 is 3. .
  • a relative occurrence probability of the corresponding state is 0.58900.
  • a relative occurrence probability of the corresponding state is 0.37900.
  • a relative occurrence probability of the corresponding state is 0.02200.
  • a relative occurrence probability of the corresponding state is 0.00500.
  • a relative occurrence probability of the corresponding state is 0.00500.
  • the required number of bits is 1.767.
  • the required number of bits is 1.137.
  • the required number of bits is 0.088.
  • the required number of bits is 0.025.
  • the required number of bits is 0.03.
  • FIG. 10 is a table showing the number of bits required in an embodiment of variably allocating the number of bits according to an exemplary embodiment of the present disclosure.
  • D0_0 of FIG. 10 corresponds to a case where the second point D1 is zero.
  • D1_0 of FIG. 10 corresponds to the case where the second point D1 is one.
  • D2_0 of FIG. 10 corresponds to the case where the second point D1 is 2 and there is no intermediate point.
  • D3_0 of FIG. 10 corresponds to the case where the second point D1 is 2 and there is an intermediate point.
  • D4_0 of FIG. 10 corresponds to the case where the second point D1 is 3 and there is no intermediate point.
  • D2_1 of FIG. 10 corresponds to the case where the second point D1 is 3 and there is one intermediate point.
  • D3_1 of FIG. 10 corresponds to the case where the second point D1 is 3 and there are two intermediate points.
  • D3_2 of FIG. 10 corresponds to the case where the second point D1 is 3 and there are three intermediate points.
  • D3_3 in FIG. 10 corresponds to the case where the second point D1 is 4 and there is no intermediate point.
  • D4_1, D4_2 and D4_3 in FIG. 10 correspond to the case where the second point D1 is 4 and there is one intermediate point.
  • D4_4, D4_5 and D4_6 of FIG. 10 correspond to the case where the second point D1 is 4 and there are two intermediate points.
  • D4_7 of FIG. 10 corresponds to the case where the second point D1 is 4 and there are three intermediate points.
  • the number of bits required to represent the state of FIG. 10 may be calculated stochastically.
  • the sum of bits is 1.49.
  • the bit code of FIG. 10 may correspond to a Huffman code.
  • FIG. 11 illustrates an example of an error occurring in 3D data restoration according to an exemplary embodiment of the present disclosure.
  • the receiving device 20 of FIG. 1 may receive compressed 2D data, decompress it, and convert the compressed 2D data into 3D data.
  • the reception apparatus 20 may generate artifacts in which different surfaces are mixed on the same surface. For example, the surface of the Tablet PC and the surface of the hand are located at different points in the received data (I_IMG), but in the restored data (O_IMG), artifacts that appear on the surface of the Tablet PC may appear. have.
  • the transformation module 100 of FIG. 1 converts the 3D data into 2D data and the thickness of the 3D object included in the 3D data is thinner than a threshold value
  • the conversion module In the case of restoring the compressed data by the receiving apparatus 20 in the receiving apparatus 20, different surfaces may generate artifacts mixed on the same surface.
  • a point corresponding to the surface of the Tablet PC is referred to as a D0 point
  • a point corresponding to the surface of the hand is referred to as a D1 point.
  • the transformation module 100 of FIG. 1 receives one or more point cloud groups (point cloud frames) included in Dataset_1 and converts them to a D0 image including a D0 point and a D1 point including a D1 point.
  • the depth information of the D1 image may be expressed as a difference from the depth information of the D0 image.
  • Dataset_2 may include a T0 image including color information corresponding to a D0 point and a T1 image including color information corresponding to a D1 point.
  • the D0 image and the T0 image may correspond to each other, and the D1 image and the T1 image may correspond to each other.
  • Artifacts of FIG. 11 should be determined that the D0 point and the D1 point are present in different patches, but an error that is determined to exist in the same patch may occur.
  • Dataset_2 may include an Occupancy map and Auxillary Data that distinguish between a pixel having data information included in Dataset_1 and a pixel not having data information included in Dataset_1 among pixels of the 2D image.
  • FIG. 12 is a table illustrating instructions executable by a processor and a description thereof according to an exemplary embodiment of the present disclosure.
  • the processor 200 of FIG. 2 may extract color information T0 corresponding to the first point included in the ROI.
  • the processor 200 may extract location information D0 of the first point.
  • the region of interest may correspond to a point cloud group that is three-dimensional data.
  • the processor 200 may extract color information T1 corresponding to a second point located within a threshold distance from the first point.
  • the threshold distance may be determined in consideration of the similarity of the Normal Vector between the first point and the second point.
  • the threshold distance may be determined in consideration of the similarity of the distance to the projection plane between the first point and the second point, for example.
  • the processor 200 may compare the difference between the color information T0 corresponding to the first point and the color information T1 corresponding to the second point and the threshold value. In an exemplary embodiment, when the difference between the color information T0 corresponding to the first point and the color information T1 corresponding to the second point is less than or equal to the threshold value, the processor 200 may determine that the second point is equal to or less than the threshold value. It may be determined to be included in the region of interest including one point. For example, when the second point is included in the ROI including the first point, it may mean that the second point and the first point belong to the same point cloud group. For example, when the second point and the first point belong to the same point cloud group, when the dimensional data is projected into the 2D data, it may mean that the second point and the first point are included in the same patch.
  • the processor 200 may determine that the second point is the first point. It may be determined that it is not included in the region of interest including the point. For example, when the second point is not included in the ROI including the first point, it may mean that the second point and the first point do not belong to the same point cloud group. For example, when the second point and the first point do not belong to the same point cloud group, when the 3D data is projected into the 2D data, it may mean that the second point and the first point are not included in the same patch. .
  • the difference between the color information corresponding to the first point and the color information corresponding to the second point may include an average value of the color information corresponding to the plurality of points around the first point and the second point. It may be a difference of an average value of color information corresponding to the plurality of points.
  • the processor 200 compares the color information T1 corresponding to the plurality of second points with the color information T0 corresponding to the first point and includes the plurality of second points in the ROI including the first point. Can be determined.
  • color information may be obtained from values of various color channels, including Red-Greed-Blue (RGB) color channels, YUV color channels, and the like.
  • the difference in color information may be obtained from various methods, such as a method of taking an absolute value of a difference, a method of using Euclidean geometric distance, and the like.
  • the threshold may correspond to values of various color channels, including RGB color channels, YUV color channels, and the like.
  • the threshold value may correspond to an average value of RGB color channels of the plurality of points constituting the point cloud group.
  • the threshold value may correspond to an average value of the YUV color channel of the plurality of points constituting the point cloud group.
  • the threshold value may correspond to an average value of the RGB color channel corresponding to the first point and the RGB color channel corresponding to the second point.
  • the threshold may correspond to an average value of the YUV color channel corresponding to the first point and the YUV color channel corresponding to the second point.
  • the processor 200 may extract a distance between the first point and the second point. In an exemplary embodiment, when the difference between the color information T0 corresponding to the first point and the color information T1 corresponding to the second point is greater than the threshold value, the processor 200 may reduce the threshold distance by a threshold unit. You can change to a distance. In an exemplary embodiment, the processor 200 may change an existing second point to a third point within a changed threshold distance from the first point. The processor 200 may determine whether the third point is included in the ROI including the first point by comparing the color information corresponding to the third point with the color information corresponding to the first point.
  • the processor 200 may perform the above-described operation by executing the command of FIG. 12.
  • FIG. 13 shows a flowchart of the operation of an apparatus according to an exemplary embodiment of the present disclosure.
  • the processor 200 may identify a plurality of points constituting a point cloud (S1300).
  • the processor 200 may generate a projection image by projecting the identified plurality of points on the projection plane (S1310).
  • FIG. 14 shows a flowchart of the operation of an apparatus according to an exemplary embodiment of the present disclosure.
  • the processor 200 may extract location information and color information of a first point included in an ROI (S1400).
  • the processor 200 may extract color information corresponding to the second point located within the threshold distance from the first point (S1410).
  • the processor 200 may compare the difference between the color information corresponding to the first point and the color information corresponding to the second point and the threshold value (S1420).
  • the processor 200 may determine that the second point is included in the ROI (S1430). Alternatively, when the difference between the color information corresponding to the first point and the color information corresponding to the second point is greater than the threshold value, the processor 200 may determine that the second point is not included in the ROI (S1430). .
  • an error in which different surfaces are mixed on the same surface can be eliminated or reduced, thereby reducing errors in the conversion or compression of three-dimensional data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

포인트 클라우드의 3차원 데이터를 압축하기 위한 방법 및 장치가 개시된다. 본 발명은 포인트 클라우드를 구성하는 복수의 포인트들을 식별하고 식별된 복수의 포인트들을 투사 평면에 투사하여 투사 이미지를 생성하며, 투사 이미지에 투사된 복수의 포인트에 대응하는 투사 포인트의 비트 수는 상기 복수의 포인트들 중 투사 평면에 대한 법선 상 투사 평면에서 가장 가까운 제1 포인트와 가장 먼 제2 포인트 사이의 거리 및 상기 제1 포인트와 상기 제2 포인트 사이에 위치하는 중간 포인트의 개수 중 적어도 하나에 기초하여 결정되는 것을 특징으로 한다.

Description

3차원 데이터를 프로세싱하기 위한 방법 및 장치
본 개시의 기술적 사상은 장치 및 이의 동작방법에 관한 것으로서, 상세하게는 3차원 데이터를 프로세싱하는 장치 및 이의 동작방법에 관한 것이다.
3D 데이터의 한 표현 방법인 포인트 클라우드(point cloud)는 방대한 양의 포인트의 집합을 의미하며, 대용량의 3차원 데이터는 포인트 클라우드로 표현될 수 있다. 포인트 클라우드는 2D 이미지와는 비교되는 값으로, 3차원 상의 한 점을 표현하는 방법이고, 위치 좌표와 색상을 동시에 포함할 수 있는 벡터 형태이다. 예를 들어, 포인트 클라우드는 (x, y, z, R, G, B)와 같이 표현될 수 있다. 무수히 많은 색상과 위치 데이터들이 모여서 공간적인 구성을 이루는 포인트 클라우드는 밀도가 높아지면 높아질 수록 점점 더 구체적인 데이터가 되면서 하나의 3D 모델로서의 의미를 가지게 된다.
이러한 포인트 클라우드는 상당량의 메모리 리소스를 차지하므로, 포인트 클라우드를 효율적으로 전송하기 위해서는 포인트 클라우드를 보다 적은 용량으로 압축해야 한다. 따라서 포인트 클라우드에 대한 3차원 데이터를 2차원 데이터로 변환하는 과정에서 보다 적은 용량으로 프로세싱하는 방법이 요구된다.
본 개시의 기술적 사상은 3차원 데이터를 프로세싱하기 위한 장치 및 방법에 관한 것으로서, 포인트 클라우드를 변환하기 위한 장치 및 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일 측면에 따른 포인트 클라우드에 대한 3차원 데이터를 프로세싱하기 위한 방법은, 상기 포인트 클라우드를 구성하는 복수의 포인트들을 식별하는 단계; 및 상기 식별된 복수의 포인트들을 투사 평면에 투사하여 투사 이미지를 생성하는 단계를 포함하고, 상기 투사 이미지에 투사된 상기 복수의 포인트들 중 적어도 하나의 포인트에 대응하는 투사 포인트를 나타내는 비트 수는, 상기 복수의 포인트들 중 제1 포인트와 제2 포인트 사이의 거리 및 상기 제1 포인트와 상기 제2 포인트 사이에 위치하는 중간 포인트의 개수 중 적어도 하나에 기초하여 결정되고, 상기 제1 포인트는 상기 투사 평면에 대한 법선 상의 적어도 하나의 포인트 중 상기 투사 평면으로부터 가장 가까운 포인트이고, 상기 제2 포인트는 상기 법선 상의 적어도 하나의 포인트 중 상기 제1 포인트로부터 임계 거리 내에서 상기 투사 평면으로부터 가장 먼 포인트이다.
한편, 본 개시의 기술적 사상의 다른 일 측면에 따른 포인트 클라우드에 대한 3차원 데이터를 프로세싱하기 위한 장치는, 프로세서; 및 상기 프로세서가 실행 가능한 명령을 저장하도록 구성되는 메모리를 포함하고, 상기 프로세서는 상기 포인트 클라우드를 구성하는 복수의 포인트들을 식별하고, 상기 식별된 복수의 포인트들을 투사 평면에 투사하여 투사 이미지를 생성하도록 구성되고, 상기 투사 이미지에 투사된 상기 복수의 포인트들 중 적어도 하나의 포인트에 대응하는 투사 포인트를 나타내는 비트 수는, 상기 복수의 포인트들 중 제1 포인트와 제2 포인트 사이의 거리 및 상기 제1 포인트와 상기 제2 포인트 사이에 위치하는 중간 포인트의 개수 중 적어도 하나에 기초하여 결정되고, 상기 제1 포인트는 상기 투사 평면에 대한 법선 상의 적어도 하나의 포인트 중 상기 투사 평면으로부터 가장 가까운 포인트이고, 상기 제2 포인트는 상기 법선 상의 적어도 하나의 포인트 중 상기 제1 포인트로부터 임계 거리 내에서 상기 투사 평면으로부터 가장 먼 포인트이다.
한편, 본 개시의 기술적 사상의 또 다른 일 측면에 따른 포인트 클라우드에 대한 3차원 데이터를 프로세싱하기 위한 방법은, 관심 영역에 포함되는 제1 포인트에 대응하는 색상 정보를 추출하는 단계; 상기 제1 포인트로부터 임계 거리 내에 위치하는 제2 포인트에 대응하는 색상 정보를 추출하는 단계; 상기 제1 포인트에 대응하는 색상 정보와 상기 제2 포인트에 대응하는 색상 정보 간의 차이와 임계 값을 비교하는 단계; 및 상기 차이가 상기 임계 값보다 작거나 같은 경우, 상기 제2 포인트가 상기 관심 영역에 포함되는 것으로 결정하는 단계를 포함한다.
한편, 본 개시의 기술적 사상의 또 다른 일 측면에 따른 포인트 클라우드에 대한 3차원 데이터를 프로세싱하기 위한 방법은, 프로세서; 및 상기 프로세서가 실행 가능한 명령을 저장하도록 구성되는 메모리를 포함하고, 상기 프로세서는 관심 영역에 포함되는 제1 포인트에 대응하는 색상 정보를 추출하고, 상기 제1 포인트로부터 임계 거리 내에 위치하는 제2 포인트에 대응하는 색상 정보를 추출하고, 상기 제1 포인트에 대응하는 색상 정보 및 상기 제2 포인트에 대응하는 색상 정보의 차이와 임계 값을 비교하고, 상기 차이가 상기 임계 값보다 작거나 같은 경우, 상기 제2 포인트가 상기 관심 영역에 포함되는 것으로 결정하도록 구성된다.
본 개시에 따르면, 포인트 클라우드에 대한 3차원 데이터를 프로세싱할 수 있는 장치 및 방법을 제공할 수 있다. 또한, 3차원 데이터를 나타내는 비트 수를 포인트들 간의 상대적인 위치에 따라 가변적으로 결정함으로써, 3차원 데이터를 더욱 적은 용량으로 프로세싱할 수 있는 장치 및 방법을 제공할 수 있다.
도 1은 본 개시의 예시적 실시 예에 따른 포인트 클라우드를 송수신하는 전체 시스템을 나타낸다.
도 2는 본 개시의 예시적 실시 예에 따른 장치의 블록도를 도시한다.
도 3 은 본 개시의 예시적 실시예에 따른 장치가 포인트 클라우드에 대한 3차원 데이터를 2차원 데이터로 변환하는 실시예를 나타낸다.
도 4 는 본 개시의 예시적 실시예에 따른 장치가 포인트 클라우드에 대한 3차원 데이터를 2차원 데이터로 변환하는 과정에서 3차원 데이터를 나타내는 비트 수를 고정적으로 할당하는 실시예를 나타낸다.
도 5a 는 본 개시의 예시적 실시예에 따른 장치가 포인트 클라우드에 대한 3차원 데이터를 2차원 데이터로 변환하는 과정에서 3차원 데이터를 나타내는 비트 수를 가변적으로 할당하는 실시예를 나타낸다.
도 5b는 본 개시의 예시적 실시예에 따른 장치가 포인트 클라우드에 대한 3차원 데이터를 2차원 데이터로 변환하는 과정에서 3차원 데이터를 나타내는 비트 수를 가변적으로 할당하는 실시예를 나타낸다.
도 6은 본 개시의 예시적 실시예에 따른 비트 수를 가변적으로 할당하는 실시예를 설명하는 표이다.
도 7은 본 개시의 예시적 실시예에 따른 프로세서가 실행가능한 명령어를 나타내는 표이다.
도 8은 본 개시의 예시적 실시예에 따른 포인트 클라우드를 구성하는 3차원 데이터의 분포 확률을 나타내는 표이다.
도 9는 본 개시의 예시적 실시예에 따른 비트 수를 가변적으로 할당하는 실시예에서 필요한 비트 수를 나타내는 표이다.
도 10은 본 개시의 예시적 실시예에 따른 비트 수를 가변적으로 할당하는 실시예에서 필요한 비트 수를 나타내는 표이다.
도 11은 본 개시의 예시적 실시예에 따른 3차원 데이터 복원 시의 오류 발생의 일 예를 나타낸다.
도 12는 본 개시의 예시적 실시예에 따른 프로세서가 실행가능한 명령어 및 이에 대한 설명을 나타내는 표이다.
도 13은 본 개시의 예시적 실시예에 따른 장치의 동작에 대한 순서도를 도시한다.
도 14는 본 개시의 예시적 실시예에 따른 장치의 동작에 대한 순서도를 도시한다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 하기 실시예는 발명을 구체화하기 위한 것일 뿐 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 발명이 속하는 기술분야의 전문가가 용이하게 유추할 수 있는 것은 발명의 권리범위에 속하는 것으로 해석된다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "모듈"의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서 "최소 단위"란, 포인트 클라우드를 구성하는 복수의 포인트들 간의 깊이 값의 단계를 구분하기 위해 지정되는 최소 단위를 의미한다.
명세서 전체에서 "임계 거리" 및 "임계 단위"란, 사전에 정의된 임의의 거리를 의미한다.
명세서 전체에서 "관심 영역"이란, 사전에 정의된 임의의 면적을 의미한다.
명세서 전체에서 "임계 값"이란, 사전에 정의된 임의의 수치를 의미한다.
도 1은 본 개시의 예시적 실시 예에 따른 포인트 클라우드를 송수신하는 전체 시스템을 나타낸다.
도 1을 참조하면, 송신장치(10)는 변환 모듈(100) 및 압축 모듈(110)을 포함할 수 있고, 수신장치(20)는 압축해제 모듈(120) 및 역변환 모듈(130)을 포함할 수 있다.
변환 모듈(100)은 Dataset_1을 압축 모듈(110)이 처리할 수 있는 데이터 유형인 Dataset_2로 변환할 수 있다. 예를 들어, Dataset_1 은 3차원 데이터이고, Dataset_2는 2차원 데이터일 수 있다. 압축 모듈(110)은 Dataset_2를 압축하여 Dataset_3을 생성할 수 있다. 일 예로, Dataset_3의 크기는 Dataset_2의 크기보다 작을 수 있다.
압축해제 모듈(120)은 Dataset_3을 Dataset_2와 동일한 데이터 유형을 갖는 Dataset_4로 재변환할 수 있다. 역변환 모듈(130)은 Dataset_4를 Dataset_1과 동일한 데이터 유형을 갖는 Dataset_5로 재변환할 수 있다.
비제한적인 예시로서, 압축 모듈(110)은 HEVC(High Efficiency Video Codec) encoder 또는 Entropy encoder 를 포함할 수 있고, 압축해제 모듈(120)은 HEVC decoder 또는 Entropy decoder 를 포함할 수 있다.
도 2는 본 개시의 예시적 실시 예에 따른 장치의 블록도를 도시한다.
도 2를 참조하면, 변환 모듈(100)은 프로세서(200) 및 메모리(210)를 포함할 수 있다. 프로세서(200)는 변환 모듈(100)로 입력되는 3차원 데이터인 포인트 클라우드를 구성하는 복수의 포인트들을 식별할 수 있다. 예를 들어, 프로세서(200)는 변환 모듈(100)로 입력되는 3차원 데이터를 2차원 데이터로 변환하기 위해 포인트 클라우드를 구성하는 복수의 포인트들을 투사 평면에 투사하여 투사 이미지를 생성할 수 있다. 예시적 실시예에 있어서, 투사 평면은 변환 모듈(100)에 입력되는 3차원 데이터인 포인트 클라우드를 관통하는 임의의 단면일 수 있다.
메모리(210)는 컴퓨터 판독 가능 및/또는 컴퓨터 실행 가능하고 복수의 명령어들을 포함하는 소프트웨어 코드를 저장할 수 있다. 예시적 실시 예에 있어서, 메모리(210)는 무선 통신의 신호처리를 위한 복수의 신호처리 알고리즘들을 저장할 수 있다. 메모리(210)에 저장된 복수의 신호처리 알고리즘들은 모뎀에 구비된 다양한 기능 블록들로서 실행될 수 있다. 예를 들어, 메모리(210)에 저장된 신호처리 알고리즘들 중 적어도 둘 이상은, 서로 다른 복잡도(complexity)를 가질 수 있다.
메모리(210)는 예를 들어 DRAM(Dynamic Random Access Memory) 또는 SDRAM(Synchronous Dynamic Random Access Memory) 등 휘발성 메모리 장치를 포함할 수 있다. 또한, 메모리(140)는, 예를 들어 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(flash memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory) 또는 FRAM(Ferroelectric Random Access Memory) 등 비휘발성 메모리 장치를 포함할 수도 있다.
본 명세서에서, 알고리즘의 복잡도는, 계산량, 클럭 수, 로직 블록의 개수, 덧셈기(adder)의 수, 알고리즘 내부의 반복 처리 횟수, 결과물의 샘플 수, 활용하는 사전 정보의 정도 등에 기반하여 달라질 수 있다. 예로써, 알고리즘의 계산량이 많아질수록 복잡도가 증가하고, 알고리즘 수행을 위한 로직 블록의 개수가 적어질수록 복잡도가 감소할 수 있다. 예시적 실시 예에 있어서, 신호처리 알고리즘은 신호처리 레벨이 높을수록 복잡도가 증가할 수 있다.
도 3 은 본 개시의 예시적 실시예에 따른 장치가 포인트 클라우드에 대한 3차원 데이터를 2차원 데이터로 변환하는 실시예를 나타낸다.
도 2의 프로세서(200)는 도 2의 변환 모듈(100)로 입력되는 3차원 데이터인 포인트 클라우드를 구성하는 복수의 포인트들(D0(i), D0(i+1), D1(i+1), D0(i+2), D1(i+2), D0(i+3) 등)을 식별할 수 있다.
프로세서(200)는 포인트 클라우드를 관통하는 임의의 단면인 투사 평면(300)에 대해 복수의 포인트들을 투사하여 투사 이미지를 생성할 수 있다.
프로세서(200)는 투사 평면(300)에 투사된 복수의 포인트들에 대해 위치 정보(p[i], p[i+1], p[i+2], p[i+3])를 생성할 수 있다. 예를 들어, 투사 평면(300)에 대해 동일한 법선 상에 놓여있는 복수의 포인트들은 동일한 위치 정보를 가질 수 있다.
프로세서(200)는 포인트 클라우드를 구성하는 복수의 포인트들 중 투사 평면(300)으로부터 가장 가까운 포인트들을 제1 포인트들(D0(i), D0(i+1), D0(i+2), D0(i+3))로 지정할 수 있다.
프로세서(200)는 제1 포인트(D0(i), D0(i+1), D0(i+2), D0(i+3))와 동일한 법선 상에 놓여있는 복수의 포인트들 중 제1 포인트로부터 임계 거리(310) 내에서 투사 평면(300)으로부터 가장 먼 포인트를 제2 포인트(D1(i+1). D1(i+2))로 지정할 수 있다. 예시적 실시예에 있어서, 제1 포인트(D0(i), D0(i+3))와의 동일한 법선 상에 제1 포인트로부터 임계 거리(310) 내에서 포인트 클라우드를 구성하는 복수의 포인트들이 없는 경우, 프로세서(200)는 제2 포인트를 제1 포인트(D0(i), D0(i+3))와 동일한 것으로 지정할 수 있다.
예시적 실시예에 있어서, 프로세서(200)는 투사 평면(300)에 투사된 투사 이미지에 포함되는 투사 포인트를 나타내는 비트 수를 2 비트로 할당할 수 있다. 예를 들어, 프로세서(200)는 2 비트 중 1 비트에 제1 포인트(D0(i), D0(i+1), D0(i+2), D0(i+3))에 대한 정보를 저장할 수 있고, 나머지 1 비트에 제2 포인트((D0(i), D1(i+1). D1(i+2), D0(i+3))에 대한 정보를 각각 저장할 수 있다. 예시적 실시예에 있어서, 제1 포인트 및 제2 포인트에 대한 정보는 투사 평면(300)에 대한 제1 포인트 및 제2 포인트의 상대적인 위치 또는 투사 평면(300)에 대한 제1 포인트 및 제2 포인트의 거리를 나타내는 정보일 수 있다.
예시적 실시예에 있어서, 도 2의 변환 모듈(100)은 제1 포인트 및 제2 포인트에 대한 정보를 포함하는 2 비트로 투사 포인트를 나타내는 2차원 데이터를 출력할 수 있다.
도 4 는 본 개시의 예시적 실시예에 따른 장치가 포인트 클라우드에 대한 3차원 데이터를 2차원 데이터로 변환하는 과정에서 3차원 데이터를 나타내는 비트 수를 고정적으로 할당하는 실시예를 나타낸다.
도 2의 프로세서(200)는 도 2의 변환 모듈(100)로 입력되는 3차원 데이터인 포인트 클라우드를 구성하는 복수의 포인트들을 식별할 수 있다.
프로세서(200)는 포인트 클라우드를 관통하는 임의의 단면인 투사 평면(300)에 대해 복수의 포인트들을 투사하여 투사 이미지를 생성할 수 있다.
프로세서(200)는 투사 평면(300)에 투사된 복수의 포인트들에 대해 위치 정보(p[i], p[i+1], p[i+5], p[i+8], p[i+11], p[i+13])를 생성할 수 있다. 예를 들어, 투사 평면(300)에 대해 동일한 법선 상에 놓여있는 복수의 포인트들은 동일한 위치 정보를 가질 수 있다.
프로세서(200)는 포인트 클라우드를 구성하는 복수의 포인트들 중 투사 평면(300)으로부터 가장 가까운 포인트들을 제1 포인트들(D0)로 지정할 수 있다.
예시적 실시예에 있어서, 도 1의 송신 장치(10)는 제1 포인트(D0)와 제2 포인트(D1)를 서로 다른 레이어를 통해 수신 장치(20)로 전송할 수 있다.
프로세서(200)는 제1 포인트(D0)와 동일한 법선 상에 놓여있는 복수의 포인트들 중 제1 포인트로부터 임계 거리(Surface Thickness) 내에서 투사 평면으로부터 가장 먼 포인트를 제2 포인트(D1)로 지정할 수 있다. 예시적 실시예에 있어서, 임계 거리(Surface Thickness)는 5 일 수 있다. 예시적 실시예에 있어서, 제1 포인트(D0)와의 동일한 법선 상에 제1 포인트로부터 임계 거리(Surface Thickness) 내에서 포인트 클라우드를 구성하는 복수의 포인트들이 없는 경우, 제2 포인트(D0=D1)는 각각 제1 포인트와 동일한 것으로 지정할 수 있다.
프로세서(200)는 동일한 법선 상의 제1 포인트(D0)와 제2 포인트(D1) 사이에 제1 포인트(D0) 및 제2 포인트(D1)와 동일한 법선을 지나는 중간 포인트들(In-between points)을 식별할 수 있다. 예시적 실시예에 있어서, 프로세서(200)는 중간 포인트들(In-between points)의 제1 포인트 및 제2 포인트에 대한 상대적인 위치를 식별할 수 있다.
예시적 실시예에 있어서, 프로세서(200)는 투사 평면(300)에 투사된 투사 이미지에 포함되는 투사 포인트를 나타내는 비트 수를 임계 거리(SurfaceThickness)보다 하나 적은 값으로 결정할 수 있다. 예를 들어, 임계 거리(Surface Thickness)가 5 인 경우, 프로세서(200)는 투사 포인트를 나타내는 비트 수를 4 비트로 할당할 수 있다. 예시적 실시예에 있어서, 프로세서(200)는 4 비트 중 3 비트에 중간 포인트(In-between points)에 대한 정보를 저장할 수 있고, 나머지 1 비트에 제2 포인트(D1)에 대한 정보를 각각 저장할 수 있다.
도 4를 참조하면, 프로세서(200)는 예를 들어, 투사 포인트를 나타내는 비트에 중간 포인트 및 제2 포인트의 존재 유무를 1 또는 0 의 값으로 나타낼 수 있다. 예시적 실시예에 있어서, 프로세서(200)는 임계 거리(Surface Thickness)가 5 인 경우에 투사 포인트를 나타내는 비트 수를 4 비트로 할당할 수 있고, 각 비트는 앞에서부터 순서대로 제1 포인트(D0)로부터 상대적으로 더 멀리 위치한 포인트임을 의미할 수 있다. 예를 들어, 할당된 4 비트 중 첫번째 비트는 제1 포인트(D0)로부터의 거리가 1인 지점에서 투사 포인트의 존재 유무를 나타낼 수 있고, 두번째 비트는 제1 포인트(D0)로부터의 거리가 2인 지점에서 투사 포인트의 존재 유무를 나타낼 수 있고, 세번째 비트는 제1 포인트(D0)로부터의 거리가 3인 지점에서 투사 포인트의 존재 유무를 나타낼 수 있고, 네번째 비트는 제1 포인트(D0)로부터의 거리가 4인 지점에서 투사 포인트의 존재 유무를 나타낼 수 있다.
도 4를 참조하면, 예시적 실시예에 있어서, 투사 평면(300)에 대한 투사 위치가 p[i]인 제1 포인트(D0), 중간 포인트(In-between points) 및 제2 포인트(D1)는 제1 포인트(D0)에 대해 2 개의 중간 포인트(In-between points)와 제2 포인트(D1)가 연속적으로 위치한다. 이에 기반하여 프로세서(200)는 할당된 4 비트 중 첫번째 비트 및 두번째 비트에 제1 포인트(D0)로부터의 거리가 1인 지점 및 2인 지점에 중간 포인트(In-between points)가 존재한다는 것을 의미하는 1 을 할당할 수 있다. 또한, 프로세서(200)는 할당된 4 비트 중 세번째 비트에 제1 포인트(D0)로부터의 거리가 3인 지점에 제2 포인트(D1)가 존재한다는 것을 의미하는 1 을 할당할 수 있다. 또한, 프로세서(200)는 할당된 4 비트 중 네번째 비트에 제1 포인트(D0)로부터의 거리가 4인 지점에 3차원 포인트가 존재하지 않는다는 것을 의미하는 0 을 할당할 수 있다.
도 4를 참조하면, 예시적 실시예에 있어서, 투사 평면(300)에 대한 투사 위치가 p[i+8]인 제1 포인트(D0)는 제1 포인트(D0)와 제2 포인트(D1)가 동일하다. 이에 기반하여 프로세서(200)는 할당된 4 비트 중 첫번째 비트, 두번째 비트, 세번째 비트 및 네번째 비트에 제1 포인트(D0)로부터의 거리가 1인 지점, 2인 지점, 3인 지점 및 4인 지점에 3차원 포인트가 존재하지 않는다는 것을 의미하는 0 을 할당할 수 있다.
도 4를 참조하면, 예시적 실시예에 있어서, 투사 평면(300)에 대한 투사 위치가 p[i+13]인 제1 포인트(D0) 및 제2 포인트(D1)는 제1 포인트(D0)에 대해 제2 포인트(D1)가 연속적으로 위치한다. 이에 기반하여 프로세서(200)는 할당된 4 비트 중 첫번째 비트에 제1 포인트(D0)로부터의 거리가 1인 지점에 제2 포인트(D1)가 존재한다는 것을 의미하는 1 을 할당할 수 있다. 또한, 프로세서(200)는 할당된 4 비트 중 두번째 비트, 세번째 비트 및 네번째 비트에 제1 포인트(D0)로부터의 거리가 2인 지점, 3인 지점 및 4인 지점에 3차원 포인트가 존재하지 않는다는 것을 의미하는 0 을 할당할 수 있다.
도 5a 는 본 개시의 예시적 실시예에 따른 장치가 포인트 클라우드에 대한 3차원 데이터를 2차원 데이터로 변환하는 과정에서 3차원 데이터를 나타내는 비트 수를 가변적으로 할당하는 실시예를 나타낸다.
도 2의 프로세서(200)는 도 2의 변환 모듈(100)로 입력되는 3차원 데이터인 포인트 클라우드를 구성하는 복수의 포인트들을 식별할 수 있다.
프로세서(200)는 포인트 클라우드를 관통하는 임의의 단면인 투사 평면(300)에 대해 복수의 포인트들을 투사하여 투사 이미지를 생성할 수 있다.
프로세서(200)는 투사 평면(300)에 투사된 복수의 포인트들에 대해 위치 정보(p[i], p[i+1], p[i+5], p[i+8], p[i+11], p[i+13])를 생성할 수 있다. 예를 들어, 투사 평면(300)에 대해 동일한 법선 상에 놓여있는 복수의 포인트들은 동일한 위치 정보를 가질 수 있다.
프로세서(200)는 포인트 클라우드를 구성하는 복수의 포인트들 중 투사 평면(300)으로부터 가장 가까운 포인트들을 제1 포인트들(D0)로 지정할 수 있다.
프로세서(200)는 제1 포인트(D0)와 동일한 법선 상에 놓여있는 복수의 포인트들 중 제1 포인트로부터 임계 거리(Surface Thickness) 내에서 투사 평면으로부터 가장 먼 포인트를 제2 포인트(D1)로 지정할 수 있다. 예시적 실시예에 있어서, 임계 거리(Surface Thickness)는 5 일 수 있다. 예시적 실시예에 있어서, 제1 포인트(D0)와의 동일한 법선 상에 제1 포인트로부터 임계 거리(Surface Thickness) 내에서 포인트 클라우드를 구성하는 복수의 포인트들이 없는 경우, 제2 포인트(D0=D1)는 각각 제1 포인트와 동일한 것으로 지정할 수 있다.
프로세서(200)는 제2 포인트(D1)를 나타내는 비트 수를 제1 포인트(D0)와 제2 포인트(D1) 사이의 거리에 따라 결정할 수 있다. 예시적 실시예에 있어서, 프로세서(200)는 제2 포인트(D0=D1)가 제1 포인트와 동일한 경우 제2 포인트(D1)를 나타내는 비트 수를 1로 결정할 수 있다. 예를 들어, 투사 평면(300)에 대한 투사 위치가 p[i+8]인 제2 포인트(D1)는 제1 포인트(D0)와 제2 포인트(D1)가 동일하므로, 프로세서(200)는 이에 기반하여 제2 포인트(D1)를 나타내는 비트 수를 1로 결정하고, 제2 포인트(D0=D1)를 나타내는 비트 값을 0 으로 저장할 수 있다.
예시적 실시예에 있어서, 프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위만큼 떨어져있는 경우 제2 포인트(D1)를 나타내는 비트 수를 1로 결정할 수 있다. 예시적 실시예에 있어서, 최소 단위는 포인트 클라우드를 구성하는 복수의 포인트들 간의 깊이 값의 단계를 구분하기 위해 지정되는 최소 단위이다. 예를 들어, 투사 평면(300)에 대한 투사 위치가 p[i+13]인 제2 포인트(D1)는 제1 포인트(D0)에 대해 연속적으로 위치하므로, 프로세서(200)는 이에 기반하여 제2 포인트(D1)를 나타내는 비트 수를 1로 결정하고, 제2 포인트(D1)를 나타내는 비트 값을 1 로 저장할 수 있다.
예시적 실시예에 있어서, 프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 n (n은 정수, n>1)배 만큼 떨어져있는 경우 제2 포인트(D1)를 나타내는 비트 수를 n 의 이진수를 저장하기 위해 필요한 최소 값으로 결정할 수 있다. 예를 들어, 투사 평면(300)에 대한 투사 위치가 p[i]인 제2 포인트(D1)는 제1 포인트(D0)에 대해 제2 포인트(D1)가 최소 단위의 3 배만큼 떨어져 위치하므로, 프로세서(200)는 이에 기반하여 제2 포인트(D1)를 나타내는 비트 수를 3 의 이진수인 11(2)를 저장하기 위해 필요한 최소 값인 2로 결정하고, 제2 포인트(D1)를 나타내는 비트 값을 11 로 저장할 수 있다. 예를 들어, 투사 평면(300)에 대한 투사 위치가 p[i+11]인 제2 포인트(D1)는 제1 포인트(D0)에 대해 제2 포인트(D1)가 최소 단위의 2 배만큼 떨어져 위치하므로, 프로세서(200)는 이에 기반하여 제2 포인트(D1)를 나타내는 비트 수를 2 의 이진수인 10(2)를 저장하기 위해 필요한 최소 값인 2로 결정하고, 제2 포인트(D1)를 나타내는 비트 값을 10 로 저장할 수 있다.
프로세서(200)는 동일한 법선 상의 제1 포인트(D0)와 제2 포인트(D1) 사이에 제1 포인트(D0) 및 제2 포인트(D1)와 동일한 법선을 지나는 중간 포인트들(In-between points)을 식별할 수 있다. 예시적 실시예에 있어서, 프로세서(200)는 중간 포인트들(In-between points)의 제1 포인트 및 제2 포인트에 대한 상대적인 위치를 식별할 수 있다.
프로세서(200)는 투사 평면(300)에 투사된 투사 이미지에 포함되는 투사 포인트를 나타내는 비트 수를 제1 포인트(D0)와 제2 포인트(D1) 사이의 거리 및 제1 포인트(D0)와 제2 포인트(D1) 사이에 위치하는 중간 포인트의 개수 중 적어도 하나에 기초하여 결정할 수 있다. 예를 들어, 투사 포인트는 동일한 법선 상의 중간 포인트들(In-between points)의 집합일 수 있다.
프로세서(200)는 제2 포인트(D0=D1)가 제1 포인트와 동일한 경우 투사 포인트를 나타내는 비트 수를 0으로 결정할 수 있다. 도 5a를 참조하면, 예시적 실시예에 있어서, 투사 평면(300)에 대한 투사 위치가 p[i+8]인 제2 포인트(D0=D1)는 제1 포인트와 동일하므로, 프로세서(200)는 이에 기반하여 투사 포인트를 나타내는 비트 수를 0으로 결정할 수 있다.
프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위만큼 떨어져있는 경우 투사 포인트를 나타내는 비트 수를 0으로 결정할 수 있다. 도 5a를 참조하면, 예시적 실시예에 있어서, 투사 평면(300)에 대한 투사 위치가 p[i+13]인 제2 포인트(D1)는 제1 포인트(D1)에 대해 연속적으로 위치하므로, 프로세서(200)는 이에 기반하여 제2 포인트(D1)를 나타내는 비트 수를 0으로 결정할 수 있다.
프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 n (n은 정수, n>1)배 만큼 떨어져있는 경우 투사 포인트를 나타내는 비트 수를 n-1 값으로 결정할 수 있다. 또한, 프로세서(200)는 투사 포인트를 나타내는 비트에 중간 포인트의 존재 유무를 1 또는 0 의 값으로 나타낼 수 있다. 예를 들어, 복수의 비트가 할당된 경우 각 비트는 앞에서부터 순서대로 제1 포인트(D0)로부터 상대적으로 더 멀리 위치한 포인트임을 의미할 수 있다.
도 5a를 참조하면, 예시적 실시예에 있어서, 투사 평면(300)에 대한 투사 위치가 p[i]인 제2 포인트(D1)는 제1 포인트(D0)에 대해 제2 포인트(D1)가 최소 단위의 3 배만큼 떨어져 위치하므로, 프로세서(200)는 이에 기반하여 투사 포인트를 나타내는 비트 수를 2로 결정할 수 있다. 또한, 프로세서(200)는 할당된 2 비트 중 첫번째 비트에 제1 포인트(D0)로부터 거리가 1인 지점에 3차원 포인트가 존재한다는 것을 의미하는 1을 할당할 수 있다. 또한, 프로세서(200)는 할당된 2 비트 중 두번째 비트에 제1 포인트(D0)로부터 거리가 2인 지점에 3차원 포인트가 존재한다는 것을 의미하는 1을 할당할 수 있다.
도 5a를 참조하면, 예시적 실시예에 있어서, 투사 평면(300)에 대한 투사 위치가 p[i+5]인 제2 포인트(D1)는 제1 포인트(D0)에 대해 제2 포인트(D1)가 최소 단위의 4 배만큼 떨어져 위치하므로, 프로세서(200)는 이에 기반하여 투사 포인트를 나타내는 비트 수를 3으로 결정할 수 있다. 또한, 프로세서(200)는 할당된 3 비트 중 첫번째 비트에 제1 포인트(D0)로부터 거리가 1인 지점에 3차원 포인트가 존재한다는 것을 의미하는 1을 할당할 수 있다. 또한, 프로세서(200)는 할당된 3 비트 중 두번째 비트에 제1 포인트(D0)로부터 거리가 2인 지점에 3차원 포인트가 존재하지 않는다는 것을 의미하는 0을 할당할 수 있다. 또한, 프로세서(200)는 할당된 3 비트 중 세번째 비트에 제1 포인트(D0)로부터 거리가 3인 지점에 3차원 포인트가 존재한다는 것을 의미하는 1을 할당할 수 있다.
도 5b 는 본 개시의 예시적 실시예에 따른 장치가 포인트 클라우드에 대한 3차원 데이터를 2차원 데이터로 변환하는 과정에서 3차원 데이터를 나타내는 비트 수를 가변적으로 할당하는 실시예를 나타낸다. 도 5b 가 나타내는 실시예에 대한 설명 중 도 5a와 중복되는 설명은 생략하기로 한다.
도 2의 프로세서(200)는 도 2의 변환 모듈(100)로 입력되는 3차원 데이터인 포인트 클라우드를 구성하는 복수의 포인트들을 식별할 수 있다.
프로세서(200)는 포인트 클라우드를 관통하는 임의의 단면인 투사 평면(300)에 대해 복수의 포인트들을 투사하여 투사 이미지를 생성할 수 있다.
프로세서(200)는 투사 평면(300)에 투사된 복수의 포인트들에 대해 위치 정보(p[i], p[i+2], p[i+4], p[i+8], p[i+10], p[i+12])를 생성할 수 있다.
프로세서(200)는 포인트 클라우드를 구성하는 복수의 포인트들 중 투사 평면(300)으로부터 가장 가까운 포인트들을 제1 포인트들(D0)로 지정할 수 있다.
프로세서(200)는 제1 포인트(D0)와 동일한 법선 상에 놓여있는 복수의 포인트들 중 제1 포인트로부터 임계 거리(Surface Thickness) 내에서 투사 평면으로부터 가장 먼 포인트를 제2 포인트(D1)로 지정할 수 있다.
프로세서(200)는 제2 포인트(D1)를 나타내는 비트 수를 제1 포인트(D0)와 제2 포인트(D1) 사이의 거리에 따라 결정할 수 있다. 예시적 실시예에 있어서, 프로세서(200)는 제2 포인트(D0=D1)가 제1 포인트와 동일한 경우 제2 포인트(D1)를 나타내는 비트 수를 1로 결정할 수 있다. 예시적 실시예에 있어서, 프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위만큼 떨어져있는 경우 제2 포인트(D1)를 나타내는 비트 수를 1로 결정할 수 있다. 예시적 실시예에 있어서, 프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 n (n은 정수, n>1)배 만큼 떨어져있는 경우 제2 포인트(D1)를 나타내는 비트 수를 n 의 이진수를 저장하기 위해 필요한 최소 값으로 결정할 수 있다.
프로세서(200)는 동일한 법선 상의 제1 포인트(D0)와 제2 포인트(D1) 사이에 제1 포인트(D0) 및 제2 포인트(D1)와 동일한 법선을 지나는 중간 포인트들(In-between points)을 식별할 수 있다. 예시적 실시예에 있어서, 프로세서(200)는 중간 포인트들(In-between points)의 제1 포인트 및 제2 포인트에 대한 상대적인 위치를 식별할 수 있다.
프로세서(200)는 투사 평면(300)에 투사된 투사 이미지에 포함되는 투사 포인트를 나타내는 비트 수를 제1 포인트(D0)와 제2 포인트(D1) 사이의 거리 및 제1 포인트(D0)와 제2 포인트(D1) 사이에 위치하는 중간 포인트(In-between point)의 개수 중 적어도 하나에 기초하여 결정할 수 있다. 예를 들어, 투사 포인트는 동일한 법선 상의 중간 포인트들(In-between points)의 집합일 수 있다.
프로세서(200)는 프로세서(200)는 제2 포인트(D0=D1)가 제1 포인트와 동일한 경우(p[i+2]) 투사 포인트를 나타내는 비트 수를 0으로 결정할 수 있다.
프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위만큼 떨어져있는 경우(p[i+8], p[i+12]) 투사 포인트를 나타내는 비트 수를 0으로 결정할 수 있다.
프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 2배만큼 떨어져있고 중간 포인트(In-between point)가 하나 있는 경우 투사 포인트를 나타내는 비트 수를 0 으로 결정할 수 있다. 도 5b를 참조하면, 예시적 실시예에 있어서, 투사 평면(300)에 대한 투사 위치가 p[i+10]인 제2 포인트(D1)는 제1 포인트(D0)에 대해 제2 포인트(D1)가 최소 단위의 2 배만큼 떨어져 위치하고 중간 포인트(In-between point)가 하나 있으므로, 프로세서(200)는 이에 기반하여 투사 포인트를 나타내는 비트 수를 0으로 결정할 수 있다.
프로세서(200)는 중간 포인트(In-between point)가 없는 경우 투사 포인트를 나타내는 비트 수를 0 으로 결정할 수 있다.
프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 n (n은 정수, n>2)배만큼 떨어져있고 하나 이상의 중간 포인트(In-between point)가 있는 경우 투사 포인트를 나타내는 비트 수를 n-1 값으로 결정할 수 있다. 또한, 프로세서(200)는 투사 포인트를 나타내는 비트에 중간 포인트의 존재 유무를 1 또는 0 의 값으로 나타낼 수 있다. 예를 들어, 복수의 비트가 할당된 경우 각 비트는 앞에서부터 순서대로 제1 포인트(D0)로부터 상대적으로 더 멀리 위치한 포인트임을 의미할 수 있다.
도 5b를 참조하면, 예시적 실시예에 있어서, 투사 평면(300)에 대한 투사 위치가 p[i]인 제2 포인트(D1)는 제1 포인트(D0)에 대해 제2 포인트(D1)가 최소 단위의 4 배만큼 떨어져 위치하고 중간 포인트(In-between points)가 하나 있으므로, 투사 포인트를 나타내는 비트 수를 3으로 결정할 수 있다. 또한, 프로세서(200)는 할당된 3 비트 중 첫번째 비트에 제1 포인트(D0)로부터 거리가 1인 지점에 3차원 포인트가 존재한다는 것을 의미하는 1을 할당할 수 있다. 또한, 프로세서(200)는 할당된 3 비트 중 두번째 비트에 제1 포인트(D0)로부터 거리가 2인 지점에 3차원 포인트가 존재하지 않는다는 것을 의미하는 0을 할당할 수 있다. 또한, 프로세서(200)는 할당된 3 비트 중 세번째 비트에 제1 포인트(D0)로부터 거리가 3인 지점에 3차원 포인트가 존재하지 않는다는 것을 의미하는 0을 할당할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 비트 수를 가변적으로 할당하는 실시예를 설명하는 표이다.
도 2의 프로세서(200)는 도 2의 변환 모듈(100)로 입력되는 3차원 데이터인 포인트 클라우드를 구성하는 복수의 포인트들을 식별하여, 복수의 포인트들 중 투사 평면(300)으로부터 가장 가까운 포인트인 제1 포인트(D0) 및 제1 포인트(D0)와 동일한 법선 상에 놓여있는 복수의 포인트들 중 제1 포인트로부터 임계 거리(Surface Thickness) 내에서 투사 평면으로부터 가장 먼 포인트인 제2 포인트(D1)를 지정할 수 있다.
프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1) 사이에 존재하는 깊이 값을 식별할 수 있다. 예를 들어, 깊이 값은 제1 포인트(D0)와 제2 포인트(D1) 사이에 존재하는 거리에 대응한다.
프로세서(200)는 제2 포인트(D0=D1)가 제1 포인트와 동일한 경우 제1 포인트(D0)와 제2 포인트(D1) 사이에 깊이 값이 존재하지 않는 것으로 결정하고, 깊이 값을 기록하기 위해 필요한 비트 수를 0 으로 결정할 수 있다. 예를 들어, 제2 포인트(D0=D1)가 제1 포인트와 동일한 경우 D1 은 0 이다.
프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위만큼 떨어져있는 경우 제1 포인트(D0)와 제2 포인트(D1) 사이에 깊이 값이 존재하지 않는 것으로 결정하고, 깊이 값을 기록하기 위해 필요한 비트 수를 0 으로 결정할 수 있다. 예를 들어, 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위만큼 떨어져있는 경우 D1 은 1 이다.
프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 n (n은 정수, n>1)배만큼 떨어져있는 경우 제1 포인트(D0)와 제2 포인트(D1) 사이에 존재하는 깊이 값을 0 부터 n-1 까지의 수 중 적어도 하나를 포함하는 집합으로 결정하고, 깊이 값을 기록하기 위해 필요한 비트 수를 n-1 값으로 결정할 수 있다. 예를 들어, 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 n (n은 정수, n>1)배만큼 떨어져있는 경우 D1 은 n 이다. 예시적 실시예에 있어서, 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 4배만큼 떨어져있는 경우 D1은 4이다. D1이 4인 경우 프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1) 사이에 존재하는 깊이 값을 0(null)부터 3까지의 수 중 적어도 하나를 포함하는 집합으로 결정하고, 깊이 값을 기록하기 위해 필요한 비트 수를 3으로 결정할 수 있다. 예시적 실시예에 있어서, D1이 4인 경우 프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1) 사이에 존재하는 깊이 값을 {0(null)}, {1}, {2}, {3}, {1, 2}. {1. 3} 및 {2, 3}, {1, 2, 3} 으로 결정할 수 있다.
예시적 실시예에 있어서, 깊이 값의 기록을 위해 필요한 비트 수는 제1 포인트(D0)와 제2 포인트(D1) 사이에 존재하는 깊이 값의 경우의 수보다 작다.
도 7은 본 개시의 예시적 실시예에 따른 프로세서가 실행가능한 명령어를 나타내는 표이다. 예시적 실시예에 있어서, 도 7은 임계 거리(Surface Thickness)가 5 인 경우 제2 포인트(D1)와 중간 포인트를 나타내는 비트 수를 결정하는 명령어를 나타낸다.
도 2의 프로세서(200)는 제2 포인트(D1)를 나타내는 비트 값을 저장하기 위한 필드를 Most_significant_flag 로 지정할 수 있다. 예시적 실시예에 있어서, 프로세서(200)는 제2 포인트(D1)가 제1 포인트(D0)와 동일한 경우 또는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위만큼 떨어져있는 경우, Most_significant_flag 를 0 으로 코딩할 수 있다. 예시적 실시예에 있어서, 프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 2배 내지 5배만큼 떨어져있는 경우, Most_significant_flag 를 1 로 코딩할 수 있다.
프로세서(200)는 Most_significant_flag 가 0인 경우, 제2 포인트(D1)를 저장하기 위한 비트 수를 1로 결정할 수 있다. 예를 들어, 프로세서(200)는 제2 포인트(D1)가 제1 포인트(D0)와 동일한 경우 D1_value 를 0 으로 코딩하고, 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위만큼 떨어져있는 경우 D1_value 를 1 로 코딩할 수 있다.
프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 2배 내지 5배만큼 떨어져있는 경우의 제2 포인트(D1)를 나타내는 비트 값을 줄이기 위해 D1_value 에 일대일 대응하는 필드인 D1_index 를 정의할 수 있다. 예시적 실시예에 있어서, D1_index 는 D1_value 보다 2 만큼 적은 값을 가질 수 있다. 예를 들어, D1_value 가 2 인 경우 D1_index 는 0 이고, D1_value 가 3 인 경우 D1_index 는 1 이고, D1_value 가 4 인 경우 D1_index 는 2 이고, D1_value 가 5 인 경우 D1_index 는 3 일 수 있다. 예시적 실시예에 있어서, 프로세서(200)는 제2 포인트(D1)를 나타내는 비트에 D1_index 의 2진수 값을 저장할 수 있다.
프로세서(200)는 Most_significant_flag 가 0 이 아닌 경우, 제2 포인트(D1)를 나타내기 위한 비트 수를 2 로 결정할 수 있다. 예시적 실시예에 있어서, 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 2 배만큼 떨어져있는 경우 D1_value 를 2 로 코딩하고, D1_index를 0으로 코딩할 수 있다. 제2 포인트(D1)를 나타내기 위한 비트에는 D1_index 의 2진수 값을 저장하므로, 프로세서(200)는 결정된 2 비트에 0의 2진수인 00(2)을 저장할 수 있다.
프로세서(200)는 예시적 실시예에 있어서, 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 3 배만큼 떨어져있는 경우 D1_value 를 3 으로 코딩하고, D1_index를 1 로 코딩할 수 있다. 제2 포인트(D1)를 나타내기 위한 비트에는 D1_index 의 2진수 값을 저장하므로, 프로세서(200)는 결정된 2 비트에 1 의 2진수인 01(2)을 저장할 수 있다.
프로세서(200)는 예시적 실시예에 있어서, 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 4 배만큼 떨어져있는 경우 D1_value 를 4 로 코딩하고, D1_index를 2 로 코딩할 수 있다. 제2 포인트(D1)를 나타내기 위한 비트에는 D1_index 의 2진수 값을 저장하므로, 프로세서(200)는 결정된 2 비트에 2 의 2진수인 10(2)을 저장할 수 있다.
프로세서(200)는 예시적 실시예에 있어서, 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 5 배만큼 떨어져있는 경우 D1_value 를 5 로 코딩하고, D1_index를 3 로 코딩할 수 있다. 제2 포인트(D1)를 나타내기 위한 비트에는 D1_index 의 2진수 값을 저장하므로, 프로세서(200)는 결정된 2 비트에 3 의 2진수인 11(2)을 저장할 수 있다.
프로세서(200)는 중간 포인트의 존재 유무를 저장하기 위한 필드를 In_between_flag 로 지정할 수 있다. 또한, 프로세서(200)는 중간 포인트를 나타내는 비트 수를 저장하기 위한 필드를 In_between_id 로 지정할 수 있다. 프로세서(200)는 예시적 실시예에 있어서, In_between_flag 에 1 비트를 할당하고, 중간 포인트가 없는 경우 In_between_flag 에 0을 코딩하고, 중간 포인트가 있는 경우 In_between_flag 에 1을 코딩할 수 있다.
프로세서(200)는 In_between_flag 가 0 인 경우, 중간 포인트가 없는 것으로 결정하고 In_between_id 에 저장할 중간 포인트를 나타내는 비트 수를 결정하기 위한 코딩을 수행하지 않을 수 있다.
D1_index 가 0 인 경우 D1_value 는 2 이므로 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 2 배만큼 떨어져있는 경우에 해당하며. In_between_flag 가 0 이 아니므로 제1 포인트(D0)와 제2 포인트(D1) 사이에 중간 포인트가 존재하는 경우에 해당한다. 이 때, 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 2 배만큼 떨어져있는 경우에는 하나의 중간 포인트만 존재할 수 있으므로, In_between_flag 가 0 이 아니면서 D1_index 가 0 인 경우는 한 가지의 경우의 수만이 가능하다. In_between_flag 가 0 이 아니면서 D1_index 가 0 인 경우, 제1 포인트(D0)에 대한 중간 포인트의 상대적인 위치를 나타내기 위한 추가 정보가 필요하지 않으므로, 프로세서(200)는 예시적 실시예에 있어서, In_between_flag 가 0 이 아니면서 D1_index 가 0 인 경우, In_between_id 에 저장되는 중간 포인트를 나타내는 비트 수를 0 으로 코딩할 수 있다.
D1_index 가 1 인 경우 D1_value 는 3 이므로 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 3 배만큼 떨어져있는 경우에 해당하며. In_between_flag 가 0 이 아니므로 제1 포인트(D0)와 제2 포인트(D1) 사이에 중간 포인트가 존재하는 경우에 해당한다. 프로세서(200)는 예시적 실시예에 있어서, In_between_flag 가 0 이 아니면서 D1_index 가 1 인 경우, In_between_id 에 저장되는 중간 포인트를 나타내는 비트 수를 2 로 코딩할 수 있다.
D1_index 가 2 인 경우 D1_value 는 4 이므로 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 4 배만큼 떨어져있는 경우에 해당하며. In_between_flag 가 0 이 아니므로 제1 포인트(D0)와 제2 포인트(D1) 사이에 중간 포인트가 존재하는 경우에 해당한다. 프로세서(200)는 예시적 실시예에 있어서, In_between_flag 가 0 이 아니면서 D1_index 가 2 인 경우, In_between_id 에 저장되는 중간 포인트를 나타내는 비트 수를 3 으로 코딩할 수 있다.
D1_index 가 3 인 경우 D1_value 는 5 이므로 제1 포인트(D0)와 제2 포인트(D1)가 최소 단위의 5 배만큼 떨어져있는 경우에 해당하며. In_between_flag 가 0 이 아니므로 제1 포인트(D0)와 제2 포인트(D1) 사이에 중간 포인트가 존재하는 경우에 해당한다. 프로세서(200)는 예시적 실시예에 있어서, In_between_flag 가 0 이 아니면서 D1_index 가 3 인 경우, In_between_id 에 저장되는 중간 포인트를 나타내는 비트 수를 4 로 코딩할 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 포인트 클라우드를 구성하는 3차원 데이터의 분포 확률을 나타내는 표이다.
도 2의 프로세서(200)는 도 2의 변환 모듈(100)로 입력되는 3차원 데이터인 포인트 클라우드를 구성하는 복수의 포인트들을 식별하여, 복수의 포인트들 중 투사 평면(300)으로부터 가장 가까운 포인트인 제1 포인트(D0) 및 제1 포인트(D0)와 동일한 법선 상에 놓여있는 복수의 포인트들 중 제1 포인트로부터 임계 거리(Surface Thickness) 내에서 투사 평면으로부터 가장 먼 포인트인 제2 포인트(D1)를 지정할 수 있다.
프로세서(200)는 제1 포인트(D0)와 제2 포인트(D1) 사이에 존재하는 깊이 값을 식별할 수 있다. 도 8을 참조하면, D1 분포 중 최대 값인 제2 포인트(D1)을 제외한 적어도 하나의 포인트가 중간 포인트에 대응할 수 있다.
도 8은 제1 포인트(D0), 제2 포인트(D1) 및 중간 포인트가 존재하는 경우 적어도 하나의 중간 포인트의 분포 상태에 따라 해당 상태의 상대적인 발생 확률을 나타낸다.
도 9는 본 개시의 예시적 실시예에 따른 비트 수를 가변적으로 할당하는 실시예에서 필요한 비트 수를 나타내는 표이다.
예시적 실시예에 있어서, 임계 거리(Surface Thickness)가 4인 경우, 제2 포인트(D1)는 제1 포인트(D0)와 제2 포인트(D1) 사이의 거리에 따라 0 내지 4 의 값을 가질 수 있다. 예를 들어, 제2 포인트(D1)를 나타내는 비트는 제2 포인트(D1)를 나타내는 값의 2 진수이므로, 제2 포인트(D1)를 나타내기 위해 필요한 비트 수의 최대 값은 4 의 2 진수인 100(2)를 저장하기 위해 필요한 3 비트이다. 도 2 의 프로세서(200)는 예시적 실시예에 있어서, 제2 포인트(D1)를 나타내는 비트 수를 3으로 결정할 수 있다.
도 6을 참조하면, 예를 들어 제2 포인트(D1)가 0 또는 1 인 경우 제1 포인트(D0)와 제2 포인트(D1) 사이에 존재하는 깊이 값을 저장하기 위해 필요한 추가 비트 수는 0 이다. 또한, 도 6을 참조하면, 예를 들어 제2 포인트(D1)가 2 인 경우 제1 포인트(D0)와 제2 포인트(D1) 사이에 존재하는 깊이 값을 저장하기 위해 필요한 추가 비트 수는 1 이다. 또한, 도 6을 참조하면, 예를 들어 제2 포인트(D1)가 3 인 경우 제1 포인트(D0)와 제2 포인트(D1) 사이에 존재하는 깊이 값을 저장하기 위해 필요한 추가 비트 수는 2 이다. 또한, 도 6을 참조하면, 예를 들어 2 포인트(D1)가 4 인 경우 제1 포인트(D0)와 제2 포인트(D1) 사이에 존재하는 깊이 값을 저장하기 위해 필요한 추가 비트 수는 3 이다.
도 8을 참조하면, 예를 들어 제2 포인트(D1)가 0 인 경우 해당 상태의 상대적인 발생 확률은 0.58900 이다. 또한, 도 8을 참조하면, 예를 들어 제2 포인트(D1)가 1 인 경우 해당 상태의 상대적인 발생 확률은 0.37900 이다. 또한, 도 8을 참조하면, 예를 들어 제2 포인트(D1)가 2 인 경우 해당 상태의 상대적인 발생 확률은 0.02200 이다. 또한, 도 8을 참조하면, 예를 들어 제2 포인트(D1)가 3 인 경우 해당 상태의 상대적인 발생 확률은 0.00500 이다. 또한, 도 8을 참조하면, 예를 들어 제2 포인트(D1)가 4 인 경우 해당 상태의 상대적인 발생 확률은 0.00500 이다.
도 9를 참조하여 깊이 정보를 나타내기 위해 필요한 총 비트 수 및 해당 상태의 상대적인 발생 확률을 고려하면, 예를 들어 제2 포인트(D1)가 0 인 경우 필요한 비트 수는 1.767 이다. 또한, 도 9를 참조하여 깊이 정보를 나타내기 위해 필요한 총 비트 수 및 해당 상태의 상대적인 발생 확률을 고려하면, 예를 들어 제2 포인트(D1)가 1 인 경우 필요한 비트 수는 1.137 이다. 또한, 도 9를 참조하여 깊이 정보를 나타내기 위해 필요한 총 비트 수 및 해당 상태의 상대적인 발생 확률을 고려하면, 예를 들어 제2 포인트(D1)가 2 인 경우 필요한 비트 수는 0.088 이다. 또한, 도 9를 참조하여 깊이 정보를 나타내기 위해 필요한 총 비트 수 및 해당 상태의 상대적인 발생 확률을 고려하면, 예를 들어 제2 포인트(D1)가 3 인 경우 필요한 비트 수는 0.025 이다. 또한, 도 9를 참조하여 깊이 정보를 나타내기 위해 필요한 총 비트 수 및 해당 상태의 상대적인 발생 확률을 고려하면, 예를 들어 제2 포인트(D1)가 4 인 경우 필요한 비트 수는 0.03 이다.
도 10은 본 개시의 예시적 실시예에 따른 비트 수를 가변적으로 할당하는 실시예에서 필요한 비트 수를 나타내는 표이다.
도 7 및 도 10을 참조하면, 도 10 의 D0_0 은 제2 포인트(D1)가 0 인 경우에 대응한다. 도 10 의 D1_0 은 제2 포인트(D1)가 1 인 경우에 대응한다. 도 10 의 D2_0 은 제2 포인트(D1)가 2 이고 중간 포인트가 없는 경우에 대응한다. 도 10 의 D3_0 은 제2 포인트(D1)가 2 이고 중간 포인트가 있는 경우에 대응한다. 도 10 의 D4_0 은 제2 포인트(D1)가 3 이고 중간 포인트가 없는 경우에 대응한다. 도 10 의 D2_1 은 제2 포인트(D1)가 3 이고 중간 포인트가 하나 있는 경우에 대응한다. 도 10 의 D3_1 은 제2 포인트(D1)가 3 이고 중간 포인트가 둘 있는 경우에 대응한다. 도 10 의 D3_2 는 제2 포인트(D1)가 3 이고 중간 포인트가 셋 있는 경우에 대응한다. 도 10 의 D3_3 은 제2 포인트(D1)가 4 이고 중간 포인트가 없는 경우에 대응한다. 도 10 의 D4_1, D4_2 및 D4_3 은 제2 포인트(D1)가 4 이고 중간 포인트가 하나 있는 경우에 대응한다. 도 10 의 D4_4, D4_5 및 D4_6 은 제2 포인트(D1)가 4 이고 중간 포인트가 둘 있는 경우에 대응한다. 도 10 의 D4_7 은 제2 포인트(D1)가 4 이고 중간 포인트가 셋 있는 경우에 대응한다.
도 8의 제2 포인트(D1)의 값 및 중간 포인트의 개수에 따른 해당 상태의 상대적인 발생 확률을 고려하면 도 10의 해당 상태를 표현하기 위해 필요한 비트 수를 확률적으로 계산할 수 있다.
도 10을 참조하여 깊이 정보를 나타내기 위해 필요한 총 비트 수 및 해당 상태의 상대적인 발생 확률을 고려하면, 제1 포인트(D1)와 제2 포인트(D2) 사이의 거리 및 중간 포인트의 개수 중 적어도 하나를 고려하여 깊이 값을 나타내기 위한 비트 수를 가변적으로 결정하는 경우의 비트 총합은 1.49 이다.
도 10의 비트 코드는 허프만 부호(Huffman code)에 대응할 수 있다.
본 발명에 따르면 깊이 값을 나타내기 위한 비트 수를 고정적으로 결정하는 경우보다 더 적은 수의 비트 수를 이용하여 3차원 데이터를 2차원 데이터로 변환하는 것이 가능하다.
도 11은 본 개시의 예시적 실시예에 따른 3차원 데이터 복원 시의 오류 발생의 일 예를 나타낸다.
도 1의 수신 장치(20)는 압축된 2차원 데이터를 수신하여 압축을 해제하고, 3차원 데이터로 변환할 수 있다. 도 11을 참조하면, 수신 장치(20)가 수신된 데이터(I_IMG)를 복원하는 과정에서 서로 다른 표면이 동일한 표면 상에 혼재하는 오류(Artifacts)를 발생시킬 수 있다. 예를 들어, Tablet PC 의 표면과 손의 표면은 수신된 데이터(I_IMG)에서는 서로 다른 지점에 위치하나, 복원된 데이터(O_IMG)에서는 Tablet PC 의 표면 상에 혼재되어 나타나는 오류(Artifacts)가 나타날 수 있다.
예시적 실시예에 있어서, 도 1의 변환 모듈(100)이 3차원 데이터를 2차원 데이터로 변환시키는 과정에서 3차원 데이터에 포함되는 3차원 대상체의 두께가 임계 값 이상으로 얇은 경우, 변환 모듈(100)이 압축한 데이터를 수신 장치(20)에서 복원시키는 경우에 서로 다른 표면이 동일한 표면 상에 혼재하는 오류(Artifacts)를 발생시킬 수 있다.
도 11의 2D 이미지에서 Tablet PC 의 표면에 대응하는 포인트를 D0 포인트라고 하고, 손의 표면에 대응하는 포인트를 D1 포인트 라고 하면, 깊이 정보를 가지고 있는 각 D0 포인트와 D1 포인트의 Normal vector 의 유사성과 투사 평면에 대한 투사 방향으로의 거리를 고려하여 patch 의 동일 여부를 결정할 수 있다.
예시적 실시예에 있어서, 도 1의 변환모듈(100)은 Dataset_1에 포함되는 하나 이상의 포인트 클라우드 그룹(포인트 클라우드 프레임)을 수신하고 이를 변환하여 D0 포인트를 포함하는 D0 이미지 및 D1 포인트를 포함하는 D1 이미지를 포함하는 Dataset_2 를 출력할 수 있다. 예를 들어, D1 이미지의 깊이 정보는 D0 이미지의 깊이 정보와의 차이로 표현될 수 있다. 예시적 실시예에 있어서, Dataset_2 는 D0 포인트에 해당하는 색상 정보를 포함하는 T0 이미지 및 D1 포인트에 해당하는 색상 정보를 포함하는 T1 이미지를 포함할 수 있다. 예를 들어, D0 이미지와 T0 이미지가 서로 대응하며, D1 이미지와 T1 이미지가 서로 대응할 수 있다.
예시적 실시예에 있어서, 도 11의 Artifacts 는 D0 포인트와 D1 포인트가 서로 다른 patch 에 존재하는 것으로 결정되어야 하나, 동일한 patch 에 존재하는 것으로 결정되는 오류가 발생한 것일 수 있다.
예시적 실시예에 있어서, Dataset_2 는 2D 이미지의 픽셀 중 Dataset_1 에 포함되는 데이터 정보를 가지고 있는 픽셀과 Dataset_1 에 포함되는 데이터 정보를 가지고 있지 않은 픽셀을 구분하는 Occupancy map 및 Auxillary Data 를 포함할 수 있다.
도 12는 본 개시의 예시적 실시예에 따른 프로세서가 실행가능한 명령어 및 이에 대한 설명을 나타내는 표이다.
도 2의 프로세서(200)는 관심 영역에 포함되는 제1 포인트에 대응하는 색상 정보(T0)를 추출할 수 있다. 프로세서(200)는 제1 포인트의 위치 정보(D0)를 추출할 수 있다. 예시적 실시예에 있어서, 관심 영역은 3차원 데이터인 포인트 클라우드 그룹에 대응할 수 있다.
프로세서(200)는 제1 포인트로부터 임계 거리 내에 위치하는 제2 포인트에 대응하는 색상 정보(T1)를 추출할 수 있다. 예시적 실시예에 있어서, 임계 거리는 제1 포인트와 제2 포인트 간 Normal Vector의 유사성을 고려하여 결정될 수 있다. 또는, 임계거리는 예를 들어 제1 포인트와 제2 포인트 간 투사 평면까지의 거리의 유사성을 고려하여 결정될 수 있다.
프로세서(200)는 제1 포인트에 대응하는 색상 정보(T0)와 제2 포인트에 대응하는 색상 정보(T1) 간의 차이와 임계 값을 비교할 수 있다. 예시적 실시예에 있어서 제1 포인트에 대응하는 색상 정보(T0)와 제2 포인트에 대응하는 색상 정보(T1) 간의 차이가 임계 값보다 같거나 작은 경우, 프로세서(200)는 제2 포인트가 제1 포인트를 포함하는 관심 영역에 포함되는 것으로 결정할 수 있다. 예를 들어, 제2 포인트가 제1 포인트를 포함하는 관심 영역에 포함된다는 것은 제2 포인트와 제1 포인트가 동일한 포인트 클라우드 그룹에 속한다는 것을 의미할 수 있다. 예를 들어, 제2 포인트와 제1 포인트가 동일한 포인트 클라우드 그룹에 속한다는 것은 차원 데이터를 2차원 데이터로 프로젝션하는 경우 제2 포인트와 제1 포인트가 동일한 patch 에 포함된다는 것을 의미할 수 있다.
예시적 실시예에 있어서, 제1 포인트에 대응하는 색상 정보(T0)와 제2 포인트에 대응하는 색상 정보(T1) 간의 차이가 임계 값보다 큰 경우, 프로세서(200)는 제2 포인트가 제1 포인트를 포함하는 관심 영역에 포함되지 않는 것으로 결정할 수 있다. 예를 들어, 제2 포인트가 제1 포인트를 포함하는 관심 영역에 포함되지 않는다는 것은 제2 포인트와 제1 포인트가 동일한 포인트 클라우드 그룹에 속하지 않는다는 것을 의미할 수 있다. 예를 들어, 제2 포인트와 제1 포인트가 동일한 포인트 클라우드 그룹에 속하지 않는다는 것은 3차원 데이터를 2차원 데이터로 프로젝션하는 경우 제2 포인트와 제1 포인트가 동일한 patch 에 포함되지 않는다는 것을 의미할 수 있다.
예시적 실시예에 있어서, 제1 포인트에 대응하는 색상 정보와 제2 포인트에 대응하는 색상 정보의 차이는 제1 포인트 주변의 복수의 포인트들에 대응하는 색상 정보들의 평균 값과 제2 포인트 주변의 복수의 포인트들에 대응하는 색상 정보들의 평균 값의 차이일 수 있다.
프로세서(200)는 복수의 제2 포인트들에 대응하는 색상 정보(T1)를 제1 포인트에 대응하는 색상 정보(T0)와 비교하여 복수의 제2 포인트들이 제1 포인트를 포함하는 관심 영역에 포함되는지의 여부를 결정할 수 있다.
예시적 실시예에 있어서, 색상 정보는 RGB(Red-Greed-Blue) 색상 채널, YUV 색상 채널 등을 포함한 다양한 색상 채널의 값으로부터 획득될 수 있다. 예시적 실시예에 있어서, 색상 정보의 차이는 차의 절대값을 취하는 방법, 유클리디언 기하 거리를 사용하는 방법 등 다양한 방법으로부터 획득될 수 있다.
예시적 실시예에 있어서, 임계 값은 RGB 색상 채널, YUV 색상 채널 등을 포함하는 다양한 색상 채널의 값에 대응할 수 있다. 예시적 실시예에 있어서, 임계 값은 포인트 클라우드 그룹을 구성하는 복수의 포인트들의 RGB 색상 채널의 평균 값에 대응할 수 있다. 예시적 실시예에 있어서, 임계 값은 포인트 클라우드 그룹을 구성하는 복수의 포인트들의 YUV 색상 채널의 평균 값에 대응할 수 있다. 예를 들어, 임계 값은 제1 포인트에 대응하는 RGB 색상 채널 및 제2 포인트에 대응하는 RGB 색상 채널의 평균 값에 대응할 수 있다. 예를 들어, 임계 값은 제1 포인트에 대응하는 YUV 색상 채널 및 제2 포인트에 대응하는 YUV 색상 채널의 평균 값에 대응할 수 있다.
프로세서(200)는 제1 포인트와 제2 포인트 사이의 거리를 추출할 수 있다. 예시적 실시예에 있어서 제1 포인트에 대응하는 색상 정보(T0)와 제2 포인트에 대응하는 색상 정보(T1) 간의 차이가 임계 값보다 큰 경우, 프로세서(200)는 임계 거리를 임계 단위만큼 줄어든 거리로 변경할 수 있다. 예시적 실시예에 있어서 프로세서(200)는 기존의 제2 포인트를 제1 포인트로부터 변경된 임계 거리 이내에 있는 제3 포인트로 변경할 수 있다. 프로세서(200)는 제3 포인트에 대응하는 색상 정보를 제1 포인트에 대응하는 색상 정보와 비교하여 제3 포인트가 제1 포인트를 포함하는 관심 영역에 포함되는지의 여부를 결정할 수 있다.
프로세서(200)는 도 12의 명령어를 실행하여 상술한 동작을 수행할 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 장치의 동작에 대한 순서도를 도시한다.
도 13을 참조하면, 프로세서(200)는 포인트 클라우드를 구성하는 복수의 포인트들을 식별할 수 있다(S1300).
다음, 프로세서(200)는 식별된 복수의 포인트들을 투사 평면에 투사하여 투사 이미지를 생성할 수 있다(S1310).
도 14는 본 개시의 예시적 실시예에 따른 장치의 동작에 대한 순서도를 도시한다.
도 14를 참조하면, 프로세서(200)는 관심 영역에 포함되는 제1 포인트의 위치 정보 및 색상 정보를 추출할 수 있다(S1400).
다음, 프로세서(200)는 제1 포인트로부터 임계 거리 내에 위치하는 제2 포인트에 대응하는 색상 정보를 추출할 수 있다(S1410).
다음, 프로세서(200)는 제1 포인트에 대응하는 색상 정보 및 제2 포인트에 대응하는 색상 정보의 차이와 임계 값을 비교할 수 있다(S1420).
다음, 프로세서(200)는 제1 포인트에 대응하는 색상 정보 및 제2 포인트에 대응하는 색상 정보의 차이가 임계 값보다 작거나 같은 경우, 제2 포인트가 관심 영역에 포함되는 것으로 결정할 수 있다(S1430). 또는, 프로세서(200)는 제1 포인트에 대응하는 색상 정보 및 제2 포인트에 대응하는 색상 정보의 차이가 임계 값보다 큰 경우, 제2 포인트가 관심 영역에 포함되지 않는 것으로 결정할 수 있다(S1430).
본 발명에 따르면 3차원 데이터를 2차원 데이터로 변환하는 과정에서 서로 다른 표면이 동일한 표면 상에 혼재하게 되는 오류를 제거하거나 감소시킬 수 있으므로 3차원 데이터의 변환 또는 압축 시 발생되는 에러를 줄일 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들을 설명하였으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (15)

  1. 포인트 클라우드에 대한 3차원 데이터를 프로세싱하기 위한 방법에 있어서,
    상기 포인트 클라우드를 구성하는 복수의 포인트들을 식별하는 단계; 및
    상기 식별된 복수의 포인트들을 투사 평면에 투사하여 투사 이미지를 생성하는 단계를 포함하고,
    상기 투사 이미지에 투사된 상기 복수의 포인트들 중 적어도 하나의 포인트에 대응하는 투사 포인트를 나타내는 비트 수는, 상기 복수의 포인트들 중 제1 포인트와 제2 포인트 사이의 거리 및 상기 제1 포인트와 상기 제2 포인트 사이에 위치하는 중간 포인트의 개수 중 적어도 하나에 기초하여 결정되고,
    상기 제1 포인트는 상기 투사 평면에 대한 법선 상의 적어도 하나의 포인트 중 상기 투사 평면으로부터 가장 가까운 포인트이고,
    상기 제2 포인트는 상기 법선 상의 적어도 하나의 포인트 중 상기 제1 포인트로부터 임계 거리 내에서 상기 투사 평면으로부터 가장 먼 포인트인 방법.
  2. 제1 항에 있어서,
    상기 제1 포인트와 상기 제2 포인트가 같은 경우 또는 상기 제1 포인트와 상기 제2 포인트가 최소 단위만큼 떨어져있는 경우, 상기 비트 수를 0 으로 결정하는 단계를 포함하는 방법.
  3. 제1 항에 있어서,
    상기 제1 포인트와 상기 제2 포인트가 최소 단위의 n (n은 정수, n>1)배만큼 떨어져있는 경우, 상기 비트 수를 n-1 값으로 결정하는 단계를 포함하는 방법.
  4. 제1 항에 있어서, 상기 방법은,
    상기 제2 포인트를 나타내는 비트 수를 상기 제1 포인트와 상기 제2 포인트 사이의 거리에 따라 결정하는 단계;
    상기 제1 포인트와 상기 제2 포인트가 같은 경우 또는 상기 제1 포인트와 상기 제2 포인트가 최소 단위만큼 떨어져있는 경우, 상기 제2 포인트를 나타내는 비트 수를 1 로 결정하는 단계; 및
    상기 제1 포인트와 상기 제2 포인트가 최소 단위의 n (n은 정수, n>1)배만큼 떨어져있는 경우, 상기 제2 포인트를 나타내는 비트 수를 n 의 이진수를 저장하기 위해 필요한 최소 값으로 결정하는 단계를 포함하는 방법.
  5. 제1 항에 있어서,
    상기 제1 포인트와 상기 제2 포인트가 최소 단위의 2배만큼 떨어져있고 상기 중간 포인트가 하나 있는 경우, 상기 비트 수를 0 으로 결정하는 단계를 포함하는 방법.
  6. 제1 항에 있어서,
    상기 중간 포인트가 없는 경우, 상기 비트 수를 0 으로 결정하는 단계를 포함하는 방법.
  7. 제1 항에 있어서,
    상기 제1 포인트와 상기 제2 포인트가 최소 단위의 n (n은 정수, n>2)배만큼 떨어져있고 하나 이상의 상기 중간 포인트가 있는 경우, 상기 비트 수를 n-1 값으로 결정하는 단계를 포함하는 방법.
  8. 포인트 클라우드에 대한 3차원 데이터를 프로세싱하기 위한 장치에 있어서,
    프로세서; 및
    상기 프로세서가 실행 가능한 명령을 저장하도록 구성되는 메모리를 포함하고,
    상기 프로세서는
    상기 포인트 클라우드를 구성하는 복수의 포인트들을 식별하고,
    상기 식별된 복수의 포인트들을 투사 평면에 투사하여 투사 이미지를 생성하도록 구성되고,
    상기 투사 이미지에 투사된 상기 복수의 포인트들 중 적어도 하나의 포인트에 대응하는 투사 포인트를 나타내는 비트 수는, 상기 복수의 포인트들 중 제1 포인트와 제2 포인트 사이의 거리 및 상기 제1 포인트와 상기 제2 포인트 사이에 위치하는 중간 포인트의 개수 중 적어도 하나에 기초하여 결정되고,
    상기 제1 포인트는 상기 투사 평면에 대한 법선 상의 적어도 하나의 포인트 중 상기 투사 평면으로부터 가장 가까운 포인트이고,
    상기 제2 포인트는 상기 법선 상의 적어도 하나의 포인트 중 상기 제1 포인트로부터 임계 거리 내에서 상기 투사 평면으로부터 가장 먼 포인트인 장치.
  9. 제8 항에 있어서,
    상기 장치는 제2 항 내지 제7 항 중 어느 한 항에 따른 방법에 따라 동작되도록 구성되는 장치.
  10. 포인트 클라우드에 대한 3차원 데이터를 프로세싱하기 위한 방법에 있어서,
    관심 영역에 포함되는 제1 포인트에 대응하는 색상 정보를 추출하는 단계;
    상기 제1 포인트로부터 임계 거리 내에 위치하는 제2 포인트에 대응하는 색상 정보를 추출하는 단계;
    상기 제1 포인트에 대응하는 색상 정보와 상기 제2 포인트에 대응하는 색상 정보 간의 차이와 임계 값을 비교하는 단계; 및
    상기 차이가 상기 임계 값보다 작거나 같은 경우, 상기 제2 포인트가 상기 관심 영역에 포함되는 것으로 결정하는 단계를 포함하는 방법.
  11. 제10 항에 있어서,
    상기 차이가 상기 임계 값보다 큰 경우, 상기 제2 포인트가 상기 관심 영역에 포함되지 않는 것으로 결정하는 단계를 더 포함하는 방법.
  12. 제10 항에 있어서,
    상기 제1 포인트와 상기 제2 포인트 사이의 거리를 추출하는 단계; 및
    상기 차이가 상기 임계 값보다 큰 경우, 상기 임계 거리를 임계 단위만큼 줄어든 거리로 변경하는 단계를 더 포함하는 방법.
  13. 제12 항에 있어서,
    상기 제2 포인트를 상기 제1 포인트로부터 상기 변경된 임계 거리 이내에 있는 제3 포인트로 변경하는 단계를 더 포함하는 방법.
  14. 포인트 클라우드에 대한 3차원 데이터를 프로세싱하기 위한 장치에 있어서,
    프로세서; 및
    상기 프로세서가 실행 가능한 명령을 저장하도록 구성되는 메모리를 포함하고,
    상기 프로세서는
    관심 영역에 포함되는 제1 포인트에 대응하는 색상 정보를 추출하고,
    상기 제1 포인트로부터 임계 거리 내에 위치하는 제2 포인트에 대응하는 색상 정보를 추출하고,
    상기 제1 포인트에 대응하는 색상 정보 및 상기 제2 포인트에 대응하는 색상 정보의 차이와 임계 값을 비교하고,
    상기 차이가 상기 임계 값보다 작거나 같은 경우, 상기 제2 포인트가 상기 관심 영역에 포함되는 것으로 결정하도록 구성되는 장치.
  15. 제14 항에 있어서,
    상기 장치는 제11 항 내지 제13 항 중 어느 한 항에 따른 방법에 따라 동작되도록 구성되는 장치.
PCT/KR2019/004839 2018-04-20 2019-04-22 3차원 데이터를 프로세싱하기 위한 방법 및 장치 WO2019203628A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP19788875.3A EP3783886A4 (en) 2018-04-20 2019-04-22 PROCESS AND APPARATUS FOR PROCESSING THREE-DIMENSIONAL DATA
US17/048,757 US11430185B2 (en) 2018-04-20 2019-04-22 Method and apparatus for processing three-dimensional data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180046311A KR102477031B1 (ko) 2018-04-20 2018-04-20 3차원 데이터를 프로세싱하기 위한 방법 및 장치
KR10-2018-0046311 2018-04-20

Publications (1)

Publication Number Publication Date
WO2019203628A1 true WO2019203628A1 (ko) 2019-10-24

Family

ID=68239187

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/004839 WO2019203628A1 (ko) 2018-04-20 2019-04-22 3차원 데이터를 프로세싱하기 위한 방법 및 장치

Country Status (4)

Country Link
US (1) US11430185B2 (ko)
EP (1) EP3783886A4 (ko)
KR (1) KR102477031B1 (ko)
WO (1) WO2019203628A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102150954B1 (ko) 2020-04-06 2020-09-02 주식회사 맥스트 점군 정보 가공 장치 및 방법
KR102158316B1 (ko) 2020-04-14 2020-09-21 주식회사 맥스트 점군 정보 가공 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8290305B2 (en) * 2009-02-13 2012-10-16 Harris Corporation Registration of 3D point cloud data to 2D electro-optical image data
US9053547B2 (en) * 2011-04-13 2015-06-09 Kabushiki Kaisha Topcon Three-dimensional point cloud position data processing device, three-dimensional point cloud position data processing system, and three-dimensional point cloud position data processing method and program
KR20150089364A (ko) * 2014-01-27 2015-08-05 한국생산기술연구원 점군데이터를 위한 실시간 송수신 시스템 및 방법, 그리고 이에 적용되는 장치
US9286538B1 (en) * 2014-05-01 2016-03-15 Hrl Laboratories, Llc Adaptive 3D to 2D projection for different height slices and extraction of robust morphological features for 3D object recognition
US9787321B1 (en) * 2016-11-17 2017-10-10 Google Inc. Point cloud data compression using a space-filling curve

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208571B2 (en) * 2011-06-06 2015-12-08 Microsoft Technology Licensing, Llc Object digitization
EP3143774A4 (en) * 2014-05-13 2018-04-25 PCP VR Inc. Method, system and apparatus for generation and playback of virtual reality multimedia
US10939129B2 (en) * 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
KR20200140825A (ko) * 2018-04-11 2020-12-16 인터디지털 브이씨 홀딩스 인코포레이티드 3d 객체를 나타내는 포인트 클라우드를 인코딩/디코딩하기 위한 방법 및 장치
KR102537946B1 (ko) 2018-04-17 2023-05-31 삼성전자주식회사 포인트 클라우드에 관한 데이터를 프로세싱하기 위한 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8290305B2 (en) * 2009-02-13 2012-10-16 Harris Corporation Registration of 3D point cloud data to 2D electro-optical image data
US9053547B2 (en) * 2011-04-13 2015-06-09 Kabushiki Kaisha Topcon Three-dimensional point cloud position data processing device, three-dimensional point cloud position data processing system, and three-dimensional point cloud position data processing method and program
KR20150089364A (ko) * 2014-01-27 2015-08-05 한국생산기술연구원 점군데이터를 위한 실시간 송수신 시스템 및 방법, 그리고 이에 적용되는 장치
US9286538B1 (en) * 2014-05-01 2016-03-15 Hrl Laboratories, Llc Adaptive 3D to 2D projection for different height slices and extraction of robust morphological features for 3D object recognition
US9787321B1 (en) * 2016-11-17 2017-10-10 Google Inc. Point cloud data compression using a space-filling curve

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3783886A4 *

Also Published As

Publication number Publication date
US11430185B2 (en) 2022-08-30
US20210158617A1 (en) 2021-05-27
KR20190122479A (ko) 2019-10-30
EP3783886A4 (en) 2021-11-10
KR102477031B1 (ko) 2022-12-14
EP3783886A1 (en) 2021-02-24

Similar Documents

Publication Publication Date Title
WO2019194522A1 (ko) 중복 포인트 처리 방법 및 장치
WO2020036417A1 (ko) 히스토리 기반 움직임 벡터에 기반한 인터 예측 방법 및 그 장치
WO2017043769A1 (ko) 부호화 장치, 복호화 장치 및 그 부호화 방법 및 복호화 방법
WO2011046327A2 (en) Apparatus and method for coding a three dimensional mesh
WO2011155704A2 (ko) 깊이 전이 데이터를 이용한 3d 비디오 인코딩/디코딩 장치 및 방법
WO2019203628A1 (ko) 3차원 데이터를 프로세싱하기 위한 방법 및 장치
WO2017043766A1 (ko) 비디오 부호화, 복호화 방법 및 장치
WO2020071808A1 (en) Improving prediction for matched patch index coding
WO2019225903A1 (ko) 워터마크 기반의 이미지 무결성 검증 방법 및 장치
WO2014189236A1 (ko) 무손실 이미지 압축 및 복원 방법과 이를 수행하는 장치
WO2018225949A1 (en) Method and apparatus for determining a motion vector
WO2016104990A1 (ko) 컨텐츠 제공 장치, 디스플레이 장치 및 그 제어 방법
WO2019203523A1 (ko) 포인트 클라우드에 관한 데이터를 프로세싱하기 위한 방법 및 장치
WO2020046041A1 (en) Electronic device for high-speed compression processing of feature map of cnn utilizing system and controlling method thereof
WO2015182927A1 (ko) 다시점 비디오 신호 처리 방법 및 장치
WO2015037894A1 (ko) 비디오 메모리의 모니터링을 이용한 영상 처리 장치
WO2023210884A1 (ko) 비지역적 평균 기반의 노이즈 제거 장치 및 방법
WO2019151808A1 (ko) 이미지 센서를 이용한 이미지 획득 과정에서 생성된 압축 속성을 이용하여 이미지를 압축하는 전자 장치 및 그 동작 방법
WO2017074016A1 (ko) 컬러 컴포넌트의 동적 범위를 이용한 영상 처리 방법 및 그 장치
WO2013157839A1 (ko) 인간의 시각 특성을 이용한 오프셋 값 결정 방법 및 장치
WO2020138630A1 (en) Display apparatus and image processing method thereof
WO2022075754A1 (ko) 머신비전을 위한 영상의 처리 방법 및 장치
WO2023090616A1 (ko) 포인트 단위 예측을 이용하는 라이다 포인트 클라우드 코딩을 위한 방법 및 장치
WO2023158267A1 (ko) 특징맵 압축 방법 및 장치
WO2018160034A1 (ko) 영상 부호화 또는 복호화하기 위한 장치 및 방법

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019788875

Country of ref document: EP

Effective date: 20201119