KR20220077816A - 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
KR20220077816A
KR20220077816A KR1020210013902A KR20210013902A KR20220077816A KR 20220077816 A KR20220077816 A KR 20220077816A KR 1020210013902 A KR1020210013902 A KR 1020210013902A KR 20210013902 A KR20210013902 A KR 20210013902A KR 20220077816 A KR20220077816 A KR 20220077816A
Authority
KR
South Korea
Prior art keywords
node
box
point
node box
point cloud
Prior art date
Application number
KR1020210013902A
Other languages
Korean (ko)
Other versions
KR102507352B1 (en
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 KR20220077816A publication Critical patent/KR20220077816A/en
Priority to KR1020230027944A priority Critical patent/KR20230035304A/en
Application granted granted Critical
Publication of KR102507352B1 publication Critical patent/KR102507352B1/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

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

Description

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

본 발명은 대용량 포인트 클라우드 데이터 처리 방법 및 그 시스템에 관한 것이다.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, film, and the like.

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

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

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

본 발명은 대용량의 포인트 클라우드 데이터를 효율적으로 활용하기 위한 대용량 포인트 클라우드 데이터 처리 방법 및 그 시스템을 제공하는 것이다.An object of the present invention is to provide 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 an aspect of the present invention, the steps of receiving point cloud data including a plurality of points obtained through laser scanning of an object and having coordinate data for the surface of the object as input, 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, searching for a node box in which points are to be stored for a plurality of points along the hierarchy of the octree, and a first point If there is a pre-stored second point in the first node box that is the search target for There is provided a large-capacity point cloud data processing method including the step of transferring and storing the second node box under the node box.

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

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

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

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

기설정된 제1 계층 내 각각의 노드 박스에 연결된 복수의 계층을 제1 영역으로 설정하는 단계, 제1 계층 하위의 제2 계층 내 각각의 노드 박스에 연결된 복수의 계층을 제2 영역으로 설정하는 단계, 및 제2 계층 하위에 배치된 최하위의 계층 각각을 제3 영역으로 설정하는 단계가 더 포함될 수 있다.Setting a plurality of layers connected to each node box in a preset first layer as a first area, Setting a plurality of layers connected to each node box 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 the third region may be further included.

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

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

최하위의 노드 박스는 복수의 분할 공간을 포함하고, 최하위의 노드 박스에는 분할 공간의 중심에 가장 가까운 포인트가 저장될 수 있다.The lowest node box may include a plurality of partitioned spaces, and a point closest to the center of the partitioned 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 that receives 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, an input unit for receiving input, a bounding box to set a bounding box to include a point cloud A box setting unit, an octree generation unit generating an octree including a plurality of layered node boxes by recursively dividing a bounding box into 8, and a search for a plurality of points in a node box in which points are to be stored along the octree hierarchy If there is a second point pre-stored in the first node box that is the search target for the secondary and the first point, any 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 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 below the first node box is provided.

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

도 1은 본 발명의 일 실시예에 따른 대용량 포인트 클라우드 데이터 처리 방법을 나타낸 순서도.
도 2는 본 발명의 일 실시예에 따른 대용량 포인트 클라우드 데이터 처리 방법을 나타낸 모식도.
도 3은 본 발명의 다른 실시예에 따른 대용량 포인트 클라우드 데이터 처리 시스템을 나타낸 구성도.
1 is a flowchart illustrating a method for processing large-capacity point cloud data according to an embodiment of the present invention.
Figure 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 can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, 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 a related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted.

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

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

이하, 본 발명에 따른 대용량 포인트 클라우드 데이터 처리 방법 및 그 시스템(100)을 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, the large-capacity point cloud data processing method and the system 100 according to the present invention will be described in detail with reference to the accompanying drawings. and a redundant description 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 this embodiment, as shown in FIG. 1 , the step of receiving point cloud data including a plurality of points obtained through laser scanning of the object and having coordinate data for the surface of the object ( S110 ), the point cloud Setting the bounding box to include (S120), generating an octree including a plurality of layered node boxes by recursively dividing the bounding box into 8 (S130), a node in which points are stored along the hierarchy of the octree Searching for a box for a plurality of points ( S140 ), and if there is a second point previously stored in a 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 comprising a step (S150) of storing any one closer to the first node box and transferring the other one to the second node box below the first node box (S150).

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

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

단계110에서 대상물의 레이저 스캐닝을 통해 획득되고 대상물의 표면에 대한 좌표 데이터를 갖는 복수의 포인트를 포함하는 포인트 클라우드 데이터를 입력 받을 수 있다.In operation 110 , 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 may be input.

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

또한 레이저 스캐닝(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, then receives the laser reflected from the object and returns to the object. It can be understood as a process of obtaining data on the three-dimensional shape of the surface of a corresponding object by measuring a distance or the like.

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

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

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

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

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

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

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

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

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

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

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

단계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 hierarchy of the octree.

즉 옥트리에 포함된 복수의 노드 박스 각각에 저장될 포인트를 결정하기 위하여, 옥트리의 최상위 노드 박스로부터 계층을 따라 내려가면서 임의의 어느 한 포인트가 저장될 노드 박스를 탐색할 수 있다.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 stored may be searched while going down the hierarchy from the highest 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 is determined as a result of the search for any one of the plurality of points, the search for another point is performed again in a regressive method. can be made with

단계150에서 제1 포인트에 대한 탐색 대상인 제1 노드 박스에 기저장된 제2 포인트가 있는 경우, 제1 포인트 및 제2 포인트 중 제1 노드 박스의 중심에 보다 가까운 어느 하나를 제1 노드 박스에 저장하고 다른 하나를 제1 노드 박스 하위의 제2 노드 박스에 전달하여 저장할 수 있다.In step 150, if there is a pre-stored second point in the first node box that is the search target for the first point, any 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 transfer the other one to the second node box below the first node box and store it.

다시 말해 복수의 포인트 중 어느 하나인 제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 stored after the search has already been completed in the first node box that is the search target, the first point and the second point 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 노드 박스에 전달되어 저장될 수 있다.In this case, the criterion for comparison 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 , and in this case, the second point may be transferred to and stored in a lower node box of the first node box, that is, a second 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 having 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-described method, and the point to be stored in the second node box and the lower node box of the second node box can determine the point to be transferred to .

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

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

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

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

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

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

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

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

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

기설정된 계층 하위의 각 복수의 계층 내 복수의 노드 박스에 저장되는 복수의 포인트를 하나의 데이터로 저장하는 단계(S165)가 더 포함될 수 있다.The step of storing a plurality of points stored in a plurality of node boxes in each of a plurality of layers below a preset 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-described reference resolution data, and by overlapping each layer through a 3D modeling program, a higher resolution from the reference resolution can be expressed gradually. do.

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

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

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

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

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

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

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

다른 한편, 기설정된 제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 preset first layer as the first region (S170), creating a plurality of layers connected to each node box in a second layer below the first layer The step of setting the second area ( S172 ) and the step of setting each of the lowest layers disposed below the second layer as the third area ( S174 ) may be further included.

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

또한 사용자가 확대하고자 선택한 공간이 복수의 노드 박스에 걸쳐 있는 경우에는 해당 복수의 노드 박스 또는 해당 복수의 노드 박스 중 선택한 공간을 이루는 부분만을 로딩할 수 있다.In addition, when the space selected by the user to enlarge 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 the data of the node box in this way, there is no need to load the data of other node boxes forming the same layer as the node box, so that the speed of loading data during partial enlargement can be significantly improved.

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

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

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

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

기설정된 제1 계층의 노드 박스의 크기가 너무 크거나 노드 박스에 포함된 포인트의 수가 너무 많은 경우 저장 용량 및 연산 횟수가 증가하고 그 반대인 경우 영역 설정으로 인한 실효성이 감소될 수 있다.When the size of the preset node box of the 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 operations increase, and vice versa, the effectiveness due to setting the region 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, the input unit 110 for receiving the point cloud data including a plurality of points obtained through laser scanning of the object and having coordinate data for the surface of the object, the bounding box to include the point cloud The bounding box setting unit 120 to set, the octree generating unit 130 to generate an octree including a plurality of layered node boxes by recursively dividing the bounding box into 8, a node box in which points are stored along the octree hierarchy When there is a search unit 140 that searches for a plurality of points, and a second point pre-stored in a 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 any one closer to the first node box and transfers the other to the second node box lower than the first node box. provided

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

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

입력부(110)는 대상물의 레이저 스캐닝을 통해 획득되고 대상물의 표면에 대한 좌표 데이터를 갖는 복수의 포인트를 포함하는 포인트 클라우드 데이터를 입력 받을 수 있다.The input unit 110 may receive point cloud data including a plurality of points obtained through laser scanning of the object and having coordinate data for 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 recursively divide the bounding box into 8 to generate an octree including a plurality of layered node boxes.

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

탐색부(140)는 옥트리의 계층을 따라 포인트가 저장될 노드 박스를 복수의 포인트에 대해 탐색할 수 있다.The search unit 140 may search a node box in which 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 노드 박스에 전달하여 저장할 수 있다.When there is a second point pre-stored in the first node box that is the search target for the first point, the point storage unit 150 selects any one of the first point and the second point closer to the center of the first node box for the first time. It can be stored in the node box and transferred to the second node box below the first node box.

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

기설정된 계층 내 복수의 노드 박스에 저장되는 복수의 포인트를 하나의 데이터로 저장하는 데이터 저장부(160)가 더 포함될 수 있다.A data storage unit 160 that stores a plurality of points stored in a plurality of node boxes in a preset layer 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 below a preset layer as one data.

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

보다 구체적으로 최하위의 노드 박스는 복수의 분할 공간을 포함하고, 최하위의 노드 박스에는 분할 공간의 중심에 가장 가까운 포인트가 저장될 수 있다.More specifically, the lowest node box may include a plurality of partitioned spaces, and a point closest to the center of the partitioned 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 preset 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 for setting each of the lowest layers disposed below the second layer as the third region may be further included.

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

상술한 시스템(100) 및 그 구성에 대한 구체적인 내용은 전술한 대용량 포인트 클라우드 데이터 처리 방법의 그것을 따를 수 있다.The above-described system 100 and specific details of its configuration may follow that 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 understood from the point of view of the components of the apparatus.

또한 앞서 설명한 기술적 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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. The program instructions recorded on the medium may be specially designed and configured for the embodiments, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium 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 floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. A hardware device may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상, 본 발명의 일 실시예에 대하여 설명하였으나, 해당 기술 분야에서 통상의 지식을 가진 자라면 특허청구범위에 기재된 본 발명의 사상으로부터 벗어나지 않는 범위 내에서, 구성 요소의 부가, 변경, 삭제 또는 추가 등에 의해 본 발명을 다양하게 수정 및 변경시킬 수 있을 것이며, 이 또한 본 발명의 권리범위 내에 포함된다고 할 것이다.In the above, an embodiment of the present invention has been described, but those of ordinary skill in the art can add, change, delete or add components within the scope that does not depart from the spirit of the present invention described in the claims. It will be possible to variously modify and change the present invention by, etc., which will also 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 generation unit
140: search unit
150: point storage
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 including a plurality of points obtained through laser scanning of an object and having coordinate data for a 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;
searching the node box in which the point is to be stored for the plurality of points along the hierarchy of the octree; and
When there is a pre-stored second point in the first node box that is the search target for the first point, any one of the first point and the second point closer to the center of the first node box is added to the first node box. A method for processing large-capacity point cloud data, comprising the step of storing and transferring the other one to a second node box below the first node box for storage.
제1항에 있어서,
상기 옥트리를 생성하는 단계는 분할된 상기 노드 박스의 내부가 빈 공간인 경우 분할을 중지하는, 대용량 포인트 클라우드 데이터 처리 방법.
According to claim 1,
In the step of generating the octree, the partitioning is stopped when the inside of the divided node box is empty.
제1항에 있어서,
상기 노드 박스는 기설정된 계층 내 상기 노드 박스부터 상기 포인트가 저장 가능하고,
상기 포인트는 최상위의 상기 노드 박스로부터 상기 기설정된 계층 내 상기 노드 박스에 도달하기 전까지 하위의 상기 노드 박스로 전달되는, 대용량 포인트 클라우드 데이터 처리 방법.
According to claim 1,
The node box can store the points from the node box in a preset layer,
The point is transferred from the uppermost node box to the lower node box until reaching the node box in the preset layer.
제3항에 있어서,
상기 기설정된 계층 내 상기 복수의 노드 박스에 저장되는 상기 복수의 포인트를 하나의 데이터로 저장하는 단계를 더 포함하는 대용량 포인트 클라우드 데이터 처리 방법.
4. The method of claim 3,
The method further comprising the step of storing the plurality of points stored in the plurality of node boxes in the preset layer as one data.
제4항에 있어서,
상기 기설정된 계층 하위의 각 복수의 계층 내 상기 복수의 노드 박스에 저장되는 상기 복수의 포인트를 하나의 데이터로 저장하는 단계를 더 포함하는 대용량 포인트 클라우드 데이터 처리 방법.
5. The method of claim 4,
and storing the plurality of points stored in the plurality of node boxes in each of the plurality of layers below the preset 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 preset first layer as a first area;
setting a plurality of layers connected to each of the node boxes in a second layer below the first layer as a second area; and
Large-capacity point cloud data processing method further comprising the step of setting each of the lowest layer disposed below the second layer as a third area.
제6항에 있어서,
상기 제1 계층은 상기 제1 계층 내 상기 노드 박스의 크기 및 내부에 포함되는 포인트의 개수 중 적어도 어느 하나에 따라 설정되는, 대용량 포인트 클라우드 데이터 처리 방법.
7. The method of 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.
제1항에 있어서,
최하위의 상기 노드 박스에는 내부에 포함되는 복수의 상기 포인트가 저장되는, 대용량 포인트 클라우드 데이터 처리 방법.
According to claim 1,
A large-capacity point cloud data processing method in which a plurality of the points included therein are stored in the lowermost node box.
제8항에 있어서,
최하위의 상기 노드 박스는 복수의 분할 공간을 포함하고,
최하위의 상기 노드 박스에는 상기 분할 공간의 중심에 가장 가까운 포인트가 저장되는, 대용량 포인트 클라우드 데이터 처리 방법.
9. The method of claim 8,
The lowermost node box includes a plurality of partitioned spaces,
A point closest to the center of the divided space is stored in the node box at the lowest level, a large-capacity point cloud data processing method.
대상물의 레이저 스캐닝을 통해 획득되고 상기 대상물의 표면에 대한 좌표 데이터를 갖는 복수의 포인트를 포함하는 포인트 클라우드 데이터를 입력 받는 입력부;
상기 포인트 클라우드를 포함하도록 바운딩 박스를 설정하는 바운딩 박스 설정부;
상기 바운딩 박스를 재귀적으로 8분할하여 계층화된 복수의 노드 박스를 포함하는 옥트리를 생성하는 옥트리 생성부;
상기 옥트리의 계층을 따라 상기 포인트가 저장될 상기 노드 박스를 상기 복수의 포인트에 대해 탐색하는 탐색부; 및
제1 포인트에 대한 탐색 대상인 제1 노드 박스에 기저장된 제2 포인트가 있는 경우, 상기 제1 포인트 및 상기 제2 포인트 중 상기 제1 노드 박스의 중심에 보다 가까운 어느 하나를 상기 제1 노드 박스에 저장하고 다른 하나를 상기 제1 노드 박스 하위의 제2 노드 박스에 전달하여 저장하는 포인트 저장부를 포함하는 대용량 포인트 클라우드 데이터 처리 시스템.
an input unit for receiving point cloud data including a plurality of points obtained through laser scanning of an object and having coordinate data for a surface of the object;
a bounding box setting unit for setting a bounding box to include the point cloud;
an octree generating unit that recursively divides the bounding box into 8 to generate an octree including a plurality of layered node boxes;
a search unit that searches the node box in which the point is to be stored for the plurality of points along the octree hierarchy; and
When there is a pre-stored second point in the first node box that is the search target for the first point, any one of the first point and the second point closer to the center of the first node box is added to the first node box. A large-capacity point cloud data processing system comprising a point storage unit for storing and transferring the other one to a second node box lower than the first node box.
KR1020210013902A 2020-12-02 2021-02-01 Method for processing massive point cloud data and system thereof KR102507352B1 (en)

Priority Applications (1)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200166156 2020-12-02
KR20200166156 2020-12-02

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
KR20220077816A true KR20220077816A (en) 2022-06-09
KR102507352B1 KR102507352B1 (en) 2023-03-07

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 After (1)

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

Country Status (1)

Country Link
KR (2) KR102507352B1 (en)

Citations (3)

* 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
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
KR20200024219A (en) * 2017-07-13 2020-03-06 인터디지털 브이씨 홀딩스 인코포레이티드 Method and apparatus for encoding / decoding a colored point cloud representing the geometry and colors of a 3D object

Patent Citations (3)

* 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
KR20200024219A (en) * 2017-07-13 2020-03-06 인터디지털 브이씨 홀딩스 인코포레이티드 Method and apparatus for encoding / decoding a colored point cloud representing the geometry and colors of a 3D object
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
KR20230035304A (en) 2023-03-13

Similar Documents

Publication Publication Date Title
US11922574B2 (en) Method and device for determining plurality of layers of bounding boxes, collision detection method and device, and motion control method and device
US8090745B2 (en) K-nearest neighbor search method, k-nearest neighbor search program, and k-nearest neighbor search device
US10497167B2 (en) Method and apparatus for generating acceleration structure
KR101697238B1 (en) Image processing apparatus and method
US8363049B2 (en) 3D image processing method and apparatus for enabling efficient retrieval of neighboring point
EP3471945B1 (en) Serialising a representation of a three dimensional object
CN110597935A (en) Space analysis method and device
US11216599B2 (en) Method, apparatus and computer program for designing a corridor
KR100903777B1 (en) Method and apparatus for ray tracing using adaptive multi-hierarchy kd-tree algorithm in 3d ray tracing system
KR102507352B1 (en) Method for processing massive point cloud data and system thereof
CN109827585B (en) Method for rapidly filling concave area in grid map
AU2013399651B2 (en) Global grid building in reverse faulted areas by an optimized unfaulting method
KR102651125B1 (en) Method and apparatus for performing path rendering
KR102006283B1 (en) Dataset loading method in m-tree using fastmap
WO2020066148A1 (en) Storage device, high dimensional gaussian filtering circuit, stereo depth calculation circuit, and information processing apparatus
KR102051903B1 (en) Apparatus and method for traversing hierarchical acceleration structure
KR20110124834A (en) Apparatus and method for generating kd-tree using hardware
Nag et al. Post-placement residual-overlap removal with minimal movement
KR102467031B1 (en) Method for generating and traverse acceleration structure
KR101685999B1 (en) Distributed Storage Method For Mass TIN Data
JP6561993B2 (en) Data management system, data management device, data management method, and program
KR20080055327A (en) Apparatus and method for ray tracing using lookup table
KR20160058299A (en) Apparatus and method for slicing and contour building
CN117494587B (en) Spatial relationship management method of chip packaging structure, electronic equipment and storage medium
JP5781045B2 (en) Object search apparatus and method

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant