KR102125973B1 - Method for detecting and correcting error of mesh and apparatus for the same - Google Patents

Method for detecting and correcting error of mesh and apparatus for the same Download PDF

Info

Publication number
KR102125973B1
KR102125973B1 KR1020180084500A KR20180084500A KR102125973B1 KR 102125973 B1 KR102125973 B1 KR 102125973B1 KR 1020180084500 A KR1020180084500 A KR 1020180084500A KR 20180084500 A KR20180084500 A KR 20180084500A KR 102125973 B1 KR102125973 B1 KR 102125973B1
Authority
KR
South Korea
Prior art keywords
mesh
cluster
normal vector
unit
error
Prior art date
Application number
KR1020180084500A
Other languages
Korean (ko)
Other versions
KR20190026561A (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 한국전자통신연구원
Priority to US16/121,387 priority Critical patent/US10812113B2/en
Publication of KR20190026561A publication Critical patent/KR20190026561A/en
Application granted granted Critical
Publication of KR102125973B1 publication Critical patent/KR102125973B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/001Image restoration

Abstract

3D 메쉬 모델의 오류를 검출 및 보정하는 방법이 개시된다. 본 개시에 따른 메쉬 모델의 오류 검출 방법은 반모서리(halfedge) 정보에 기초한 적어도 하나의 메쉬단위를 확인하는 과정과, 상기 적어도 하나의 메쉬단위의 법선 벡터 정보를 기반으로, 상기 적어도 하나의 메쉬단위를 포함하는 적어도 하나의 클러스터를 설정하는 과정과, 상기 적어도 하나의 클러스터에 대한 뒤집힘 오류를 검출하는 과정과, 뒤집힘 오류가 검출된 상기 적어도 하나의 클러스터의 상기 적어도 하나의 메쉬단위를 보정하는 과정을 포함할 수 있다.A method for detecting and correcting errors in a 3D mesh model is disclosed. The error detection method of the mesh model according to the present disclosure is a process of identifying at least one mesh unit based on halfedge information, and based on the normal vector information of the at least one mesh unit, the at least one mesh unit A process of setting at least one cluster including, a process of detecting an inversion error for the at least one cluster, and a process of correcting the at least one mesh unit of the at least one cluster in which an inversion error is detected. It can contain.

Description

메쉬의 오류 검출 및 보정 방법 및 이를 수행하는 장치{METHOD FOR DETECTING AND CORRECTING ERROR OF MESH AND APPARATUS FOR THE SAME}METHOD FOR DETECTING AND CORRECTING ERROR OF MESH AND APPARATUS FOR THE SAME

본 개시는 3차원 데이터 처리 기술에 관한 것이며, 보다 구체적으로는 3차원 프린팅에 사용되는 3차원 데이터의 오류를 검출 및 보정하는 방법 및 장치에 대한 것이다.The present disclosure relates to a 3D data processing technology, and more particularly, to a method and apparatus for detecting and correcting errors in 3D data used for 3D printing.

화면 출력을 위해 구성된 3차원 데이터(이하, 3차원 디스플레이 데이터)는 객체를 화면 상에 출력하기 위한 것이므로, 객체의 외관을 표현하거나, 표시하는 것을 중심으로 개발되었다. 이에 따라, 3차원 디스플레이 데이터는 객체의 외형을 디스플레이 상에 효율적으로 정확하게 표현할 수 있도록 구성되어 있으며, 객체의 외관을 표현하는데 필수적이지 않은 정보를 포함하지 않도록 구성될 수 있다. Since 3D data (hereinafter referred to as 3D display data) configured for screen output is for outputting an object on a screen, it has been developed mainly to express or display the appearance of an object. Accordingly, the 3D display data is configured to efficiently and accurately represent the appearance of the object on the display, and may be configured not to include information that is not essential to express the appearance of the object.

예컨대, 3차원 디스플레이 데이터는 디스플레이의 해상도보다 상대적으로 작게 구비되는 미세한 홀을 표현하지 않도록 구성되거나, 객체의 두께와 관련된 정보를 포함하지 않을 수 있다.For example, the 3D display data may be configured not to represent minute holes provided relatively smaller than the resolution of the display, or may not include information related to the thickness of the object.

한편, 3차원 프린팅을 위해 구성된 3차원 데이터(이하, 3차원 프린팅 데이터)는 물리적으로 존재하는 객체를 형성하기 위한 것이므로, 메쉬 토폴로지 관점에서 3차원 디스플레이 데이터보다 상대적으로 엄격한 기준을 통과하도록 요구하고 있다. On the other hand, since the 3D data (hereinafter, 3D printing data) configured for 3D printing is for forming an object that exists physically, it is required to pass a relatively strict criterion than 3D display data in terms of mesh topology. .

특히, 3차원 프린팅 데이터는 객체의 두께와 관련된 정보가 필수적으로 요구된다. 이러한 객체의 두께는 메쉬 단위에 대한 법선 벡터(normal vector)를 이용하여 표현할 수 있으며, 3차원 프린팅 데이터는 메쉬 단위에 대한 법선 벡터정보를 포함하도록 구성될 수 있다.In particular, 3D printing data is essential to information related to the thickness of an object. The thickness of such an object may be expressed using a normal vector for mesh units, and the 3D printing data may be configured to include normal vector information for mesh units.

이러한 법선 벡터정보는 사용자에 의해 직접적으로 입력되거나, 미리 정해진 알고리즘을 기반으로 능동적으로 생성될 수 있는데, 이러한 3차원 프린팅 데이터에 법선 벡터정보를 입력 또는 생성하는 과정에서, 법선 벡터의 방향에 오류가 발생될 가능성이 존재한다.The normal vector information may be directly input by the user or may be actively generated based on a predetermined algorithm. In the process of inputting or generating normal vector information into the 3D printing data, an error in the direction of the normal vector may be generated. There is a possibility that it will happen.

본 개시의 기술적 과제는 3차원 프린팅 데이터에 포함된 메쉬 정보의 오류를 자동으로 검출 및 보정할 수 있는 방법 및 장치를 제공하는데 있다.An object of the present disclosure is to provide a method and apparatus capable of automatically detecting and correcting errors in mesh information included in 3D printing data.

본 개시의 다른 기술적 과제는 3차원 프린팅 데이터에 포함된 메쉬 정보와 법선 벡터정보를 기반으로 메쉬의 뒤집힘 오류를 자동으로 검출 및 보정할 수 있는 방법 및 장치를 제공하는데 있다.Another technical problem of the present disclosure is to provide a method and apparatus capable of automatically detecting and correcting a mesh flipping error based on mesh information and normal vector information included in 3D printing data.

본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present disclosure are not limited to the technical problems mentioned above, and other technical problems that are not mentioned will be clearly understood by those skilled in the art from the description below. Will be able to.

본 개시의 일 양상에 따르면 메쉬 모델의 오류 검출 방법이 제공될 수 있다. 상기 방법은 반모서리(halfedge) 정보에 기초한 적어도 하나의 메쉬단위를 확인하는 과정과, 상기 적어도 하나의 메쉬단위의 법선 벡터 정보를 기반으로, 상기 적어도 하나의 메쉬단위를 포함하는 적어도 하나의 클러스터를 설정하는 과정과, 상기 적어도 하나의 클러스터에 대한 뒤집힘 오류를 검출하는 과정과, 뒤집힘 오류가 검출된 상기 적어도 하나의 클러스터의 상기 적어도 하나의 메쉬단위를 보정하는 과정을 포함할 수 있다.According to an aspect of the present disclosure, an error detection method of a mesh model may be provided. The method includes identifying at least one mesh unit based on halfedge information and at least one cluster including the at least one mesh unit based on the normal vector information of the at least one mesh unit. It may include a setting process, detecting a flip error for the at least one cluster, and correcting the at least one mesh unit of the at least one cluster in which a flip error is detected.

본 개시의 다른 양상에 따르면 메쉬 모델의 오류 검출 장치가 제공될 수 있다. 상기 장치는 반모서리(halfedge) 정보에 기초한 적어도 하나의 메쉬단위를 확인하는 메쉬확인부와, 상기 적어도 하나의 메쉬단위의 법선 벡터 정보를 기반으로, 상기 적어도 하나의 메쉬단위를 포함하는 적어도 하나의 클러스터를 설정하는 클러스링 처리부와, 상기 적어도 하나의 클러스터에 대한 뒤집힘 오류를 검출하는 오류 검출부와, 뒤집힘 오류가 검출된 상기 적어도 하나의 클러스터의 상기 적어도 하나의 메쉬단위를 보정하는 오류 보정부를 포함할 수 있다.According to another aspect of the present disclosure, an error detection apparatus of a mesh model may be provided. The apparatus includes at least one mesh unit that identifies at least one mesh unit based on halfedge information, and at least one mesh unit that includes the at least one mesh unit based on the normal vector information of the at least one mesh unit. It includes a clustering processing unit for setting a cluster, an error detection unit for detecting a flip error for the at least one cluster, and an error correction unit for correcting the at least one mesh unit of the at least one cluster in which a flip error was detected. Can.

본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.The features briefly summarized above with respect to the present disclosure are merely illustrative aspects of the detailed description of the present disclosure described below, and do not limit the scope of the present disclosure.

본 개시에 따르면, 3차원 프린팅 데이터에 포함된 메쉬 정보의 오류를 자동으로 검출 및 보정할 수 있는 방법 및 장치가 제공될 수 있다.According to the present disclosure, a method and apparatus for automatically detecting and correcting errors in mesh information included in 3D printing data may be provided.

또한, 본 개시에 따르면, 3차원 프린팅 데이터에 포함된 메쉬 정보와 법선 벡터정보를 기반으로 메쉬의 뒤집힘 오류를 자동으로 검출 및 보정할 수 있는 방법 및 장치가 제공될 수 있다.In addition, according to the present disclosure, a method and apparatus for automatically detecting and correcting a mesh flipping error based on mesh information and normal vector information included in 3D printing data may be provided.

또한, 본 개시에 따르면, 메쉬의 뒤집힘 오류를 자동으로 검출 및 보정함으로써, 정확한 3차원 프린팅 데이터를 구성하고 이를 기반으로 완성도 높은 3차원 프린딩 객체를 생성할 수 있다. In addition, according to the present disclosure, by automatically detecting and correcting an inversion error of the mesh, it is possible to construct accurate 3D printing data and generate a highly complete 3D printing object based on this.

본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present disclosure are not limited to the above-mentioned effects, and other effects not mentioned may be clearly understood by those skilled in the art from the following description. will be.

도 1은 본 개시의 일 실시예에 따른 메쉬 모델의 오류 검출 장치를 예시하는 블록도이다.
도 2a 및 도 2b는 본 개시의 일 실시예에 따른 메쉬 모델의 오류 검출 장치에서 처리되는 메시 구조를 예시하는 도면이다.
도 3은 본 개시의 일 실시예에 따른 메쉬 모델의 오류 검출 장치에서 처리되는 클러스터 구조를 예시하는 도면이다.
도 4는 본 개시의 일 실시예에 따른 메쉬 모델의 오류 검출 장치에 의해 메쉬의 오류를 정정하는 동작을 예시하는 도면이다.
도 5는 본 개시의 일 실시예에 따른 메쉬 모델의 오류 검출 방법의 순서를 예시하는 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 메쉬 모델의 오류 검출 방법 및 장치를 실행하는 컴퓨팅 시스템을 예시하는 블록도이다.
1 is a block diagram illustrating an apparatus for detecting errors in a mesh model according to an embodiment of the present disclosure.
2A and 2B are diagrams illustrating a mesh structure processed by the apparatus for detecting errors in a mesh model according to an embodiment of the present disclosure.
3 is a diagram illustrating a cluster structure processed by an error detection device of a mesh model according to an embodiment of the present disclosure.
4 is a diagram illustrating an operation of correcting an error of a mesh by an error detection device of a mesh model according to an embodiment of the present disclosure.
5 is a flowchart illustrating a sequence of an error detection method of a mesh model according to an embodiment of the present disclosure.
6 is a block diagram illustrating a computing system executing a method and apparatus for detecting errors in a mesh model according to an embodiment of the present disclosure.

이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings so that those skilled in the art to which the present disclosure pertains can easily carry out the embodiments. However, the present disclosure can be implemented in many different forms and is not limited to the embodiments described herein.

본 개시의 실시 예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.In describing embodiments of the present disclosure, when it is determined that detailed descriptions of known configurations or functions may obscure the subject matter of the present disclosure, detailed descriptions thereof will be omitted. In the drawings, parts irrelevant to the description of the present disclosure are omitted, and similar reference numerals are used for similar parts.

본 개시에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결관계뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다.In the present disclosure, when a component is said to be "connected", "coupled" or "connected" with another component, this is not only a direct connection relationship, but also an indirect connection relationship in which another component exists in the middle. It may also include. Also, when a component is said to "include" or "have" another component, this means that other components may be further included, not specifically excluded, unless otherwise stated. .

본 개시에 있어서, 음성 파라미터, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 개시의 범위 내에서 일 실시 예에서의 음성 파라미터 구성요소는 다른 실시 예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 일 실시 예에서의 제2 구성요소를 다른 실시 예에서 음성 파라미터 구성요소라고 칭할 수도 있다. In the present disclosure, terms such as a voice parameter, a second, etc. are used only for the purpose of distinguishing one component from other components, and do not limit the order or importance of components, etc., unless otherwise specified. Accordingly, within the scope of the present disclosure, the voice parameter component in one embodiment may be referred to as a second component in another embodiment, and similarly, the second component in one embodiment is a voice parameter component in another embodiment It can also be called.

본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시 예도 본 개시의 범위에 포함된다. In the present disclosure, the components that are distinguished from each other are for clarifying each feature, and the components are not necessarily separated. That is, a plurality of components may be integrated to be composed of one hardware or software unit, or one component may be distributed to be composed of a plurality of hardware or software units. Accordingly, such integrated or distributed embodiments are included in the scope of the present disclosure, unless otherwise stated.

본 개시에 있어서, 다양한 실시 예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들은 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시 예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시 예도 본 개시의 범위에 포함된다. 또한, 다양한 실시 예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시 예도 본 개시의 범위에 포함된다. In the present disclosure, components described in various embodiments are not necessarily essential components, and some may be optional components. Accordingly, an embodiment consisting of a subset of components described in one embodiment is also included in the scope of the present disclosure. In addition, embodiments including other elements in addition to the elements described in various embodiments are also included in the scope of the present disclosure.

이하, 첨부한 도면을 참조하여 본 개시의 실시 예들에 대해서 설명한다.Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings.

도 1은 본 개시의 일 실시예에 따른 메쉬 모델의 오류 검출 장치를 예시하는 블록도이다.1 is a block diagram illustrating an apparatus for detecting errors in a mesh model according to an embodiment of the present disclosure.

도 1을 참조하면, 본 개시의 일 실시예에 따른 메쉬 모델의 오류 검출 장치(10)는 메쉬 확인부(11)와, 클러스링 처리부(13)와, 오류 검출부(15)와, 오류 보정부(17)를 포함할 수 있다.Referring to FIG. 1, the mesh model error detection apparatus 10 according to an embodiment of the present disclosure includes a mesh confirmation unit 11, a clustering processing unit 13, an error detection unit 15, and an error correction unit (17).

메쉬 확인부(11)는 3차원 폴리곤 메쉬(polygon mesh) 정보를 확인할 수 있다. 3차원 폴리곤 메쉬 정보는, 3차원 객체의 프린팅에 이용되는 데이터 파일을 포함할 수 있으며, 나아가, 반모서리(Halfedge) 데이터 구조로 이루어진 데이터 파일을 포함할 수 있다.The mesh identification unit 11 may check 3D polygon mesh information. The 3D polygon mesh information may include a data file used for printing a 3D object, and may further include a data file composed of a halfedge data structure.

3차원 데이터 구조에서는, 복수개(예, 3개)의 꼭지점(Vertex)을 연결하는 모서리(edge)가 형성하는 페이스(face) 또는 메쉬(mesh)를 구성할 수 있으며, 적어도 하나의 페이스를 조합하여 폴리곤(polygon)을 구성할 수 있다. 나아가, 복수개의 꼭지점(Vertex)과 모서리(edge)를 통해 형성된 메쉬(mesh)를 반모서리(Halfedge)를 사용하여 표현한 반모서리(Halfedge) 데이터 구조로 표현할 수 있다.In the three-dimensional data structure, a face or a mesh formed by an edge connecting a plurality of (eg, three) vertices may be formed, and at least one face may be combined to Polygons can be constructed. Furthermore, a mesh formed through a plurality of vertices and edges can be expressed as a halfedge data structure expressed using a halfedge.

예컨대, 도 2a에 예시되는 바와 같이, 반모서리(Halfedge) 데이터 구조를 기반으로, 소정의 객체(200)에 대하여 꼭지점(V1, V2, ...Vn), 폴리곤(P1, P2, ...Pn), 메쉬(M1, M2, ...Mn), 및 반모서리(H1, H2, ...Hn)를 포함하는 구조로 나타낼 수 있다. 이에 기초하여, 메쉬 확인부(11)는 꼭지점(V1, V2, ...Vn), 폴리곤(P1, P2, ...Pn), 메쉬(M1, M2, ...Mn), 및 반모서리(H1, H2, ...Hn)를 각각 나타내는 정보, 즉, 꼭지점 정보, 폴리곤 정보, 메쉬 정보, 및 반모서리 정보를 포함하는 3차원 폴리곤 메쉬 정보를 확인할 수 있다.For example, as illustrated in FIG. 2A, based on a halfedge data structure, vertices (V1, V2, ... Vn), polygons (P1, P2, ...) for a given object 200 Pn), mesh (M1, M2, ... Mn), and can be represented by a structure including a half edge (H1, H2, ... Hn). Based on this, the mesh identification unit 11 includes vertices V1, V2, ... Vn, polygons P1, P2, ...Pn, meshes M1, M2, ...Mn, and half corners. Information indicating each of (H1, H2, ...Hn), that is, three-dimensional polygon mesh information including vertex information, polygon information, mesh information, and half-edge information can be confirmed.

나아가, 각각의 메쉬는 방향성을 나타낼 수 있으며, 메쉬의 방향성은 법선벡터를 사용하여 표현할 수 있다. 이에 따라, 각 메쉬의 법선벡터를 기준으로, 해당 메쉬의 반모서리(H1, H2, ...Hn)가 결정될 수 있다. Furthermore, each mesh may indicate directionality, and the directionality of the mesh may be expressed using a normal vector. Accordingly, the half edges (H1, H2, ... Hn) of the corresponding mesh may be determined based on the normal vector of each mesh.

예컨대, 도 2a에서와 같이, 제1메쉬(M1)가 제1방향(211)의 방향성을 구비할 경우, 제2꼭지점(V2)으로부터 제1꼭지점(V1)으로 향하는 제1반모서리(H1)가 존재할 수 있다. 그리고, 제1메쉬(M1)에 이웃한 제2메쉬(M2)가 제1방향(211)과 유사하게 제2방향(212)의 방향성을 구비할 경우, 제1꼭지점(V1)으로부터 제2꼭지점(V2)으로 향하는 제2반모서리(H2)가 존재할 수 있다. For example, as in FIG. 2A, when the first mesh M1 has the directionality of the first direction 211, the first half edge H1 from the second vertex V2 to the first vertex V1. Can exist. In addition, when the second mesh M2 adjacent to the first mesh M1 has directionality in the second direction 212 similar to the first direction 211, the second vertex point from the first vertex V1 There may be a second half edge (H2) directed to (V2).

반면, 도 2b에서와 같이, 제1메쉬(M1)의 제1반모서리(H1)는 전술한 바와 동일하게 제2꼭지점(V2)으로부터 제1꼭지점(V1)으로 향하는 반모서리로 구성될 수 있다. 그리고, 제1메쉬(M1)에 이웃한 제2'메쉬(M2')가 제1방향(211)과 반대되는 제3방향(213)의 방향성을 구비할 경우, 제2'반모서리(H2')는 제2꼭지점(V2)으로부터 제1꼭지점(V1)으로 향하는 반모서리로 구성될 수 있다. On the other hand, as shown in FIG. 2B, the first half edge H1 of the first mesh M1 may be configured as a half edge from the second vertex V2 to the first vertex V1 as described above. . In addition, when the second'mesh M2' adjacent to the first mesh M1 has directionality in the third direction 213 opposite to the first direction 211, the second' half edge H2' ) May be composed of a half edge from the second vertex (V2) to the first vertex (V1).

클러스링 처리부(13)는 전술한 반모서리 구조를 고려하여, 적어도 하나의 메쉬 단위에 대한 클러스터링을 수행할 수 있다. 예를 들어, 클러스링 처리부(13)는 각 메쉬 단위에 대한 법선 벡터 정보를 확인하고, 적어도 하나의 메쉬를 포함하는 클러스터를 설정할 수 있다. The clustering processing unit 13 may perform clustering on at least one mesh unit in consideration of the above-described half-edge structure. For example, the clustering processing unit 13 may check normal vector information for each mesh unit and set a cluster including at least one mesh.

나아가, 클러스링 처리부(13)는 단계적으로 클러스터링을 수행할 수 있다. 즉, 클러스링 처리부(13)는 일차적으로 적어도 하나의 메쉬를 포함하는 초기 클러스터를 구성하고, 다시 적어도 하나의 초기 클러스터를 포함하는 최종 클러스터를 구성할 수 있다.Furthermore, the clustering processing unit 13 may perform clustering step by step. That is, the clustering processing unit 13 may primarily constitute an initial cluster including at least one mesh, and again constitute a final cluster including at least one initial cluster.

구체적으로, 클러스링 처리부(13)는 상기 적어도 하나의 메쉬에 대한 반모서리(halfedge) 정보를 기반으로, 상기 적어도 하나의 메쉬의 연결 여부를 확인한다. 그리고, 클러스링 처리부(13)는 상기 적어도 하나의 메쉬의 연결 여부를 반영하여, 적어도 하나의 초기 클러스터를 구성할 수 있다.Specifically, the clustering processing unit 13 checks whether the at least one mesh is connected, based on halfedge information for the at least one mesh. In addition, the clustering processing unit 13 may configure at least one initial cluster by reflecting whether the at least one mesh is connected.

예컨대, 전술한 도 2a 및 도 2b를 참조하면, 제1메쉬(M1)에 이웃한 제2메쉬(M2)가 동일한 방향성을 나타낼 경우, 메쉬에 공통적으로 사용되는 모서리는 각각 서로 다른 방향으로 향하는 반모서리로 나타날 수 있으며, 해당 반모서리, 즉, 제1반모서리(H1)와 제2반모서리(H2)는 하나의 쌍으로 분류될 수 있다. 반면, 제1메쉬(M1)에 이웃한 제2'메쉬(M2')가 서로 반대되는 방향성을 나타낼 경우, 두 메쉬에 공통적으로 사용되는 모서리는 서로 동일한 방향으로 향하는 반모서리로 나타날 수 있으며, 해당 반모서리, 즉, 제1반모서리(H1)와 제2'반모서리(H2')는 하나의 쌍으로 분류되지 않는다.For example, referring to FIGS. 2A and 2B described above, when the second mesh M2 adjacent to the first mesh M1 exhibits the same directionality, the edges commonly used for the meshes are respectively oriented in different directions. They may appear as corners, and the corresponding half corners, that is, the first half corner H1 and the second half corner H2 may be classified as a pair. On the other hand, when the second'mesh (M2') adjacent to the first mesh (M1) exhibits opposite directionality, the corners commonly used for the two meshes may appear as half edges pointing in the same direction to each other. The semi-edges, that is, the first half-edge H1 and the second'half-edge H2' are not classified as a pair.

이에 기초하여, 클러스링 처리부(13)는 하나의 쌍으로 분류되는 반모서리를 구비하는 적어도 하나의 메쉬를 조합하여 초기 클러스터를 구성할 수 있다.Based on this, the clustering processing unit 13 may configure an initial cluster by combining at least one mesh having half edges classified into one pair.

그리고, 클러스링 처리부(13)는 초기 클러스터 또는 초기 클러스터에 구비된 메쉬의 법선 벡터를 확인하고, 확인된 법선 벡터를 고려하여, 초기 클러스터를 병합 또는 구분하여 최종 클러스터를 구성할 수 있다.In addition, the clustering processing unit 13 may configure an initial cluster or a final vector by merging or dividing the initial cluster in consideration of the normal vector of the mesh provided in the initial cluster.

예컨대, 도 3에 예시되는 바와 같이, 복수의 초기 클러스터(310, 320, 330, ...)가 존재하며, 각 초기 클러스터(310, 320, 330, ...)에 각각 복수의 메쉬가 구비되는 것을 예시한다. 그리고, 제1초기 클러스터(310)는 제2초기 클러스터(320)와 이웃하도록 구비되며, 제1초기 클러스터(310)와 제2초기 클러스터(320)가 접하는 영역을 경계영역(351)으로 예시한다. 이를 고려하여, 클러스링 처리부(13)는 제1초기 클러스터(310)에 구비된 복수의 메쉬 중 경계영역(351)에 접하는 적어도 하나의 메쉬(310a, 310b, 310c, 310d)와, 제2초기 클러스터(320)에 구비된 복수의 메쉬 중 경계영역(351)에 접하는 적어도 하나의 메쉬(320a, 320b, 320c, 320d, 320e, 320f)를 확인할 수 있다. 그리고, 클러스링 처리부(13)는 제1초기 클러스터(310)에 구비된 메쉬(310a, 310b, 310c, 310d)에 대한 법섭 벡터의 평균값(이하, '제1평균값' 이라함)과, 제2초기 클러스터(320)에 구비된 메쉬(320a, 320b, 320c, 320d, 320e, 320f)에 대한 법섭 벡터의 평균값(이하, '제2평균값' 이라함)을 확인하고, 이들(제1평균값 및 제2평균값) 사이의 각도를 확인할 수 있다. For example, as illustrated in FIG. 3, a plurality of initial clusters 310, 320, 330, ... are present, and each initial cluster 310, 320, 330, ... is provided with a plurality of meshes, respectively. Illustrate what works. In addition, the first initial cluster 310 is provided to be adjacent to the second initial cluster 320 and exemplifies an area where the first initial cluster 310 and the second initial cluster 320 contact as the boundary region 351. . In consideration of this, the clustering processing unit 13 includes at least one mesh 310a, 310b, 310c, 310d contacting the boundary region 351 among the plurality of meshes provided in the first initial cluster 310, and the second initial stage. Among the plurality of meshes provided in the cluster 320, at least one mesh 320a, 320b, 320c, 320d, 320e, 320f contacting the boundary area 351 may be identified. In addition, the clustering processing unit 13 has an average value (hereinafter, referred to as a “first average value”) of the law vector for the meshes 310a, 310b, 310c, and 310d provided in the first initial cluster 310, and the second. The average values (hereinafter referred to as'second average values') of the legal vectors for the meshes 320a, 320b, 320c, 320d, 320e, and 320f provided in the initial cluster 320 are checked, and these (first average values and first 2 average value).

클러스링 처리부(13)는 확인된 각도를 미리 정해진 기준값과 비교하여, 제1초기 클러스터(310)와 제2초기 클러스터(320)를 병합하여 최종 클러스터를 구성할 것인지, 또는 초기 클러스터(310)와 제2초기 클러스터(320)를 구분하여 최종 클러스터를 구성할 것인지를 결정할 수 있다.The clustering processing unit 13 compares the identified angle with a predetermined reference value, and configures the final cluster by merging the first initial cluster 310 and the second initial cluster 320, or the initial cluster 310 and The second initial cluster 320 may be divided to determine whether to form a final cluster.

나아가, 미리 정해진 기준값은 초기 클러스터에 구비되는 메쉬의 법선 벡터의 분포에 기초하여 설정될 수 있다. 미리 정해진 기준값은, 유사한 법선 벡터의 메쉬를 구비하는 초기 클러스터를 동일한 클러스터로 설정하기 위한 것이므로, 인접한 초기 클러스터를 하나의 최종 클러스터로 병합하는데 기준이되는 값일 수 있다. 이러한 미리 정해진 기준값은 동일한 클러스터에 구비된 적어도 하나의 메쉬의 법선 벡터가 이루는 각의 최소값 또는 최대값을 사용하여 설정될 수 있다. 다른 예로서, 미리 정해진 기준값은 동일한 클러스터에 구비된 적어도 하나의 메쉬의 법선 벡터가 이루는 각의 평균값과 표준분포에 기초하여 설정될 수 있다.Furthermore, the predetermined reference value may be set based on the distribution of the normal vector of the mesh provided in the initial cluster. Since the predetermined reference value is for setting an initial cluster having a mesh of similar normal vectors to the same cluster, it may be a value that becomes a reference for merging adjacent initial clusters into one final cluster. The predetermined reference value may be set using a minimum value or a maximum value of angles formed by a normal vector of at least one mesh provided in the same cluster. As another example, the predetermined reference value may be set based on an average value and a standard distribution of angles formed by a normal vector of at least one mesh provided in the same cluster.

한편, 전술한 바와 같이 클러스링 처리부(13)에 의해 클러스터가 설정되면, 오류 검출부(15)는 설정된 클러스터 단위에 대한 오류 여부를 확인할 수 있다. On the other hand, when the cluster is set by the clustering processing unit 13 as described above, the error detection unit 15 may check whether or not an error occurs for the set cluster unit.

