KR20230035304A - Method for processing massive point cloud data and system thereof - Google Patents

Method for processing massive point cloud data and system thereof Download PDF

Info

Publication number
KR20230035304A
KR20230035304A KR1020230027944A KR20230027944A KR20230035304A KR 20230035304 A KR20230035304 A KR 20230035304A KR 1020230027944 A KR1020230027944 A KR 1020230027944A KR 20230027944 A KR20230027944 A KR 20230027944A KR 20230035304 A KR20230035304 A KR 20230035304A
Authority
KR
South Korea
Prior art keywords
node
box
point
point cloud
points
Prior art date
Application number
KR1020230027944A
Other languages
Korean (ko)
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 주식회사 타임텍
Publication of KR20230035304A publication Critical patent/KR20230035304A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • G06T3/4076Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution using the original low-resolution images to iteratively correct the high-resolution images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • 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
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)
  • Navigation (AREA)

Abstract

Disclosed is a method for processing massive point cloud data, which allows the massive point cloud data to be efficiently utilized. According to one aspect of the present invention, the method comprises the steps of: receiving point cloud data which is acquired through laser scanning of an object and includes a plurality of points having coordinate data on a surface of the object; setting a bounding box to contain the point cloud; recursively dividing the bounding box into eight parts to generate an octree including a plurality of layered node boxes; searching for a node box in which points are to be stored with respect to a plurality of points along layers of the octree; and when there is a second point pre-stored in a first node box which is a search target for a first point, storing one of the first point and second point closer to the center of the first node box in the first node box, and transferring and storing the other one to a second node box below the first node box.

Description

대용량 포인트 클라우드 데이터 처리 방법 및 그 시스템{METHOD FOR PROCESSING MASSIVE POINT CLOUD DATA AND SYSTEM THEREOF}Massive point cloud data processing method and system thereof {METHOD FOR PROCESSING MASSIVE POINT CLOUD DATA AND SYSTEM THEREOF}

본 발명은 대용량 포인트 클라우드 데이터 처리 방법 및 그 시스템에 관한 것이다.The present invention relates to a method and system for processing large-capacity point cloud data.

현재 레이저 스캐닝 기술이 제조, 토목, 영화 등을 포함하는 다양한 산업 분야에서 활발히 이용되고 있다.Currently, laser scanning technology is actively used in various industrial fields including manufacturing, civil engineering, and film.

해당 기술은 방출된 레이저가 대상물의 표면에서 반사되어 수신되면 이를 토대로 좌표값을 계산해 포인트를 생성하고, 이와 같은 수많은 포인트들의 군집인 포인트 클라우드를 통해 대상물의 입체적 표면 형상에 대한 데이터를 제공한다.When the emitted laser is reflected from the surface of an object and received, the coordinate value is calculated based on this to create a point, and data on the three-dimensional surface shape of the object is provided through a point cloud, which is a cluster of numerous points.

이러한 레이저 스캐닝 기술의 발전에 따라 제공되는 포인트 클라우드의 용량이 비약적으로 증가되고 있으며, 이에 따라 해당 대용량 데이터를 효율적으로 활용하기 위한 후처리 방법의 개발 필요성이 증가하고 있다.With the development of such laser scanning technology, the capacity of the provided point cloud is rapidly increasing, and accordingly, the need to develop a post-processing method for efficiently utilizing the large amount of data is increasing.

대한민국 등록특허공보 제 10-2015388호 (2019.08.28. 공고)Republic of Korea Patent Registration No. 10-2015388 (2019.08.28. Notice)

본 발명은 대용량의 포인트 클라우드 데이터를 효율적으로 활용하기 위한 대용량 포인트 클라우드 데이터 처리 방법 및 그 시스템을 제공하는 것이다.The present invention provides a large-capacity point cloud data processing method and system for efficiently utilizing large-capacity point cloud data.

본 발명의 일 측면에 따르면, 대상물의 레이저 스캐닝을 통해 획득되고 대상물의 표면에 대한 좌표 데이터를 갖는 복수의 포인트를 포함하는 포인트 클라우드 데이터를 입력 받는 단계, 포인트 클라우드를 포함하도록 바운딩 박스를 설정하는 단계, 바운딩 박스를 재귀적으로 8분할하여 계층화된 복수의 노드 박스를 포함하는 옥트리를 생성하는 단계, 옥트리의 계층을 따라 포인트가 저장될 노드 박스를 복수의 포인트에 대해 탐색하는 단계, 및 제1 포인트에 대한 탐색 대상인 제1 노드 박스에 기저장된 제2 포인트가 있는 경우, 제1 포인트 및 제2 포인트 중 제1 노드 박스의 중심에 보다 가까운 어느 하나를 제1 노드 박스에 저장하고 다른 하나를 제1 노드 박스 하위의 제2 노드 박스에 전달하여 저장하는 단계를 포함하는 대용량 포인트 클라우드 데이터 처리 방법이 제공된다.According to one aspect of the present invention, the step of receiving point cloud data including a plurality of points obtained through laser scanning of the object and having coordinate data on the surface of the object, setting a bounding box to include the point cloud , Recursively dividing the bounding box into eight to generate an octree including a plurality of layered node boxes, searching for a plurality of node boxes in which points will be stored along the hierarchy of the octree, and first point If there is a pre-stored second point in the first node box that is a search target for , one of the first point and the second point that is closer to the center of the first node box is stored in the first node box, and the other one is stored in the first node box. There is provided a large-capacity point cloud data processing method comprising the step of transferring and storing in a second node box under the node box.

옥트리를 생성하는 단계는 분할된 노드 박스의 내부가 빈 공간인 경우 분할을 중지할 수 있다.In the step of generating the octree, if the inside of the divided node box is an empty space, the division may be stopped.

노드 박스는 기설정된 계층 내 노드 박스부터 포인트가 저장 가능하고, 포인트는 최상위의 노드 박스로부터 기설정된 계층 내 노드 박스에 도달하기 전까지 하위의 노드 박스로 전달될 수 있다.Node boxes can store points starting from node boxes in a preset hierarchy, and points can be transferred from the highest node box to lower node boxes before reaching node boxes in a preset hierarchy.

기설정된 계층 내 복수의 노드 박스에 저장되는 복수의 포인트를 하나의 데이터로 저장하는 단계가 더 포함될 수 있다.A step of storing a plurality of points stored in a plurality of node boxes in a predetermined hierarchy as one data may be further included.

기설정된 계층 하위의 각 복수의 계층 내 복수의 노드 박스에 저장되는 복수의 포인트를 하나의 데이터로 저장하는 단계가 더 포함될 수 있다.A step of storing a plurality of points stored in a plurality of node boxes in each of a plurality of layers below a predetermined layer as one data may be further included.

기설정된 제1 계층 내 각각의 노드 박스에 연결된 복수의 계층을 제1 영역으로 설정하는 단계, 제1 계층 하위의 제2 계층 내 각각의 노드 박스에 연결된 복수의 계층을 제2 영역으로 설정하는 단계, 및 제2 계층 하위에 배치된 최하위의 계층 각각을 제3 영역으로 설정하는 단계가 더 포함될 수 있다.Setting a plurality of layers connected to respective node boxes in a predetermined first layer as a first area, setting a plurality of layers connected to respective node boxes in a second layer below the first layer as a second area , and setting each of the lowest layers disposed below the second layer as a third region may be further included.