예컨대, 오류 검출부(15)는 최종 클러스터에 포함된 적어도 하나의 메쉬의 법선 벡터를 확인하고, 확인된 적어도 하나의 메쉬의 법선 벡터를 사용하여 오류 여부를 확인할 수 있다. 구체적으로, 오류 검출부(15)는 최종 클러스터에 포함된 메쉬 중, 기준이되는 메쉬(이하, '기준 메쉬'라 함)를 선택하고, 선택된 기준 메쉬의 법선 벡터가 접하는 메쉬의 개수를 기반으로 최종 클러스터 단위에 대한 오류 여부를 확인할 수 있다. 즉, 기준 메쉬의 법선 벡터를 연장하고, 연장된 선이 접하는 메쉬의 개수가 0 또는 짝수(2n)일 경우, 오류 검출부(15)는 해당 최종 클러스터를 정상적인 방향인 것으로 결정한다. 반면, 기준 메쉬의 법선 벡터로부터 연장된 선이 접하는 메쉬의 개수가 홀수(2n + 1)일 경우, 오류 검출부(15)는 해당 최종 클러스터를 오류가 존재하는 것으로 결정할 수 있다. For example, the error detector 15 may check the normal vector of at least one mesh included in the final cluster, and check whether there is an error using the identified normal vector of the at least one mesh. Specifically, the error detection unit 15 selects a reference mesh (hereinafter referred to as a'reference mesh') from among the meshes included in the final cluster, and finalizes it based on the number of meshes contacted by the normal vector of the selected reference mesh. It is possible to check whether the cluster unit is in error. That is, when the normal vector of the reference mesh is extended and the number of meshes that the extended line touches is 0 or even (2n), the error detection unit 15 determines that the final cluster is in the normal direction. On the other hand, if the number of meshes in contact with the line extending from the normal vector of the reference mesh is odd (2n + 1), the error detection unit 15 may determine that the final cluster is an error.

나아가, 오류 검출부(15)는 최종 클러스터의 중앙영역에 가장 근접한 메쉬를 기준 메쉬로 결정할 수 있다. 다른 예로서, 오류 검출부(15)는 최종 클러스터에 포함된 모든 메쉬의 법선 벡터의 평균값을 산출하고, 산출된 법선 벡터의 평균값과 가장 근접한 법선 벡터를 구비하는 메쉬를 기준 메쉬로 결정할 수도 있다.Furthermore, the error detection unit 15 may determine the mesh closest to the central region of the final cluster as a reference mesh. As another example, the error detection unit 15 may calculate the average value of the normal vectors of all the meshes included in the final cluster, and determine a mesh having the normal vector closest to the average value of the calculated normal vectors as the reference mesh.

추가적으로, 초기 클러스터는 복수개가 존재할 수 있으며, 클러스링 처리부(13)는 복수개의 초기 클러스터를 병합 또는 구분하여 최종 클러스터를 구성할 수 있다. 바람직하게, 클러스링 처리부(13)는 초기 클러스터에 구비된 메쉬의 개수를 기준으로 복수개의 초기 클러스터를 오름차순으로 정렬하는 동작을 더 수행할 수 있다. 그리고, 클러스링 처리부(13)는 오름차순으로 정렬된 복수개의 초기 클러스터에 대해 순차적으로 최종 클러스터를 결정할 수 있다.Additionally, a plurality of initial clusters may exist, and the clustering processing unit 13 may configure a final cluster by merging or dividing the plurality of initial clusters. Preferably, the clustering processor 13 may further perform an operation of sorting a plurality of initial clusters in ascending order based on the number of meshes provided in the initial cluster. In addition, the clustering processing unit 13 may sequentially determine the final clusters for a plurality of initial clusters arranged in ascending order.

마찬가지로, 최종 클러스터는 복수개가 존재할 수 있으며, 오류 검출부(15)는 복수개의 최종 클러스터에 대한 오류 여부를 순차적으로 결정할 수 있다. 바람직하게, 오류 검출부(15)는 구비된 메쉬의 개수를 기준으로 복수개의 최종 클러스터를 오름차순으로 정렬하고, 오름차준으로 정렬된 복수개의 최종 클러스터에 대해 순차적으로 오류 여부를 결정할 수 있다.Likewise, a plurality of final clusters may exist, and the error detection unit 15 may sequentially determine whether or not the plurality of final clusters are in error. Preferably, the error detection unit 15 may arrange a plurality of final clusters in ascending order based on the number of meshes provided, and sequentially determine whether or not an error occurs for the plurality of final clusters sorted in ascending order.

한편, 오류 보정부(17)는 오류가 존재하는 것으로 결정된 클러스터의 오류를 보정할 수 있다. 클러스터의 오류 보정은 메쉬의 뒤집힘을 정정하는 것일 수 있으며, 이에 기초하여 오류 보정부(17)는 오류가 존재하는 것으로 결정된 클러스터의 메쉬를 확인하고, 해당 메쉬를 구성하는 정점의 순서를 변경할 수 있다. 예컨대, 도 4를 참조하면, 제2클러스터에 오류가 존재할 경우, 오류 보정부(17)는 제2클러스터에 포함된 적어도 하나의 메쉬(M10, M11, M12, M13, M14)를 구성하는 정점의 순서를 변경함으로써, 메쉬의 뒤집힘을 정정할 수 있다.On the other hand, the error correction unit 17 may correct the error of the cluster determined to exist. The error correction of the cluster may be to correct the inversion of the mesh, and based on this, the error correction unit 17 may check the mesh of the cluster determined to have an error, and change the order of vertices constituting the mesh. . For example, referring to FIG. 4, when there is an error in the second cluster, the error correcting unit 17 includes the vertices constituting at least one mesh (M10, M11, M12, M13, M14) included in the second cluster. By changing the order, the mesh flipping can be corrected.

도 5는 본 개시의 일 실시예에 따른 메쉬 모델의 오류 검출 방법의 순서를 예시하는 흐름도이다.5 is a flowchart illustrating a sequence of an error detection method of a mesh model according to an embodiment of the present disclosure.

도 5를 참조하면, 메쉬 모델의 오류 검출 방법은 전술한 메쉬 모델의 오류 검출 장치에 의해 수행될 수 있다.Referring to FIG. 5, the error detection method of the mesh model may be performed by the error detection device of the mesh model described above.

우선, S501 단계에서, 메쉬 모델의 오류 검출 장치는 3차원 폴리곤 메쉬 정보를 확인할 수 있다. 3차원 폴리곤 메쉬 정보는, 3차원 오브젝트의 프린팅에 이용되는 데이터 파일을 포함할 수 있으며, 나아가, 반모서리(Halfedge) 데이터 구조로 이루어진 데이터 파일을 포함할 수 있다.First, in step S501, the mesh model error detection device may check the 3D polygon mesh information. The 3D polygon mesh information may include a data file used for printing a 3D object, and may further include a data file consisting of a halfedge data structure.

예컨대, 도 2a에 예시되는 바와 같이, 반모서리(Halfedge) 데이터 구조를 기반으로, 소정의 객체(200)에 대하여 꼭지점(V1, V2, ...Vn), 폴리곤(P1, P2, ...Pn), 메쉬(M1, M2, ...Mn), 및 반모서리(H1, H2, ...Hn)를 포함하는 구조로 나타낼 수 있다. 이에 기초하여, 메쉬 모델의 오류 검출 장치는 꼭지점(V1, V2, ...Vn), 폴리곤(P1, P2, ...Pn), 메쉬(M1, M2, ...Mn), 및 반모서리(H1, H2, ...Hn)를 각각 나타내는 정보, 즉, 꼭지점 정보, 폴리곤 정보, 메쉬 정보, 및 반모서리 정보를 포함하는 3차원 폴리곤 메쉬 정보를 확인할 수 있다.For example, as illustrated in FIG. 2A, based on a halfedge data structure, vertices (V1, V2, ... Vn), polygons (P1, P2, ...) for a given object 200 Pn), mesh (M1, M2, ... Mn), and can be represented by a structure including a half edge (H1, H2, ... Hn). Based on this, the error detection device of the mesh model includes vertices (V1, V2, ...Vn), polygons (P1, P2, ...Pn), meshes (M1, M2, ...Mn), and half corners Information indicating each of (H1, H2, ...Hn), that is, three-dimensional polygon mesh information including vertex information, polygon information, mesh information, and half-edge information can be confirmed.

나아가, 각각의 메쉬는 방향성을 나타낼 수 있으며, 메쉬의 방향성은 법선벡터를 사용하여 표현할 수 있다. 이에 따라, 각 메쉬의 법선벡터를 기준으로, 해당 메쉬의 반모서리(H1, H2, ...Hn)가 결정될 수 있다. Furthermore, each mesh may indicate directionality, and the directionality of the mesh may be expressed using a normal vector. Accordingly, the half edges (H1, H2, ... Hn) of the corresponding mesh may be determined based on the normal vector of each mesh.

예컨대, 도 2a에서와 같이, 제1메쉬(M1)가 제1방향(211)의 방향성을 구비할 경우, 제2꼭지점(V2)으로부터 제1꼭지점(V1)으로 향하는 제1반모서리(H1)가 존재할 수 있다. 그리고, 제1메쉬(M1)에 이웃한 제2메쉬(M2)가 제1방향(211)과 유사하게 제2방향(212)의 방향성을 구비할 경우, 제1꼭지점(V1)으로부터 제2꼭지점(V2)으로 향하는 제2반모서리(H2)가 존재할 수 있다. For example, as in FIG. 2A, when the first mesh M1 has the directionality of the first direction 211, the first half edge H1 from the second vertex V2 to the first vertex V1. Can exist. In addition, when the second mesh M2 adjacent to the first mesh M1 has directionality in the second direction 212 similar to the first direction 211, the second vertex point from the first vertex V1 There may be a second half edge (H2) directed to (V2).

반면, 도 2b에서와 같이, 제1메쉬(M1)의 제1반모서리(H1)는 전술한 바와 동일하게 제2꼭지점(V2)으로부터 제1꼭지점(V1)으로 향하는 반모서리로 구성될 수 있다. 그리고, 제1메쉬(M1)에 이웃한 제2'메쉬(M2')가 제1방향(211)과 반대되는 제3방향(213)의 방향성을 구비할 경우, 제2'반모서리(H2')는 제2꼭지점(V2)으로부터 제1꼭지점(V1)으로 향하는 반모서리로 구성될 수 있다.On the other hand, as shown in FIG. 2B, the first half edge H1 of the first mesh M1 may be configured as a half edge from the second vertex V2 to the first vertex V1 as described above. . In addition, when the second'mesh M2' adjacent to the first mesh M1 has directionality in the third direction 213 opposite to the first direction 211, the second' half edge H2' ) May be composed of a half edge from the second vertex (V2) to the first vertex (V1).