제1 계층은 제1 계층 내 노드 박스의 크기 및 내부에 포함되는 포인트의 개수 중 적어도 어느 하나에 따라 설정될 수 있다.The first layer may be set according to at least one of the size of a node box in the first layer and the number of points included therein.

최하위의 노드 박스에는 내부에 포함되는 복수의 포인트가 저장될 수 있다.A plurality of points included in the lowermost node box may be stored.

최하위의 노드 박스는 복수의 분할 공간을 포함하고, 최하위의 노드 박스에는 분할 공간의 중심에 가장 가까운 포인트가 저장될 수 있다.The lowest node box includes a plurality of divided spaces, and a point closest to the center of the divided space may be stored in the lowest node box.

본 발명의 다른 측면에 따르면, 대상물의 레이저 스캐닝을 통해 획득되고 대상물의 표면에 대한 좌표 데이터를 갖는 복수의 포인트를 포함하는 포인트 클라우드 데이터를 입력 받는 입력부, 포인트 클라우드를 포함하도록 바운딩 박스를 설정하는 바운딩 박스 설정부, 바운딩 박스를 재귀적으로 8분할하여 계층화된 복수의 노드 박스를 포함하는 옥트리를 생성하는 옥트리 생성부, 옥트리의 계층을 따라 포인트가 저장될 노드 박스를 복수의 포인트에 대해 탐색하는 탐색부, 및 제1 포인트에 대한 탐색 대상인 제1 노드 박스에 기저장된 제2 포인트가 있는 경우, 제1 포인트 및 제2 포인트 중 제1 노드 박스의 중심에 보다 가까운 어느 하나를 제1 노드 박스에 저장하고 다른 하나를 제1 노드 박스 하위의 제2 노드 박스에 전달하여 저장하는 포인트 저장부를 포함하는 대용량 포인트 클라우드 데이터 처리 시스템이 제공된다.According to another aspect of the present invention, an input unit for receiving point cloud data obtained through laser scanning of an object and including a plurality of points having coordinate data on the surface of the object, and a bounding box for setting a bounding box to include the point cloud A box setting unit, an octree generation unit that generates an octree including a plurality of layered node boxes by recursively dividing the bounding box into 8 segments, and a search that searches node boxes in which points are to be stored for a plurality of points along the hierarchy of the octree. If there is a second point pre-stored in the first node box, which is a search target for the second point and the first point, store one of the first point and the second point closer to the center of the first node box in the first node box. There is provided a large-capacity point cloud data processing system including a point storage unit for transferring and storing the other one to a second node box under the first node box.

본 발명에 따르면, 대용량의 포인트 클라우드 데이터를 효율적으로 활용 가능하도록 처리하는 것이 가능하다.According to the present invention, it is possible to process a large amount of point cloud data so as to be efficiently utilized.

도 1은 본 발명의 일 실시예에 따른 대용량 포인트 클라우드 데이터 처리 방법을 나타낸 순서도.
도 2는 본 발명의 일 실시예에 따른 대용량 포인트 클라우드 데이터 처리 방법을 나타낸 모식도.
도 3은 본 발명의 다른 실시예에 따른 대용량 포인트 클라우드 데이터 처리 시스템을 나타낸 구성도.
1 is a flowchart illustrating a large-capacity point cloud data processing method according to an embodiment of the present invention.
2 is a schematic diagram showing a large-capacity point cloud data processing method according to an embodiment of the present invention.
3 is a block diagram showing a large-capacity point cloud data processing system according to another embodiment of the present invention.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.Since the present invention can apply various transformations and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, it should be understood that this is not intended to limit the present invention to specific embodiments, and includes all transformations, equivalents, and substitutes included in the spirit and scope of the present invention. In describing the present invention, if it is determined that a detailed description of related known technologies may obscure the gist of the present invention, the detailed description will be omitted.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. These terms are only used for the purpose of distinguishing one component from another.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, the terms "include" or "have" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.

이하, 본 발명에 따른 대용량 포인트 클라우드 데이터 처리 방법 및 그 시스템(100)을 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, a large-capacity point cloud data processing method and system 100 according to the present invention will be described in detail with reference to the accompanying drawings. and duplicate descriptions thereof will be omitted.

먼저, 본 발명의 일 실시예에 따른 대용량 포인트 클라우드 데이터 처리 방법에 대해 설명한다.First, a method for processing large-capacity point cloud data according to an embodiment of the present invention will be described.

본 실시예에 따르면, 도 1에 도시된 바에 따라, 대상물의 레이저 스캐닝을 통해 획득되고 대상물의 표면에 대한 좌표 데이터를 갖는 복수의 포인트를 포함하는 포인트 클라우드 데이터를 입력 받는 단계(S110), 포인트 클라우드를 포함하도록 바운딩 박스를 설정하는 단계(S120), 바운딩 박스를 재귀적으로 8분할하여 계층화된 복수의 노드 박스를 포함하는 옥트리를 생성하는 단계(S130), 옥트리의 계층을 따라 포인트가 저장될 노드 박스를 복수의 포인트에 대해 탐색하는 단계(S140), 및 제1 포인트에 대한 탐색 대상인 제1 노드 박스에 기저장된 제2 포인트가 있는 경우, 제1 포인트 및 제2 포인트 중 제1 노드 박스의 중심에 보다 가까운 어느 하나를 제1 노드 박스에 저장하고 다른 하나를 제1 노드 박스 하위의 제2 노드 박스에 전달하여 저장하는 단계(S150)를 포함하는 대용량 포인트 클라우드 데이터 처리 방법이 제공된다.According to the present embodiment, as shown in FIG. 1, receiving point cloud data obtained through laser scanning of an object and including a plurality of points having coordinate data on the surface of the object (S110), point cloud Setting a bounding box to include (S120), recursively dividing the bounding box into 8 to generate an octree including a plurality of layered node boxes (S130), a node where points are to be stored along the hierarchy of the octree. Searching a box for a plurality of points (S140), and when there is a pre-stored second point in the first node box that is a search target for the first point, the center of the first node box among the first point and the second point There is provided a large-capacity point cloud data processing method including the step of storing one closer to a first node box in a first node box and transferring and storing the other one in a second node box under the first node box (S150).

이와 같은 본 실시예에 따르면, 포인트 클라우드를 포함하도록 설정된 바운딩 박스를 분할하고 이에 따라 형성되는 옥트리의 노드 박스에 포인트를 일정 기준에 따라 저장함으로써, 대용량의 포인트 클라우드가 효과적으로 정리되고 그 결과 해당 데이터를 효율적으로 활용하는 것이 가능해진다.According to this embodiment, a large-capacity point cloud is effectively organized by dividing a bounding box set to include a point cloud and storing points in a node box of an octree formed accordingly according to a predetermined criterion, and as a result, corresponding data is stored. It becomes possible to use it effectively.

이하 도 1 및 도 2를 참조하여 본 실시예에 따른 대용량 포인트 클라우드 데이터 처리 방법의 각 단계에 대하여 설명하도록 한다.Hereinafter, each step of the large-capacity point cloud data processing method according to the present embodiment will be described with reference to FIGS. 1 and 2.

**

단계110에서 대상물의 레이저 스캐닝을 통해 획득되고 대상물의 표면에 대한 좌표 데이터를 갖는 복수의 포인트를 포함하는 포인트 클라우드 데이터를 입력 받을 수 있다.In step 110, point cloud data obtained through laser scanning of the object and including a plurality of points having coordinate data on the surface of the object may be input.

여기서 대상물은 체적을 갖는, 다시 말해 입체성을 갖춘 물품을 의미하는 것으로 이해될 수 있다.Here, an object may be understood to mean an article having a volume, that is, a three-dimensional object.

또한 레이저 스캐닝(laser scanning)은 라이다(LiDAR, Light Detection And Ranging) 등과 같은 레이저 스캐너(laser scanner)를 이용하여 대상물을 향해 레이저를 조사 후 대상물에서 반사되어 다시 돌아오는 레이저를 수신하여 물체까지의 거리 등을 측정함으로써 해당 대상물 표면의 입체적 형상에 대한 데이터를 얻는 과정으로 이해될 수 있다.In addition, laser scanning uses a laser scanner such as LiDAR (Light Detection And Ranging) to irradiate a laser toward an object, receive the reflected laser from the object, and then return to the object. It can be understood as a process of obtaining data on the three-dimensional shape of the surface of the object by measuring the distance.

포인트(point)는 하나의 점 데이터로서 대상물 표면의 한 점에 대한 좌표값을 갖는 단위 데이터로 이해될 수 있으며, 포인트 클라우드(point cloud)는 상기 포인트의 군집, 즉 점군 데이터로 이해될 수 있을 것이다.A point is one point data and can be understood as unit data having a coordinate value for a point on the surface of an object, and a point cloud can be understood as a cluster of the points, that is, point cloud data. .

단계120에서 포인트 클라우드를 포함하도록 바운딩 박스를 설정할 수 있다.In step 120, a bounding box may be set to include a point cloud.

여기서 바운딩 박스(bounding box)는 3D 데이터, 다시 말해 포인트 클라우드를 모두 포함할 수 있는 최소 크기의 박스로서 목적하는 데이터를 다른 것들과 구분하기 위한 경계로 이해될 수 있다.Here, a bounding box is a box of a minimum size capable of including all 3D data, that is, a point cloud, and may be understood as a boundary for distinguishing target data from other data.

본 단계에서는 후술할 바와 같이 포인트 클라우드 데이터를 옥트리를 이용하여 정리 내지 처리하기 위한 사전 작업으로서 포인트 클라우드 전체를 포함하는 바운딩 박스가 설정될 수 있다.As will be described later, in this step, a bounding box including the entire point cloud may be set as a preliminary task for arranging or processing point cloud data using an octree.

단계130에서는 바운딩 박스를 재귀적으로 8분할하여 계층화된 복수의 노드 박스를 포함하는 옥트리를 생성할 수 있다.In step 130, an octree including a plurality of layered node boxes may be generated by recursively dividing the bounding box into 8 parts.

옥트리(octree)는 '8'을 뜻하는 'oct'에 네트워크적 의미의 'tree'가 결합된 단어로서 하나의 중간 노드가 여덟개의 자식 노드를 가지는 트리 형태의 자료 구조를 의미하며, 본 발명과 관련하여 3D 데이터 처리와 관련하여 삼차원 공간을 재귀적(再歸的)으로 분할하는 방식으로 생성될 수 있다.Octree is a word that combines 'oct' meaning '8' with 'tree' meaning network, and means a tree-type data structure in which one intermediate node has eight child nodes. In relation to 3D data processing, it may be generated in a manner of recursively dividing a three-dimensional space.

노드(node)는 데이터 네트워크 상에서 연결 지점이나 데이터 전송의 종점 내지 재분배점으로, 노드 박스(node box)는 이러한 노드의 역할을 수행하되 옥트리와 관련하여 바운딩 박스를 재귀적으로 분할 시 마다 생성되는 각각의 박스 형상의 데이터 저장 공간을 의미하는 것으로 이해될 수 있다.A node is a connection point or an end point or redistribution point of data transmission on a data network, and a node box plays the role of such a node. It can be understood to mean a box-shaped data storage space of .

옥트리가 생성되는 모습을 도 2를 통해 보다 구체적으로 살펴보면, 바운딩 박스는 재귀적으로 8분할되고, 각 분할 시마다 생성되는 노드 박스는 한 계층을 이루게 되며, 계속적 분할에 따라 복수의 계층 및 그 계층을 구성하는 복수의 노드 박스를 포함하는 데이터 구조로서의 옥트리가 마련될 수 있다.Looking at the generation of the octree in more detail with reference to FIG. 2, the bounding box is recursively divided into 8 parts, and the node boxes generated at each division form one layer. An octree as a data structure including a plurality of constituting node boxes may be prepared.

이처럼 옥트리를 생성하여 포인트 클라우드 데이터를 정리 내지 정렬해둘 경우 포인트 클라우드 내의 포인트를 해당 포인트가 저장되는 노드 박스를 기준으로 빠르게 검색할 수 있게 된다.In this way, when an octree is created and the point cloud data is organized or sorted, it is possible to quickly search for points in the point cloud based on the node box in which the point is stored.

보다 구체적으로 옥트리를 생성하는 단계에서 분할된 노드 박스의 내부가 빈 공간인 경우 분할을 중지할 수 있다.More specifically, in the step of generating the octree, if the inside of the divided node box is an empty space, the division may be stopped.

다시 말해 노드 박스는 상술한 바와 같이 포인트 데이터를 저장하기 위한 단위 저장소이므로, 그 내부가 비어 있는 경우 추가적 분할을 중지함으로써 불필요한 연산의 가중 및 클라우드 데이터 처리 속도의 감소를 방지할 수 있다.In other words, since the node box is a unit storage for storing point data as described above, when the inside of the node box is empty, additional partitioning is stopped, thereby preventing the increase in unnecessary calculations and the decrease in cloud data processing speed.

단계140에서 옥트리의 계층을 따라 포인트가 저장될 노드 박스를 복수의 포인트에 대해 탐색할 수 있다.In step 140, a node box in which a point is to be stored may be searched for a plurality of points along the octree hierarchy.

즉 옥트리에 포함된 복수의 노드 박스 각각에 저장될 포인트를 결정하기 위하여, 옥트리의 최상위 노드 박스로부터 계층을 따라 내려가면서 임의의 어느 한 포인트가 저장될 노드 박스를 탐색할 수 있다.That is, in order to determine a point to be stored in each of a plurality of node boxes included in the octree, a node box in which any one point is to be stored may be searched while going down the hierarchy from the top node box of the octree.

이 경우 탐색은 복수의 포인트 각각에 대하여 행해지며, 복수의 포인트 중 어느 하나의 포인트에 대한 탐색 결과 저장될 노드 박스가 결정된 경우 다른 하나의 포인트에 대한 탐색이 다시 진행되는 회귀적(回歸的) 방식으로 이루어질 수 있다.In this case, the search is performed for each of a plurality of points, and when a node box to be stored as a search result for any one of the plurality of points is determined, a search for another point is performed again. can be made with