S502 단계에서, 메쉬 모델의 오류 검출 장치는 전술한 반모서리 구조를 고려하여, 적어도 하나의 메쉬 단위에 대한 클러스터링을 수행할 수 있다. 예를 들어, 메쉬 모델의 오류 검출 장치는 각 메쉬 단위에 대한 법선 벡터 정보를 확인하고, 메쉬 단위에 대한 법선 벡터 정보를 고려하여 적어도 하나의 메쉬를 포함하는 클러스터를 설정할 수 있다. In step S502, the error detection device of the mesh model may perform clustering on at least one mesh unit in consideration of the above-described half-edge structure. For example, the error detection device of the mesh model may check normal vector information for each mesh unit and set a cluster including at least one mesh in consideration of the normal vector information for each mesh unit.

나아가, 메쉬 모델의 오류 검출 장치는 단계적으로 클러스터링을 수행할 수 있다. 즉, 메쉬 모델의 오류 검출 장치는 일차적으로 적어도 하나의 메쉬를 포함하는 초기 클러스터를 구성하고, 다시 적어도 하나의 초기 클러스터를 포함하는 최종 클러스터를 구성할 수 있다.Furthermore, the error detection device of the mesh model may perform clustering step by step. That is, the error detection device of the mesh model may primarily constitute an initial cluster including at least one mesh, and again constitute a final cluster including at least one initial cluster.

구체적으로, 메쉬 모델의 오류 검출 장치는 상기 적어도 하나의 메쉬에 대한 반모서리(halfedge) 정보를 기반으로, 상기 적어도 하나의 메쉬의 연결 여부를 확인한다. 그리고, 메쉬 모델의 오류 검출 장치는 상기 적어도 하나의 메쉬의 연결 여부를 반영하여, 적어도 하나의 초기 클러스터를 구성할 수 있다(S502a).Specifically, the error detection device of the mesh model checks whether or not the at least one mesh is connected, based on halfedge information for the at least one mesh. Then, the error detection device of the mesh model may configure at least one initial cluster by reflecting whether or not the at least one mesh is connected (S502a).