단계150에서 제1 포인트에 대한 탐색 대상인 제1 노드 박스에 기저장된 제2 포인트가 있는 경우, 제1 포인트 및 제2 포인트 중 제1 노드 박스의 중심에 보다 가까운 어느 하나를 제1 노드 박스에 저장하고 다른 하나를 제1 노드 박스 하위의 제2 노드 박스에 전달하여 저장할 수 있다.In step 150, when there is a pre-stored second point in the first node box, which is a search target for the first point, one of the first point and the second point closer to the center of the first node box is stored in the first node box. and the other may be transferred to and stored in the second node box under the first node box.

다시 말해 복수의 포인트 중 어느 하나인 제1 포인트가 저장될 노드 박스를 탐색하는 과정에서 그 탐색 대상이 되는 제1 노드 박스에 이미 탐색을 마치고 저장된 제2 포인트가 있을 경우, 제1 포인트와 제2 포인트를 비교하여 제1 노드 박스에 저장될 어느 한 포인트를 결정할 수 있다.In other words, in the process of searching for a node box in which a first point, which is one of a plurality of points, is to be stored, if there is a second point already searched and stored in the first node box to be searched, the first point and the second point are stored. A point to be stored in the first node box may be determined by comparing the points.

이 때 그 비교의 기준은 제1 노드 박스의 중심에 보다 가까운 정도이며, 예를 들어 제1 포인트가 제1 노드 박스의 중심에 보다 가깝다면 제1 포인트가 제2 포인트와 치환되어 제1 노드 박스에 저장되고 이 경우 제2 포인트는 제1 노드 박스의 하위 노드 박스, 즉 자식 노드 박스인 제2 노드 박스에 전달되어 저장될 수 있다.At this time, the comparison criterion is a degree closer to the center of the first node box. For example, if the first point is closer to the center of the first node box, the first point is replaced with the second point and the first node box In this case, the second point may be passed to and stored in a second node box that is a lower node box of the first node box, that is, a child node box.

여기서 제2 포인트가 전달되는 제2 노드 박스는 제1 노드 박스의 하위 노드 박스들 중에서 제2 포인트를 그 내부에 포함하는 노드 박스로 이해될 수 있다.Here, the second node box to which the second point is transmitted may be understood as a node box including the second point therein among lower node boxes of the first node box.

더 나아가 만약 제2 노드 박스에 제3 포인트가 이미 저장되어 있다면, 상술한 방식에 따라 다시 제2 포인트와 제3 포인트를 비교하여 제2 노드 박스에 저장될 포인트와 제2 노드 박스의 하위 노드 박스로 전달될 포인트를 결정할 수 있다.Furthermore, if the third point is already stored in the second node box, the second point and the third point are compared again according to the above method, and the point to be stored in the second node box and the lower node box of the second node box are compared. It is possible to determine the point to be transferred to .

이러한 단계가 수행됨에 따라, 각 노드 박스에 저장되는 포인트는 해당 공간에 대한 대표성을 갖출 수 있게 되고, 이에 따라 복수의 포인트 모두에 대한 탐색 및 노드 박스에의 저장을 마쳤을 때 각 계층을 이루는 노드 박스에 저장된 포인트들은 해당 분할 수준에서 대상물의 입체적 형상을 보다 잘 표현할 수 있게 된다.As these steps are performed, the points stored in each node box can be representative of the space, and accordingly, when all of the plurality of points are searched for and stored in the node box, the node boxes constituting each layer are completed. The points stored in can better express the three-dimensional shape of the object at the corresponding division level.

노드 박스는 기설정된 계층 내 노드 박스부터 포인트가 저장 가능하고, 포인트는 최상위의 노드 박스로부터 기설정된 계층 내 노드 박스에 도달하기 전까지 하위의 노드 박스로 전달될 수 있다.Node boxes can store points starting from node boxes in a preset hierarchy, and points can be transferred from the highest node box to lower node boxes before reaching node boxes in a preset hierarchy.

어느 정도의 분할이 이루어진 계층에 이르러서야 비로소 복수의 노드 박스에 저장된 포인트들을 통해 대상물의 표면이 가진 입체적 형상을 인식하는 것이 가능한 바, 포인트가 저장 가능한 계층이 미리 설정될 수 있다.It is only possible to recognize the three-dimensional shape of the surface of an object through the points stored in a plurality of node boxes only when a certain degree of division is reached, and a layer in which points can be stored can be set in advance.

이에 따라 임의의 어느 한 포인트에 대해 최상위의 노드 박스로부터 계층을 따라 가며 저장될 노드 박스를 탐색하되, 해당 포인트는 기설정된 계층까지는 노드 박스에 저장되지 아니하고 기설정된 계층의 노드 박스에 도달했을 때부터 저장될 수 있다.Accordingly, the node box to be stored is searched for any one point from the top node box along the hierarchy, but the point is not stored in the node box until the preset hierarchy, and when reaching the node box of the preset hierarchy can be stored

또한 여기서 기설정된 계층은 대상물을 표현하는 정도, 즉 해상도에 있어 기준으로서 마련될 수 있으며, 이하 이를 기준 해상도로 칭하도록 한다.In addition, the preset layer may be provided as a standard for the degree of representing an object, that is, the resolution, which will be referred to as a reference resolution hereinafter.

기설정된 계층 내 복수의 노드 박스에 저장되는 복수의 포인트를 하나의 데이터로 저장하는 단계(S160)가 더 포함될 수 있다.A step of storing a plurality of points stored in a plurality of node boxes in a predetermined layer as one data (S160) may be further included.

즉 기설정된 계층 내 복수의 노드 박스에 저장된 포인트들은 하나의 데이터로 저장됨에 따라 전술한 기준 해상도 데이터를 이룰 수 있다.That is, as points stored in a plurality of node boxes in a preset layer are stored as one data, the aforementioned reference resolution data may be achieved.

이에 따라 3D CAD 등을 포함하는 3차원 모델링 프로그램에서 포인트 클라우드의 최초 로딩(loading) 시에 상기 기준 해상도 데이터를 빠르게 불러옴으로써 포인트 클라우드 데이터를 모두 불러옴에 따라 발생되는 속도 저하 문제를 효과적으로 해결할 수 있다.Accordingly, by quickly loading the reference resolution data at the time of initial loading of the point cloud in a 3D modeling program including 3D CAD, etc., it is possible to effectively solve the problem of speed reduction caused by loading all the point cloud data. .

한편 여기서 기준 해상도 데이터는 포인트 클라우드를 구성하는 하나의 3차원상 데이터 레이어(layer)로 이해될 수 있을 것이다.Meanwhile, the reference resolution data may be understood as one 3-dimensional data layer constituting a point cloud.

기설정된 계층 하위의 각 복수의 계층 내 복수의 노드 박스에 저장되는 복수의 포인트를 하나의 데이터로 저장하는 단계(S165)가 더 포함될 수 있다.A step of storing a plurality of points stored in a plurality of node boxes in each of a plurality of layers below a predetermined layer as one data (S165) may be further included.

이 때 저장된 데이터 각각은 상술한 기준 해상도 데이터처럼 또다시 데이터 레이어를 형성하게 되며, 3차원 모델링 프로그램을 통해 각 레이어를 중첩적으로 불러옴으로써 기준 해상도로부터 보다 높은 해상도가 점층적으로 표현될 수 있게 된다.At this time, each of the stored data forms a data layer again like the above-mentioned reference resolution data, and by overlapping each layer through a 3D modeling program, a higher resolution from the reference resolution can be gradually expressed. do.

이에 따라 포인트 클라우드 전체가 로딩된 상태에서 해상도를 조절하는 것과 대비해 보다 빠른 속도로 사용자가 원하는 해상도가 출력되도록 할 수 있다.Accordingly, the resolution desired by the user can be output at a faster rate compared to adjusting the resolution while the entire point cloud is loaded.

한편, 최하위의 노드 박스에는 내부에 포함되는 복수의 포인트가 저장될 수 있다.Meanwhile, a plurality of points included in the node box at the lowest level may be stored.

이 경우 최하위의 노드 박스에 저장된 포인트까지 모두 로딩되는 경우 포인트 클라우드의 거의 모든 포인트가 개시되어 가장 높은 해상도가 도시될 수 있어야 하므로, 최하위의 노드 박스에는 그보다 상위의 노드 박스들과는 달리 내부에 포함되는 복수의 포인트가 저장될 수 있다.In this case, when all the points stored in the node box at the lowest level are loaded, almost all points of the point cloud must be disclosed and the highest resolution must be displayed. of points can be stored.

보다 구체적으로 최하위의 노드 박스는 복수의 분할 공간을 포함하고, 최하위의 노드 박스에는 분할 공간의 중심에 가장 가까운 포인트가 저장될 수 있다.More specifically, the lowest node box may include a plurality of divided spaces, and a point closest to the center of the divided space may be stored in the lowest node box.

레이저 스캐너를 통하여 획득되는 포인트 클라우드는 3D 모델링 프로그램에서 필요로 하는 수준 이상의 데이터들을 가지고 있을 수 있다.A point cloud obtained through a laser scanner may have data higher than a level required by a 3D modeling program.

이에 따라 최하위의 노드 박스에 그 내부에 포함되는 모든 포인트들을 모두 저장할 경우 데이터 저장 용량이 불필요하게 커지고 이러한 데이터들을 불러오는데 많은 시간이 소요될 수 있다.Accordingly, when all the points included therein are stored in the lowest node box, the data storage capacity is unnecessarily increased, and it may take a lot of time to load these data.

따라서 이러한 문제를 해결하기 위하여 최하위의 노드 박스를 복수의 분할 공간, 예를 들어 4, 8, 16개 등으로 세분화된 박스로 다시 분할하고(여기서의 분할은 전술한 바와 같이 노드 박스을 생성하기 위함이 아니다.) 각 분할 공간의 중심에 가까운 포인트들을 저장함으로써, 최하위의 노드 박스에 포함되는 포인트들에 대표성을 부여할 수 있음은 물론 불필요한 데이터를 필터링할 수 있는 효과를 얻을 수 있다.Therefore, in order to solve this problem, the lowest node box is further divided into a plurality of division spaces, for example, boxes subdivided into 4, 8, 16, etc. (division here is to create node boxes as described above) No.) By storing the points close to the center of each division space, it is possible to give representativeness to the points included in the lowest node box and filter out unnecessary data.

다른 한편, 기설정된 제1 계층 내 각각의 노드 박스에 연결된 복수의 계층을 제1 영역으로 설정하는 단계(S170), 제1 계층 하위의 제2 계층 내 각각의 노드 박스에 연결된 복수의 계층을 제2 영역으로 설정하는 단계(S172), 및 제2 계층 하위에 배치된 최하위의 계층 각각을 제3 영역으로 설정하는 단계(S174)가 더 포함될 수 있다.On the other hand, setting a plurality of layers connected to each node box in a predetermined first layer as a first area (S170), and a plurality of layers connected to each node box in a second layer below the first layer as a first area. A step of setting the second region (S172), and a step of setting each of the lowest layers disposed below the second layer as a third region (S174) may be further included.

옥트리의 측면에서, 포인트 클라우드 중 일부분을 확대하는 것은 옥트리에 포함되는 노드 박스 중 어느 하나를 선택적으로 로딩하는 것으로 볼 수 있다.In terms of the octree, enlarging a part of the point cloud can be regarded as selectively loading any one of the node boxes included in the octree.

또한 사용자가 확대하고자 선택한 공간이 복수의 노드 박스에 걸쳐 있는 경우에는 해당 복수의 노드 박스 또는 해당 복수의 노드 박스 중 선택한 공간을 이루는 부분만을 로딩할 수 있다.In addition, when the space selected by the user to expand spans a plurality of node boxes, only the plurality of node boxes or a portion constituting the selected space among the plurality of node boxes may be loaded.

이처럼 선택적으로 노드 박스의 데이터를 로딩함으로써 해당 노드 박스와 동일 계층을 이루는 다른 노드 박스들의 데이터를 로딩할 필요가 없어지므로, 부분 확대 시 데이터를 불러오는 속도가 현저히 향상될 수 있게 된다.By selectively loading data of a node box in this way, there is no need to load data of other node boxes that form the same layer as the corresponding node box, so that the speed of loading data when partially enlarged can be remarkably improved.

여기서 선택적으로 노드 박스의 데이터를 로딩하는 것은 해당 노드 박스를 최상위 노드 박스로 하는 세부 옥트리를 불러오는 것으로 이해될 수 있다.Here, selectively loading data of a node box can be understood as loading a detailed octree having the corresponding node box as a top-level node box.

따라서 이를 위해 선택된 어느 하나의 노드 박스와 연결된 하위 노드 박스들을 하나의 영역으로 설정할 수 있다.Therefore, lower node boxes connected to any one node box selected for this purpose can be set as one area.

또한 도 1에 도시된 바에 같이, 해당 영역은 상위 계층으로부터 하위 계층으로 가면서 제1, 제2, 제3 영역 등으로 설정될 수 있고, 최하위 계층에 포함되는 노드 박스, 즉 최하위의 노드 박스가 최종 영역으로 설정될 수 있다.In addition, as shown in FIG. 1, the corresponding area may be set as the first, second, and third areas from the upper layer to the lower layer, and the node box included in the lowest layer, that is, the node box of the lowest area can be set.

보다 구체적으로 제1 계층은 제1 계층 내 노드 박스의 크기 및 내부에 포함되는 포인트의 개수 중 적어도 어느 하나에 따라 설정될 수 있다.More specifically, the first layer may be set according to at least one of the size of a node box in the first layer and the number of points included therein.

기설정된 제1 계층의 노드 박스의 크기가 너무 크거나 노드 박스에 포함된 포인트의 수가 너무 많은 경우 저장 용량 및 연산 횟수가 증가하고 그 반대인 경우 영역 설정으로 인한 실효성이 감소될 수 있다.If the size of the node box of the preset first layer is too large or the number of points included in the node box is too large, the storage capacity and the number of calculations increase. In the opposite case, effectiveness due to region setting may decrease.

따라서 귀납적(歸納的) 튜닝(tunning) 등의 방법을 통해 제1 계층 내 노드 박스의 크기 및/또는 내부에 포함되는 포인트의 개수를 기준으로 제1 계층을 적절하게 설정할 수 있다.Accordingly, the first layer may be appropriately set based on the size of the node box in the first layer and/or the number of points included therein through a method such as inductive tuning.