예컨대, 전술한 도 2a 및 도 2b를 참조하면, 제1메쉬(M1)에 이웃한 제2메쉬(M1)가 동일한 방향성을 나타낼 경우, 메쉬에 공통적으로 사용되는 모서리는 각각 서로 다른 방향으로 향하는 반모서리로 나타날 수 있으며, 해당 반모서리, 즉, 제1반모서리(H1)와 제2반모서리(H2)는 하나의 쌍으로 분류될 수 있다. 반면, 제1메쉬(M1)에 이웃한 제2메쉬(M2')가 서로 반대되는 방향성을 나타낼 경우, 두 메쉬에 공통적으로 사용되는 모서리는 서로 동일한 방향으로 향하는 반모서리로 나타날 수 있으며, 해당 반모서리, 즉, 제1반모서리(H1)와 제2'반모서리(H2')는 하나의 쌍으로 분류되지 않는다.For example, referring to FIGS. 2A and 2B described above, when the second mesh M1 adjacent to the first mesh M1 exhibits the same directionality, the edges commonly used for the meshes are respectively oriented in different directions. They may appear as corners, and the corresponding half corners, that is, the first half corner H1 and the second half corner H2 may be classified as a pair. On the other hand, when the second mesh M2' adjacent to the first mesh M1 exhibits opposite directions, the corners commonly used for the two meshes may appear as half edges pointing in the same direction. The corners, that is, the first half corner H1 and the second half corner H2 are not classified as a pair.

이에 기초하여, 메쉬 모델의 오류 검출 장치는 하나의 쌍으로 분류되는 반모서리를 구비하는 적어도 하나의 메쉬를 조합하여 초기 클러스터를 구성할 수 있다.Based on this, the error detection device of the mesh model may configure an initial cluster by combining at least one mesh having semi-edges classified into one pair.

한편, 메쉬 모델의 오류 검출 장치는 초기 클러스터 또는 초기 클러스터에 구비된 메쉬의 법선 벡터를 확인하고, 확인된 법선 벡터를 고려하여, 초기 클러스터를 병합 또는 구분하여 최종 클러스터를 구성할 수 있다(502c).On the other hand, the error detection device of the mesh model may configure the final cluster by identifying or initializing the initial cluster or the normal vector of the mesh provided in the initial cluster, and considering or identifying the identified normal vector (502c). .

예컨대, 도 3에 예시되는 바와 같이, 복수의 초기 클러스터(310, 320, 330, ...)가 존재하며, 각 초기 클러스터(310, 320, 330, ...)에 각각 복수의 메쉬가 구비되는 것을 예시한다. 그리고, 제1초기 클러스터(310)는 제2초기 클러스터(320)와 이웃하도록 구비되며, 제1초기 클러스터(310)와 제2초기 클러스터(320)가 접하는 영역을 경계영역(351)으로 예시한다. 이를 고려하여, 메쉬 모델의 오류 검출 장치는 제1초기 클러스터(310)에 구비된 복수의 메쉬 중 경계영역(351)에 접하는 적어도 하나의 메쉬(310a, 310b, 310c)와, 제2초기 클러스터(320)에 구비된 복수의 메쉬 중 경계영역(351)에 접하는 적어도 하나의 메쉬(320a, 320b, 320c, 320d)를 확인할 수 있다. 그리고, 메쉬 모델의 오류 검출 장치는 제1초기 클러스터(310)에 구비된 메쉬(310a, 310b, 310c)에 대한 법섭 벡터의 평균값(이하, '제1평균값' 이라함)과, 제2초기 클러스터(320)에 구비된 메쉬(320a, 320b, 320c, 320d)에 대한 법섭 벡터의 평균값(이하, '제2평균값' 이라함)을 확인하고, 이들(제1평균값 및 제2평균값) 사이의 각도를 확인할 수 있다. For example, as illustrated in FIG. 3, a plurality of initial clusters 310, 320, 330, ... are present, and each initial cluster 310, 320, 330, ... is provided with a plurality of meshes, respectively. Illustrate what works. In addition, the first initial cluster 310 is provided to be adjacent to the second initial cluster 320 and exemplifies an area where the first initial cluster 310 and the second initial cluster 320 contact as the boundary region 351. . In consideration of this, the error detection device of the mesh model includes at least one of the meshes 310a, 310b, and 310c contacting the boundary region 351 among the plurality of meshes provided in the first initial cluster 310 and the second initial cluster ( Of the plurality of meshes provided in 320, at least one mesh 320a, 320b, 320c, 320d contacting the boundary area 351 may be identified. In addition, the error detection device of the mesh model includes an average value (hereinafter referred to as a'first average value') of the law vector for the meshes 310a, 310b, and 310c provided in the first initial cluster 310 and the second initial cluster. Check the average value (hereinafter referred to as the'second average value') of the law vector for the meshes 320a, 320b, 320c, and 320d provided in 320, and the angle between them (the first average value and the second average value) You can check

메쉬 모델의 오류 검출 장치는 확인된 각도를 미리 정해진 기준값과 비교하여, 제1초기 클러스터(310)와 제2초기 클러스터(320)를 병합하여 최종 클러스터를 구성할 것인지, 또는 초기 클러스터(310)와 제2초기 클러스터(320)를 구분하여 최종 클러스터를 구성할 것인지를 결정할 수 있다.The error detection device of the mesh model compares the identified angle with a predetermined reference value, to form a final cluster by merging the first initial cluster 310 and the second initial cluster 320, or the initial cluster 310 and The second initial cluster 320 may be divided to determine whether to form a final cluster.

나아가, 미리 정해진 기준값은 초기 클러스터에 구비되는 메쉬의 법선 벡터의 분포에 기초하여 설정될 수 있다. 미리 정해진 기준값은, 유사한 법선 벡터의 메쉬를 구비하는 초기 클러스터를 동일한 클러스터로 설정하기 위한 것이므로, 인접한 초기 클러스터를 하나의 최종 클러스터로 병합하는데 기준이되는 값일 수 있다. 이러한 미리 정해진 기준값은 동일한 클러스터에 구비된 적어도 하나의 메쉬의 법선 벡터가 이루는 각의 최소값 또는 최대값을 사용하여 설정될 수 있다. 다른 예로서, 미리 정해진 기준값은 동일한 클러스터에 구비된 적어도 하나의 메쉬의 법선 벡터가 이루는 각의 평균값과 표준분포에 기초하여 설정될 수 있다.Furthermore, the predetermined reference value may be set based on the distribution of the normal vector of the mesh provided in the initial cluster. Since the predetermined reference value is for setting an initial cluster having a mesh of similar normal vectors to the same cluster, it may be a value that becomes a reference for merging adjacent initial clusters into one final cluster. The predetermined reference value may be set using a minimum value or a maximum value of angles formed by a normal vector of at least one mesh provided in the same cluster. As another example, the predetermined reference value may be set based on an average value and a standard distribution of angles formed by a normal vector of at least one mesh provided in the same cluster.

한편, 전술한 바와 같이 클러스터가 설정되면, 메쉬 모델의 오류 검출 장치는 설정된 클러스터 단위에 대한 오류 여부를 확인할 수 있다(S504). On the other hand, when the cluster is set as described above, the error detecting device of the mesh model may check whether or not the error is set for the set cluster unit (S504).

예컨대, 메쉬 모델의 오류 검출 장치는 최종 클러스터에 포함된 적어도 하나의 메쉬의 법선 벡터를 확인하고, 확인된 적어도 하나의 메쉬의 법선 벡터를 사용하여 오류 여부를 확인할 수 있다. 구체적으로, 메쉬 모델의 오류 검출 장치는 최종 클러스터에 포함된 메쉬 중, 기준이되는 메쉬(이하, '기준 메쉬'라 함)를 선택하고, 선택된 기준 메쉬의 법선 벡터를 연장할 수 있다. 그리고, 기준 메쉬의 법선 벡터로부터 연장된 선이 접하는 메쉬의 개수를 기반으로 최종 클러스터 단위에 대한 오류 여부를 확인할 수 있다. 즉, 기준 메쉬의 법선 벡터로부터 연장된 선이 접하는 메쉬의 개수가 0 또는 짝수(2n)일 경우, 메쉬 모델의 오류 검출 장치는 해당 최종 클러스터를 정상적인 방향인 것으로 결정한다. 반면, 기준 메쉬의 법선 벡터로부터 연장된 선이 접하는 메쉬의 개수가 홀수(2n + 1)일 경우, 메쉬 모델의 오류 검출 장치는 해당 최종 클러스터를 오류가 존재하는 것으로 결정할 수 있다. For example, the error detection device of the mesh model may check the normal vector of at least one mesh included in the final cluster, and check whether there is an error using the identified normal vector of the at least one mesh. Specifically, the error detection device of the mesh model may select a reference mesh (hereinafter referred to as a'reference mesh') among the meshes included in the final cluster, and extend the normal vector of the selected reference mesh. In addition, it is possible to check whether an error occurs in the final cluster unit based on the number of meshes that the line extending from the normal vector of the reference mesh touches. That is, when the number of meshes that the line extending from the normal vector of the reference mesh touches is 0 or even (2n), the error detecting apparatus of the mesh model determines that the final cluster is in the normal direction. On the other hand, if the number of meshes that the line extending from the normal vector of the reference mesh touches is odd (2n + 1), the error detection device of the mesh model may determine that the final cluster is an error.

나아가, 메쉬 모델의 오류 검출 장치는 최종 클러스터의 중앙영역에 가장 근접한 메쉬를 기준 메쉬로 결정할 수 있다. 다른 예로서, 메쉬 모델의 오류 검출 장치는 최종 클러스터에 포함된 모든 메쉬의 법선 벡터의 평균값을 산출하고, 산출된 법선 벡터의 평균값과 가장 근접한 법선 벡터를 구비하는 메쉬를 기준 메쉬로 결정할 수도 있다.Furthermore, the error detection device of the mesh model may determine the mesh closest to the central region of the final cluster as the reference mesh. As another example, the error detection apparatus of the mesh model may calculate the average values of the normal vectors of all the meshes included in the final cluster, and determine the mesh having the normal vector closest to the average value of the calculated normal vectors as the reference mesh.

추가적으로, 초기 클러스터는 복수개가 존재할 수 있으며, 메쉬 모델의 오류 검출 장치는 복수개의 초기 클러스터를 병합 또는 구분하여 최종 클러스터를 구성할 수 있다. 바람직하게, 메쉬 모델의 오류 검출 장치는 초기 클러스터에 구비된 메쉬의 개수를 기준으로 복수개의 초기 클러스터를 오름차순으로 정렬하는 동작(S502b)을 더 수행할 수 있다. 그리고, 메쉬 모델의 오류 검출 장치는 S502c 단계에서 오름차순으로 정렬된 복수개의 초기 클러스터에 대해 순차적으로 최종 클러스터를 결정할 수 있다.Additionally, a plurality of initial clusters may exist, and the error detection device of the mesh model may configure a final cluster by merging or dividing the plurality of initial clusters. Preferably, the error detection device of the mesh model may further perform an operation of sorting a plurality of initial clusters in ascending order based on the number of meshes provided in the initial cluster (S502b). Then, the error detection device of the mesh model may sequentially determine the final cluster for the plurality of initial clusters arranged in ascending order in step S502c.

마찬가지로, 최종 클러스터는 복수개가 존재할 수 있으며, 메쉬 모델의 오류 검출 장치는 복수개의 최종 클러스터에 대한 오류 여부를 순차적으로 결정할 수 있다. 바람직하게, 메쉬 모델의 오류 검출 장치는 구비된 메쉬의 개수를 기준으로 복수개의 최종 클러스터를 오름차순으로 정렬하는 동작(S503)을 더 수행할 수 있다. 그리고, 메쉬 모델의 오류 검출 장치는 S504 단계에서 오름차준으로 정렬된 복수개의 최종 클러스터에 대해 순차적으로 오류 여부를 결정할 수 있다.Likewise, a plurality of final clusters may exist, and the error detection device of the mesh model may sequentially determine whether or not there are errors for the plurality of final clusters. Preferably, the error detection device of the mesh model may further perform an operation of sorting a plurality of final clusters in ascending order based on the number of provided meshes (S503). In addition, the error detection device of the mesh model may sequentially determine whether or not there is an error for a plurality of final clusters arranged in ascending order in step S504.

한편, 메쉬 모델의 오류 검출 장치는 오류가 존재하는 것으로 결정된 클러스터의 오류를 보정할 수 있다(S505). 예컨대, 메쉬 모델의 오류 검출 장치는 오류가 존재하는 것으로 결정된 클러스터의 메쉬를 확인하고, 해당 메쉬를 구성하는 정점(vertex)의 순서를 변경함으로써, 메쉬의 뒤집힘을 정정할 수 있다. On the other hand, the error detection device of the mesh model may correct the error of the cluster determined to exist the error (S505). For example, the error detection device of the mesh model may correct the mesh inversion by checking the mesh of the cluster determined to exist an error and changing the order of vertices constituting the mesh.

도 6은 본 개시의 일 실시예에 따른 메쉬 모델의 오류 검출 방법 및 장치를 실행하는 컴퓨팅 시스템을 예시하는 블록도이다. 6 is a block diagram illustrating a computing system executing a method and apparatus for detecting errors in a mesh model according to an embodiment of the present disclosure.

도 6을 참조하면, 컴퓨팅 시스템(1000)은 버스(1200)를 통해 연결되는 적어도 하나의 프로세서(1100), 메모리(1300), 사용자 인터페이스 입력 장치(1400), 사용자 인터페이스 출력 장치(1500), 스토리지(1600), 및 네트워크 인터페이스(1700)를 포함할 수 있다.Referring to FIG. 6, the computing system 1000 includes at least one processor 1100 connected through a bus 1200, a memory 1300, a user interface input device 1400, a user interface output device 1500, and storage 1600, and the network interface 1700.

프로세서(1100)는 중앙 처리 장치(CPU) 또는 메모리(1300) 및/또는 스토리지(1600)에 저장된 명령어들에 대한 처리를 실행하는 반도체 장치일 수 있다. 메모리(1300) 및 스토리지(1600)는 다양한 종류의 휘발성 또는 불휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(1300)는 ROM(Read Only Memory) 및 RAM(Random Access Memory)을 포함할 수 있다. The processor 1100 may be a central processing unit (CPU) or a semiconductor device that executes processing for instructions stored in the memory 1300 and/or storage 1600. The memory 1300 and the storage 1600 may include various types of volatile or nonvolatile storage media. For example, the memory 1300 may include read only memory (ROM) and random access memory (RAM).

따라서, 본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서(1100)에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM과 같은 저장 매체(즉, 메모리(1300) 및/또는 스토리지(1600))에 상주할 수도 있다. 예시적인 저장 매체는 프로세서(1100)에 커플링되며, 그 프로세서(1100)는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서(1100)와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.Accordingly, steps of a method or algorithm described in connection with the embodiments disclosed herein may be directly implemented in hardware, software modules, or a combination of the two, executed by processor 1100. The software modules reside in storage media (ie, memory 1300 and/or storage 1600) such as RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM. You may. An exemplary storage medium is coupled to the processor 1100, which can read information from and write information to the storage medium. Alternatively, the storage medium may be integral with the processor 1100. Processors and storage media may reside within an application specific integrated circuit (ASIC). The ASIC may reside in a user terminal. Alternatively, the processor and storage medium may reside as separate components within the user terminal.

본 개시의 예시적인 방법들은 설명의 명확성을 위해서 동작의 시리즈로 표현되어 있지만, 이는 단계가 수행되는 순서를 제한하기 위한 것은 아니며, 필요한 경우에는 각각의 단계가 동시에 또는 상이한 순서로 수행될 수도 있다. 본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.Exemplary methods of the present disclosure are expressed as a series of operations for clarity of description, but are not intended to limit the order in which the steps are performed, and if necessary, each step may be performed simultaneously or in a different order. In order to implement the method according to the present disclosure, the steps illustrated may include other steps in addition, other steps may be included in addition to the remaining steps, or other additional steps may be included in addition to some steps.

본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.Various embodiments of the present disclosure are not intended to list all possible combinations, but are intended to describe representative aspects of the present disclosure, and details described in various embodiments may be applied independently or in combination of two or more.

또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다. Further, various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof. For implementation by hardware, one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field Programmable Gate Arrays (FPGAs), Universal It can be implemented by a processor (general processor), a controller, a microcontroller, a microprocessor.

본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다. The scope of the present disclosure includes software or machine-executable instructions (eg, operating systems, applications, firmware, programs, etc.) that cause an operation according to methods of various embodiments to be executed on a device or computer, and such software or Instructions include a non-transitory computer-readable medium that is stored and executable on a device or computer.

Claims (20)

반모서리(halfedge) 정보에 기초한 적어도 하나의 메쉬단위를 확인하는 과정과,
상기 적어도 하나의 메쉬단위의 법선 벡터 정보를 기반으로, 상기 적어도 하나의 메쉬단위를 포함하는 적어도 하나의 클러스터를 설정하는 과정과,
상기 적어도 하나의 클러스터에 대한 뒤집힘 오류를 검출하는 과정과,
뒤집힘 오류가 검출된 상기 적어도 하나의 클러스터의 상기 적어도 하나의 메쉬단위를 보정하는 과정을 포함하고,
상기 적어도 하나의 메쉬단위를 보정하는 과정은,
오류가 존재하는 상기 적어도 하나의 클러스터에 상기 적어도 하나의 클러스터에 포함된 상기 적어도 하나의 메쉬단위를 구성하는 정점의 순서를 변경하여, 상기 오류가 존재하는 적어도 하나의 클러스터에 포함된 모든 메쉬단위의 뒤집힘을 정정하는 것을 특징으로 하는 메쉬 모델의 오류 검출 방법.
The process of identifying at least one mesh unit based on halfedge information,
Setting at least one cluster including the at least one mesh unit based on the normal vector information of the at least one mesh unit;
Detecting an inversion error for the at least one cluster,
Compensating the at least one mesh unit of the at least one cluster in which an inversion error is detected,
The process of correcting the at least one mesh unit,
By changing the order of vertices constituting the at least one mesh unit included in the at least one cluster in the at least one cluster in which an error exists, all of the mesh units included in the at least one cluster in which the error exists A method for detecting errors in a mesh model, characterized by correcting flipping.
제1항에 있어서,
상기 적어도 하나의 클러스터를 설정하는 과정은,
상기 적어도 하나의 메쉬단위에 대한 반모서리(halfedge) 정보를 기반으로, 상기 적어도 하나의 메쉬단위의 연결 여부를 확인하는 과정과,
상기 적어도 하나의 메쉬단위의 연결 여부를 반영하여, 적어도 하나의 초기 클러스터를 생성하는 과정을 포함하는 것을 특징으로 하는 메쉬 모델의 오류 검출 방법.
According to claim 1,
The process of setting the at least one cluster,
Checking whether the at least one mesh unit is connected, based on halfedge information for the at least one mesh unit,
And generating at least one initial cluster by reflecting whether or not the at least one mesh unit is connected.
제2항에 있어서,
상기 적어도 하나의 클러스터를 설정하는 과정은,
상기 적어도 하나의 초기 클러스터에 포함된 상기 적어도 하나의 메쉬단위의 법선 벡터 정보를 기반으로, 상기 적어도 하나의 초기 클러스터를 병합 또는 구분하여 최종 클러스터를 구성하는 과정을 포함하는 것을 특징으로 하는 메쉬 모델의 오류 검출 방법.
According to claim 2,
The process of setting the at least one cluster,
And constructing a final cluster by merging or classifying the at least one initial cluster based on the normal vector information of the at least one mesh unit included in the at least one initial cluster. Error detection method.
제2항에 있어서,
상기 적어도 하나의 클러스터를 설정하는 과정은,
상기 적어도 하나의 초기 클러스터에 포함된 상기 적어도 하나의 메쉬단위의 개수를 확인하는 과정과,
상기 적어도 하나의 메쉬단위의 개수를 기준으로, 상기 적어도 하나의 초기 클러스터를 오름차순으로 정렬하는 과정을 포함하는 것을 특징으로 하는 메쉬 모델의 오류 검출 방법.
According to claim 2,
The process of setting the at least one cluster,
Confirming the number of the at least one mesh unit included in the at least one initial cluster;
And sorting the at least one initial cluster in ascending order based on the number of the at least one mesh unit.
제2항 또는 제4항에 있어서,
상기 적어도 하나의 클러스터를 설정하는 과정은,
제1초기 클러스터에 포함된 상기 적어도 하나의 메쉬단위에 대응되는 적어도 하나의 제1법선 벡터와, 상기 제1초기 클러스터와 다른 제2초기 클러스터에 포함된 상기 적어도 하나의 메쉬단위에 대응되는 적어도 하나의 제2법선 벡터 사이의 각도를 확인하는 과정과,
상기 적어도 하나의 제1법선 벡터와, 상기 적어도 하나의 제2법선 벡터 사이의 각도를 고려하여, 상기 제1 및 제2초기 클러스터를 병합하는 과정을 포함하는 것을 특징으로 하는 메쉬 모델의 오류 검출 방법.
The method of claim 2 or 4,
The process of setting the at least one cluster,
At least one first normal vector corresponding to the at least one mesh unit included in the first initial cluster, and at least one corresponding to the at least one mesh unit included in a second initial cluster different from the first initial cluster. Confirming the angle between the second normal vectors of
And merging the first and second initial clusters in consideration of an angle between the at least one first normal vector and the at least one second normal vector. .
제5항에 있어서,
상기 제1 및 제2초기 클러스터를 병합하는 과정은,
상기 적어도 하나의 제1법선 벡터와, 상기 적어도 하나의 제2법선 벡터 사이의 각도를 확인하는 과정과,
상기 각도를 미리 정해진 기준값과 비교하여 상기 제2초기 클러스터를 상기 제1초기 클러스터에 병합하되, 상기 미리 정해진 기준값은 동일한 클러스터에 구비된 적어도 하나의 메쉬의 법선 벡터가 이루는 각의 최소값 또는 최대값을 사용하여 설정되는 것을 특징으로 하는 메쉬 모델의 오류 검출 방법.
The method of claim 5,
The process of merging the first and second initial clusters,
Confirming an angle between the at least one first normal vector and the at least one second normal vector;
The angle is compared with a predetermined reference value to merge the second initial cluster with the first initial cluster, wherein the predetermined reference value is the minimum or maximum value of each angle formed by the normal vector of at least one mesh provided in the same cluster. Method of error detection of the mesh model, characterized in that it is set using.
제3항에 있어서,
상기 적어도 하나의 클러스터를 설정하는 과정은,
상기 적어도 하나의 최종 클러스터에 포함된 상기 적어도 하나의 메쉬단위의 개수를 확인하는 과정과,
상기 적어도 하나의 메쉬단위의 개수를 기준으로, 상기 적어도 하나의 최종 클러스터를 오름차순으로 정렬하는 과정을 포함하는 것을 특징으로 하는 메쉬 모델의 오류 검출 방법.
According to claim 3,
The process of setting the at least one cluster,
Checking the number of the at least one mesh unit included in the at least one final cluster;
And sorting the at least one final cluster in ascending order based on the number of the at least one mesh unit.
제7항에 있어서,
상기 적어도 하나의 클러스터에 대한 뒤집힘 오류를 검출하는 과정은,
상기 적어도 하나의 최종 클러스터에 구비된 상기 적어도 하나의 메쉬단위의 법선 백터를 확인하는 과정과,
상기 법선 벡터로부터 연장된 선과 다른 메쉬가 접하는 수를 확인하는 과정과,
상기 확인된 수를 고려하여, 순차적으로 상기 적어도 하나의 최종 클러스터에 대한 뒤집힘 오류를 결정하는 과정을 포함하는 것을 특징으로 하는 메쉬 모델의 오류 검출 방법.
The method of claim 7,
The process of detecting a flip error for the at least one cluster is:
Confirming the normal vector of the at least one mesh unit provided in the at least one final cluster;
Confirming the number of lines extending from the normal vector and other meshes are in contact;
And determining the flipping error for the at least one final cluster sequentially, considering the identified number.
제8항에 있어서,
상기 적어도 하나의 최종 클러스터에 구비된 상기 적어도 하나의 메쉬단위의 법선 백터를 확인하는 과정은,
각각의 상기 최종 클러스터의 중앙 영역에 위치한 메쉬의 법선 백터를 확인하는 과정을 포함하는 것을 특징으로 하는 메쉬 모델의 오류 검출 방법.
The method of claim 8,
The process of checking the normal vector of the at least one mesh unit provided in the at least one final cluster may include:
And checking the normal vector of the mesh located in the central region of each of the final clusters.
제8항에 있어서,
상기 적어도 하나의 최종 클러스터에 구비된 상기 적어도 하나의 메쉬단위의 법선 백터를 확인하는 과정은,
각각의 상기 최종 클러스터에 구비된 상기 적어도 하나의 메쉬의 법선 벡터의 평균값을 확인하는 과정과,
상기 적어도 하나의 메쉬의 법선 벡터의 평균값에 대응되는 메쉬의 법선 백터를 확인하는 과정을 포함하는 것을 특징으로 하는 메쉬 모델의 오류 검출 방법.
The method of claim 8,
The process of checking the normal vector of the at least one mesh unit provided in the at least one final cluster may include:
Confirming an average value of a normal vector of the at least one mesh provided in each final cluster;
And checking the normal vector of the mesh corresponding to the average value of the normal vectors of the at least one mesh.
제8항에 있어서,
상기 확인된 수를 고려하여, 상기 적어도 하나의 최종 클러스터에 대한 뒤집힘 오류를 결정하는 과정은,
상기 법선 벡터로부터 연장된 선과 다른 메쉬가 접하는 수가 0 또는 짝수임에 대응하여, 상기 적어도 하나의 최종 클러스터가 정상인 것으로 결정하고,
상기 법선 벡터로부터 연장된 선과 다른 메쉬가 접하는 수가 홀수임에 대응하여, 상기 적어도 하나의 최종 클러스터에 뒤집힘 오류가 존재하는 것으로 결정하는 것을 특징으로 하는 메쉬 모델의 오류 검출 방법.
The method of claim 8,
Considering the identified number, the process of determining an inversion error for the at least one final cluster is:
It is determined that the at least one final cluster is normal, corresponding to the number of the lines extending from the normal vector and the mesh contacting each other is 0 or even,
A mesh model error detection method characterized in that it is determined that there is an inversion error in the at least one final cluster in response to an odd number of the line extending from the normal vector and another mesh contacting each other.
반모서리(halfedge) 정보에 기초한 적어도 하나의 메쉬단위를 확인하는 메쉬확인부와,
상기 적어도 하나의 메쉬단위의 법선 벡터 정보를 기반으로, 상기 적어도 하나의 메쉬단위를 포함하는 적어도 하나의 클러스터를 설정하는 클러스링 처리부와,
상기 적어도 하나의 클러스터에 대한 뒤집힘 오류를 검출하는 오류 검출부와,
뒤집힘 오류가 검출된 상기 적어도 하나의 클러스터의 상기 적어도 하나의 메쉬단위를 보정하는 오류 보정부를 포함하고,
상기 오류 보정부는,
오류가 존재하는 상기 적어도 하나의 클러스터에 상기 적어도 하나의 클러스터에 포함된 상기 적어도 하나의 메쉬단위를 구성하는 정점의 순서를 변경하여, 상기 오류가 존재하는 적어도 하나의 클러스터에 포함된 모든 메쉬단위의 뒤집힘을 정정하는 것을 특징으로 하는 메쉬 모델의 오류 검출 장치.
A mesh identification unit for identifying at least one mesh unit based on halfedge information;
A clustering processor configured to set at least one cluster including the at least one mesh unit based on the normal vector information of the at least one mesh unit;
An error detection unit for detecting a flip error for the at least one cluster,
And an error correction unit correcting the at least one mesh unit of the at least one cluster in which an inversion error is detected,
The error correction unit,
By changing the order of vertices constituting the at least one mesh unit included in the at least one cluster in the at least one cluster in which an error exists, all of the mesh units included in the at least one cluster in which the error exists An error detection device for a mesh model, characterized by correcting flipping.
제12항에 있어서,
상기 클러스링 처리부는,
상기 적어도 하나의 메쉬단위에 대한 반모서리(halfedge) 정보를 기반으로, 상기 적어도 하나의 메쉬단위의 연결 여부를 확인하고,
상기 적어도 하나의 메쉬단위의 연결 여부를 반영하여, 적어도 하나의 초기 클러스터를 생성하는 것을 특징으로 하는 메쉬 모델의 오류 검출 장치.
The method of claim 12,
The clustering processing unit,
On the basis of the half-edge (halfedge) information for the at least one mesh unit, check whether the at least one mesh unit is connected,
The apparatus for detecting errors in a mesh model, wherein at least one initial cluster is generated by reflecting whether the at least one mesh unit is connected.
제13항에 있어서,
상기 클러스링 처리부는,
상기 적어도 하나의 초기 클러스터에 포함된 상기 적어도 하나의 메쉬단위의 법선 벡터 정보를 기반으로, 상기 적어도 하나의 초기 클러스터를 병합 또는 구분하여 최종 클러스터를 구성하는 것을 특징으로 하는 메쉬 모델의 오류 검출 장치.
The method of claim 13,
The clustering processing unit,
A mesh model error detection apparatus characterized in that a final cluster is formed by merging or classifying the at least one initial cluster based on the normal vector information of the at least one mesh unit included in the at least one initial cluster.
제13항에 있어서,
상기 클러스링 처리부는,
상기 적어도 하나의 초기 클러스터에 포함된 상기 적어도 하나의 메쉬단위의 개수를 확인하고,
상기 적어도 하나의 메쉬단위의 개수를 기준으로, 상기 적어도 하나의 초기 클러스터를 오름차순으로 정렬하는 것을 특징으로 하는 메쉬 모델의 오류 검출 장치.
The method of claim 13,
The clustering processing unit,
Check the number of the at least one mesh unit included in the at least one initial cluster,
Based on the number of the at least one mesh unit, the error detection device of the mesh model, characterized in that the at least one initial cluster is arranged in ascending order.
제13항 또는 제15항에 있어서,
상기 클러스링 처리부는,
제1초기 클러스터에 포함된 상기 적어도 하나의 메쉬단위에 대응되는 적어도 하나의 제1법선 벡터와, 상기 제1초기 클러스터와 다른 제2초기 클러스터에 포함된 상기 적어도 하나의 메쉬단위에 대응되는 적어도 하나의 제2법선 벡터 사이의 각도를 확인하고,
상기 적어도 하나의 제1법선 벡터와, 상기 적어도 하나의 제2법선 벡터 사이의 각도를 고려하여, 상기 제1 및 제2초기 클러스터를 병합하는 것을 특징으로 하는 메쉬 모델의 오류 검출 장치.
The method of claim 13 or 15,
The clustering processing unit,
At least one first normal vector corresponding to the at least one mesh unit included in the first initial cluster, and at least one corresponding to the at least one mesh unit included in a second initial cluster different from the first initial cluster. Check the angle between the second normal vectors of
And the first and second initial clusters are merged in consideration of an angle between the at least one first normal vector and the at least one second normal vector.
제16항에 있어서,
상기 클러스링 처리부는,
상기 적어도 하나의 제1법선 벡터와, 상기 적어도 하나의 제2법선 벡터 사이의 적어도 하나의 각도를 확인하고,
상기 적어도 하나의 각도를 미리 정해진 기준값과 비교하여 상기 제2초기 클러스터를 상기 제1초기 클러스터에 병합하되, 상기 미리 정해진 기준값은 동일한 클러스터에 구비된 적어도 하나의 메쉬의 법선 벡터가 이루는 각의 최소값 또는 최대값을 사용하여 설정되는 것을 특징으로 하는 메쉬 모델의 오류 검출 장치.
The method of claim 16,
The clustering processing unit,
Confirm at least one angle between the at least one first normal vector and the at least one second normal vector,
The second initial cluster is merged with the first initial cluster by comparing the at least one angle with a predetermined reference value, wherein the predetermined reference value is a minimum value of an angle formed by a normal vector of at least one mesh provided in the same cluster, or A mesh model error detection device, characterized in that it is set using a maximum value.
제14항에 있어서,
상기 클러스링 처리부는,
상기 적어도 하나의 최종 클러스터에 포함된 상기 적어도 하나의 메쉬단위의 개수를 확인하고,
상기 적어도 하나의 메쉬단위의 개수를 기준으로, 상기 적어도 하나의 최종 클러스터를 오름차순으로 정렬하는 것을 특징으로 하는 메쉬 모델의 오류 검출 장치.
The method of claim 14,
The clustering processing unit,
Checking the number of the at least one mesh unit included in the at least one final cluster,
Based on the number of the at least one mesh unit, the error detection device of the mesh model, characterized in that the at least one final cluster is arranged in ascending order.
제18항에 있어서,
상기 오류 검출부는,
상기 적어도 하나의 최종 클러스터에 구비된 상기 적어도 하나의 메쉬단위의 법선 백터를 확인하고,
상기 법선 벡터로부터 연장된 선과 다른 메쉬가 접하는 수를 확인하고,
상기 확인된 수를 고려하여, 순차적으로 상기 적어도 하나의 최종 클러스터에 대한 뒤집힘 오류를 결정하는 것을 특징으로 하는 메쉬 모델의 오류 검출 장치.
The method of claim 18,
The error detection unit,
Confirming the normal vector of the at least one mesh unit provided in the at least one final cluster,
Check the number of the line extending from the normal vector and another mesh contact,
In consideration of the identified number, the error detection device of the mesh model, characterized in that for sequentially determining the flip error for the at least one final cluster.
제19항에 있어서,
상기 오류 검출부는,
상기 법선 벡터로부터 연장된 선과 다른 메쉬가 접하는 수가 0 또는 짝수임에 대응하여, 상기 적어도 하나의 최종 클러스터가 정상인 것으로 결정하고,
상기 법선 벡터로부터 연장된 선과 다른 메쉬가 접하는 수가 홀수임에 대응하여, 상기 적어도 하나의 최종 클러스터에 뒤집힘 오류가 존재하는 것으로 결정하는 것을 특징으로 하는 메쉬 모델의 오류 검출 장치.
The method of claim 19,
The error detection unit,
It is determined that the at least one final cluster is normal, corresponding to the number of the lines extending from the normal vector and the mesh contacting each other is 0 or even,
The apparatus for detecting errors in a mesh model, characterized in that it determines that there is an inversion error in the at least one final cluster in response to an odd number of a line extending from the normal vector and another mesh contacting each other.
KR1020180084500A 2017-09-05 2018-07-20 Method for detecting and correcting error of mesh and apparatus for the same KR102125973B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/121,387 US10812113B2 (en) 2017-09-05 2018-09-04 Method of detecting and correcting error in mesh and apparatus for same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170113262 2017-09-05
KR20170113262 2017-09-05

Publications (2)

Publication Number Publication Date
KR20190026561A KR20190026561A (en) 2019-03-13
KR102125973B1 true KR102125973B1 (en) 2020-06-23

Family

ID=65762131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180084500A KR102125973B1 (en) 2017-09-05 2018-07-20 Method for detecting and correcting error of mesh and apparatus for the same

Country Status (1)

Country Link
KR (1) KR102125973B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022956A (en) * 1999-07-06 2001-01-26 Internatl Business Mach Corp <Ibm> Device and method for clustering processing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100397085B1 (en) * 2001-06-13 2003-09-06 이상욱 Method for the graph representation of 3-dimensional object image for image retrival
US7639253B2 (en) * 2006-07-13 2009-12-29 Inus Technology, Inc. System and method for automatic 3D scan data alignment
US8013851B2 (en) * 2006-08-11 2011-09-06 Siemens Product Lifecycle Management Software Inc. System and method for lightweight polygonal topology representation
US7984430B2 (en) * 2006-09-27 2011-07-19 Electronics And Telecommunications Research Institute Parser framework using markup language
KR101815979B1 (en) * 2011-01-21 2018-01-08 삼성전자주식회사 Apparatus and method for encoding 3d mesh, and apparatus and method for decoding 3d mesh
KR20140098592A (en) * 2013-01-31 2014-08-08 (주)리얼디스퀘어 An apparatus and method for deciding and changing inner and outer surfaces of meshes on the time of surface generation
KR101646945B1 (en) * 2014-12-16 2016-08-10 삼성전자주식회사 Apparatus, method and computer program for generating mesh for vector graphics based on graphic processing unit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022956A (en) * 1999-07-06 2001-01-26 Internatl Business Mach Corp <Ibm> Device and method for clustering processing

Also Published As

Publication number Publication date
KR20190026561A (en) 2019-03-13

Similar Documents

Publication Publication Date Title
JP5772821B2 (en) Facial feature point position correction apparatus, face feature point position correction method, and face feature point position correction program
US10147015B2 (en) Image processing device, image processing method, and computer-readable recording medium
US20200159905A1 (en) Key generating method and apparatus using characteristic of memory
US20150109290A1 (en) Device and method for removing noise points in point clouds
EP2954457A1 (en) System and method for identifying similarities in different images
BR112020010087A2 (en) polygonal region detection
US9824267B2 (en) Writing board detection and correction
KR102125973B1 (en) Method for detecting and correcting error of mesh and apparatus for the same
US11347977B2 (en) Lateral and longitudinal feature based image object recognition method, computer device, and non-transitory computer readable storage medium
US10812113B2 (en) Method of detecting and correcting error in mesh and apparatus for same
US9916663B2 (en) Image processing method and process simulation apparatus
EP3410389A1 (en) Image processing method and device
KR102378646B1 (en) Method and system for applying point properties of lidar point data
US20190304185A1 (en) Method and apparatus for filling hole in 3d model
CN109635839B (en) Unbalanced data set processing method and device based on machine learning
CN108122200A (en) Image split-joint method and device
JP6861885B2 (en) Traceability management device, traceability management method and traceability management program
KR102073362B1 (en) Method and computer program for classifying wafer map according to defect type
JP2017049997A (en) Apparatus and method for document image orientation detection
US20240161011A1 (en) Computer-readable recording medium storing data generation program, data generation method, and data generation device
KR102075708B1 (en) Method and apparatus for processing feature information of composite image
KR102378649B1 (en) Method and system for determining ground and non-ground of lidar point data
US20160292870A1 (en) Information processing apparatus, information processing method, and program
US10484244B2 (en) Validation process for a storage array network
JP6199813B2 (en) Formal verification apparatus and program

Legal Events

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