다음으로, 본 발명의 다른 실시예에 따른 대용량 포인트 클라우드 데이터 처리 시스템(100)에 대해 설명한다.Next, a large-capacity point cloud data processing system 100 according to another embodiment of the present invention will be described.

본 발명의 다른 측면에 따르면, 대상물의 레이저 스캐닝을 통해 획득되고 대상물의 표면에 대한 좌표 데이터를 갖는 복수의 포인트를 포함하는 포인트 클라우드 데이터를 입력 받는 입력부(110), 포인트 클라우드를 포함하도록 바운딩 박스를 설정하는 바운딩 박스 설정부(120), 바운딩 박스를 재귀적으로 8분할하여 계층화된 복수의 노드 박스를 포함하는 옥트리를 생성하는 옥트리 생성부(130), 옥트리의 계층을 따라 포인트가 저장될 노드 박스를 복수의 포인트에 대해 탐색하는 탐색부(140), 및 제1 포인트에 대한 탐색 대상인 제1 노드 박스에 기저장된 제2 포인트가 있는 경우, 제1 포인트 및 제2 포인트 중 제1 노드 박스의 중심에 보다 가까운 어느 하나를 제1 노드 박스에 저장하고 다른 하나를 제1 노드 박스 하위의 제2 노드 박스에 전달하여 저장하는 포인트 저장부(150)를 포함하는 대용량 포인트 클라우드 데이터 처리 시스템(100)이 제공된다.According to another aspect of the present invention, an input unit 110 for receiving point cloud data including a plurality of points obtained through laser scanning of an object and having coordinate data on the surface of the object, and a bounding box to include the point cloud A bounding box setting unit 120 to set, an octree generator 130 to generate an octree including a plurality of layered node boxes by recursively dividing the bounding box into eight, and a node box where points are to be stored along the hierarchy of the octree. If there is a search unit 140 that searches for a plurality of points, and a second point pre-stored in the first node box that is a search target for the first point, the center of the first node box among the first point and the second point A large-capacity point cloud data processing system 100 including a point storage unit 150 that stores one closer to a first node box and transfers and stores the other one to a second node box under the first node box. Provided.

이와 같은 본 실시예에 따르면, 입력부(110)로 입력된 포인트 클라우드를 포함하도록 바운딩 박스 설정부(120)에 의해 설정된 바운딩 박스를 옥트리 생성부(130)를 통해 분할하여 생성한 옥트리의 노드 박스에 탐색부(140)와 포인트 저장부(150)가 포인트를 일정 기준에 따라 저장함으로써, 대용량의 포인트 클라우드가 효과적으로 정리되고 그 결과 해당 데이터를 효율적으로 활용하는 것이 가능해진다.According to this embodiment, the node box of the octree generated by dividing the bounding box set by the bounding box setting unit 120 to include the point cloud input through the input unit 110 through the octree generation unit 130 When the search unit 140 and the point storage unit 150 store points according to a predetermined criterion, a large-capacity point cloud is effectively organized, and as a result, it is possible to efficiently utilize the corresponding data.

이하 도 3을 참조하여 본 실시예에 따른 대용량 포인트 클라우드 데이터 처리 시스템(100)의 각 구성에 대하여 설명하도록 한다.Hereinafter, with reference to FIG. 3, each configuration of the large-capacity point cloud data processing system 100 according to the present embodiment will be described.

입력부(110)는 대상물의 레이저 스캐닝을 통해 획득되고 대상물의 표면에 대한 좌표 데이터를 갖는 복수의 포인트를 포함하는 포인트 클라우드 데이터를 입력 받을 수 있다.The input unit 110 may receive point cloud data obtained through laser scanning of the object and including a plurality of points having coordinate data on the surface of the object.

바운딩 박스 설정부(120)는 포인트 클라우드를 포함하도록 바운딩 박스를 설정할 수 있다.The bounding box setting unit 120 may set the bounding box to include the point cloud.

옥트리 생성부(130)는 바운딩 박스를 재귀적으로 8분할하여 계층화된 복수의 노드 박스를 포함하는 옥트리를 생성할 수 있다.The octree generator 130 may generate an octree including a plurality of layered node boxes by recursively dividing the bounding box into 8 parts.

보다 구체적으로 옥트리 생성부(130)는 분할된 노드 박스의 내부가 빈 공간인 경우 분할을 중지할 수 있다.More specifically, the octree generation unit 130 may stop the division when the inside of the divided node box is an empty space.

탐색부(140)는 옥트리의 계층을 따라 포인트가 저장될 노드 박스를 복수의 포인트에 대해 탐색할 수 있다.The search unit 140 may search a node box where a point is to be stored for a plurality of points along the hierarchy of the octree.

포인트 저장부(150)는 제1 포인트에 대한 탐색 대상인 제1 노드 박스에 기저장된 제2 포인트가 있는 경우, 제1 포인트 및 제2 포인트 중 제1 노드 박스의 중심에 보다 가까운 어느 하나를 제1 노드 박스에 저장하고 다른 하나를 제1 노드 박스 하위의 제2 노드 박스에 전달하여 저장할 수 있다.If there is a second point pre-stored in the first node box, which is a search target for the first point, the point storage unit 150 selects one of the first point and the second point closer to the center of the first node box as a first point. It can be stored in the node box and transferred to the second node box under the first node box for storage.

노드 박스는 기설정된 계층 내 노드 박스부터 포인트가 저장 가능하고, 포인트는 최상위의 노드 박스로부터 기설정된 계층 내 노드 박스에 도달하기 전까지 하위의 노드 박스로 전달될 수 있다.Node boxes can store points starting from node boxes in a preset hierarchy, and points can be transferred from the highest node box to lower node boxes before reaching node boxes in a preset hierarchy.

기설정된 계층 내 복수의 노드 박스에 저장되는 복수의 포인트를 하나의 데이터로 저장하는 데이터 저장부(160)가 더 포함될 수 있다.A data storage unit 160 for storing a plurality of points stored in a plurality of node boxes in a predetermined hierarchy as one data may be further included.

데이터 저장부(160)는 기설정된 계층 하위의 각 복수의 계층 내 복수의 노드 박스에 저장되는 복수의 포인트를 하나의 데이터로 저장할 수 있다.The data storage unit 160 may store a plurality of points stored in a plurality of node boxes in each of a plurality of layers under a predetermined layer as one data.

한편, 최하위의 노드 박스에는 내부에 포함되는 복수의 포인트가 저장될 수 있다.Meanwhile, a plurality of points included in the node box at the lowest level may be stored.

보다 구체적으로 최하위의 노드 박스는 복수의 분할 공간을 포함하고, 최하위의 노드 박스에는 분할 공간의 중심에 가장 가까운 포인트가 저장될 수 있다.More specifically, the lowest node box may include a plurality of divided spaces, and a point closest to the center of the divided space may be stored in the lowest node box.

다른 한편, 기설정된 제1 계층 내 각각의 노드 박스에 연결된 복수의 계층을 제1 영역으로 설정하고, 제1 계층 하위의 제2 계층 내 각각의 노드 박스에 연결된 복수의 계층을 제2 영역으로 설정하고, 및 제2 계층 하위에 배치된 최하위의 계층 각각을 제3 영역으로 설정하는 영역 설정부(170)가 더 포함될 수 있다.On the other hand, a plurality of layers connected to each node box in a predetermined first layer is set as a first area, and a plurality of layers connected to each node box in a second layer below the first layer is set as a second area. and a region setting unit 170 configured to set each of the lowest layers disposed below the second layer as a third region.

보다 구체적으로 제1 계층은 제1 계층 내 노드 박스의 크기 및 내부에 포함되는 포인트의 개수 중 적어도 어느 하나에 따라 설정될 수 있다.More specifically, the first layer may be set according to at least one of the size of a node box in the first layer and the number of points included therein.

상술한 시스템(100) 및 그 구성에 대한 구체적인 내용은 전술한 대용량 포인트 클라우드 데이터 처리 방법의 그것을 따를 수 있다.Details of the above-described system 100 and its configuration may follow those of the above-described large-capacity point cloud data processing method.

한편, 전술된 실시예의 구성 요소는 프로세스적인 관점에서 용이하게 파악될 수 있다. 즉 각각의 구성 요소는 각각의 프로세스로 파악될 수 있다. 또한 전술된 실시예의 프로세스는 장치의 구성 요소 관점에서 용이하게 파악될 수 있다.On the other hand, the components of the above-described embodiment can be easily grasped from a process point of view. That is, each component can be identified as each process. In addition, the process of the above-described embodiment can be easily grasped from the viewpoint of components of the device.

또한 앞서 설명한 기술적 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, the technical contents described above may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiments or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler. A hardware device may be configured to act as one or more software modules to perform the operations of the embodiments and vice versa.

이상, 본 발명의 일 실시예에 대하여 설명하였으나, 해당 기술 분야에서 통상의 지식을 가진 자라면 특허청구범위에 기재된 본 발명의 사상으로부터 벗어나지 않는 범위 내에서, 구성 요소의 부가, 변경, 삭제 또는 추가 등에 의해 본 발명을 다양하게 수정 및 변경시킬 수 있을 것이며, 이 또한 본 발명의 권리범위 내에 포함된다고 할 것이다.Although one embodiment of the present invention has been described above, those skilled in the art can add, change, delete, or add components within the scope not departing from the spirit of the present invention described in the claims. The present invention can be variously modified and changed by the like, and this will also be said to be included within the scope of the present invention.

100: 대용량 포인트 클라우드 데이터 처리 시스템
110: 입력부
120: 바운딩 박스 설정부
130: 옥트리 생성부
140: 탐색부
150: 포인트 저장부
160: 데이터 저장부
170: 영역 설정부
100: large-capacity point cloud data processing system
110: input unit
120: bounding box setting unit
130: octree generating unit
140: search unit
150: point storage unit
160: data storage unit
170: area setting unit

Claims (10)

대상물의 레이저 스캐닝을 통해 획득되고 상기 대상물의 표면에 대한 좌표 데이터를 갖는 복수의 포인트를 포함하는 포인트 클라우드(point cloud) 데이터를 입력 받는 단계;
상기 포인트 클라우드를 포함하도록 바운딩 박스(bounding box)를 설정하는 단계;
상기 바운딩 박스를 재귀적으로 8분할하여 계층화된 복수의 노드 박스를 포함하는 옥트리(octree)를 생성하는 단계;
상기 옥트리의 계층을 따라 상기 포인트가 저장될 상기 노드 박스를 상기 복수의 포인트에 대해 탐색하는 단계; 및
제1 포인트에 대한 탐색 대상인 제1 노드 박스에 기저장된 제2 포인트가 있는 경우, 상기 제1 포인트 및 상기 제2 포인트 중 상기 제1 노드 박스의 중심에 보다 가까운 어느 하나를 상기 제1 노드 박스에 저장하고 다른 하나를 상기 제1 노드 박스 하위의 제2 노드 박스에 전달하여 저장하는 단계를 포함하는 대용량 포인트 클라우드 데이터 처리 방법.
receiving point cloud data obtained through laser scanning of an object and including a plurality of points having coordinate data on the surface of the object;
setting a bounding box to include the point cloud;
generating an octree including a plurality of layered node boxes by recursively dividing the bounding box into 8 parts;
searching for the plurality of points in the node boxes in which the points are to be stored along the hierarchy of the octree; and
When there is a pre-stored second point in the first node box, which is a search target for the first point, select one of the first point and the second point closer to the center of the first node box as the first node box. A method for processing large-capacity point cloud data comprising the step of storing and transferring another one to a second node box under the first node box for storage.
제1항에 있어서,
상기 옥트리를 생성하는 단계는 분할된 상기 노드 박스의 내부가 빈 공간인 경우 분할을 중지하는, 대용량 포인트 클라우드 데이터 처리 방법.
According to claim 1,
In the step of generating the octree, the division is stopped when the inside of the divided node box is an empty space.
제1항에 있어서,
상기 노드 박스는 기설정된 계층 내 상기 노드 박스부터 상기 포인트가 저장 가능하고,
상기 포인트는 최상위의 상기 노드 박스로부터 상기 기설정된 계층 내 상기 노드 박스에 도달하기 전까지 하위의 상기 노드 박스로 전달되는, 대용량 포인트 클라우드 데이터 처리 방법.
According to claim 1,
The node box can store the point from the node box in a preset layer,
The method of processing large-capacity point cloud data, wherein the point is transferred from the node box at the highest level to the node box at the lower level until reaching the node box in the preset hierarchy.
제3항에 있어서,
상기 기설정된 계층 내 상기 복수의 노드 박스에 저장되는 상기 복수의 포인트를 하나의 데이터로 저장하는 단계를 더 포함하는 대용량 포인트 클라우드 데이터 처리 방법.
According to claim 3,
The method of processing large-capacity point cloud data further comprising storing the plurality of points stored in the plurality of node boxes in the predetermined hierarchy as one data.
제4항에 있어서,
상기 기설정된 계층 하위의 각 복수의 계층 내 상기 복수의 노드 박스에 저장되는 상기 복수의 포인트를 하나의 데이터로 저장하는 단계를 더 포함하는 대용량 포인트 클라우드 데이터 처리 방법.
According to claim 4,
The method of processing large-capacity point cloud data further comprising storing the plurality of points stored in the plurality of node boxes in each of the plurality of layers below the predetermined layer as one data.
제1항에 있어서,
기설정된 제1 계층 내 각각의 상기 노드 박스에 연결된 복수의 계층을 제1 영역으로 설정하는 단계;
상기 제1 계층 하위의 제2 계층 내 각각의 상기 노드 박스에 연결된 복수의 계층을 제2 영역으로 설정하는 단계; 및
상기 제2 계층 하위에 배치된 최하위의 계층 각각을 제3 영역으로 설정하는 단계를 더 포함하는 대용량 포인트 클라우드 데이터 처리 방법.
According to claim 1,
setting a plurality of layers connected to each of the node boxes in a predetermined first layer as a first area;
setting a plurality of layers connected to respective node boxes in a second layer below the first layer as a second area; and
The method of processing large-capacity point cloud data further comprising setting each of the lowest layers disposed below the second layer as a third area.
제6항에 있어서,
상기 제1 계층은 상기 제1 계층 내 상기 노드 박스의 크기 및 내부에 포함되는 포인트의 개수 중 적어도 어느 하나에 따라 설정되는, 대용량 포인트 클라우드 데이터 처리 방법.
According to claim 6,
The first layer is set according to at least one of the size of the node box in the first layer and the number of points included therein, large-capacity point cloud data processing method.
제1항에 있어서,
최하위의 상기 노드 박스에는 내부에 포함되는 복수의 상기 포인트가 저장되는, 대용량 포인트 클라우드 데이터 처리 방법.
According to claim 1,
The method of processing large-capacity point cloud data, wherein a plurality of points included therein are stored in the node box at the lowest level.
제8항에 있어서,
최하위의 상기 노드 박스는 복수의 분할 공간을 포함하고,
최하위의 상기 노드 박스에는 상기 분할 공간의 중심에 가장 가까운 포인트가 저장되는, 대용량 포인트 클라우드 데이터 처리 방법.
According to claim 8,
The node box at the lowest level includes a plurality of partition spaces,
The method of processing large-capacity point cloud data, wherein a point closest to the center of the divided space is stored in the node box at the lowest level.
대상물의 레이저 스캐닝을 통해 획득되고 상기 대상물의 표면에 대한 좌표 데이터를 갖는 복수의 포인트를 포함하는 포인트 클라우드 데이터를 입력 받는 입력부;
상기 포인트 클라우드를 포함하도록 바운딩 박스를 설정하는 바운딩 박스 설정부;
상기 바운딩 박스를 재귀적으로 8분할하여 계층화된 복수의 노드 박스를 포함하는 옥트리를 생성하는 옥트리 생성부;
상기 옥트리의 계층을 따라 상기 포인트가 저장될 상기 노드 박스를 상기 복수의 포인트에 대해 탐색하는 탐색부; 및
제1 포인트에 대한 탐색 대상인 제1 노드 박스에 기저장된 제2 포인트가 있는 경우, 상기 제1 포인트 및 상기 제2 포인트 중 상기 제1 노드 박스의 중심에 보다 가까운 어느 하나를 상기 제1 노드 박스에 저장하고 다른 하나를 상기 제1 노드 박스 하위의 제2 노드 박스에 전달하여 저장하는 포인트 저장부를 포함하는 대용량 포인트 클라우드 데이터 처리 시스템.
an input unit for receiving point cloud data obtained through laser scanning of an object and including a plurality of points having coordinate data on the surface of the object;
a bounding box setting unit configured to set a bounding box to include the point cloud;
an octree generating unit generating an octree including a plurality of layered node boxes by recursively dividing the bounding box into 8 parts;
a search unit searching for the plurality of points in the node box in which the point is to be stored along the hierarchy of the octree; and
When there is a pre-stored second point in the first node box, which is a search target for the first point, select one of the first point and the second point closer to the center of the first node box as the first node box. A large-capacity point cloud data processing system comprising a point storage unit for storing and transferring another one to a second node box under the first node box for storage.
KR1020230027944A 2020-12-02 2023-03-02 Method for processing massive point cloud data and system thereof KR20230035304A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020200166156 2020-12-02
KR20200166156 2020-12-02
KR1020210013902A KR102507352B1 (en) 2020-12-02 2021-02-01 Method for processing massive point cloud data and system thereof

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020210013902A Division KR102507352B1 (en) 2020-12-02 2021-02-01 Method for processing massive point cloud data and system thereof

Publications (1)

Publication Number Publication Date
KR20230035304A true KR20230035304A (en) 2023-03-13

Family

ID=81985927

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020210013902A KR102507352B1 (en) 2020-12-02 2021-02-01 Method for processing massive point cloud data and system thereof
KR1020230027944A KR20230035304A (en) 2020-12-02 2023-03-02 Method for processing massive point cloud data and system thereof

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020210013902A KR102507352B1 (en) 2020-12-02 2021-02-01 Method for processing massive point cloud data and system thereof

Country Status (1)

Country Link
KR (2) KR102507352B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102015388B1 (en) 2019-01-21 2019-08-28 주식회사 지공간솔루션 3D point cloud DB construction and virtual reality space map providing system and method of providing orthophotosimposing point cloud DB using UAV, ground-based LiDAR scanner

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101808958B1 (en) * 2016-09-22 2017-12-13 성균관대학교산학협력단 Method for obtaining shape information of structure and method for measuring deformation of structure
EP3429207A1 (en) * 2017-07-13 2019-01-16 Thomson Licensing A method and apparatus for encoding/decoding a colored point cloud representing the geometry and colors of a 3d object

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102015388B1 (en) 2019-01-21 2019-08-28 주식회사 지공간솔루션 3D point cloud DB construction and virtual reality space map providing system and method of providing orthophotosimposing point cloud DB using UAV, ground-based LiDAR scanner

Also Published As

Publication number Publication date
KR102507352B1 (en) 2023-03-07
KR20220077816A (en) 2022-06-09

Similar Documents

Publication Publication Date Title
US10497167B2 (en) Method and apparatus for generating acceleration structure
US8363049B2 (en) 3D image processing method and apparatus for enabling efficient retrieval of neighboring point
KR101697238B1 (en) Image processing apparatus and method
US20210358209A1 (en) Method and device for determining plurality of layers of bounding boxes, collision detection method and device, and motion control method and device
KR102604737B1 (en) METHOD AND APPARATUS for generating acceleration structure
JP4693454B2 (en) 3D shape comparison program and 3D similar shape search program
Zhao et al. Quality-guided phase unwrapping implementation: an improved indexed interwoven linked list
KR100903777B1 (en) Method and apparatus for ray tracing using adaptive multi-hierarchy kd-tree algorithm in 3d ray tracing system
Kouloughli et al. Multi-aisle AS/RS dimensions optimization for cycle time minimization
US6757883B1 (en) Estimating free space in IC chips
US10460506B2 (en) Method and apparatus for generating acceleration structure
JP2022075560A (en) Three-dimensional reconstruction of structure of real scene with open surface
US20130207967A1 (en) Image processing apparatus and method
KR102507352B1 (en) Method for processing massive point cloud data and system thereof
Meijers Simultaneous & topologically-safe line simplification for a variable-scale planar partition
CN109827585B (en) Method for rapidly filling concave area in grid map
US20220035737A1 (en) Storage apparatus, high dimensional gaussian filtering circuit, stereo depth calculation circuit, and information processing apparatus
KR102051903B1 (en) Apparatus and method for traversing hierarchical acceleration structure
US10331803B2 (en) Computer aided modeling
CN105353994A (en) Data storage method and device for three-dimensional structure and query method and device
KR102467031B1 (en) Method for generating and traverse acceleration structure
KR20080055327A (en) Apparatus and method for ray tracing using lookup table
JP5781045B2 (en) Object search apparatus and method
US20220012937A1 (en) Systems and methods for adaptive visual and temporal quality of time-dynamic (4d) volume rendering
CN106777131A (en) A kind of querying method of High dimensional space data, device and computer-readable medium

Legal Events

Date Code Title Description
A107 Divisional application of patent