[go: up one dir, main page]

KR102104889B1 - Method of generating 3-dimensional model data based on vertual solid surface models and system thereof - Google Patents

Method of generating 3-dimensional model data based on vertual solid surface models and system thereof Download PDF

Info

Publication number
KR102104889B1
KR102104889B1 KR1020190120690A KR20190120690A KR102104889B1 KR 102104889 B1 KR102104889 B1 KR 102104889B1 KR 1020190120690 A KR1020190120690 A KR 1020190120690A KR 20190120690 A KR20190120690 A KR 20190120690A KR 102104889 B1 KR102104889 B1 KR 102104889B1
Authority
KR
South Korea
Prior art keywords
model
dimensional
data set
cross
vertices
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020190120690A
Other languages
Korean (ko)
Inventor
이명학
이창규
류혜인
Original Assignee
이명학
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이명학 filed Critical 이명학
Priority to KR1020190120690A priority Critical patent/KR102104889B1/en
Application granted granted Critical
Publication of KR102104889B1 publication Critical patent/KR102104889B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering

Landscapes

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

Abstract

A computer-implemented method according to one embodiment of the present invention is a computer-implemented method for generating three-dimensional (3D) model data based on a plurality of two-dimensional (2D) cross-sectional images of a 3D object. The method includes: a step of receiving a first image data set representing a first cross-sectional image of the plurality of 2D cross-sectional images and a second image data set representing a second cross-sectional image of the plurality of 2D cross-sectional images; a step of identifying a first 2D coordinate set of a first pixel set from pixels of the first cross-sectional image; a step of identifying a second 2D coordinate set of a second pixel set from pixels of the second cross-sectional image; a step of generating a first solid surface data set representing a first solid surface model from the first 2D coordinate set; a step of generating a second solid surface data set representing a second solid surface model from the second 2D coordinate set; and a step of generating the 3D model data based on the first solid surface data set and the second solid surface data set. The first cross-sectional image corresponds to a first position of the 3D object along one among 3D axes. The second cross-sectional image corresponds to a second position of the 3D object along one among the 3D axes separated from the first position. The first image data set and the second image data set include 2D coordinates and pixel values.

Description

가상 입체면 모델에 기초한 3차원 모델 데이터 생성 구현 방법 및 시스템{METHOD OF GENERATING 3-DIMENSIONAL MODEL DATA BASED ON VERTUAL SOLID SURFACE MODELS AND SYSTEM THEREOF}METHOD OF GENERATING 3-DIMENSIONAL MODEL DATA BASED ON VERTUAL SOLID SURFACE MODELS AND SYSTEM THEREOF}

본 발명은 일반적으로 가상 모델 생성의 분야에 관한 것으로서, 특히 가상 입체면 모델에 기초한 3차원 모델 데이터를 생성하는 컴퓨터 구현 방법 및 시스템에 관한 것이다.The present invention relates generally to the field of virtual model generation, and more particularly, to a computer-implemented method and system for generating three-dimensional model data based on a virtual three-dimensional model.

3 차원(3D) 모델은 복잡한 모양을 가진 객체를 쉽게 이해할 수 있게 해 준다. 컴퓨터에 의해 생성된 가상 3D 모델을 통해 객체의 다양한 구성 요소의 모양과 배열을 다양한 시점에서 시각적으로 표현할 수 있다. 또한, 3D 모델을 수정하여 객체가 수정되거나 위치가 변경되는 경우를 시뮬레이션 할 수 있고, 3D 모델은 3D 프린터를 통해 유형 복제본으로 구현될 수 있다.Three-dimensional (3D) models make it easy to understand objects with complex shapes. Through the virtual 3D model generated by the computer, the shape and arrangement of various components of the object can be visually expressed from various viewpoints. In addition, the 3D model can be modified to simulate a case where an object is modified or a position is changed, and the 3D model can be implemented as a type copy through a 3D printer.

일 실시예에서, 3D 모델은 2 차원(2D) 단면 영상(예를 들어, 컴퓨터 단층 촬영(CT) 스캔 이미지 또는 자기 공명 영상(MRI) 스캔 이미지)에 기초하여 생성될 수 있다. 도 1은 객체들(110, 120, 130, 140, 160, 180)을 포함하는 인간 피검자의 머리의 예시적인 CT 주사 이미지(100)(일례로, 측두 하악 관절(110, 180), 척추뼈 구멍(120), 척추(130), 및 치아(140, 160))를 도시한다. 예시적인 객체들은 뼈, 치아 또는 객체의 의학적 상태를 결정하기 위한 신체 부위를 포함한다.In one embodiment, the 3D model may be generated based on a two-dimensional (2D) cross-sectional image (eg, a computed tomography (CT) scan image or a magnetic resonance image (MRI) scan image). 1 is an exemplary CT scan image 100 of a human subject's head including objects 110, 120, 130, 140, 160, 180 (eg, temporal mandibular joints 110, 180), vertebral cavity 120, spine 130, and teeth 140, 160. Exemplary objects include bones, teeth or body parts for determining the medical condition of the object.

도 2a 및 도 2b는 2 개의 CT 스캔 이미지들로부터 3D 모델을 생성하는 예시적인 종래 프로세스를 도시한다. 종래에는 제 1 CT 스캔 이미지의 객체들 (110A, 130A, 140A, 160A, 180A)의 에지를 추출하고, 제 2 CT스캔 이미지의 대응되는 객체들 (110B, 130B, 140B, 160B, 180B)의 에지를 추출한다. 대응되는 에지들을 연결함으로써, 3D 모델 (210, 230, 240, 260, 280)의 표면 (215, 235, 245, 265, 285)이 생성될 수 있다. 따라서 객체들(110, 130, 140, 160, 180) 각각에 해당하는 3D 모델(210, 230, 240, 260, 280)을 얻을 수 있다.2A and 2B show an exemplary conventional process for generating a 3D model from two CT scan images. Conventionally, the edges of the objects 110A, 130A, 140A, 160A, 180A of the first CT scan image are extracted, and the edges of the corresponding objects 110B, 130B, 140B, 160B, 180B of the second CT scan image To extract. By connecting the corresponding edges, the surfaces 215, 235, 245, 265, 285 of the 3D model 210, 230, 240, 260, 280 can be created. Accordingly, 3D models 210, 230, 240, 260, and 280 corresponding to each of the objects 110, 130, 140, 160, and 180 can be obtained.

그러나, 종래의 접근법을 통해 생성된 3D 모델은 다른 객체 내에 배치된 객체를 표현할 수 없다. 예를 들어, 에지(130A, 130B)를 추출하고 에지(130A, 130B)를 연결하여 표면(235)을 생성함으로써, 객체(130) 내의 객체(120)는 무시된다. 따라서, 종래의 접근법을 통해 얻어진 3D 모델은 다른 객체들로 둘러싸여 있거나 둘러싸여 있는 객체를 정확하게 표현할 수 없다.However, a 3D model created through a conventional approach cannot represent objects placed within other objects. For example, by extracting the edges 130A, 130B and connecting the edges 130A, 130B to create the surface 235, the object 120 in the object 130 is ignored. Therefore, a 3D model obtained through a conventional approach cannot be accurately represented by or surrounded by other objects.

더욱이, 종래의 접근법을 통해 생성된 3D 모델은 개방된 형상을 가질 수 있다. 종래의 접근법에서, 2개의 에지가 동일한 객체의 일부가 아닌 것으로 결정되면, 2개의 에지 사이의 표면은 생략된다. 폐쇄된 표면이 없으면 구멍이 생기므로 개방된 형상이 된다. 예를 들어, 도 3에 도시된 바와 같이, 구멍 (310) 둘레의 에지가 다른 객체의 일부로 결정되기 때문에, 구멍(310A ? 310F)이 생기게 된다. 이러한 3D 모델의 구멍으로 인한 열린 형태는 객체의 내부 부분과 객체의 외부 부분을 구별 할 수 없게 한다. 이러한 열린 모양의 3D 모델에 의해 3D 인쇄가 불가능하거나 부정확하게 하는 결과가 초래된다.Moreover, 3D models created through conventional approaches can have an open shape. In the conventional approach, if it is determined that the two edges are not part of the same object, the surface between the two edges is omitted. If there is no closed surface, a hole is formed and thus becomes an open shape. For example, as shown in FIG. 3, since the edge around hole 310 is determined as part of another object, holes 310A-310F are created. The open shape due to the holes in these 3D models makes it impossible to distinguish between the inner part of the object and the outer part of the object. This open-shaped 3D model results in 3D printing being impossible or inaccurate.

본 발명은 상기한 바와 같은 문제점을 해결하기 위한 것으로, 3D 객체의 2D 단면 이미지의 각 픽셀에 기초하여 복수의 입체면 모델을 생성하고, 입체면 모델을 포함하는 객체의 3D 모델을 생성하는 가상 입체면 모델에 기초한 3차원 모델 데이터 생성 구현 방법 및 시스템을 제공한다.The present invention is to solve the above problems, and generates a plurality of three-dimensional models based on each pixel of a 2D cross-sectional image of a 3D object, a virtual three-dimensional model that generates a 3D model of the object including the three-dimensional model Provided is a method and system for implementing 3D model data generation based on a face model.

본 발명의 일 실시예에 따른 컴퓨터 구현 방법은, 3차원(3D) 객체의 복수의 2차원(2D) 단면 이미지에 기초하여 3D 모델 데이터를 생성하는 컴퓨터 구현 방법으로서, 상기 복수의 2D 단면 이미지의 제1 단면 이미지를 나타내는 제1 이미지 데이터 세트 및 상기 복수의 2D 단면 이미지의 제2 단면 이미지를 나타내는 제2 이미지 데이터 세트를 수신하는 단계와, 상기 제1 단면 이미지의 픽셀로부터 제1 픽셀 세트의 제1 2D 좌표 세트를 식별하는 단계와, 상기 제2 단면 이미지의 픽셀로부터 제2 픽셀 세트의 제2 2D 좌표 세트를 식별하는 단계와, 상기 제1 2D 좌표 세트로부터 제1 입체면 모델을 나타내는 제1 입체면 데이터 세트를 생성하는 단계와, 상기 제2 2D 좌표 세트로부터 제2 입체면 모델을 나타내는 제2 입체면 데이터 세트를 생성하는 단계, 및 상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계를 포함하고, 상기 제1 단면 이미지는 3D 축 중 하나를 따른 상기 3D 객체의 제1 위치에 대응하고, 상기 제2 단면 이미지는 상기 제1 위치에서 떨어진 상기 3D 축 중 하나를 따른 상기 3D 객체의 제2 위치에 대응하며, 상기 제1 이미지 데이터 세트 및 상기 제2 이미지 데이터 세트는 2D 좌표 및 픽셀 값을 포함한다.A computer-implemented method according to an embodiment of the present invention is a computer-implemented method for generating 3D model data based on a plurality of two-dimensional (2D) cross-sectional images of a three-dimensional (3D) object. Receiving a first image data set representing a first cross-sectional image and a second image data set representing a second cross-sectional image of the plurality of 2D cross-sectional images, and removing a first pixel set from pixels of the first cross-sectional image. Identifying a set of 1 2D coordinates, identifying a set of second 2D coordinates of a second set of pixels from pixels of the second cross-sectional image, and a first representing a first three-dimensional model from the first set of 2D coordinates Generating a three-dimensional surface data set, generating a second three-dimensional surface data set representing a second three-dimensional surface model from the second 2D coordinate set, and the first three-dimensional surface data And generating the 3D model data based on the data set and the second stereoscopic data set, wherein the first cross-sectional image corresponds to a first position of the 3D object along one of the 3D axes, and the first The two-section image corresponds to the second position of the 3D object along one of the 3D axes away from the first position, and the first image data set and the second image data set include 2D coordinates and pixel values .

상기 제1 입체면 모델의 각각은 균일한 높이를 갖고, 상기 제2 입체면 모델의 각각은 상기 균일한 높이를 가질 수 있다.Each of the first three-dimensional surface model may have a uniform height, and each of the second three-dimensional surface model may have the uniform height.

상기 균일한 높이는 상기 3D 축 중 하나를 따른 상기 제1 위치와 제2 위치 사이의 거리에 대응할 수 있다.The uniform height may correspond to the distance between the first position and the second position along one of the 3D axes.

상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계는, 상기 제1 입체면 모델 및 제2 입체면 모델 중 인접한 입체면 모델을 붙이는 단계를 포함할 수 있다.The step of generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set includes attaching an adjacent three-dimensional model among the first three-dimensional model and the second three-dimensional model. can do.

상기 제1 입체면 모델 및 제2 입체면 모델 중 인접한 입체면 모델을 붙이는 단계는, 붙은 입체면 모델의 표면의 좌표를 포함하는 표면 데이터를 생성하는 단계를 포함할 수 있다.The step of attaching adjacent three-dimensional models among the first three-dimensional model and the second three-dimensional model may include generating surface data including coordinates of surfaces of the attached three-dimensional model.

상기 붙은 입체면 모델의 표면의 각각은 2개의 삼각형으로 이루어질 수 있다.Each of the surfaces of the attached three-dimensional model may consist of two triangles.

상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계는, 상기 붙은 입체면 모델의 표면의 서로 직교하는 3개의 삼각형에 대한 공통 정점을 식별하는 단계와, 상기 공통 정점의 인접한 정점을 자신의 3개의 정점으로 갖는 새로운 삼각형을 생성하는 단계, 및 상기 공통 정점 및 상기 3개의 삼각형을 제거하는 단계를 더 포함할 수 있다.Generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set comprises: identifying common vertices for three orthogonal triangles on the surfaces of the attached three-dimensional model. And, it may further include the step of generating a new triangle having its three vertices adjacent to the common vertex, and removing the common vertex and the three triangles.

상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계는, 공통 변을 공유하는 상기 붙은 입체면 모델의 서로 직교하는 제1 삼각형 및 제2 삼각형을 식별하는 단계와, 상기 공통 변과 이격된 상기 제1 삼각형의 제1 정점과 상기 공통 변과 이격된 상기 제2 삼각형의 제2 정점과 상기 공통 변의 제1 단을 3개의 정점으로 갖는 새로운 삼각형을 생성하는 단계, 및 상기 공통 변의 제2단, 상기 제1 삼각형 및 상기 제2 삼각형을 제거하는 단계를 포함할 수 있다.The step of generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set may include first and second triangles orthogonal to each other of the attached three-dimensional model sharing a common side. Identifying, a new triangle having, as three vertices, a first vertex of the first triangle spaced apart from the common side, a second vertex of the second triangle spaced apart from the common side, and a first end of the common side as three vertices Generating, and removing the second end of the common side, the first triangle and the second triangle.

상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계는, 3개의 삼각형에 의해 공유되는 오프셋 정점을 식별하는 단계와, 상기 오프셋 정점을 상기 오프셋 정점의 인접한 정점까지 시프트시키는 단계, 및 상기 오프셋 정점을 시프트시킨 후에 중첩하는 삼각형을 제거하는 단계를 포함하고, 상기 3개의 삼각형 각각은 삼각형의 중심으로부터 상기 삼각형과 떨어진 상기 오프셋 정점의 인접한 정점까지의 거리 벡터를 갖고, 상기 3개의 삼각형의 각각의 거리 벡터는 동일한 극성을 가질 수 있다.Generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set includes: identifying an offset vertex shared by three triangles, and the offset vertex as the offset vertex. Shifting to the adjacent vertices of, and removing the overlapping triangles after shifting the offset vertices, each of the three triangles being the distance from the center of the triangle to the adjacent vertices of the offset vertices away from the triangle With a vector, each distance vector of the three triangles can have the same polarity.

상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계는, 상기 붙은 입체면 모델의, 공통 정점을 공유하고 미리 결정된 표면 방향 범위 내에서 방향이 결정된 3개의 삼각형 측면을 식별하는 단계와, 상기 공통 정점의 인접한 정점을 자신의 3개의 정점으로 갖는 새로운 삼각형을 생성하는 단계, 및 상기 공통 정정 및 상기 3개의 삼각형을 제거하는 단계를 포함할 수 있다.The step of generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set includes sharing a common vertex of the attached three-dimensional model and determining a direction within a predetermined surface direction range. And identifying three triangular sides, creating a new triangle having its three vertices adjacent to the common vertex, and removing the common correction and the three triangles.

상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계는, 상기 붙은 입체면 모델의, 서로 공통 정점 및 공통 변을 공유하고 상기 공통 정점에서 2개의 90°각도가 형성된 2개의 직각 삼각형을 식별하는 단계와, 각각의 단부가 상기 공통 정점인 복수의 변 중 최장변을 식별하는 단계와, 상기 최장변의 길이와 상기 최단변의 길이 사이의 평균을 획득하는 단계, 및 상기 공통 정점을 상기 공통 정점과 떨어진 상기 최장변의 단부쪽으로 상기 평균의 절반만큼 시프트시키는 단계를 포함할 수 있다.The step of generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set includes sharing the common vertices and common sides of the attached three-dimensional model and sharing the two Identifying two right-angled triangles having a 90 ° angle, identifying the longest side of the plurality of sides, each end being the common vertex, and obtaining an average between the length of the longest side and the length of the shortest side And shifting the common vertex by half of the average toward an end of the longest side away from the common vertex.

본 발명의 일 실시예에 따른 컴퓨터 구현 방법은, 상기 복수의 2D 단면 이미지의 제3 단면 이미지를 나타내는 제3 이미지 데이터 세트를 수신하는 단계와, 상기 제3 단면 이미지의 픽셀로부터 제3 픽셀 세트의 제3 2D 좌표 세트를 식별하는 단계, 및 상기 제3 2D 좌표 세트로부터 제3 입체면 모델을 나타내는 제3 입체면 데이터 세트를 생성하는 단계를 더 포함하고, 상기 제3 단면 이미지는 3D 축 중 하나를 따른 상기 3D 객체의 제3 위치에 대응하고, 상기 제3 단면 이미지는 3D 축 중 하나를 따른 상기 3D 객체의 제3 위치에 대응하며, 상기 3D 모델 데이터는 상기 제3 입체면 데이터 세트에 기초하여 추가로 생성될 수 있다.A computer-implemented method according to an embodiment of the present invention includes receiving a third image data set representing a third cross-sectional image of the plurality of 2D cross-sectional images, and a third pixel set from pixels of the third cross-sectional image. Identifying a third set of 2D coordinates, and generating a third set of three-dimensional surface data representing a third three-dimensional model from the third set of 2D coordinates, wherein the third cross-sectional image is one of the 3D axes. Corresponding to the third position of the 3D object along, the third cross-sectional image corresponds to the third position of the 3D object along one of the 3D axes, and the 3D model data is based on the third stereoscopic data set Can be additionally generated.

한편, 본 발명의 일 실시예에 따른 비일시적인 컴퓨터 판독가능 저장 매체는, 3D 객체의 복수의 2D 단면 이미지에 기초하여 3D 모델 데이터를 생성하기 위한 명령어를 포함하는 비일시적인 컴퓨터 판독가능 저장 매체로서, 상기 명령어는 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 상기 복수의 2D 단면 이미지의 제1 단면 이미지를 나타내는 제1 이미지 데이터 세트 및 상기 복수의 2D 단면 이미지의 제2 단면 이미지를 나타내는 제2 이미지 데이터 세트를 수신하도록 하고, 상기 제1 단면 이미지의 픽셀로부터 제1 픽셀 세트의 제1 2D 좌표 세트를 식별하도록 하고, 상기 제2 단면 이미지의 픽셀로부터 제2 픽셀 세트의 제2 2D 좌표 세트를 식별하도록 하고, 상기 제1 2D 좌표 세트로부터 제1 입체면 모델을 나타내는 제1 입체면 데이터 세트를 생성하도록 하고, 상기 제2 2D 좌표 세트로부터 제2 입체면 모델을 나타내는 제2 입체면 데이터 세트를 생성하도록 하고, 상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하도록 하고, 상기 제1 단면 이미지는 3D 축 중 하나를 따른 상기 3D 객체의 제1 위치에 대응하고, 상기 제2 단면 이미지는 상기 제1 위치에서 떨어진 상기 3D 축 중 하나를 따른 상기 3D 객체의 제2 위치에 대응하며, 상기 제1 이미지 데이터 세트 및 상기 제2 이미지 데이터 세트는 2D 좌표 및 픽셀 값을 포함한다.Meanwhile, the non-transitory computer-readable storage medium according to an embodiment of the present invention is a non-transitory computer-readable storage medium including instructions for generating 3D model data based on a plurality of 2D cross-sectional images of a 3D object, The instructions, when executed by the processor, cause the processor to: a first image data set representing a first section image of the plurality of 2D section images and a second image showing a second section image of the plurality of 2D section images To receive a data set, to identify a first set of 2D coordinates of a first set of pixels from pixels of the first cross-sectional image, and to identify a second set of 2D coordinates of a second set of pixels from pixels of the second cross-sectional image And generate a first three-dimensional data set representing the first three-dimensional model from the first 2D coordinate set. And generate a second three-dimensional data set representing a second three-dimensional model from the second 2D coordinate set, and based on the first three-dimensional data set and the second three-dimensional data set, the 3D model data And the first cross-sectional image corresponds to a first position of the 3D object along one of the 3D axes, and the second cross-sectional image is the 3D object along one of the 3D axes away from the first position. Corresponds to the second position of, the first image data set and the second image data set include 2D coordinates and pixel values.

상기 제1 입체면 모델의 각각은 균일한 높이를 갖고, 상기 제2 입체면 모델의 각각은 상기 균일한 높이를 가질 수 있다.Each of the first three-dimensional surface model may have a uniform height, and each of the second three-dimensional surface model may have the uniform height.

상기 균일한 높이는 상기 3D 축 중 하나를 따른 상기 제1 위치와 제2 위치 사이의 거리에 대응할 수 있다.The uniform height may correspond to the distance between the first position and the second position along one of the 3D axes.

상기 프로세서에 의해 실행될 때 상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하게 하는 상기 명령어는, 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 상기 제1 입체면 모델 및 제2 입체면 모델 중 인접한 입체면 모델을 붙이는 명령어를 더 포함할 수 있다.The instructions that, when executed by the processor, generate the 3D model data based on the first stereoscopic data set and the second stereoscopic data set, cause the processor to execute the first when executed by the processor. A command to attach an adjacent three-dimensional model among the three-dimensional model and the second three-dimensional model may be further included.

상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 상기 제1 입체면 모델 및 상기 제2 입체면 모델 중 인접한 입체면 모델을 붙이는 상기 명령어는, 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 붙은 입체면 모델의 표면의 좌표를 포함하는 표면 데이터를 생성하게 하는 명령어를 더 포함할 수 있다.When executed by the processor, the instruction to attach the adjacent three-dimensional model of the first three-dimensional model and the second three-dimensional model to the processor, when executed by the processor, causes the processor to attach the three-dimensional model It may further include a command to generate the surface data including the coordinates of the surface of the.

상기 붙은 입체면 모델의 표면의 각각은 2개의 삼각형으로 이루어질 수 있다.Each of the surfaces of the attached three-dimensional model may consist of two triangles.

한편, 본 발명의 일 실시예에 따른 시스템은, 3D 객체의 복수의 2D 단면 이미지에 기초하여 3D 모델 데이터를 생성하는 시스템으로서, 상기 시스템은, 프로세서와, 명령어를 포함하는 비일시적인 컴퓨터 판독가능 저장 매체를 포함하되, 상기 명령어는, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 상기 복수의 2D 단면 이미지의 제1 단면 이미지를 나타내는 제1 이미지 데이터 세트 및 상기 복수의 2D 단면 이미지의 제2 단면 이미지를 나타내는 제2 이미지 데이터 세트를 수신하게 하고, 상기 제1 단면 이미지의 픽셀로부터 제1 픽셀 세트의 제1 2D 좌표 세트를 식별하게 하고, 상기 제2 단면 이미지의 픽셀로부터 제2 픽셀 세트의 제2 2D 좌표 세트를 식별하게 하고, 상기 제1 2D 좌표 세트로부터 제1 입체면 모델을 나타내는 제1 입체면 데이터 세트를 생성하게 하고, 상기 제2 2D 좌표 세트로부터 제2 입체면 모델을 나타내는 제2 입체면 데이터 세트를 생성하게 하고, 상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하게 하며, 상기 제1 단면 이미지는 3D 축 중 하나를 따른 상기 3D 객체의 제1 위치에 대응하고, 상기 제2 단면 이미지는 상기 제1 위치에서 떨어진 상기 3D 축 중 하나를 따른 상기 3D 객체의 제2 위치에 대응하며, 상기 제1 이미지 데이터 세트 및 상기 제2 이미지 데이터 세트는 2D 좌표 및 픽셀 값을 포함한다.Meanwhile, the system according to an embodiment of the present invention is a system for generating 3D model data based on a plurality of 2D cross-sectional images of a 3D object, wherein the system includes a processor and a non-transitory computer readable storage including instructions. A medium, wherein the instructions, when executed by the processor, cause the processor to: a first image data set representing a first section image of the plurality of 2D section images and a second section of the plurality of 2D section images. Causing a second set of image data representing an image to be identified, identifying a first set of 2D coordinates of a first set of pixels from pixels of the first cross-sectional image, and removing a second set of pixels from pixels of the second cross-sectional image 2 Identify a set of 2D coordinates, and from the first set of 2D coordinates, obtain a first set of three-dimensional data representing a first three-dimensional model. A second stereoscopic data set representing a second stereoscopic model from the second 2D coordinate set, and based on the first stereoscopic data set and the second stereoscopic data set Data to be generated, the first cross-sectional image corresponds to a first position of the 3D object along one of the 3D axes, and the second cross-sectional image is the 3D along one of the 3D axes away from the first position Corresponding to the second position of the object, the first image data set and the second image data set include 2D coordinates and pixel values.

본 발명의 실시예에 따르면, 3D 객체의 2D 단면 이미지의 각 픽셀에 기초하여 복수의 입체면 모델을 생성하고, 입체면 모델을 포함하는 객체의 3D 모델을 생성함으로써, 다른 객체 내의 객체가 정확하게 표현될 수 있다. According to an embodiment of the present invention, a plurality of three-dimensional models are generated based on each pixel of a 2D cross-section image of a 3D object, and objects in other objects are accurately represented by generating a 3D model of an object including the three-dimensional model Can be.

또한, 3D 모델은 폐쇄된 형상을 가지므로, 3D 모델의 3D 인쇄가 성공적으로 수행될 수 있다.In addition, since the 3D model has a closed shape, 3D printing of the 3D model can be successfully performed.

도 1은 2D 컴퓨터 단층 촬영 스캔 이미지의 일 예를 나타낸 도면이다.
도 2a 및 도 2b는 2D 이미지에 기초하여 3D 모델을 생성하는 기존의 컴퓨터 구현 프로세스를 나타낸 도면이다.
도 3은 2D 이미지에 기초하여 3D 모델을 생성하는 기존의 컴퓨터 구현 프로세스에 따라 생성된 개방된 형상을 포함하는 3D 모델의 일 예를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른, 3D 모델 생성 시스템을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른, 2D 이미지 데이터에 기초하여 3D 모델의 전자 표현을 포함하는 3D 모델 데이터를 생성하는 컴퓨터 구현 프로세스를 나타낸 흐름도이다.
도 6은 본 발명의 일 실시예에 따른, 3D 모델의 전자 표현을 생성하는 컴퓨터 구현 프로세스를 나타낸 흐름도이다.
도 7a는 본 발명의 일 실시예에 따른, 3D 이미지의 픽셀을 3D 모델의 입체면 (solid surface) 모델로 변환하는 일 예를 나타낸 도면이다.
도 7b는 본 발명의 일 실시예에 따른, 도 1의 CT 스캔 이미지에 대응하는 3D 모델의 예시적인 단면을 나타낸 도면이다.
도 7c는 본 발명의 일 실시예에 따른, 도 7b의 3D 모델의 단면 일부의 확대도이다.
도 7d는 본 발명의 일 실시예에 따른, 픽셀에 대한 입체면 모델을 생성하는 예시적인 프로세스를 나타낸 도면이다.
도 7e는 본 발명의 일 실시예에 따른, 복수의 입체면 모델을 포함하는 예시적인 3D 모델을 나타낸 도면이다.
도 7f는 일 실시예에 따른 도 7e에 도시된 3D 모델의 일부의 확대도이다.
도 8은 본 발명의 일 실시예에 따른, 3D 모델 상에서 표면 최적화를 수행하는 컴퓨터 구현 프로세스를 나타내는 흐름도이다.
도 9는 본 발명의 일 실시예에 따른, 3개의 직교면에 의해 공유된 입체면 모델의 정점을 제거하는 컴퓨터 구현 프로세스를 나타내는 흐름도이다.
도 10a는 도 9에 도시된 컴퓨터 구현 프로세스에 따라 3개의 직교면에 의해 공유된 입체면 모델의 정점을 제거하기 전의 예시적인 3D 모델과 정점을 제거한 후의 예시적인 3D 모델을 나타낸 도면이다.
도 10b는 도 9에 도시된 컴퓨터 구현 프로세스에 따라 3개의 직교면에 의해 공유된 입체면 모델의 정점을 결정하는 예시적인 접근법을 나타낸 도면이다.
도 10c는 도 9에 도시된 컴퓨터 구현 프로세스에 따라 3개의 직교면에 의해 공유된 입체면 모델의 정점을 제거하는 예시적인 프로세스를 나타낸 도면이다.
도 11은 본 발명의 일 실시예에 따른, 3D 모델의 직교면을 합성하는 컴퓨터 구현 프로세스를 나타내는 흐름도이다.
도 12는 도 11에 도시된 컴퓨터 구현 프로세스에 따라 3D 모델의 직교면을 합성하기 전의 예시적인 3D 모델과 직교면을 합성한 후의 예시적인 3D 모델을 나타낸 도면이다.
도 13은 본 발명의 일 실시예에 따른, 3D 모델의 오프셋 정점을 트리밍하는 컴퓨터 구현 프로세스를 나타내는 흐름도이다.
도 14a는 본 발명의 일 실시예에 따른, 오프셋 정점을 갖는 예시적인 3D 모델을 나타낸 도면이다.
도 14b는 도 13에 도시된 컴퓨터 구현 프로세스에 따라 도 14a에 도시된 예시적인 3D 모델의 오프셋 정점을 결정하는 예시적인 프로세스를 나타낸 도면이다.
도 14c는 도 13에 도시된 컴퓨터 구현 프로세스에 따라 도 14a의 예시적인 3D 모델의 오프셋 정점을 제거한 후의 예시적인 표면을 나타낸 도면이다.
도 14d는 도 13에 도시된 컴퓨터 구현 프로세스에 따라 3D 모델의 오프셋 정점을 트리밍하기 전의 예시적인 3D 모델과 오프셋 정점을 트리밍한 후의 예시적인 3D 모델을 나타낸 도면이다.
도 15는 본 발명의 일 실시예에 따른, 3D 모델의 측면을 합성하는 컴퓨터 구현 프로세스를 나타내는 흐름도이다.
도 16은 도 15에 도시된 컴퓨터 구현 프로세스에 따라 3D 모델의 측면을 합성하기 전의 예시적인 3D 모델과 측면을 합성한 후의 예시적인 3D 모델을 나타낸 도면이다.
도 17은 일 실시예에 따른, 3D 모델의 변들을 밸런싱하는 컴퓨터 구현 프로세스를 나타내는 흐름도이다.
도 18은 도 17에 도시된 컴퓨터 구현 프로세스에 따라 3D 모델의 변들을 밸런싱하기 전의 예시적인 3D 모델과 변들을 밸런싱한 후의 예시적인 3D 모델을 나타낸 도면이다.
도 19a는 일 실시예에 따라 3D 모델 상에서 표면 최적화를 수행하기 전의 입체면 모델을 포함하는 예시적인 3D 모델과 표면 최적화를 수행한 후의 예시적인 3D 모델을 나타낸 도면이다.
도 19b는 일 실시예에 따라 도 7e에 도시된 입체면 모델을 포함하는 3D 모델상에서 표면 최적화를 수행한 후의 예시적인 3D 모델을 나타낸 도면이다.
도 19c는 도 19b에 도시된 예시적인 3D 모델의 일부의 확대도이다.
도 20은 일 실시예에 따라 머신 판독가능 매체로부터 명령어를 판독하고 이를 프로세서(또는 제어기)에서 실행할 수 있는 예시적인 머신(예를 들어, 컴퓨터)의 구성 요소를 나타낸 도면이다.
1 is a view showing an example of a 2D computed tomography scan image.
2A and 2B are diagrams illustrating a conventional computer-implemented process for generating a 3D model based on a 2D image.
FIG. 3 is a diagram illustrating an example of a 3D model including an open shape generated according to an existing computer-implemented process for generating a 3D model based on a 2D image.
4 is a diagram illustrating a 3D model generation system according to an embodiment of the present invention.
5 is a flowchart illustrating a computer-implemented process for generating 3D model data including an electronic representation of a 3D model based on 2D image data, according to an embodiment of the present invention.
6 is a flow diagram illustrating a computer-implemented process for generating an electronic representation of a 3D model, according to one embodiment of the invention.
7A is a diagram illustrating an example of converting a pixel of a 3D image into a solid surface model of a 3D model according to an embodiment of the present invention.
7B is a diagram illustrating an exemplary cross-section of a 3D model corresponding to the CT scan image of FIG. 1 according to an embodiment of the present invention.
7C is an enlarged view of a portion of a cross-section of the 3D model of FIG. 7B according to one embodiment of the invention.
7D is a diagram illustrating an exemplary process for generating a three-dimensional surface model for a pixel, according to one embodiment of the present invention.
7E is a diagram illustrating an exemplary 3D model including a plurality of three-dimensional models, according to an embodiment of the present invention.
7F is an enlarged view of a portion of the 3D model shown in FIG. 7E according to one embodiment.
8 is a flow diagram illustrating a computer-implemented process for performing surface optimization on a 3D model, according to one embodiment of the invention.
9 is a flow diagram illustrating a computer-implemented process for removing vertices of a three-dimensional model shared by three orthogonal surfaces, according to an embodiment of the present invention.
FIG. 10A is a diagram illustrating an exemplary 3D model before removing vertices of a three-dimensional model shared by three orthogonal planes and an exemplary 3D model after removing vertices according to the computer-implemented process illustrated in FIG. 9.
10B is a diagram illustrating an exemplary approach for determining vertices of a three-dimensional model shared by three orthogonal planes according to the computer-implemented process illustrated in FIG. 9.
10C is a diagram illustrating an exemplary process of removing vertices of a three-dimensional model shared by three orthogonal planes according to the computer-implemented process illustrated in FIG. 9.
11 is a flowchart illustrating a computer-implemented process for synthesizing orthogonal surfaces of a 3D model, according to an embodiment of the present invention.
12 is a diagram illustrating an exemplary 3D model before synthesizing an orthogonal surface of a 3D model and an exemplary 3D model after synthesizing the orthogonal surface according to the computer-implemented process illustrated in FIG. 11.
13 is a flow diagram illustrating a computer-implemented process for trimming offset vertices of a 3D model, according to one embodiment of the present invention.
14A is a diagram illustrating an exemplary 3D model with offset vertices, according to one embodiment of the present invention.
14B is a diagram illustrating an exemplary process for determining an offset vertex of the example 3D model illustrated in FIG. 14A according to the computer-implemented process illustrated in FIG. 13.
14C is a diagram illustrating an exemplary surface after removing the offset vertices of the example 3D model of FIG. 14A according to the computer implemented process shown in FIG. 13.
14D is a diagram illustrating an exemplary 3D model before trimming the offset vertices of the 3D model and an exemplary 3D model after trimming the offset vertices according to the computer-implemented process illustrated in FIG. 13.
15 is a flow diagram illustrating a computer-implemented process for synthesizing aspects of a 3D model, according to one embodiment of the present invention.
FIG. 16 is a diagram illustrating an exemplary 3D model before synthesizing aspects of a 3D model and an exemplary 3D model after synthesizing sides according to the computer-implemented process illustrated in FIG. 15.
17 is a flow diagram illustrating a computer-implemented process for balancing sides of a 3D model, according to one embodiment.
18 is a diagram illustrating an exemplary 3D model before balancing sides of a 3D model and an exemplary 3D model after balancing sides according to the computer-implemented process illustrated in FIG. 17.
19A is a diagram illustrating an exemplary 3D model including a three-dimensional model before performing surface optimization on a 3D model and an exemplary 3D model after performing surface optimization according to an embodiment.
19B is a diagram illustrating an exemplary 3D model after performing surface optimization on a 3D model including the three-dimensional model shown in FIG. 7E according to an embodiment.
19C is an enlarged view of a portion of the example 3D model shown in FIG. 19B.
20 is a diagram illustrating components of an example machine (eg, computer) capable of reading instructions from a machine-readable medium and executing them on a processor (or controller) according to one embodiment.

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

또한, 여러 실시예들에 있어서, 동일한 구성을 가지는 구성요소에 대해서는 동일한 부호를 사용하여 대표적으로 일 실시예에서 설명하고, 그 외의 실시예들에서는 일 실시예와 다른 구성에 대해서만 설명하기로 한다.In addition, in various embodiments, components having the same configuration are typically described in one embodiment by using the same reference numerals, and in other embodiments, only different configurations from one embodiment will be described.

도면들은 개략적이고 축적에 맞게 도시되지 않았다는 것을 일러둔다. 도면에 있는 부분들의 상대적인 치수 및 비율은 도면에서의 명확성 및 편의를 위해 그 크기에 있어 과장되거나 감소되어 도시되었으며, 임의의 치수는 단지 예시적인 것이지 한정적인 것은 아니다. 그리고, 둘 이상의 도면에 나타나는 동일한 구조물, 요소 또는 부품에는 동일한 참조 부호가 유사한 특징을 나타내기 위해 사용된다. 어느 부분이 다른 부분의 "위에" 또는 "상에" 있다고 언급하는 경우, 이는 바로 다른 부분의 위에 있을 수 있거나 그 사이에 다른 부분이 수반될 수도 있다.It should be noted that the drawings are schematic and not drawn to scale. The relative dimensions and proportions of the parts in the figures are shown exaggerated or reduced in size for clarity and convenience in the drawings, and any dimensions are merely illustrative and not restrictive. And, the same reference numerals are used to indicate similar features in the same structures, elements, or parts appearing in two or more drawings. When one part is said to be "on" or "on" another part, it may be directly on top of the other part or another part may be involved in between.

본 발명의 실시예는 본 발명의 한 실시예를 구체적으로 나타낸다. 그 결과, 도해의 다양한 변형이 예상된다. 따라서 실시예는 도시한 영역의 특정 형태에 국한되지 않으며, 예를 들면 제조에 의한 형태의 변형도 포함한다.The embodiments of the present invention specifically represent one embodiment of the present invention. As a result, various variations of the illustration are expected. Therefore, the embodiment is not limited to a specific form of the illustrated area, and includes, for example, modification of the form by manufacturing.

개시된 구성의 예시적인 실시예는, 3D 객체의 2D 단면 이미지의 각 픽셀에 따라 생성된 복수의 가상 입체면 모델에 기초하여 3D 객체의 가상 3D 모델(이하, "3D 모델"로 지칭됨)을 생성하는 컴퓨터 구현 방법(시스템 및 비일시적 컴퓨터 저장 판독가능 매체)을 포함한다. 입체면 모델은 6개의 서로 수직하는 면을 갖는 육면체 형태에서, 일부 면이 폐쇄되고 일부 면이 개방된 형태를 나타내는 컴퓨터화된 데이터를 갖는 컴퓨터로 생성된 가상 단위의 구성 요소이다.An exemplary embodiment of the disclosed configuration creates a virtual 3D model of a 3D object (hereinafter referred to as “3D model”) based on a plurality of virtual three-dimensional models generated according to each pixel of a 2D cross-sectional image of a 3D object. And computer-implemented methods (system and non-transitory computer storage readable media). The three-dimensional model is a component of a computer-generated virtual unit with computerized data representing a form in which six faces are closed and some faces are open in a hexahedral form having six mutually perpendicular faces.

상이한 단면 이미지는 3D 축 중 하나를 따른 3D 객체의 상이한 위치에 대응한다. 각각의 단면 이미지는 복수의 픽셀들로 분할되고, 2D 단면 이미지의 픽셀은 2D 좌표와, 3D 축 중 하나에 따른 2D 단면 이미지의 위치에 의해 식별된다. 픽셀에 해당하는 입면체 모델은 2D 좌표와, 3D 축 중 하나에 따른 2D 단면 이미지의 위치에 대응하는 가상 3D 공간 내의 위치에 생성된다.Different cross-sectional images correspond to different positions of the 3D object along one of the 3D axes. Each section image is divided into a plurality of pixels, and the pixels of the 2D section image are identified by 2D coordinates and the position of the 2D section image along one of the 3D axes. A cube model corresponding to a pixel is generated at a position in a virtual 3D space corresponding to a 2D coordinate and a position of a 2D cross-sectional image along one of the 3D axes.

각 입체면 모델이 2D 단면 이미지의 각 픽셀에 대응하는 복수의 입체면 모델을 포함하는 3D 객체의 3D 모델을 생성함으로써, 다른 객체 내의 객체가 정확하게 표현될 수 있다. 또한, 3D 모델은 폐쇄된 형상을 가지므로, 3D 모델의 3D 인쇄가 성공적으로 수행될 수 있다.By generating a 3D model of a 3D object in which each three-dimensional model includes a plurality of three-dimensional models corresponding to each pixel of a 2D cross-sectional image, objects in other objects can be accurately represented. In addition, since the 3D model has a closed shape, 3D printing of the 3D model can be successfully performed.

일 실시예에서, 3D 모델은 전자적으로 저장되거나 전달될 수 있는 3D 모델 데이터로 표현된다. 본 명세서에서 3D 모델 데이터는 폐쇄된 형상을 갖는 3D 모델의 전자 표현을 나타낸다. 3D 모델 데이터는 3D 모델의 구성 요소(예를 들어, 정점, 변, 표면 또는 이들의 임의의 조합)의 구조적 구성(예를 들어, 위치, 형상, 크기, 색상 등)을 나타낸다. 3D 모델 데이터는 3D 모델의 시각적 표현을 생성하는 컴퓨팅 시스템에 의해 검색되거나, 3D 모델의 유형의 물리적 표현을 생성하는 3D 인쇄 머신에 인가될 수 있다.In one embodiment, the 3D model is represented as 3D model data that can be stored or delivered electronically. In the present specification, 3D model data represents an electronic representation of a 3D model having a closed shape. The 3D model data represents the structural composition (eg, location, shape, size, color, etc.) of the components of the 3D model (eg, vertices, sides, surfaces, or any combination thereof). The 3D model data can be retrieved by a computing system that generates a visual representation of the 3D model, or applied to a 3D printing machine that produces a physical representation of the type of 3D model.

도 4는 본 발명의 일 실시예에 따른, 3D 모델 생성 시스템을 나타낸 도면이다. 도 4를 참조하면, 3D 모델 생성 시스템(420, 이하 '시스템'이라 함)은 3D 객체의 2D 이미지 데이터(410)를 수신하여 객체의 3D 모델(480)을 생성한다. 시스템(420)은 2D 이미지 데이터(410)에 기초하여 가상 3D 모델(480)을 생성하고, 3D 모델의 3D 모델 데이터(즉, 전자 표현)를 저장한다.4 is a diagram illustrating a 3D model generation system according to an embodiment of the present invention. Referring to FIG. 4, the 3D model generation system 420 (hereinafter referred to as “system”) receives 2D image data 410 of a 3D object to generate a 3D model 480 of the object. The system 420 generates a virtual 3D model 480 based on the 2D image data 410 and stores 3D model data (ie, electronic representation) of the 3D model.

2D 이미지 데이터(410)는 2D 단면 이미지(예를 들어, CT 스캔 이미지, MRI 스캔 이미지 등)의 전자적 컴퓨터화된 표현이다. 2D 이미지 데이터(410)는 "2D 이미지 파일"이라고도 한다. 2D 이미지의 2D 이미지 파일은 2D 이미지의 각 픽셀에 대해 픽셀을 식별하는 2D 좌표와 픽셀의 픽셀 값(예를 들어, 색상 값)을 포함한다. 픽셀 값은 2D 좌표로 식별되는 픽셀의 색상을 나타낸다. 픽셀 값은 임의의 컬러 공간 형식(예를 들어, RGB, YCbCr 등)으로 표현될 수 있다. 일 실시예에서, 2D 이미지는 3D 객체의 단면 이미지이며, 각 2D 이미지는 각각의 2D 이미지 파일에 대응한다. 각각의 2D 이미지는 바람직하게는 균일한 거리로 2D 이미지와 직교하는 3D 이미지의 축을 따라 다른 2D 이미지와 분리된다. 다시 말해서, 2D 이미지 데이터(410)는 3D 객체의 다수의 단면을 나타내며, 각각의 단면은 축을 따라 3D 객체의 상이한 깊이에 있다. 예를 들어, 인간의 두개골은 3D 객체의 수십 또는 수백 개의 2D 단면 이미지(예를 들어, CT 스캔 이미지 또는 MRI 스캔 이미지)로 특정 거리로 분리되어 표시될 수 있다. 2D 단면 이미지의 각각은 2D 단면 이미지의 해상도에 따라 매우 많은 수의 픽셀, 예를 들어 수십만 개 또는 수백만 개, 경우에 따라 더 많은 픽셀을 포함한다. 본 실시예에 따른 2D 이미지에서 3D 모델로의 변환은 컴퓨터화된 이미지 데이터의 매우 많은 계산을 필요로 하므로, 3D 모델 생성 시스템은 컴퓨터화된 시스템으로서 구현되어야 한다.The 2D image data 410 is an electronic computerized representation of a 2D cross-sectional image (eg, CT scan image, MRI scan image, etc.). The 2D image data 410 is also referred to as “2D image file”. A 2D image file of a 2D image contains 2D coordinates that identify the pixel for each pixel of the 2D image and the pixel value of the pixel (eg color value). The pixel value represents the color of a pixel identified by 2D coordinates. The pixel values can be expressed in any color space format (eg, RGB, YCbCr, etc.). In one embodiment, the 2D image is a cross-sectional image of a 3D object, each 2D image corresponding to a respective 2D image file. Each 2D image is preferably separated from other 2D images along the axis of the 3D image orthogonal to the 2D image at a uniform distance. In other words, 2D image data 410 represents multiple cross sections of a 3D object, each cross section being at a different depth of the 3D object along the axis. For example, the human skull may be displayed by being separated by a certain distance with tens or hundreds of 2D cross-sectional images (eg, CT scan images or MRI scan images) of 3D objects. Each of the 2D cross-sectional images contains a very large number of pixels, for example hundreds of thousands or millions of pixels, depending on the resolution of the 2D cross-sectional image. Since the conversion from the 2D image to the 3D model according to the present embodiment requires a lot of computation of computerized image data, the 3D model generation system should be implemented as a computerized system.

시스템(420)은 3D 모델 데이터를 생성하는 컴퓨팅 장치이다. 일 실시예에서, 시스템(420)은 2D 이미지-3D 모델 변환 모듈(430)(여기서, "변환 모듈(430)"이라고도 함), 표면 최적화 모듈(440), 프로세서(450) 및 2D 이미지 데이터(410) 또는 3D 모델 데이터와 같은 컴퓨터화된 데이터를 저장하는 저장소(460)를 포함한다. 다른 실시예에서, 시스템(420)은 도 4에 도시된 것보다 많거나 적은 수의 구성 요소를 포함할 수 있다. 예를 들어, 시스템(420)은 아래 도 20을 참조하여 상세히 기술되는 바와 같은 추가 구성 요소를 포함할 수 있다.System 420 is a computing device that generates 3D model data. In one embodiment, the system 420 includes a 2D image to 3D model conversion module 430 (herein also referred to as a “conversion module 430”), a surface optimization module 440, a processor 450, and 2D image data ( 410) or storage 460 for storing computerized data such as 3D model data. In other embodiments, system 420 may include more or fewer components than those shown in FIG. 4. For example, system 420 may include additional components as described in detail with reference to FIG. 20 below.

변환 모듈(430)은 2D 이미지 파일에 기초하여 3D 모델 데이터를 생성한다. 일 실시예에서, 변환 모듈(430)은 2D 이미지 파일에서 식별된 좌표 및 픽셀 값에 따른 입체면 모델을 포함하는 3D 모델을 생성한다. 변환 모듈(430)은 미리 결정된 픽셀 값 범위 내의 픽셀 값을 갖는 픽셀을 식별하고, 각 2D 이미지 파일에 대해 식별된 픽셀에 대한 입체면 모델을 생성한다. 예를 들어, 변환 모듈(430)은 2D 이미지 파일에 표현된 3D 객체(예를 들어, 뼈)를 식별하기 위해, 인간의 뼈를 나타내는 특정 픽셀 색상 범위 내의 픽셀 값을 갖는 픽셀을 식별할 수 있다. 각 입체면 모델은 해당 픽셀과 연관되며 해당 픽셀의 좌표에 해당하는 위치에 생성된다. 일 실시예에서, 입체면 모델의 폭 및 길이는 픽셀의 폭 및 길이에 대응하고, 입체면 모델의 높이는 2D 이미지에 직교하는 축을 따른 2개의 2D 이미지들의 대응하는 위치들 사이의 이격 거리에 대응한다. 따라서, 서로 다른 2D 이미지의 입체면 모델을 쌓아 3D 모델을 만들 수 있다. 2D 이미지에 기초하여 3D 모델을 생성하는 예시적인 단계는 도 6 및 도 7a 내지 도 7f와 관련하여 상세히 설명한다. 변환 모듈(430)은 입체면 모델을 포함하는 3D 모델의 구조적 구성을 기술한 3D 모델 데이터를 생성하여 저장소(460)에 저장한다. 일 실시예에서, 변환 모듈(430)은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로서 구현된다.The conversion module 430 generates 3D model data based on the 2D image file. In one embodiment, the transformation module 430 generates a 3D model including a three-dimensional model according to the coordinates and pixel values identified in the 2D image file. The transformation module 430 identifies pixels having pixel values within a predetermined range of pixel values, and generates a three-dimensional model of the identified pixels for each 2D image file. For example, the transformation module 430 may identify pixels having pixel values within a specific pixel color range representing human bones, to identify 3D objects (eg, bones) represented in a 2D image file. . Each three-dimensional model is associated with a corresponding pixel and is generated at a position corresponding to the coordinates of the corresponding pixel. In one embodiment, the width and length of the three-dimensional model corresponds to the width and length of the pixel, and the height of the three-dimensional model corresponds to the separation distance between corresponding positions of two 2D images along an axis orthogonal to the 2D image. . Therefore, it is possible to make a 3D model by stacking three-dimensional models of different 2D images. Exemplary steps for generating a 3D model based on a 2D image will be described in detail with respect to FIGS. 6 and 7A-7F. The transformation module 430 generates 3D model data describing the structural configuration of the 3D model including the three-dimensional model and stores it in the storage 460. In one embodiment, conversion module 430 is implemented as hardware, software, firmware, or a combination thereof.

표면 최적화 모듈(440)은 변환 모듈(430)에서 생성된 3D 모델 데이터를 획득하고, 3D 모델 데이터의 3D 모델의 가상 표면을 매끄럽게 하는 동작을 자동으로 수행한다. 돌출된 또는 오목한 정점을 갖는 입체면 모델을 포함하는 3D 모델은 부자연스럽거나 현실적이지 않을 수 있다. 표면 최적화 모듈(440)은 3D 모델 데이터를 수정하여 3D 모델의 표면을 병합, 재배치, 제거 또는 크기 변경한다. 일 실시예에서, 입체면 모델의 각 표면은 삼각형으로 표현되고 삼각형을 수정하거나 변형하여 3D 모델의 표면을 매끄럽게 할 수 있다. 3D 모델 데이터의 표면을 매끄럽게 하는 예시적인 단계는 도 8 및 도 19와 관련하여 아래에 상세하게 설명된다. 표면 최적화 모듈(440)은 3D 모델의 표면을 매끄럽게 하고, 매끄러워진 표면을 갖는 3D 모델의 구조적 구성을 갖는 수정된 3D 모델 데이터를 저장소(460)에 저장한다. 일 실시예에서, 표면 최적화 모듈(440)은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로서 구현된다.The surface optimization module 440 automatically acquires the 3D model data generated by the transformation module 430 and smooths the virtual surface of the 3D model of the 3D model data. 3D models, including three-dimensional models with raised or concave vertices, may not be unnatural or realistic. The surface optimization module 440 modifies the 3D model data to merge, rearrange, remove, or resize the surface of the 3D model. In one embodiment, each surface of the three-dimensional model is represented by a triangle and the surface of the 3D model can be smoothed by modifying or modifying the triangle. Exemplary steps for smoothing the surface of 3D model data are described in detail below with respect to FIGS. 8 and 19. The surface optimization module 440 smooths the surface of the 3D model, and stores the modified 3D model data having the structural configuration of the 3D model having the smoothed surface in the storage 460. In one embodiment, the surface optimization module 440 is implemented as hardware, software, firmware, or a combination thereof.

프로세서(450)는 명령어를 실행하는 처리 유닛이며, 범용 컴퓨터 프로세서들을 포함할 수 있다. 몇몇 실시예에서, 프로세서(450)는 재구성 가능한 하드웨어(예를 들어, 필드 프로그램가능 게이트 어레이(FPGA)) 또는 하나 이상의 주문형 집적 회로(ASICs) 상에서 구현될 수 있다. 프로세서(450)는 여기에 개시된 시스템(420)의 기능을 수행하기 위한 명령어를 실행한다. 일 실시예에서, 프로세서(450)는 다수의 처리 유닛을 포함하고, 다수의 명령어는 병렬로 실행될 수 있다.The processor 450 is a processing unit that executes instructions, and may include general purpose computer processors. In some embodiments, the processor 450 may be implemented on reconfigurable hardware (eg, field programmable gate array (FPGA)) or one or more application specific integrated circuits (ASICs). The processor 450 executes instructions for performing the functions of the system 420 disclosed herein. In one embodiment, processor 450 includes multiple processing units, and multiple instructions can be executed in parallel.

저장소(460)는 데이터를 저장하는 전자 저장 구성 요소이다. 일 실시예에서, 저장소(460)는 시스템(420)의 소프트웨어 모듈(예를 들어, 변환 모듈(430) 및/또는 표면 최적화 모듈(440))의 기능을 수행하기 위한 명령어를 저장한다. 또한, 시스템(420)은 2D 이미지 데이터(410), 3D 모델 데이터 등을 포함할 수 있다. 저장된 데이터는 시스템(420)의 모듈 또는 도 4에 도시되지 않은 다른 구성 요소에 의해 액세스될 수 있다. 예를 들어, 출력 디스플레이 모듈(미도시)은 3D 모델 데이터를 획득하고 3D 모델의 가상 표현을 렌더링한다. 다른 예에서, 3D 프린터는 3D 모델 데이터를 획득하고 3D 모델의 유형, 물리적 표현을 생성한다.Storage 460 is an electronic storage component that stores data. In one embodiment, storage 460 stores instructions for performing the functions of software modules of system 420 (eg, conversion module 430 and / or surface optimization module 440). In addition, the system 420 may include 2D image data 410, 3D model data, and the like. The stored data can be accessed by modules of system 420 or other components not shown in FIG. 4. For example, an output display module (not shown) acquires 3D model data and renders a virtual representation of the 3D model. In another example, a 3D printer acquires 3D model data and generates a physical representation of the type of 3D model.

도 5는 본 발명의 일 실시예에 따른, 2D 이미지 데이터에 기초하여 3D 모델의 전자 표현을 포함하는 3D 모델 데이터를 생성하는 컴퓨터 구현 프로세스를 나타낸 흐름도이다. 일 실시예에서, 도 5의 단계는 도 4의 시스템(420)에 의해 수행된다. 다른 실시예에서 시스템은 일부 또는 모든 단계를 수행할 수 있다. 마찬가지로, 실시예는 상이한 단계 및/또는 추가 단계를 포함할 수 있거나 상이한 순서로 단계를 수행할 수도 있다.5 is a flowchart illustrating a computer-implemented process for generating 3D model data including an electronic representation of a 3D model based on 2D image data, according to an embodiment of the present invention. In one embodiment, the step of FIG. 5 is performed by the system 420 of FIG. 4. In other embodiments, the system may perform some or all of the steps. Likewise, an embodiment may include different steps and / or additional steps, or may perform steps in different orders.

시스템(420)은 2D 이미지 데이터를 획득한다(단계 510). 2D 이미지 데이터는 3D 객체의 2D 단면 이미지의 전자 표현이다.System 420 acquires 2D image data (step 510). 2D image data is an electronic representation of a 2D cross-sectional image of a 3D object.

시스템(420)은 픽셀 값인 사용자 입력 선택을 수신한다(단계 515). 일 실시예에서, 시스템(420)은 사용자에게 2D 단면 이미지 중 하나를 시각적으로 제공하고, 사용자는 관심있는 픽셀 값을 선택할 수 있다. 일 실시예에서, 사용자는 단일 픽셀 값을 선택할 수 있고, 시스템(420)은 선택된 픽셀 값으로부터 픽셀 값의 범위를 식별한다. 사용자는 다수의 픽셀 값 또는 다수의 픽셀 값 범위를 선택할 수 있다. 다른 실시예에서, 사용자는 관심 대상으로 제시된 2D 단면 이미지 상에서 구성 요소(예를 들어, 도 1의 치아)를 선택한다. 이 실시예에서, 사용자의 구성 요소 선택은 선택된 구성 요소에 대응하는 픽셀의 2D 좌표에 의해 식별된다. 시스템(420)은 2D 좌표에 의해 식별된 선택된 구성 요소의 픽셀 값 또는 픽셀 값의 범위를 식별한다. 사용자는 다수의 구성 요소를 선택할 수 있고, 시스템(420)은 2D 좌표에 의해 식별 된 선택된 구성 요소에 대응하는 다수의 픽셀 값 또는 다수의 픽셀 값 범위를 식별한다.System 420 receives a user input selection that is a pixel value (step 515). In one embodiment, system 420 visually provides one of the 2D cross-section images to the user, and the user can select the pixel value of interest. In one embodiment, the user can select a single pixel value, and system 420 identifies a range of pixel values from the selected pixel value. The user can select multiple pixel values or multiple pixel value ranges. In another embodiment, a user selects a component (eg, the tooth in FIG. 1) on a 2D cross-sectional image presented as an object of interest. In this embodiment, the user's component selection is identified by the 2D coordinates of the pixel corresponding to the selected component. System 420 identifies the pixel value or range of pixel values of the selected component identified by the 2D coordinates. The user can select multiple components, and the system 420 identifies multiple pixel values or multiple pixel value ranges corresponding to selected components identified by 2D coordinates.

시스템(420)은 입체면 모델을 포함하는 3D 모델을 생성한다(단계 520). 특히, 시스템(420)은 미리 결정된 픽셀 값 범위 내의 픽셀 값을 갖는 픽셀을 식별하고, 각 2D 이미지 파일에 대해 식별된 픽셀에 대한 입체면 모델을 생성한다. 예를 들어, 변환 모듈(430)은 2D 이미지 파일에서 표현된 3D 객체(예를 들어, 뼈)를 식별하기 위해, 인간의 뼈를 나타내는 특정 픽셀 색상 범위 내의 픽셀 값을 갖는 픽셀들을 식별할 수 있고, 3D 모델을 생성할 수 있다. 각각의 입체면 모델은 대응하는 픽셀의 좌표 및 직교 축을 따른 2D 이미지의 위치에 따라 배치된다. 따라서, 입체면 모델은 폐쇄된 형상을 갖는 3D 모델을 형성하도록 적층될 수 있다.System 420 generates a 3D model that includes a three-dimensional model (step 520). In particular, system 420 identifies pixels with pixel values within a predetermined range of pixel values, and generates a three-dimensional model of the identified pixels for each 2D image file. For example, the transformation module 430 may identify pixels having a pixel value within a specific pixel color range representing a human bone, to identify a 3D object (eg, bone) represented in a 2D image file, , 3D models can be created. Each three-dimensional model is arranged according to the coordinates of the corresponding pixel and the position of the 2D image along the orthogonal axis. Thus, the three-dimensional model can be stacked to form a 3D model with a closed shape.

시스템(420)은 표면 최적화를 수행한다(단계 530). 일 실시예에서, 시스템(420)은 입체면 모델을 포함하는 3D 모델의 표면을 자동으로 매끄럽게 하기 위해 표면 최적화를 수행한다.System 420 performs surface optimization (step 530). In one embodiment, system 420 performs surface optimization to automatically smooth the surface of the 3D model, including the three-dimensional model.

시스템(420)은 출력 3D 모델 데이터를 생성한다(단계 540). 일 실시예에서, 시스템(420)은 수정된 3D 모델의 3D 모델 데이터를 출력 3D 모델 데이터로서 생성한다. 출력 3D 모델 데이터는 3D 모델의 시각적 표현을 제공하도록 컴퓨팅 머신에 의해 처리되거나, 3D 모델의 물리적 표현을 생성하도록 3D 인쇄 머신에 의해 처리될 수 있다.System 420 generates output 3D model data (step 540). In one embodiment, system 420 generates 3D model data of the modified 3D model as output 3D model data. The output 3D model data can be processed by a computing machine to provide a visual representation of the 3D model, or can be processed by a 3D printing machine to generate a physical representation of the 3D model.

도 6은 본 발명의 일 실시예에 따른, 3D 모델의 전자 표현을 생성하는 컴퓨터 구현 프로세스를 나타낸 흐름도이다. 일 실시예에서, 도 6의 단계는 도 5의 단계 520의 일부이다. 따라서, 도 6의 단계는 도 4의 시스템(420)(예를 들어, 변환 모듈(430))에 의해 수행된다. 다른 실시예에서는 시스템은 일부 또는 모든 단계를 수행할 수 있다. 마찬가지로, 실시예는 상이한 단계 및/또는 추가 단계를 포함할 수 있거나 상이한 순서로 단계를 수행할 수도 있다.6 is a flow diagram illustrating a computer-implemented process for generating an electronic representation of a 3D model, according to one embodiment of the invention. In one embodiment, the step of FIG. 6 is part of step 520 of FIG. 5. Accordingly, the step of FIG. 6 is performed by the system 420 of FIG. 4 (eg, conversion module 430). In other embodiments, the system may perform some or all steps. Likewise, an embodiment may include different steps and / or additional steps, or may perform steps in different orders.

시스템(420)은 가상 3D 공간(이하, "3D 공간"이라고도 함)을 생성한다(단계 610). 3D 공간은 가상 3D 모델을 생성할 수 있는 컴퓨터화된 그래픽 시스템의 가상공간이다. 시스템(420)은 2D 이미지를 수신하고, 각 2D 이미지 및 다수의 2D 이미지에서 픽셀의 수를 결정한다. 시스템(420)은 적어도 2D 이미지 내의 총 픽셀 수 및 대부분의 경우 더 많은 픽셀 수를 포함할 수 있는 가상공간을 생성한다. 또한, 시스템(420)은 2D 이미지의 2D 좌표를 3D 공간의 대응하는 3D 좌표로 매핑한다. 예를 들어, 세 번째 2D 이미지의 2D 좌표(x, y)로 식별되는 픽셀은 3D 좌표(x, y, z)로 매핑될 수 있는데, 여기서, z는 2D 이미지가 3D 객체의 축을 따라 존재하는 깊이를 나타내고, x 및 y는 2D 이미지의 픽셀의 2D 좌표이다. 시스템(420)은 본 명세서의 실시예에 따라 3D 모델 데이터를 생성하기 위해 다수의 세트의 2D 이미지를 수신하므로, 각 2D 이미지의 픽셀은, 픽셀이 어느 2D 이미지에 속하는지에 따라 상이한 z 좌표 데이터를 가질 수 있다. 예를 들어, (x, y) 2D 위치에서의 하나의 단면 이미지 내의 픽셀은 3D 좌표(x, y, z1)를 가질 수 있고, 동일한 (x, y) 2D 위치이나 3D 객체의 축을 따라서는 상이한 깊이인 곳에서의 다른 단면 이미지 내의 다른 픽셀은 3D 좌표(x, y, z2)를 가질 수 있다. 따라서, 픽셀에 대응하는 입체면 모델은 픽셀의 2D 좌표에 대응하는 3D 좌표로 생성될 수 있다.The system 420 creates a virtual 3D space (hereinafter also referred to as "3D space") (step 610). 3D space is a virtual space of a computerized graphics system capable of generating a virtual 3D model. System 420 receives a 2D image and determines the number of pixels in each 2D image and multiple 2D images. The system 420 creates a virtual space that may include at least the total number of pixels in the 2D image and in most cases more pixels. In addition, the system 420 maps the 2D coordinates of the 2D image to the corresponding 3D coordinates of the 3D space. For example, a pixel identified by 2D coordinates (x, y) of the third 2D image may be mapped to 3D coordinates (x, y, z), where z is a 2D image along the axis of the 3D object. Depth, x and y are the 2D coordinates of the pixel of the 2D image. Since the system 420 receives multiple sets of 2D images to generate 3D model data according to embodiments herein, pixels of each 2D image may have different z coordinate data depending on which 2D image the pixel belongs to. Can have For example, a pixel in one cross-sectional image at (x, y) 2D position can have 3D coordinates (x, y, z1), and are different along the axis of the same (x, y) 2D position or 3D object. Different pixels in different cross-sectional images at depths may have 3D coordinates (x, y, z2). Accordingly, the three-dimensional surface model corresponding to the pixel may be generated in 3D coordinates corresponding to the 2D coordinates of the pixel.

시스템(420)은 3D 객체의 다수의 세트의 2D 단면 이미지 중에서 2D 이미지를 선택한다(단계 620). 일 실시예에서, 시스템(420)은 2D 이미지에 직교하는 축을 따라서 그 위치에 해당하는 2D 이미지를 선택한다. 예를 들어, 직교 축의 한 단부(예를 들어, 하부)에 위치한 2D 이미지가 먼저 선택되고, 이어서, 직교 축의 다른 깊이에서 다른 단부(예를 들어, 상부)를 향한 후속 2D 이미지가 선택된다.System 420 selects a 2D image from a plurality of sets of 2D cross-sectional images of the 3D object (step 620). In one embodiment, system 420 selects a 2D image corresponding to its location along an axis orthogonal to the 2D image. For example, a 2D image located at one end (eg, bottom) of the orthogonal axis is first selected, followed by a subsequent 2D image directed to the other end (eg, top) at different depths of the orthogonal axis.

시스템(420)은 목표 픽셀 값을 가진 픽셀을 선택한다(단계 630). 특히, 시스템(420)은 미리 결정된 픽셀 값 범위 내의 픽셀 값을 갖는 픽셀을 식별한다. 일 실시예에서, 미리 결정된 픽셀 값 범위는 시스템(420)의 사용자에 의해 정의되거나 시스템(420)에 의해 미리 정의된다. 시스템(420)은 식별된 픽셀로부터 픽셀을 선택한다.System 420 selects a pixel with a target pixel value (step 630). In particular, system 420 identifies pixels having pixel values within a predetermined range of pixel values. In one embodiment, a predetermined range of pixel values is defined by a user of system 420 or predefined by system 420. System 420 selects a pixel from the identified pixel.

시스템(420)은 선택된 픽셀의 픽셀 값을 인접한 픽셀의 픽셀 값과 비교한다(단계 640). 인접한 픽셀은 동일한 2D 이미지 내의 픽셀 및 상이한 2D 이미지(예를 들어, 선택된 픽셀의 위/아래) 내의 픽셀을 포함한다. 특히, 시스템(420)은 각각의 인접한 픽셀에 대해, 인접한 픽셀이 미리 결정된 픽셀 값 범위 내의 픽셀 값을 갖는지 여부를 비교한다. 예를 들어, 미리 결정된 픽셀 값 범위는 인간의 3D 객체의 뼈를 나타내는 픽셀 값(컬러 값)에 대응할 수 있다.The system 420 compares the pixel values of the selected pixels to the pixel values of adjacent pixels (step 640). Adjacent pixels include pixels within the same 2D image and pixels within different 2D images (eg, above / below selected pixels). In particular, the system 420 compares, for each adjacent pixel, whether the adjacent pixel has a pixel value within a predetermined range of pixel values. For example, a predetermined range of pixel values may correspond to pixel values (color values) representing bones of a human 3D object.

시스템(420)은 픽셀 값의 비교에 기초하여 입체면 모델의 표면을 생성한다(단계 650). 일 실시예에서, 일 방향에 위치한 인접한 픽셀이 미리 결정된 픽셀 값 범위를 벗어난 픽셀 값을 갖는다고 결정되면, 시스템(420)은 일 방향으로 향하는 입체면 모델의 표면을 폐쇄된 표면으로 결정한다. 입체면 모델의 폐쇄된 표면은 3D 모델의 표면의 일부가 되어 3D 모델의 내부와 외부를 구별한다. 일 실시예에서, 폐쇄된 표면은 선택된 픽셀의 픽셀 값 또는 미리 결정된 픽셀 값 범위의 평균에 대응하는 컬러를 갖는다. 일 실시예에서, 다른 방향에 위치한 인접한 픽셀이 미리 결정된 픽셀 값 범위 내의 픽셀 값을 갖는다고 결정되면, 시스템(420)은 다른 방향으로 향하는 입체면 모델의 표면을 개방된 표면으로 결정한다. 이 때, 개방된 표면은 두개의 입체면 모델이 서로 붙어서 개방된 표면을 공유하고 있음을 나타낸다. 붙은 입체면 모델은 계산 효율성을 향상시키기 위해 단일 입체면 모델로 처리된다. System 420 creates a surface of the three-dimensional model based on the comparison of pixel values (step 650). In one embodiment, if it is determined that adjacent pixels located in one direction have a pixel value outside a predetermined range of pixel values, system 420 determines the surface of the three-dimensional model facing in one direction as a closed surface. The closed surface of the three-dimensional model becomes part of the surface of the 3D model to distinguish the inside and outside of the 3D model. In one embodiment, the closed surface has a color corresponding to a pixel value of a selected pixel or an average of a range of predetermined pixel values. In one embodiment, if it is determined that adjacent pixels located in different directions have pixel values within a predetermined range of pixel values, system 420 determines the surface of the three-dimensional model facing in the other direction as an open surface. At this time, the open surface indicates that the two-dimensional models are attached to each other and share the open surface. The attached three-dimensional model is treated as a single three-dimensional model to improve computational efficiency.

시스템(420)은 폐쇄된 표면의 정점의 위치와 폐쇄된 표면의 색을 나타내는 입체면 데이터를 생성한다. 일 실시예에서, 입체면 모델의 각 폐쇄된 표면은 2개의 삼각형으로 분할되고, 시스템(420)은 각 삼각형의 정점의 위치를 포함하는 입체면 데이터를 저장한다. 입체면 모델의 표면을 2개의 삼각형으로 분할함으로써, 표면 최적화를 수행하여 입체면 모델의 직사각형 표면 또는 정사각형 표면을 하나 이상의 삼각형을 포함한 임의의 다각형으로 수정할 수 있다.System 420 generates solid surface data indicating the location of the vertices of the closed surface and the color of the closed surface. In one embodiment, each closed surface of the three-dimensional model is divided into two triangles, and the system 420 stores three-dimensional data including the location of the vertices of each triangle. By dividing the surface of the three-dimensional model into two triangles, surface optimization can be performed to correct the rectangular surface or square surface of the three-dimensional model to any polygon including one or more triangles.

시스템(420)은 입체면 모델이 미리 결정된 픽셀 값 범위 내의 픽셀 값을 갖는 2D 이미지의 추가 픽셀에 대해 생성될 필요가 있는지를 결정한다(단계 660). 2D 이미지에 대해 추가 입체면 모델이 생성되어야 한다고 결정되면, 시스템(420)은 단계 630으로 진행하여 다른 픽셀을 선택하고 단계 640 내지 단계 650을 반복한다. 모든 입체면 모델이 2D 이미지에 대해 생성되었다고 결정되면, 시스템(420)은 추가 2D 이미지가 존재하는지를 결정한다(단계 670). 추가 2D 이미지가 존재하면, 시스템(420)은 단계 620으로 진행하여 다음 2D 이미지(예를 들어, 직교 축의 다른 끝단을 향한 후속 이미지)를 선택하고 단계 630 내지 660을 반복한다.System 420 determines whether a three-dimensional model needs to be generated for additional pixels of a 2D image having pixel values within a predetermined range of pixel values (step 660). If it is determined that an additional stereoscopic model should be generated for the 2D image, the system 420 proceeds to step 630 to select another pixel and repeats steps 640 to 650. If it is determined that all stereoscopic models have been generated for the 2D image, the system 420 determines if there are additional 2D images (step 670). If additional 2D images are present, the system 420 proceeds to step 620 to select the next 2D image (eg, a subsequent image towards the other end of the orthogonal axis) and repeat steps 630-660.

모든 2D 이미지를 처리한 후, 3D 모델이 입체면 모델에 기초하여 생성된다(단계 680). 3D 모델은 3D 공간에서 3D 좌표에 따라 적층된 입체면 모델 집합이다. 3D 모델의 표면은 입체면 모델의 폐쇄된 표면으로 표현된다. 시스템(420)은 입체면 데이터를 포함하는 3D 모델 데이터를 생성한다.After processing all 2D images, a 3D model is generated based on the three-dimensional model (step 680). A 3D model is a set of three-dimensional model stacked in 3D space according to 3D coordinates. The surface of the 3D model is represented by the closed surface of the three-dimensional model. The system 420 generates 3D model data including stereoscopic data.

도 7a는 본 발명의 일 실시예에 따른, 3D 이미지의 픽셀을 3D 모델의 입체면 (solid surface) 모델로 변환하는 일 예를 나타낸 도면이다. 도 7a는 일 실시예에 따라, 가상 입체면 모델을 포함하는 가상 3D 모델(722) 로의 2D 이미지(710)의 픽셀의 예시적인 변환을 도시한다. 시스템(420)은 2D 단면 이미지의 컴퓨터화된 표현인 2D 이미지 데이터(또는, 2D 이미지 파일)를 수신하고 3D 모델의 전자 표현인 3D 모델 데이터를 생성한다. 2D 이미지(710)는 3D 객체의 단면 이미지이며, 각각의 2D 이미지는 2D 이미지(710)에 직교하는 축(700)을 따라 다른 2D 이미지로부터 분리된다. 각각의 2D 이미지는 픽셀(712)로 분할되고, 각 픽셀은 (행(716) 및 열(714)에 의한) 2D 좌표에 의해 식별된다. 예를 들어, 고해상도 2D 이미지는 1080x720 픽셀(이미지 당 700,000 픽셀 이상)을 포함한다. 직교 축(700)을 따른 2D 이미지(710)의 위치는 2D 이미지(710)의 픽셀이 다른 차원을 이용하여 식별될 수 있게 한다.7A is a diagram illustrating an example of converting a pixel of a 3D image into a solid surface model of a 3D model according to an embodiment of the present invention. 7A shows an exemplary transformation of a pixel of a 2D image 710 into a virtual 3D model 722 that includes a virtual three-dimensional model, according to one embodiment. The system 420 receives 2D image data (or 2D image files) that is a computerized representation of a 2D cross-section image and generates 3D model data that is an electronic representation of the 3D model. The 2D image 710 is a cross-sectional image of a 3D object, and each 2D image is separated from other 2D images along an axis 700 orthogonal to the 2D image 710. Each 2D image is divided into pixels 712, and each pixel is identified by 2D coordinates (by row 716 and column 714). For example, a high resolution 2D image includes 1080x720 pixels (over 700,000 pixels per image). The location of the 2D image 710 along the orthogonal axis 700 allows the pixels of the 2D image 710 to be identified using different dimensions.

시스템은 입체면 모델을 포함하는 3D 모델(722)을 3D 공간(720)에 생성하는데, 여기서, 각각의 입체면 모델은 대응하는 픽셀의 위치에 따라 생성된다. 3D 공간은 2D 이미지(710)의 총 픽셀 수에 따라 생성된다. 고해상도 2D 이미지(710)(예를 들어, 각 이미지에 대해 1080x720 픽셀) 30개가 이용 가능하다고 가정하면, 3D 공간(720)은 2천3백만 개가 넘는 입체면 모델을 포함하도록 생성될 수 있으므로 고해상도 3D 모델(722)이 생성될 수 있다. 일 예에서, 행(716)은 3D 공간(720)의 폭(724)에 대응하고, 열(714)은 3D 공간(720)의 길이(726)에 대응하고, 직교 축(700)을 따른 2D 이미지(710)의 위치는 3D 공간(720)의 높이(728)에 대응한다. 따라서, 제 1 이미지의 픽셀은 제 1 층의 입체면 모델에 대응하고, 직교 축(700)을 따라 제 1 이미지 다음에 있는 제 2 이미지의 픽셀은 3D 공간(720)에서 축(705)을 따라 제 1 층 위에 있는 제 2 층의 입체면 모델에 대응한다. 따라서, 2D 좌표로 표시된 픽셀이 3D 좌표로 매핑될 수 있고, 2D 이미지 내의 픽셀의 2D 좌표에 대응하는 입체면 모델이 3D 좌표에서 생성될 수 있다.The system creates a 3D model 722 including a three-dimensional model in 3D space 720, where each three-dimensional model is generated according to the position of the corresponding pixel. The 3D space is generated according to the total number of pixels of the 2D image 710. Assuming 30 high-resolution 2D images 710 (e.g., 1080x720 pixels for each image) are available, 3D space 720 can be generated to contain over 23 million stereoscopic models, so high-resolution 3D Model 722 may be generated. In one example, row 716 corresponds to width 724 of 3D space 720, column 714 corresponds to length 726 of 3D space 720, and 2D along orthogonal axis 700 The location of the image 710 corresponds to the height 728 of the 3D space 720. Thus, the pixels of the first image correspond to the three-dimensional model of the first layer, and the pixels of the second image following the first image along the orthogonal axis 700 follow the axis 705 in the 3D space 720. Corresponds to the three-dimensional model of the second layer above the first layer. Accordingly, pixels displayed in 2D coordinates may be mapped to 3D coordinates, and a three-dimensional model corresponding to 2D coordinates of pixels in a 2D image may be generated in 3D coordinates.

일 실시예에서, 시스템(420)은 제 1 이미지를 나타내는 제 1 이미지 데이터 세트를 수신하고, 제 1 이미지 데이터 세트에 기초하여 제 1 입체면 모델을 나타내는 제 1 입체면 데이터 세트를 생성한다. 유사하게, 시스템(420)은 축(700)을 따라 제 1 이미지 다음에 있는 제 2 이미지를 나타내는 제 2 이미지 데이터 세트를 수신하고, 제 2 이미지 데이터 세트에 기초하여 축(705)을 따라 제 1 입체면 모델의 상부에 적층된 제 2 입체면 모델을 나타내는 제 1 입체면 데이터 세트를 생성한다. 시스템(420)은 축(700)을 따라서 존재하는 추가 이미지를 나타내는 추가 이미지 데이터를 획득하고, 축(705)을 따라 대응하는 레벨(또는 층)에서 추가 입체면 모델을 나타내는 추가 입체면 데이터를 생성한다.In one embodiment, system 420 receives a first set of image data representing a first image, and generates a first set of three-dimensional surface data representing a first three-dimensional model based on the first image data set. Similarly, system 420 receives a second image data set representing a second image following the first image along axis 700, and a first along axis 705 based on the second image data set. A first three-dimensional data set representing a second three-dimensional model stacked on top of the three-dimensional model is generated. System 420 acquires additional image data representing additional images present along axis 700, and generates additional three-dimensional data representing additional three-dimensional model at a corresponding level (or layer) along axis 705 do.

도 7b는 본 발명의 일 실시예에 따른, 도 1의 CT 스캔 이미지에 대응하는 3D 모델의 예시적인 단면을 나타낸 도면이다. 단면(730)에서, 입체면 모델은 대응하는 픽셀의 위치에서 생성된다. 결과적으로, 다른 객체 내의 객체는 도 7b에 도시된 바와 같이 정확하게 표현될 수 있다. 도 7c는 도 7b의 일부(735)의 확대도인데, 이는 도 1의 다른 객체(130)에 대응하는 다른 객체(740)(예를 들어, 척추) 내부에 있는 도 1의 객체(120)에 대응하는 내부 객체(745)(예를 들어, 척추 구멍)를 정확하게 표현한다.7B is a diagram illustrating an exemplary cross-section of a 3D model corresponding to the CT scan image of FIG. 1 according to an embodiment of the present invention. At section 730, a three-dimensional model is created at the location of the corresponding pixel. Consequently, objects in other objects can be accurately represented as shown in FIG. 7B. FIG. 7C is an enlarged view of a portion 735 of FIG. 7B, which corresponds to the object 120 of FIG. 1 inside another object 740 (eg, the spine) corresponding to the other object 130 of FIG. 1. The corresponding internal object 745 (eg, spine hole) is accurately represented.

도 7d는 본 발명의 일 실시예에 따른, 픽셀에 대한 입체면 모델을 생성하는 예시적인 프로세스를 나타낸 도면이다. 도 7d를 참조하면, 예를 들어, 시스템(420)은 픽셀(P)을 선택하여 입체면 모델(780)을 생성한다. 시스템(420)은, 동일한 2D 이미지 내의 인접 픽셀(768A, 768B, 768C)은 미리 결정된 픽셀 값 범위 내의 픽셀 값을 가지지만, 인접 픽셀(768D)은 미리 결정된 픽셀 값 범위 밖의 픽셀 값을 갖는다고 결정한다. 따라서, 시스템(420)은 미리 결정된 픽셀 값 범위 밖의 픽셀 값을 갖는 픽셀(768D)을 향한 입체면 모델(780)의 폐쇄된 표면(786: 786C, 786D)의 구조적 구성(예를 들어, 정점의 위치, 표면 색상 등)을 기술하는 표면 정보를 생성한다. 일 실시예에서, 폐쇄된 표면(786)은 2개의 삼각형(786C, 786D)으로 분할된다. 또한, 시스템(420)은 픽셀(P) 아래의 2D 이미지의 인접한 픽셀(755)은 미리 결정된 픽셀 값 범위 내의 픽셀 값을 가지지만, 픽셀(P) 위의 2D 이미지의 인접한 픽셀(775)은 미리 결정된 픽셀 값 범위 밖의 픽셀 값을 갖는다는 것도 결정한다. 따라서, 시스템(420)은 미리 결정된 픽셀 값 범위 밖의 픽셀 값을 갖는 픽셀(775)을 향한 폐쇄된 표면(782: 782A, 782B)의 구조적 구성을 포함하도록 입체면 모델(780)의 표면 정보를 생성(또는 갱신)한다. 폐쇄된 표면(782)은 또한 2개의 삼각형(782A, 782B)으로 분할될 수 있다. 입체면 모델(780)은 미리 결정된 픽셀 값 범위 내의 픽셀 값을 갖는 픽셀을 향하여, 예를 들어, 픽셀(768A, 768B, 768C, 755)를 향하여 폐쇄된 표면을 가지지 않고 오히려 개방된 표면을 갖는다. 즉, 인접한 입체면 모델이 이들 개방된 표면을 공유하기 때문에, 폐쇄된 표면(782, 786)이 아닌 입체면 모델(780)의 나머지 표면이 개방된 표면인 것으로 결정된다. 3D 공간의 직교 축의 다른 깊이에 있는 각 2D 단면 이미지의 모든 픽셀에 대해서도 도 7d(및 도 6)에서 설명된 프로세스를 반복함으로써, 즉, 폐쇄된 또는 개방된 표면을 갖는 입체면을 정의함으로써 그리고 2D 단면 이미지 중 다른 것에 대응하는 입체면을 붙임으로써, 3D 객체에 대응하는 입체면 모델로 구성된 3D 모델이 생성될 수 있다.7D is a diagram illustrating an exemplary process for generating a three-dimensional surface model for a pixel, according to one embodiment of the present invention. Referring to FIG. 7D, for example, the system 420 selects a pixel P to generate a three-dimensional model 780. The system 420 determines that adjacent pixels 768A, 768B, 768C in the same 2D image have pixel values within a predetermined range of pixel values, while adjacent pixels 768D have pixel values outside a predetermined range of pixel values. do. Accordingly, the system 420 may construct a structural configuration (e.g., a vertex) of the closed surface 786: 786C, 786D of the three-dimensional model 780 toward a pixel 768D having a pixel value outside a predetermined range of pixel values. Generate surface information describing location, surface color, etc.). In one embodiment, the closed surface 786 is divided into two triangles 786C, 786D. In addition, the system 420 may have adjacent pixels 755 of the 2D image below the pixel P having pixel values within a predetermined range of pixel values, but adjacent pixels 775 of the 2D image above the pixel P may have It also determines that it has a pixel value outside the determined range of pixel values. Accordingly, the system 420 generates surface information of the three-dimensional model 780 to include the structural configuration of the closed surfaces 782: 782A, 782B facing pixels 775 having pixel values outside a predetermined range of pixel values. (Or update). The closed surface 782 can also be divided into two triangles 782A, 782B. The three-dimensional model 780 does not have a closed surface toward a pixel having a pixel value within a predetermined range of pixel values, for example, pixels 768A, 768B, 768C, 755, but rather an open surface. That is, since adjacent three-dimensional models share these open surfaces, it is determined that the remaining surfaces of the three-dimensional model 780 are not open surfaces, but closed surfaces 782, 786. By repeating the process described in Fig. 7d (and Fig. 6) for every pixel of each 2D cross-section image at different depths of the orthogonal axis in 3D space, that is, by defining a solid surface with a closed or open surface, and 2D By attaching a three-dimensional surface corresponding to another one of the cross-sectional images, a 3D model composed of a three-dimensional model corresponding to a 3D object may be generated.

도 7e는 본 발명의 일 실시예에 따른, 복수의 입체면 모델을 포함하는 예시적인 3D 모델을 나타낸 도면이다. 시스템(420)은 2D 이미지에 기초하여 복수의 입체면 모델로 표현된 인간 두개골의 3D 모델을 생성한다. 도 7f는 일 실시예에 따른 도 7e에 도시된 3D 모델(792)의 일부의 확대도이다. 각 입체면 모델이 폐쇄된 형상을 가지므로 3D 모델도 폐쇄된 형상을 가진다.7E is a diagram illustrating an exemplary 3D model including a plurality of three-dimensional models, according to an embodiment of the present invention. The system 420 generates a 3D model of the human skull represented by a plurality of three-dimensional models based on the 2D image. 7F is an enlarged view of a portion of the 3D model 792 shown in FIG. 7E according to one embodiment. Since each three-dimensional model has a closed shape, the 3D model also has a closed shape.

도 8은 본 발명의 일 실시예에 따른, 3D 모델 상에서 표면 최적화를 수행하는 컴퓨터 구현 프로세스를 나타내는 흐름도이다. 입체면 모델을 포함하는 3D 모델은 도 7e 및 도 7f에 도시된 바와 같이 입체면 모델의 돌출된 또는 오목한 정점으로 인해 거칠거나 울퉁불퉁한 표면을 포함한다. 일 실시예에서, 도 8의 단계는 도 5의 단계 530의 일부이다. 따라서, 도 8의 단계는 도 4의 시스템(420)(예를 들어, 표면 최적화 모듈(440))에 의해 수행된다. 다른 시스템은 다른 실시예에서 일부 또는 모든 단계를 수행할 수 있다. 마찬가지로, 실시예는 상이한 단계 및/또는 추가 단계를 포함할 수 있거나 상이한 순서로 단계를 수행할 수도 있다.8 is a flow diagram illustrating a computer-implemented process for performing surface optimization on a 3D model, according to one embodiment of the invention. The 3D model including the three-dimensional model includes a rough or uneven surface due to the protruding or concave vertices of the three-dimensional model as shown in FIGS. 7E and 7F. In one embodiment, the step of FIG. 8 is part of step 530 of FIG. 5. Accordingly, the step of FIG. 8 is performed by the system 420 of FIG. 4 (eg, surface optimization module 440). Other systems may perform some or all of the steps in other embodiments. Likewise, an embodiment may include different steps and / or additional steps, or may perform steps in different orders.

일 실시예에서, 시스템(420)은 도 5의 단계 520로부터 입체면 모델을 포함하는 3D 모델을 기술하는 3D 모델 데이터를 수신한다. 3D 모델 데이터에 기초하여, 시스템(420)은 각 정점이 3개의 직교면(예를 들어, 3개의 직교 삼각형)에 의해 공유되는 입체면 모델의 하나 이상의 정점을 제거한다(단계 810). 본 명세서에서 직교면은 서로 실질적으로 직교하는 2개의 법선 벡터를 갖는 표면을 지칭한다. 또한, 시스템(420)은 입체면 모델의 직교면을 합성한다(단계 820). 시스템(420)은 임의의 다면체의 오프셋 정점(예를 들어, 가까운 표면으로부터 다면체의 돌출된 정점 또는 오목한 정점)을 트리밍한다(단계 830). 시스템(420)은 3D 모델의 측면을 합성한다(단계 840). 본 명세서에서 측면은 실질적으로 유사한 방위를 갖는 표면(즉, 3D 모델의 외부를 향하는 표면)을 지칭한다. 시스템(420)은 표면의 변들(예를 들어, 삼각형의 변들)을 밸런싱한다(단계 850). 시스템(420)은 수정된 3D 모델의 구조적 구성을 기술하는 3D 모델 데이터를 생성한다. 이러한 단계의 예시적인 프로세스는 아래 도 9 내지 도 18과 관련하여 상세하게 설명한다.In one embodiment, system 420 receives 3D model data describing a 3D model that includes a three-dimensional model from step 520 of FIG. 5. Based on the 3D model data, the system 420 removes one or more vertices of the three-dimensional model in which each vertex is shared by three orthogonal surfaces (eg, three orthogonal triangles) (step 810). As used herein, orthogonal surfaces refer to surfaces having two normal vectors that are substantially orthogonal to each other. The system 420 also synthesizes orthogonal surfaces of the three-dimensional model (step 820). System 420 trims any polyhedral offset vertices (eg, protruding or concave vertices of the polyhedron from a close surface) (step 830). System 420 synthesizes aspects of the 3D model (step 840). Aspects herein refer to surfaces having substantially similar orientations (ie, facing outwards of the 3D model). System 420 balances the sides of the surface (eg, triangular sides) (step 850). System 420 generates 3D model data that describes the structural configuration of the modified 3D model. The exemplary process of this step is described in detail in connection with FIGS. 9-18 below.

다른 실시예에서는, 도 8에 도시된 단계의 일부가 다른 순서로 수행될 수 있다. 일 실시예에서, 단계 830은 단계 820 전에 수행되거나, 단계 840은 단계 830 전에 수행될 수 있다. 그러나, 도 8에 도시된 시퀀스로 표면 최적화를 수행함으로써, 컴퓨팅 리소스가 보존될 수 있고 처리 효율이 개선될 수 있다. 예를 들어, 직교면을 합성하기 전에 오프셋 정점을 트리밍하는 것은 직교면을 합성한 후에 오프셋 정점을 트리밍하는 것과 비교하여 더 많은 수의 정점이 트리밍된다. 마찬가지로, 오프셋 정점을 트리밍하기 전에 측면을 합성하는 것은 오프셋 정점을 트리밍 한 후에 측면을 합성하는 것과 비교하여 더 많은 수의 표면이 합성된다.In other embodiments, some of the steps shown in FIG. 8 may be performed in a different order. In one embodiment, step 830 may be performed before step 820, or step 840 may be performed before step 830. However, by performing surface optimization in the sequence shown in FIG. 8, computing resources can be conserved and processing efficiency can be improved. For example, trimming the offset vertices before compositing the orthogonal faces is trimming a larger number of vertices compared to trimming the offset vertices after the orthogonal face composition. Likewise, compositing a side before trimming an offset vertex results in a larger number of surfaces being synthesized compared to compositing a side after trimming an offset vertex.

도 9는 본 발명의 일 실시예에 따른, 3개의 직교면에 의해 공유된 입체면 모델의 정점을 제거하는 컴퓨터 구현 프로세스를 나타내는 흐름도이다. 일 실시예에서, 도 9의 단계는 도 8의 단계 810의 일부이다. 따라서, 도 9의 단계는 도 4의 시스템(420)(예를 들어, 표면 최적화 모듈(440))에 의해 수행된다. 다른 시스템은 다른 실시예에서 일부 또는 모든 단계를 수행할 수 있다. 마찬가지로, 실시예는 상이한 단계 및/또는 추가 단계를 포함할 수 있거나 상이한 순서로 단계를 수행할 수도 있다.9 is a flow diagram illustrating a computer-implemented process for removing vertices of a three-dimensional model shared by three orthogonal surfaces, according to an embodiment of the present invention. In one embodiment, the step of FIG. 9 is part of step 810 of FIG. 8. Thus, the step of FIG. 9 is performed by the system 420 of FIG. 4 (eg, surface optimization module 440). Other systems may perform some or all of the steps in other embodiments. Likewise, an embodiment may include different steps and / or additional steps, or may perform steps in different orders.

시스템(420)은 입체면 모델을 포함하는 3D 모델의 복수의 정점으로부터 목표 정점을 선택한다(단계 910). 시스템(420)은 목표 정점이 3개의 표면(예를 들어, 삼각형)에 의해 공유되는지를 결정한다(단계 920). 목표 정점이 3개의 표면에 의해 공유된다고 결정하는 것에 응답하여, 시스템(420)은 3개의 각도를 결정하는데, 여기서 3개의 각도의 각각은 3개의 표면 중 2개 표면의 2개의 법선 벡터 사이의 각도이다. 3개의 각도의 합이 270도와 실질적으로 동일한 경우, 시스템(420)은 목표 정점이 제거될 정점인 것으로 결정하고, 목표 정점의 인접한 정점을 자신의 정점으로 갖는 새로운 표면을 생성한다(단계 940). 시스템(420)은 목표 정점 및 목표 정점에 연결된 표면을 제거한다(단계 950).The system 420 selects a target vertex from a plurality of vertices of a 3D model that includes a three-dimensional model (step 910). System 420 determines whether the target vertex is shared by three surfaces (eg, triangles) (step 920). In response to determining that the target vertices are shared by the three surfaces, the system 420 determines three angles, where each of the three angles is the angle between two normal vectors of two of the three surfaces. to be. If the sum of the three angles is substantially equal to 270 degrees, the system 420 determines that the target vertex is the vertex to be removed, and creates a new surface with its vertices as adjacent vertices (step 940). System 420 removes the target vertex and the surface connected to the target vertex (step 950).

단계 920에서 목표 정점이 3개의 표면에 의해 공유되지 않거나 단계 930에서 3개의 각도의 합이 270도와 실질적으로 동일하지 않은 것으로 결정되면, 시스템 420은 단계 960으로 진행한다.If the target vertex is not shared by the three surfaces in step 920 or if it is determined in step 930 that the sum of the three angles is not substantially equal to 270 degrees, system 420 proceeds to step 960.

시스템(420)은 추가 정점이 검사될 필요가 있는지를 결정한다(단계 960). 추가 정점이 검사될 필요가 있다고 결정되면, 시스템(420)은 단계 910으로 진행하여 3D 모델의 복수의 정점으로부터 다른 목표 정점을 선택한다. 모든 정점이 검사되면, 시스템(420)은 3개의 직교면에 의해 공유된 입체면 모델의 정점을 제거하는 프로세스를 종료한다(단계 970).System 420 determines if additional vertices need to be checked (step 960). If it is determined that additional vertices need to be checked, system 420 proceeds to step 910 to select different target vertices from a plurality of vertices in the 3D model. When all vertices have been checked, system 420 ends the process of removing vertices of the three-dimensional model shared by the three orthogonal surfaces (step 970).

도 10a는 도 9에 도시된 컴퓨터 구현 프로세스에 따라 3개의 직교면에 의해 공유된 입체면 모델의 정점을 제거하기 전의 예시적인 3D 모델과 정점을 제거한 후의 예시적인 3D 모델을 나타낸 도면이다. 도 10a에서, 3D 모델(1010)은 복수의 정점을 포함하는 입체면 모델을 포함한다. 시스템(420)은 각 정점이 3개의 직교면에 의해 공유되면 정점(1020A, 1020B, 1020C, 1020D)이 제거되어야 한다고 결정한다. 시스템(420)은 또한 정점(1030A, 1030B, 1030D)이 정점(1020A)의 인접한 정점이고, 정점(1030E, 1030D, 1030F)이 정점(1020B)의 인접한 정점이고, 정점(1030D, 1030F, 1030G)이 정점(1020C)의 인접한 정점이고, 정점(1030D, 1030H, 1030G)이 정점(1020D)의 인접한 정점이라는 것을 결정한다. 따라서, 시스템(420)은 인접한 정점(1030A, 1030B, 1030D)을 자신의 정점으로 갖는 제 1 삼각형(S1), 인접한 정점(1030E, 1030D, 1030F)을 자신의 정점으로 갖는 제 2 삼각형(S2), 인접한 정점(1030D, 1030F, 1030G)를 자신의 정점으로 갖는 제 3 삼각형(S3), 인접한 정점(1030D, 1030H, 1030G)을 자신의 정점으로 갖는 제 4 삼각형(S4)을 생성한다. 또한, 시스템(420)은 정점(1020A, 1020B, 1020C, 1020D)에 각각 연결된 삼각형(간략화를 위해 도 10a에 명시적으로 도시되지 않음)을 제거하고 또한 정점(1020A, 1020B, 1020D, 1020D)을 제거한다.FIG. 10A is a diagram illustrating an exemplary 3D model before removing vertices of a three-dimensional model shared by three orthogonal planes and an exemplary 3D model after removing vertices according to the computer-implemented process illustrated in FIG. 9. In FIG. 10A, the 3D model 1010 includes a three-dimensional model including a plurality of vertices. System 420 determines that vertices 1020A, 1020B, 1020C, 1020D should be removed if each vertex is shared by three orthogonal surfaces. The system 420 also has vertices 1030A, 1030B, and 1030D as adjacent vertices of vertex 1020A, vertices 1030E, 1030D, and 1030F are adjacent vertices of vertex 1020B, and vertices (1030D, 1030F, 1030G) It is determined that the vertices 1020C are adjacent vertices, and the vertices 1030D, 1030H, and 1030G are adjacent vertices of the vertex 1020D. Accordingly, the system 420 includes a first triangle S1 having adjacent vertices 1030A, 1030B, and 1030D as its vertices, and a second triangle S2 having adjacent vertices 1030E, 1030D, and 1030F as its vertices. , Create a third triangle (S3) having adjacent vertices (1030D, 1030F, 1030G) as its vertices, and a fourth triangle (S4) having adjacent vertices (1030D, 1030H, 1030G) as its vertices. In addition, the system 420 removes triangles (not explicitly shown in FIG. 10A for simplicity) each connected to vertices 1020A, 1020B, 1020C, 1020D, and also vertices 1020A, 1020B, 1020D, 1020D. Remove it.

도 10b는 도 9에 도시된 컴퓨터 구현 프로세스에 따라 3개의 직교면에 의해 공유된 입체면 모델의 정점을 결정하는 예시적인 접근법을 나타낸 도면이다. 도 10b의 예에서는, 정점(1020C)은 제거될 정점으로 결정된다. 시스템(420)은 정점(1030D, 1030F, 1020C)을 갖는 삼각형(T1)의 제 1 법선 벡터(N1), 정점(1020C, 1030F, 1030G)을 갖는 삼각형(T2)의 제 2 법선 벡터(N2), 및 정점(1030D, 1020C, 1030G)을 갖는 삼각형(T3)의 제 3 법선 벡터(N3)을 획득한다. 또한, 시스템(420)은 제 1 법선 벡터(N1)와 제 2 법선 벡터(N2) 사이의 각도(θ1), 제 2 법선 벡터(N2)와 제 3 법선 벡터(N3) 사이의 각도(θ2) 및 제 1 법선 벡터(N1)와 제 3 법선 벡터(N3) 사이의 각도(θ3)를 획득한다. 시스템(420)은 각도 θ1, θ2, θ3를 합하고 이들의 합이 270도이면 정점(1020C)을 제거해야 한다고 결정한다. 유사한 단계가 정점(1020A, 1020B, 1020D)에 대해 수행될 수 있다. 도 9에 개시된 프로세스를 통해, 오목한 정점(예컨대, 정점(1020C))뿐만 아니라 돌출된 정점(예를 들어, 정점(1020A, 1020B, 1020D))도 3D 모델의 표면을 매끄럽게 하기 위해 제거될 수 있다.10B is a diagram illustrating an exemplary approach for determining vertices of a three-dimensional model shared by three orthogonal planes according to the computer-implemented process illustrated in FIG. 9. In the example of Figure 10B, vertex 1020C is determined as the vertex to be removed. The system 420 includes a first normal vector N1 of triangles T1 having vertices 1030D, 1030F, 1020C, and a second normal vector N2 of triangles T2 having vertices 1020C, 1030F, 1030G. , And a third normal vector N3 of a triangle T3 having vertices 1030D, 1020C, and 1030G. Further, the system 420 includes an angle θ1 between the first normal vector N1 and the second normal vector N2, and an angle θ2 between the second normal vector N2 and the third normal vector N3. And an angle θ3 between the first normal vector N1 and the third normal vector N3. System 420 determines that angles θ1, θ2, and θ3 are summed, and if their sum is 270 degrees, vertex 1020C should be removed. Similar steps can be performed for vertices 1020A, 1020B, 1020D. Through the process disclosed in FIG. 9, concave vertices (eg, vertices 1020C) as well as protruding vertices (eg, vertices 1020A, 1020B, 1020D) can be removed to smooth the surface of the 3D model. .

도 10c는 도 9에 도시된 컴퓨터 구현 프로세스에 따라 3개의 직교면에 의해 공유된 입체면 모델의 정점을 제거하는 예시적인 프로세스를 나타낸 도면이다. 입체면 모델은 정점(1020A)과, 정점(1020A)의 인접한 정점(1030A, 1030B, 1030C)을 포함한다. 시스템(420)은 정점(1020A)이 3개의 직교 삼각형(T4, T5, T6)에 의해 공유되면 정점(1020A)이 제거될 필요가 있다고 결정한다. 시스템(420)은 인접한 정점(1030A, 1030B, 1030C)을 자신의 정점으로 갖는 새로운 삼각형(T7)을 생성한다. 또한, 시스템(420)은 삼각형(T4, T5, T6) 및 정점(1020A)을 제거한다.10C is a diagram illustrating an exemplary process of removing vertices of a three-dimensional model shared by three orthogonal planes according to the computer-implemented process illustrated in FIG. 9. The three-dimensional model includes a vertex 1020A and adjacent vertices 1030A, 1030B, and 1030C of the vertex 1020A. System 420 determines that vertex 1020A needs to be removed if vertex 1020A is shared by three orthogonal triangles T4, T5, T6. The system 420 creates a new triangle T7 with adjacent vertices 1030A, 1030B, 1030C as its vertices. In addition, system 420 removes triangles T4, T5, T6 and vertices 1020A.

도 11은 본 발명의 일 실시예에 따른, 3D 모델의 직교면을 합성하는 컴퓨터 구현 프로세스를 나타내는 흐름도이다. 일 실시예에서, 도 11의 단계는 도 8의 단계 820의 일부이다. 따라서, 도 11의 단계는 도 4의 시스템(420)(예를 들어, 표면 최적화 모듈(440))에 의해 수행된다. 다른 시스템은 다른 실시예에서 일부 또는 모든 단계를 수행할 수 있다. 마찬가지로, 실시예는 상이한 단계 및/또는 추가 단계를 포함할 수 있거나 상이한 순서로 단계를 수행할 수도 있다.11 is a flowchart illustrating a computer-implemented process for synthesizing orthogonal surfaces of a 3D model, according to an embodiment of the present invention. In one embodiment, the step of FIG. 11 is part of step 820 of FIG. 8. Thus, the step of FIG. 11 is performed by the system 420 of FIG. 4 (eg, surface optimization module 440). Other systems may perform some or all of the steps in other embodiments. Likewise, an embodiment may include different steps and / or additional steps, or may perform steps in different orders.

시스템(420)은 3D 모델의 복수의 정점으로부터 목표 정점을 선택한다(단계 1110). 시스템(420)은 목표 정점으로서 일단을 갖고 목표 정점의 인접한 정점으로서 다른 단을 갖는 변이 두 표면(예를 들어, 삼각형)에 의해 공유되는지를 결정한다(단계 1120). 변이 두 표면에 의해 공유된다고 결정되면, 시스템(420)은 공통 변을 공유하는 두 표면이 서로 직교하는지를 결정한다(단계 1130). 공통 변을 공유하는 두 표면이 서로 직교한다고 결정되면, 시스템(420)은 목표 정점 및 인접한 정점으로부터 어느 정점이 유지되어야 하는지를 결정하고 어느 정점이 제거되어야 하는지를 결정한다(단계 1135). 일 실시예에서, 시스템(420)은 더 많은 수의 표면에 의해 공유된 정점을 유지하고 다른 정점을 제거하도록 결정한다.The system 420 selects a target vertex from a plurality of vertices of the 3D model (step 1110). The system 420 determines whether sides with one end as the target vertex and the other end as the adjacent vertices of the target vertex are shared by two surfaces (eg, triangles) (step 1120). If it is determined that the sides are shared by the two surfaces, the system 420 determines whether the two surfaces sharing the common sides are orthogonal to each other (step 1130). If it is determined that the two surfaces sharing a common side are orthogonal to each other, system 420 determines which vertices should be maintained from the target vertices and adjacent vertices, and which vertices should be removed (step 1135). In one embodiment, system 420 determines to maintain vertices shared by a larger number of surfaces and remove other vertices.

시스템(420)은 유지하기로 결정한 정점 및 공통으로 인접하지 않은 정점(즉, 공통 변으로부터 떨어진 인접 정점)을 자신의 정점으로 갖는 새로운 표면을 생성한다(단계 1140). 따라서, 새 표면은 제거될 다른 정점을 자신의 정점으로 포함하지 않는다. 시스템(420)은 직교면 및 제거될 것으로 결정된 다른 정점을 제거한다(단계 1150).System 420 creates a new surface with its vertices as vertices that it decides to maintain and those that are not commonly adjacent (ie, adjacent vertices away from the common side) (step 1140). Thus, the new surface does not include other vertices to be removed as its vertices. System 420 removes the orthogonal planes and other vertices that are determined to be removed (step 1150).

단계 1120에서 2개의 표면에 의해 공유되는 목표 정점으로서 하나의 단부를 갖는 공통 변이 없다는 결정 또는 단계 1130에서 공통 변을 공유하는 2개의 표면이 서로 직교하지 않은 것으로 결정되면, 시스템(420)은 단계 1160으로 진행한다.If it is determined in step 1120 that there is no common side having one end as a target vertex shared by the two surfaces, or if it is determined in step 1130 that the two surfaces sharing the common side are not orthogonal to each other, the system 420 may step 1160. To proceed.

시스템(420)은 추가 정점이 검사될 필요가 있는지를 결정한다(단계 1160). 추가 정점이 검사될 필요가 있다고 결정되면, 시스템(420)은 단계 1110으로 진행하여 3D 모델의 복수의 정점으로부터 다른 목표 정점을 선택한다. 모든 정점이 검사되면, 시스템(420)은 3D 모델의 직교면을 합성하는 프로세스를 종료한다(단계 1170).System 420 determines if additional vertices need to be checked (step 1160). If it is determined that additional vertices need to be checked, system 420 proceeds to step 1110 to select different target vertices from a plurality of vertices in the 3D model. When all vertices are inspected, the system 420 ends the process of compositing the orthogonal surfaces of the 3D model (step 1170).

도 12는 도 11에 도시된 컴퓨터 구현 프로세스에 따라 3D 모델의 직교면을 합성하기 전의 예시적인 3D 모델과 직교면을 합성한 후의 예시적인 3D 모델을 나타낸 도면이다. 일 실시예에서, 3D 모델(1210)은 도 9, 도 10a 및 도 10b에 도시된 바와 같이 3개의 직교면에 의해 공유된 입체면 모델의 정점을 제거한 후에 획득된다.12 is a diagram illustrating an exemplary 3D model before synthesizing an orthogonal surface of a 3D model and an exemplary 3D model after synthesizing the orthogonal surface according to the computer-implemented process shown in FIG. In one embodiment, the 3D model 1210 is obtained after removing the vertices of a three-dimensional model shared by three orthogonal surfaces as shown in FIGS. 9, 10A and 10B.

도 12에서, 3D 모델(1210)은 정점(1220) 및 그것의 인접한 정점(1230A, 1230B ... 1230G; 이하 "인접 정점(1230)"이라고도 함)을 포함한다. 시스템(420)은 제 1 변(1232A)이 서로 직교하는 2개의 삼각형(B1, B2)에 의해 공유되면 2개의 단부로서 2개의 정점(1230A 및 1220)을 갖는 제 1 변(1232A)이 제거되어야 한다고 결정한다. 또한, 시스템(420)은 정점(1220)이 정점(1230A)보다 더 많은 수의 삼각형에 의해 공유되면, 제 1 변(1232A)의 정점(1230A)이 제거되어야 하고 정점(1220)은 유지되어야 한다고 결정한다. 유사하게, 시스템(420)은 제 2 변(1232B)이 서로 직교하는 2개의 삼각형(B3, B4)에 의해 공유되면 2개의 단부로서 2개의 정점(1230D 및 1220)을 갖는 제 2 변(1232B)이 제거되어야 한다고 결정한다. 또한, 시스템(420)은 정점(1220)이 정점(1230D)보다 더 많은 수의 삼각형에 의해 공유되면, 제 2 변(1232B)의 정점(1230D)이 제거되어야 하고 정점(1220)은 유지되어야 한다고 결정한다. 시스템은 정점(1220, 1230B, 1230G)을 자신의 정점으로 갖는 제 1 삼각형(B11)과, 정점(1220, 1230C, 1230E)을 자신의 정점으로 갖는 제 2 삼각형(B12)을 생성한다. 또한, 시스템(420)은 삼각형(B1, B2, B3, B4) 및 정점들(1230A 및 1230D)을 제거한다.In FIG. 12, the 3D model 1210 includes a vertex 1220 and its adjacent vertices 1230A, 1230B ... 1230G (hereinafter also referred to as "adjacent vertex 1230"). The system 420 should have the first side 1232A having two vertices 1230A and 1220 as two ends if the first side 1232A is shared by two orthogonal triangles B1 and B2. Decide. In addition, system 420 should say that if vertex 1220 is shared by a greater number of triangles than vertex 1230A, vertex 1230A of first side 1232A must be removed and vertex 1220 maintained. Decide. Similarly, the system 420 is a second side 1232B having two vertices 1230D and 1220 as two ends if the second side 1232B is shared by two orthogonal triangles B3 and B4. Decide that it should be removed. Also, the system 420 should say that if vertex 1220 is shared by a greater number of triangles than vertex 1230D, vertex 1230D of second side 1232B must be removed and vertex 1220 maintained. Decide. The system creates a first triangle B11 having vertices 1220, 1230B, 1230G as its vertices and a second triangle B12 having vertices 1220, 1230C, 1230E as its vertices. In addition, system 420 removes triangles B1, B2, B3, and B4 and vertices 1230A and 1230D.

도 13은 본 발명의 일 실시예에 따른, 3D 모델의 오프셋 정점(예를 들어, 가까운 표면으로부터의 다면체의 돌출된 정점 또는 오목한 정점)을 트리밍하는 컴퓨터 구현 프로세스를 나타내는 흐름도이다. 일 실시예에서, 도 13의 단계는 도 8의 단계 830의 일부이다. 따라서, 도 13의 단계는 도 4의 시스템(420)(예를 들어, 표면 최적화 모듈(440))에 의해 수행된다. 다른 시스템은 다른 실시예에서 일부 또는 모든 단계를 수행할 수 있다. 마찬가지로, 실시예는 상이한 단계 및/또는 추가 단계를 포함할 수 있거나 상이한 순서로 단계를 수행할 수도 있다.13 is a flow diagram illustrating a computer-implemented process for trimming offset vertices (eg, protruding or concave vertices of a polyhedron from a close surface) of a 3D model, according to one embodiment of the present invention. In one embodiment, the step of FIG. 13 is part of step 830 of FIG. 8. Thus, the step of FIG. 13 is performed by the system 420 of FIG. 4 (eg, surface optimization module 440). Other systems may perform some or all of the steps in other embodiments. Likewise, an embodiment may include different steps and / or additional steps, or may perform steps in different orders.

시스템(420)은 3D 모델의 복수의 정점으로부터 목표 정점을 선택한다(단계 1310). 시스템(420)은 목표 정점이 적어도 3개의 표면(예를 들어, 삼각형)에 의해 공유되는지를 결정한다(단계 1320). 목표 정점이 적어도 3개의 표면에 의해 공유된다고 결정되면, 시스템(420)은 적어도 3개의 표면 각각에 대해, 표면과 떨어진 목표 정점의 인접한 정점까지의 거리 벡터를 획득한다(단계 1330). 본 명세서에서 거리 벡터는 표면의 중심으로부터 표면과 떨어진 목표 정점의 인접한 정점까지의 벡터를 지칭한다. 표면에 대한 각 거리 벡터는 표면의 법선 벡터에 대해 극성을 갖는다. 법선 벡터는 3D 모델의 표면에서 외부를 향하는 방향으로 정의될 수 있다. 표면의 거리 벡터가 3D 모델 내부를 향하면, 거리 벡터는 표면의 법선 벡터와 다른 극성(또는 음의 극성)을 갖는다. 반대로, 표면의 거리 벡터가 3D 모델 외부를 향하면 거리 벡터는 표면의 법선 벡터와 동일한 극성(또는 양의 극성)을 갖는다.The system 420 selects a target vertex from a plurality of vertices of the 3D model (step 1310). System 420 determines whether the target vertex is shared by at least three surfaces (eg, triangles) (step 1320). If it is determined that the target vertices are shared by at least three surfaces, the system 420 obtains, for each of the at least three surfaces, a distance vector from the surface to an adjacent vertex of the target vertex (step 1330). In the present specification, the distance vector refers to a vector from the center of the surface to the adjacent vertex of the target vertex away from the surface. Each distance vector to the surface is polarized to the normal vector of the surface. The normal vector can be defined in a direction outward from the surface of the 3D model. If the distance vector of the surface faces inside the 3D model, the distance vector has a different polarity (or negative polarity) from the normal vector of the surface. Conversely, if the distance vector of the surface is outside the 3D model, the distance vector has the same polarity (or positive polarity) as the normal vector of the surface.

시스템(420)은 목표 정점이 거리 벡터의 극성에 기초한 오프셋 정점인지를 결정한다(단계 1340). 일 실시예에서, 각각의 거리 벡터가 동일한 극성을 갖는다면, 시스템(420)은 목표 벡터가 오프셋 정점인 것으로 결정한다. 목표 벡터가 모두 음의 극성을 갖는다면, 시스템(420)은 오프셋 정점이 돌출된 정점인 것으로 결정한다. 한편, 목표 벡터가 모두 양의 극성을 갖는다면, 시스템(420)은 오프셋 정점이 오목한 정점인 것으로 결정한다. 거리 벡터가 상이한 극성을 갖는다면, 시스템(420)은 목표 벡터가 오프셋 정점이 아니라고 결정한다.System 420 determines whether the target vertex is an offset vertex based on the polarity of the distance vector (step 1340). In one embodiment, if each distance vector has the same polarity, system 420 determines that the target vector is an offset vertex. If the target vectors all have negative polarity, the system 420 determines that the offset vertices are protruding vertices. On the other hand, if the target vectors all have positive polarity, the system 420 determines that the offset vertices are concave vertices. If the distance vectors have different polarities, the system 420 determines that the target vector is not an offset vertex.

시스템(420)은 오프셋 정점을 시프트시킨다(단계 1350). 일 예에서, 목표 정점은 목표 정점의 최근접 정점으로 시프트된다. 시스템(420)은 임의의 중첩된 표면을 제거한다(단계 1360). 따라서, 임의의 오프셋 정점이 효과적으로 제거되고, 3D 모델의 표면이 매끄러워질 수 있다.System 420 shifts the offset vertices (step 1350). In one example, the target vertex is shifted to the nearest vertex of the target vertex. System 420 removes any overlapping surfaces (step 1360). Thus, any offset vertices can be effectively removed, and the surface of the 3D model can be smoothed.

단계 1320에서 목표 정점이 적어도 3개의 표면에 의해 공유되지 않거나 단계 1340에서 목표 정점이 오프셋 정점이 아니라고 결정된다면, 시스템(420)은 단계 1370으로 진행한다.If in step 1320 the target vertex is not shared by at least three surfaces or if it is determined in step 1340 that the target vertex is not an offset vertex, system 420 proceeds to step 1370.

시스템(420)은 추가 정점이 검사될 필요가 있는지를 결정한다(단계 1370). 추가 정점이 검사될 필요가 있다고 결정되면, 시스템(420)은 단계 1310으로 진행하여 3D 모델의 복수의 정점으로부터 다른 목표 정점을 선택한다. 모든 정점이 검사되면, 시스템(420)은 3D 모델의 오프셋 정점을 트리밍하는 프로세스를 종료한다(단계 1380).System 420 determines if additional vertices need to be checked (step 1370). If it is determined that additional vertices need to be checked, system 420 proceeds to step 1310 to select different target vertices from a plurality of vertices in the 3D model. When all vertices have been checked, the system 420 ends the process of trimming the offset vertices of the 3D model (step 1380).

도 14a는 본 발명의 일 실시예에 따른, 오프셋 정점을 갖는 예시적인 3D 모델을 나타낸 도면이다. 도 14a의 3D 모델의 표면은 정점(1410, 1420A ... 1420D, 1430 및 1440A ... 1440D)에 의해 정의된다. 정점(1410)은 가까운 표면으로부터 돌출되고, 정점(1430)은 가까운 표면으로부터 오목하다.14A is a diagram illustrating an exemplary 3D model with offset vertices, according to one embodiment of the present invention. The surface of the 3D model of FIG. 14A is defined by vertices 1410, 1420A ... 1420D, 1430 and 1440A ... 1440D. The vertex 1410 protrudes from the close surface, and the vertex 1430 is concave from the close surface.

도 14b는 도 13에 도시된 컴퓨터 구현 프로세스에 따라 도 14a에 도시된 예시적인 3D 모델의 오프셋 정점을 결정하는 예시적인 프로세스를 나타낸 도면이다. 시스템(420)은 4개의 삼각형, 즉, 정점(1420A, 1420B, 1410)을 갖는 제 1 삼각형, 정점(1420B, 1420C, 1410)을 갖는 제 2 삼각형, 정점(1420C, 1420D, 1410)을 갖는 제 3 삼각형 및 정점(1420D, 1420A, 1410)을 갖는 제 4 삼각형에 의해 공유된 정점(1410)을 선택한다. 시스템(420)은 제 1 삼각형의 중심으로부터 정점(1420C, 1420D)으로의 거리 벡터, 제 2 삼각형의 중심으로부터 정점(1420A, 1420D)으로의 거리 벡터, 제 1 삼각형의 중심으로부터 정점(1420A, 1420B)으로의 거리 벡터 및 제 4 삼각형의 중심으로부터 정점(1420B, 1420C)으로의 거리 벡터, 모두가 음의 극성(즉, 3D 모델의 내부를 향한 포인트)을 갖는다고 결정한다. 따라서, 시스템(420)은 정점(1410)이 오프셋 정점(또는 돌출된 정점)이라고 결정한다.14B is a diagram illustrating an exemplary process for determining an offset vertex of the example 3D model illustrated in FIG. 14A according to the computer-implemented process illustrated in FIG. 13. System 420 includes four triangles, a first triangle with vertices 1420A, 1420B, 1410, a second triangle with vertices 1420B, 1420C, 1410, and a second triangle with vertices 1420C, 1420D, 1410. Select the vertex 1410 shared by the fourth triangle with three triangles and vertices 1420D, 1420A, 1410. The system 420 includes a distance vector from the center of the first triangle to the vertices 1420C, 1420D, a distance vector from the center of the second triangle to the vertices 1420A, 1420D, and a vertex from the center of the first triangle (1420A, 1420B) It is determined that the distance vector to) and the distance vector from the center of the fourth triangle to vertices 1420B, 1420C, all have a negative polarity (i.e., a point towards the interior of the 3D model). Accordingly, system 420 determines that vertex 1410 is an offset vertex (or a protruding vertex).

유사하게, 시스템(420)은 4개의 삼각형, 즉, 정점(1440A, 1440B, 1430)을 갖는 제 5 삼각형, 정점(1440B, 1440C, 1430)을 갖는 제 6 삼각형, 정점(1440C, 1440D, 1430)을 갖는 제 7 삼각형에 의해 공유된 정점(1430)을 선택한다. 시스템(420)은 제 5 삼각형의 중심으로부터 정점(1440C, 1440D)으로의 거리 벡터, 제 6 삼각형의 중심으로부터 정점(1440A, 1440D)으로의 거리 벡터, 제 7 삼각형의 중심으로부터 정점(1440A, 1440B)으로의 거리 벡터, 제 8 삼각형의 중심으로부터 정점(1440B, 1440C)으로의 거리 벡터, 모두가 양의 극성(즉, 3D 모델의 외부를 향한 포인트)을 갖는다고 결정한다. 따라서, 시스템(420)은 정점(1430)이 오프셋 정점(또는 오목한 정점)이라고 결정한다.Similarly, the system 420 has four triangles, i.e., a fifth triangle with vertices (1440A, 1440B, 1430), a sixth triangle with vertices (1440B, 1440C, 1430), and vertices (1440C, 1440D, 1430) Select the vertex 1430 shared by the seventh triangle with. The system 420 includes a distance vector from the center of the fifth triangle to a vertex (1440C, 1440D), a distance vector from the center of the sixth triangle to a vertex (1440A, 1440D), and a vertex from the center of the seventh triangle (1440A, 1440B) It is determined that the distance vector to), the distance vector from the center of the eighth triangle to the vertices 1440B, 1440C, all have positive polarity (i.e., points outward of the 3D model). Accordingly, system 420 determines that vertex 1430 is an offset vertex (or concave vertex).

도 14c는 도 13에 도시된 컴퓨터 구현 프로세스에 따라 도 14a의 예시적인 3D 모델의 오프셋 정점을 제거한 후의 예시적인 표면을 나타낸 도면이다. 시스템은 정점(1410)의 제 1 최근접 정점(1420A) 및 정점(1430)의 제 2 최근접 정점(1440A)을 식별하고, 정점(1410, 1430)을 인접한 정점(1420A 및 1440A)으로 각각 시프트시킨다. 오프셋 정점으로부터 인접한 정점까지의 거리가 모두 동일한 경우, 시스템(420)은 인접한 정점 중 임의의 하나를 선택하고, 오프셋 정점을 선택된 인접한 정점으로 시프트시킬 수 있다. 시스템(420)은 또한 중첩된 삼각형(예를 들어, 도 14b의 제 1 삼각형, 제 4 삼각형, 제 5 삼각형 및 제 8 삼각형)을 제거한다.14C is a diagram illustrating an exemplary surface after removing the offset vertices of the example 3D model of FIG. 14A according to the computer implemented process shown in FIG. 13. The system identifies the first nearest vertex 1420A of vertex 1410 and the second nearest vertex 1440A of vertex 1430, and shifts vertices 1410, 1430 to adjacent vertices 1420A and 1440A, respectively. Order. If the distances from the offset vertices to the adjacent vertices are all the same, the system 420 can select any one of the adjacent vertices and shift the offset vertices to the selected adjacent vertices. System 420 also removes overlapping triangles (eg, first triangle, fourth triangle, fifth triangle, and eighth triangle in FIG. 14B).

도 14d는 도 13에 도시된 컴퓨터 구현 프로세스에 따라 3D 모델의 오프셋 정점을 트리밍하기 전의 예시적인 3D 모델과 오프셋 정점을 트리밍한 후의 예시적인 3D 모델을 나타낸 도면이다. 일 실시예에서, 3D 모델(1450)은 도 11 및 도 12에 도시된 바와 같이 직교면을 합성한 후에 획득된다.14D is a diagram illustrating an exemplary 3D model before trimming the offset vertices of the 3D model and an exemplary 3D model after trimming the offset vertices according to the computer-implemented process illustrated in FIG. 13. In one embodiment, the 3D model 1450 is obtained after synthesizing orthogonal surfaces as shown in FIGS. 11 and 12.

도 14d에서, 3D 모델(1450)은 정점(1470) 및 인접 정점(1460A, 1460B ... 1460F)을 포함한다. 시스템(420)은, 도 13, 도 14a 및 도 14b와 관련하여 상세히 설명된 프로세스를 통해 정점(1470)을 공유하는 삼각형의 거리 벡터 모두가 음의 극성(즉, 3D 모델(1450) 내부를 향한 포인트)을 가지면, 정점(1470)이 오프셋 정점(예를 들어, 돌출된 정점)이라고 결정한다. 따라서, 시스템(420)은 정점(1470)을 그것의 최근접 정점(1460D)으로 시프트시키고 중첩하는 삼각형을 제거한다.In FIG. 14D, the 3D model 1450 includes vertices 1470 and adjacent vertices 1460A, 1460B ... 1460F. The system 420 allows all of the triangular distance vectors sharing vertices 1470 through the process described in detail with respect to FIGS. 13, 14A and 14B to be directed toward the inside of the negative polarity (i.e., 3D model 1450). Having a point), it is determined that the vertex 1470 is an offset vertex (eg, a protruding vertex). Thus, system 420 shifts vertex 1470 to its nearest vertex 1460D and removes overlapping triangles.

도 15는 본 발명의 일 실시예에 따른, 3D 모델의 측면을 합성하는 컴퓨터 구현 프로세스를 나타내는 흐름도이다. 일 실시예에서, 도 15의 단계는 도 8의 단계 840의 일부이다. 따라서, 도 15의 단계는 도 4의 시스템(420)(예를 들어, 표면 최적화 모듈(440))에 의해 수행된다. 다른 시스템은 다른 실시예에서 일부 또는 모든 단계를 수행할 수 있다. 마찬가지로, 실시예는 상이한 단계 및/또는 추가 단계를 포함할 수 있거나 상이한 순서로 단계를 수행할 수도 있다.15 is a flow diagram illustrating a computer-implemented process for synthesizing aspects of a 3D model, according to one embodiment of the present invention. In one embodiment, the step of FIG. 15 is part of step 840 of FIG. 8. Thus, the step of FIG. 15 is performed by the system 420 of FIG. 4 (eg, surface optimization module 440). Other systems may perform some or all of the steps in other embodiments. Likewise, an embodiment may include different steps and / or additional steps, or may perform steps in different orders.

시스템(420)은 3D 모델의 복수의 정점으로부터 목표 정점을 선택한다(단계 1510). 시스템(420)은 목표 정점을 공유하는 표면(예를 들어, 삼각형)이 실질적으로 유사한 방위를 갖는 측면인지를 결정한다(단계 1520). 일 예에서, 시스템(420)은 표면의 법선 벡터를 따라 목표 정점을 공유하는 표면의 방위를 결정한다. 일 예에서, 시스템(420)은 목표 정점을 공유하는 표면의 평균 방위(예를 들어, 법선 벡터의 평균 벡터)를 획득한다. 표면의 방위가 미리 결정된 방위 범위(예를 들어, 미리 결정된 벡터 범위)만큼 평균 방위로부터 벗어난다면, 시스템(420)은 표면이 측면이 아니라고 결정한다. 목표 정점을 공유하는 표면의 방위가 평균 방위로부터의 미리 결정된 벡터 범위 내에 있다면, 시스템(420)은 표면이 측면이라고 결정한다.System 420 selects a target vertex from a plurality of vertices of the 3D model (step 1510). System 420 determines whether the surface (eg, triangle) sharing the target vertex is a side with substantially similar orientation (step 1520). In one example, system 420 determines the orientation of the surface sharing a target vertex along the normal vector of the surface. In one example, system 420 obtains the average orientation of the surfaces sharing the target vertices (eg, the average vector of the normal vectors). If the orientation of the surface deviates from the average orientation by a predetermined orientation range (eg, a predetermined vector range), the system 420 determines that the surface is not lateral. If the orientation of the surface sharing the target vertex is within a predetermined vector range from the average orientation, system 420 determines that the surface is lateral.

목표 정점을 공유하는 표면이 측면인 것으로 결정되면, 시스템(420)은 목표 정점을 시프트시킨다(단계 1530). 일 예에서, 목표 정점은 목표 정점의 최근접 정점으로 시프트된다. 시스템(420)은 임의의 중첩된 표면을 제거한다(1540). 효과적으로, 측면은 단일 표면으로 합성(또는 병합)된다.If the surface sharing the target vertex is determined to be flanked, the system 420 shifts the target vertex (step 1530). In one example, the target vertex is shifted to the nearest vertex of the target vertex. System 420 removes any overlapping surfaces (1540). Effectively, the sides are synthesized (or merged) into a single surface.

단계 1520에서 목표 정점을 공유하는 표면이 측면이 아니라고 결정되면, 시스템(420)은 단계 1550으로 진행한다.If it is determined in step 1520 that the surface sharing the target vertex is not a side, system 420 proceeds to step 1550.

시스템(420)은 추가 정점이 검사될 필요가 있는지를 결정한다(단계 1550). 추가 정점이 검사될 필요가 있다고 결정되면, 시스템(420)은 단계 1510으로 진행하여 3D 모델의 복수의 정점으로부터 다른 목표 정점을 선택한다. 모든 정점이 검사되면, 시스템(420)은 3D 모델의 측면을 합성하는 프로세스를 종료한다(단계 1560).System 420 determines if additional vertices need to be checked (step 1550). If it is determined that additional vertices need to be checked, system 420 proceeds to step 1510 to select different target vertices from a plurality of vertices in the 3D model. When all vertices are inspected, the system 420 ends the process of compositing aspects of the 3D model (step 1560).

도 16은 도 15에 도시된 컴퓨터 구현 프로세스에 따라 3D 모델의 측면을 합성하기 전의 예시적인 3D 모델과 측면을 합성한 후의 예시적인 3D 모델을 나타낸 도면이다. 도 16에서, 3D 모델(1610)은 정점(1620) 및 인접한 정점(1630A, 1630B, 1630C)을 포함한다. 정점(1620)은 정점(1630A, 1630B, 1620)을 갖는 제 1 삼각형, 정점(1630B, 1630C, 1620)을 갖는 제 2 삼각형 및 정점(1630A, 1630C, 1620)을 갖는 제 3 삼각형에 의해 공유된다. 시스템(420)은 제 1 삼각형, 제 2 삼각형, 제 3 삼각형의 법선 벡터(V1, V2, V3)를 각각 획득한다. 시스템(420)은 평균 법선 벡터(Vavg)를 획득하고, 법선 벡터(V1, V2, V3)가 평균 벡터로부터 미리 결정된 벡터 범위 내에 있다고 결정한다. 따라서, 시스템(420)은 정점(1620)을 공유하는 제 1 삼각형, 제 2 삼각형 및 제 3 삼각형이 측면 삼각형이라고 결정한다.FIG. 16 is a diagram illustrating an exemplary 3D model before synthesizing the side of the 3D model and an exemplary 3D model after synthesizing the side according to the computer-implemented process illustrated in FIG. 15. In FIG. 16, 3D model 1610 includes vertices 1620 and adjacent vertices 1630A, 1630B, 1630C. Vertices 1620 are shared by a first triangle with vertices 1630A, 1630B, 1620, a second triangle with vertices 1630B, 1630C, 1620, and a third triangle with vertices 1630A, 1630C, 1620. . The system 420 acquires normal vectors V1, V2, and V3 of the first triangle, the second triangle, and the third triangle, respectively. The system 420 obtains the average normal vector Vavg, and determines that the normal vectors V1, V2, and V3 are within a predetermined vector range from the average vector. Accordingly, system 420 determines that the first, second, and third triangles that share vertex 1620 are side triangles.

시스템(420)은 정점(1620)을 최근접 정점(1630A)으로 시프트시킨다. 측 방향 삼각형에 의해 공유되는 공통 정점으로부터 그 인접 정점까지의 거리가 모두 동일한 경우, 시스템(420)은 인접한 정점 중 임의의 하나를 선택하고, 선택된 인접한 정점으로 정점(1620)을 시프트시킬 수 있다. 시스템은 또한 중첩된 삼각형(예를 들어, 정점(1620)을 공유하는 제 1 삼각형 및 제 3 삼각형)을 제거한다. 따라서, 제 1 삼각형, 제 2 삼각형 및 제 3 삼각형은 정점(1630A, 1630B, 1630C)을 갖는 단일 삼각형으로 효과적으로 병합된다.System 420 shifts vertex 1620 to nearest vertex 1630A. If the distances from the common vertices shared by the lateral triangles to the adjacent vertices are all the same, the system 420 can select any one of the adjacent vertices and shift the vertex 1620 to the selected adjacent vertices. The system also removes overlapping triangles (eg, first and third triangles that share vertex 1620). Accordingly, the first triangle, the second triangle, and the third triangle are effectively merged into a single triangle with vertices 1630A, 1630B, 1630C.

도 17은 일 실시예에 따른, 3D 모델의 변들을 밸런싱하는 컴퓨터 구현 프로세스를 나타내는 흐름도이다. 일 실시예에서, 도 17의 단계는 도 8의 단계 850의 일부이다. 따라서, 도 17의 단계는 도 4의 시스템(420)(예를 들어, 표면 최적화 모듈(440))에 의해 수행된다. 다른 시스템은 다른 실시예에서 일부 또는 모든 단계를 수행할 수 있다. 마찬가지로, 실시예는 상이한 단계 및/또는 추가 단계를 포함할 수 있거나 상이한 순서로 단계를 수행할 수도 있다.17 is a flow diagram illustrating a computer-implemented process for balancing sides of a 3D model, according to one embodiment. In one embodiment, step 17 is part of step 850 of FIG. 8. Thus, the step of FIG. 17 is performed by the system 420 of FIG. 4 (eg, surface optimization module 440). Other systems may perform some or all of the steps in other embodiments. Likewise, an embodiment may include different steps and / or additional steps, or may perform steps in different orders.

시스템(420)은 3D 모델의 복수의 정점으로부터 목표 정점을 선택한다(단계 1710). 시스템(420)은 목표 정점이 적어도 3개의 표면(예를 들어, 삼각형)에 의해 공유되는지를 결정한다(단계 1720). 목표 정점이 적어도 3개의 표면에 의해 공유된다고 결정되면, 시스템(420)은 2개의 90°각도가 목표 정점에서 형성되는지를 결정한다(단계 1730). 적어도 2개의 90°각도가 목표 정점에서 형성되었다고 결정되면, 시스템(420)은 각각이 목표 정점을 그 단부로 갖는 최장변 및 최단변을 식별한다(단계 1740).System 420 selects a target vertex from a plurality of vertices of the 3D model (step 1710). System 420 determines whether the target vertex is shared by at least three surfaces (eg, triangles) (step 1720). If it is determined that the target vertices are shared by at least three surfaces, system 420 determines whether two 90 ° angles are formed at the target vertices (step 1730). If it is determined that at least two 90 ° angles have been formed at the target vertices, system 420 identifies the longest and shortest sides, each with a target vertex as its end (step 1740).

시스템(420)은 식별된 최장변 및 최단변에 기초하여 목표 정점을 시프트시킨다(단계 1750). 일 예에서, 시스템(420)은 최장변의 길이와 최단변의 길이 사이의 차이를 획득하고, 목표 정점을 차이의 절반만큼 최장변의 다른 끝 쪽으로 시프트시킨다.System 420 shifts the target vertex based on the identified longest and shortest sides (step 1750). In one example, system 420 obtains the difference between the length of the longest side and the length of the shortest side, and shifts the target vertex to the other end of the longest side by half the difference.

단계 1720에서 목표 정점이 적어도 3개의 삼각형에 의해 공유되지 않거나 단계 1730에서 적어도 2개의 90° 각도가 목표 정점에서 형성되지 않는다곡 결정되면, 시스템(420)은 단계 1760으로 진행한다.If it is determined in step 1720 that the target vertices are not shared by at least three triangles or in step 1730 that at least two 90 ° angles are not formed at the target vertices, system 420 proceeds to step 1760.

시스템(420)은 추가 정점이 검사될 필요가 있는지를 결정한다(단계 1760). 추가 정점이 검사될 필요가 있다고 결정되면, 시스템(420)은 단계 1710으로 진행하여 3D 모델의 복수의 정점으로부터 다른 목표 정점을 선택한다. 모든 정점이 검사되면, 시스템(420)은 3D 모델의 변들을 밸런싱하는 프로세스를 종료한다(단계 1770).System 420 determines if additional vertices need to be checked (step 1760). If it is determined that additional vertices need to be checked, the system 420 proceeds to step 1710 to select different target vertices from the multiple vertices of the 3D model. When all vertices are inspected, the system 420 ends the process of balancing the sides of the 3D model (step 1770).

도 18은 도 17에 도시된 컴퓨터 구현 프로세스에 따라 3D 모델의 변들을 밸런싱하기 전의 예시적인 3D 모델과 변들을 밸런싱한 후의 예시적인 3D 모델을 나타낸 도면이다. 일 실시예에서, 3D 모델(1810)은 도 15 및 도 16에 도시된 바와 같이 측면을 합성한 후에 획득된다.18 is a diagram illustrating an exemplary 3D model before balancing sides of a 3D model and an exemplary 3D model after balancing sides according to the computer-implemented process illustrated in FIG. 17. In one embodiment, the 3D model 1810 is obtained after synthesizing the sides as shown in FIGS. 15 and 16.

도 18에서, 3D 모델(1810)은 정점(1820) 및 인접한 정점(1830A ... 1830E)을 포함한다. 시스템(420)은 정점(1820)이 정점(1820)을 공유하는 5개의 삼각형을 갖고, 2개의 90° 각도가 정점(1820)에 형성된다고 결정한다. 따라서, 시스템(420)은 정점(1820)을 공유하는 3D 모델(1810)의 변들을 밸런싱한다. 일 예에서, 시스템(420)은 정점(1820)을 공유하는 최장변(1835A) 및 최단변(1835B)을 식별한다. 시스템(420)은 변(1835A)의 길이와 변(1835B)의 길이 사이의 차이를 획득하고, 정점(1820)을 차이의 절반만큼 정점(1830A)쪽으로 시프트시킨다. 따라서, 밸런싱한 후의 3D 모델(1860)은 밸런싱하기 전의 3D 모델(1810)보다 더 균형 잡힌 길이를 갖게 된다.In FIG. 18, 3D model 1810 includes vertices 1820 and adjacent vertices 1830A ... 1830E. System 420 determines that vertex 1820 has five triangles that share vertex 1820, and that two 90 ° angles are formed at vertex 1820. Thus, system 420 balances the sides of 3D model 1810 sharing vertex 1820. In one example, system 420 identifies the longest side 1835A and the shortest side 1835B that share vertex 1820. System 420 obtains the difference between the length of side 1835A and the length of side 1835B, and shifts vertex 1820 towards vertex 1830A by half the difference. Therefore, the 3D model 1860 after balancing has a more balanced length than the 3D model 1810 before balancing.

도 19a는 일 실시예에 따라 3D 모델 상에서 표면 최적화를 수행하기 전의 입체면 모델을 포함하는 예시적인 3D 모델과 표면 최적화를 수행한 후의 예시적인 3D 모델을 나타낸 도면이다. 도 19a에 도시된 바와 같이, 3D 모델(1910)의 거칠거나 울퉁불퉁한 표면은 도 8 내지 도 18과 관련하여 상세히 기술된 바와 같이 표면 최적화를 수행함으로써 매끄러워진다.19A is a diagram illustrating an exemplary 3D model including a stereoscopic model before performing surface optimization on a 3D model and an exemplary 3D model after performing surface optimization according to an embodiment. As shown in FIG. 19A, the rough or uneven surface of the 3D model 1910 is smoothed by performing surface optimization as described in detail with respect to FIGS. 8-18.

도 19b는 일 실시예에 따라 도 7e에 도시된 입체면 모델을 포함하는 3D 모델상에서 표면 최적화를 수행한 후의 예시적인 3D 모델을 나타낸 도면이다. 본 명세서에 개시된 바와 같이 표면 최적화를 수행하지 않는 도 7e의 3D 모델(790)과 비교하여, 3D 모델(1990)은 매끄러워진 표면을 포함하고 3D 모델(790)보다 더 사실적인 형상을 갖도록 최적화된다.19B is a diagram illustrating an exemplary 3D model after performing surface optimization on a 3D model including the three-dimensional model shown in FIG. 7E according to an embodiment. Compared to the 3D model 790 of FIG. 7E that does not perform surface optimization as disclosed herein, the 3D model 1990 includes a smoothed surface and is optimized to have a more realistic shape than the 3D model 790. .

도 19c는 도 19b에 도시된 예시적인 3D 모델의 일부의 확대도이다. 도 19c에 도시된 예시적인 도면에서, 3D 모델(1990)의 표면은 인간의 두개골의 복잡한 형상을 나타내는 복수의 삼각형으로 구성된다.19C is an enlarged view of a portion of the example 3D model shown in FIG. 19B. In the exemplary drawing shown in FIG. 19C, the surface of the 3D model 1990 is composed of a plurality of triangles representing the complex shape of the human skull.

도 20은 일 실시예에 따라 머신 판독가능 매체로부터 명령어를 판독하고 이를 프로세서(또는 제어기)에서 실행할 수 있는 예시적인 머신(예를 들어, 컴퓨터)의 구성 요소를 나타낸 도면이다.20 is a diagram illustrating components of an example machine (eg, computer) capable of reading instructions from a machine-readable medium and executing them on a processor (or controller) according to one embodiment.

구체적으로, 도 20은 컴퓨터 시스템(2000)의 예시적 형태인 머신을 도식적으로 표현하는데, 이곳에서 머신으로 하여금 도 1 내지 도 19를 이용하여 본 명세서에서 논의된 임의의 하나 이상의 방법론을 수행하게 하는 명령어(2024)(예를 들어, 소프트웨어 또는 프로그램 코드)가 수행될 수 있다. 대안적인 실시예에서, 머신은 독립형 디바이스로서 동작하거나 다른 머신에 접속(예를 들어, 네트워크로 연결됨)될 수 있다. 네트워크로 연결된 구조에서 머신은 서버 클라이언트 네트워크 환경에서 서버 머신 또는 클라이언트 머신의 역할로 동작하거나 피어 투 피어(또는 분산) 네트워크 환경에서 피어 머신으로서 동작할 수 있다.Specifically, FIG. 20 schematically represents a machine that is an exemplary form of computer system 2000, where the machine is used to perform any one or more methodologies discussed herein using FIGS. Instruction 2024 (eg, software or program code) may be performed. In alternative embodiments, the machine can operate as a standalone device or be connected (eg, connected to a network) to another machine. In a networked architecture, a machine may act as a server machine or client machine in a server client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.

머신은 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(PC), 태블릿 PC, 셋톱 박스(STB), 개인용 정보 단말기(PDA), 셀룰러 전화기, 스마트폰, 웹 어플라이언스, 네트워크 라우터, 스위치 또는 브리지 또는 해당 머신에서 수행할 작업을 지정하는 명령어(2024)(순차적 또는 기타)를 실행할 수 있는 임의의 머신이 될 수 있다. 또한, 단지 하나의 머신만이 도시되어 있지만, "머신"이라는 용어는 본 명세서에서 논의된 하나 이상의 방법론을 수행하기 위한 명령어(2024)를 개별적으로 또는 공동으로 실행하는 임의의 머신 집합을 포함하도록 취급될 수 있다.The machine runs on a server computer, client computer, personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), cellular phone, smartphone, web appliance, network router, switch, or bridge, or on that machine. It can be any machine that can execute instructions 2024 (sequential or otherwise) that specify what to do. Also, although only one machine is shown, the term "machine" is intended to include any set of machines that individually or jointly execute instructions 2024 to perform one or more methodologies discussed herein. Can be.

예시적인 컴퓨터 시스템(2000)은 버스(2008)를 통해 서로 통신하도록 구성된, 하나 이상의 프로세서(일반적으로, 프로세서(2002))(예를 들어, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 하나 이상의 주문형 반도체(ASIC), 하나 이상의 무선통신용 초고주파 칩(RFIC), 또는 임의의 이들의 조합), 주 메모리(2004) 및 정적 메모리(2006)를 포함한다. 컴퓨터 시스템(2000)은 그래픽 디스플레이 유닛(2010)(예를 들어, 플라즈마 디스플레이 패널(PDP), 액정 디스플레이(LCD), 프로젝터, 또는 음극선관(CRT))을 더 포함할 수 있다. 컴퓨터 시스템(2000)은 또한 버스(2008)를 통해 통신하도록 구성된, 영숫자 입력 장치(2012)(예를 들어, 키보드), 커서 제어 장치(2014)(예를 들어, 마우스, 트랙볼, 조이스틱, 움직임 센서, 또는 다른 포인팅 기구), 저장 유닛(2016), 신호 생성 장치(2018)(예를 들어, 스피커), 및 네트워크 인터페이스 장치(2020)를 포함한다.Exemplary computer system 2000 is configured to communicate with each other via bus 2008, one or more processors (generally processors 2002) (eg, central processing unit (CPU), graphics processing unit (GPU), One or more on-demand semiconductors (ASICs), one or more ultra-high frequency chips (RFICs) for wireless communications, or any combination thereof, main memory 2004 and static memory 2006. The computer system 2000 may further include a graphic display unit 2010 (eg, a plasma display panel (PDP), a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)). Computer system 2000 is also configured to communicate via bus 2008, an alphanumeric input device 2012 (e.g., keyboard), cursor control device 2014 (e.g., mouse, trackball, joystick, motion sensor) , Or other pointing mechanism), a storage unit 2016, a signal generating device 2018 (eg, a speaker), and a network interface device 2020.

저장 유닛(2016)은 본 명세서에서 설명된 임의의 하나 이상의 방법론 또는 기능을 구현하는 명령어(2024)를 저장하는 머신 판독가능 매체(2022)를 포함한다. 명령어(2024)는 또한 컴퓨터 시스템(2000)에 의해 실행되는 동안 주 메모리(2004) 또는 프로세서(2002)(예를 들어, 프로세서의 캐시 메모리) 내에 완전히 또는 적어도 부분적으로 상주할 수 있고, 주 메모리(2004) 및 프로세서(2002)는 또한 머신 판독가능 매체를 구성할 수 있다. 명령어(2024)는 또한 네트워크 인터페이스 장치(2020)를 이용하여 네트워크(2026)를 통해 송신되거나 수신될 수 있다.Storage unit 2016 includes a machine-readable medium 2022 that stores instructions 2024 that implement any one or more methodologies or functions described herein. Instruction 2024 may also reside entirely or at least partially within main memory 2004 or processor 2002 (eg, the processor's cache memory) while being executed by computer system 2000, and may include main memory ( 2004) and processor 2002 may also constitute a machine-readable medium. Instruction 2024 may also be transmitted or received over network 2026 using network interface device 2020.

머신 판독가능 매체(2022)는 예시적인 실시예에서 단일 매체로 도시되지만, "머신 판독가능 매체"라는 용어는 명령어(예를 들어, 명령어(2024))를 저장할 수 있는 단일 매체 또는 다중 매체(예를 들어, 중앙 집중형 또는 분산형 데이터베이스 또는 연관 캐시 및 서버)를 포함하도록 취급되어야 한다. 또한, "머신 판독가능 매체"라는 용어는, 머신이 실행하고 머신으로 하여금 본 명세서에서 논의된 임의의 하나 이상의 방법론을 수행하게 하는 명령어(예를 들어, 명령어(2024))를 저장할 수 있는 임의의 매체를 포함하는 것으로 취급되어야 한다. "머신 판독가능 매체"라는 용어는 고체 상태 메모리, 광학 매체 및 자기 매체의 형태인 데이터 저장소를 포함할 수 있지만, 이에 한정되는 것은 아니다.Machine readable medium 2022 is shown as a single medium in an exemplary embodiment, but the term “machine readable medium” is a single medium or multiple medium (eg, an example) capable of storing instructions (eg, instruction 2024). For example, it should be handled to include centralized or distributed databases or associated caches and servers). In addition, the term "machine-readable medium" means any that can store instructions (eg, instructions 2024) that the machine executes and causes the machine to perform any one or more of the methodologies discussed herein. It should be treated as including media. The term "machine-readable medium" may include, but is not limited to, solid-state memory, optical media, and data storage in the form of magnetic media.

일 예에서, 본 명세서에 개시된 원리는 의료용 애플리케이션에 적용될 수 있다. 예를 들어, 의료용 디지털 이미징 및 통신(Digital Imaging and Communication in Medicine: DICOM) 파일 형식의 2D 단면 이미지를 기반으로 가상 3D 모델을 생성할 수 있다. 3D 모델은 임의의 종래의 3D 기술 형식(예를 들어, STL 형식, 3DMAX의 3DS 형식, MAYA의 OBJ 형식 등)으로 변환될 수 있는 3D 모델 데이터로 표현될 수 있다. 3D 모델은 시각적으로 제시되어 환자의 의학적 상태를 판단하거나, 신체 부위의 구조적 문제의 원인을 격리시키거나, 특정 수술(예를 들어, 치아 이식, 정형외과 수술 등)이 수행된 후의 경우를 시뮬레이션할 수 있게 도와줄 수 있다. 또한, 3D 모델은 3D 인쇄를 통해 실체 형태로 렌더링될 수 있으므로, 의사가 수술을 준비하는 것, 대체 신체 부위를 생성하는 것 등을 할 수 있게 도와줄 수 있다.In one example, the principles disclosed herein can be applied to medical applications. For example, a virtual 3D model can be generated based on a 2D cross-sectional image in the Digital Imaging and Communication in Medicine (DICOM) file format. The 3D model can be expressed as 3D model data that can be converted into any conventional 3D technology format (eg, STL format, 3DMAX 3DS format, MAYA OBJ format, etc.). The 3D model can be visually presented to judge the patient's medical condition, isolate the cause of structural problems in body parts, or simulate cases after certain surgeries (e.g., dental implants, orthopedic surgery) have been performed. Can help you. In addition, since the 3D model can be rendered in a stereoscopic form through 3D printing, it can help a doctor prepare for surgery, create an alternative body part, and the like.

본 명세서에 개시된 원리는 3D 모델이 사용되는 다른 애플리케이션(예를 들어, 3D 애니메이션, 게임, 3D CAD 등)에도 적용될 수 있다.The principles disclosed herein can also be applied to other applications in which 3D models are used (eg, 3D animation, games, 3D CAD, etc.).

또한, 본 명세서에 개시된 바와 같이 입체면 모델을 포함하는 3D 모델에 표면 최적화를 수행함으로써, 3D 모델의 거칠거나 울퉁불퉁한 표면을 처리 리소스(예를 들어, 프로세서 스레드, 저장 용량 등) 면에서 효과적으로 매끄럽게 할 수 있다. 예를 들어, 수천만 개의 입체면 모델을 포함하는 3D 모델의 표면을 매끄럽게 하기 위해 분석될 다수의 정점 및 표면(예를 들어, 삼각형)은, 본 명세서에 개시된 표면 최적화를 수행함으로써 크기 순서대로 감소될 수 있다. 결과적으로, 처리 리소스가 보존될 수 있다.In addition, by performing surface optimization on a 3D model including a three-dimensional model as disclosed herein, the rough or uneven surface of the 3D model is effectively smoothed in terms of processing resources (e.g., processor threads, storage capacity, etc.) can do. For example, a number of vertices and surfaces (eg, triangles) to be analyzed to smooth the surface of a 3D model comprising tens of millions of stereoscopic models may be reduced in size order by performing the surface optimization disclosed herein. You can. As a result, processing resources can be conserved.

본 명세서 전체에 걸쳐, 복수의 예는 일 예로서 설명된 구성 요소, 동작 또는 구조를 구현할 수 있다. 하나 이상의 방법의 개별적인 동작이 분리된 동작으로 도시되고 설명되지만, 하나 이상의 개별적인 동작은 동시에 수행될 수 있으며, 동작이 도시된 순서대로 수행될 것을 요구하는 것은 아니다. 구성 예에서 분리된 구성 요소로 제시된 구조 및 기능은 연결된 구조 또는 구성 요소로 구현될 수 있다. 유사하게, 단일 구성 요소로 제시된 구조 및 기능은 분리된 구성 요소로 구현될 수 있다. 이러한 변형 및 다른 변형, 수정, 추가 및 개선은 본 명세서의 발명의 대상의 범위 내에 있다.Throughout this specification, a plurality of examples may implement components, operations, or structures described as examples. Although individual operations of one or more methods are shown and described as separate operations, one or more individual operations may be performed simultaneously, and it is not required that the operations be performed in the order shown. Structures and functions presented as separate components in the configuration example may be implemented as connected structures or components. Similarly, structures and functions presented as a single component may be implemented as separate components. These and other variations, modifications, additions and improvements are within the scope of the subject matter of the invention herein.

특정 실시예는, 예를 들어, 도 4에 도시된 바와 같은, 로직 또는 다수의 구성 요소, 모듈, 또는 메커니즘을 포함하는 것으로 설명된다. 모듈은 소프트웨어 모듈(예를 들어, 머신 판독가능 매체 또는 전송 신호 상에 구현된 코드) 또는 하드웨어 모듈 중 어느 하나를 구성할 수 있다. 하드웨어 모듈은 특정 동작을 수행할 수 있는 유형의 장치이며 특정 방식으로 구성되거나 배치될 수 있다. 예시적인 실시예에서, 하나 이상의 컴퓨터 시스템(예를 들어, 독립형, 클라이언트 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 모듈(예를 들어, 프로세서 또는 프로세서 그룹)은 소프트웨어(예를 들어, 애플리케이션 또는 애플리케이션 부분)에 의해 본 명세서에 설명된 바와 같은 특정 동작을 수행하도록 동작하는 하드웨어 모듈로서 구성될 수 있다.Certain embodiments are described as including logic or multiple components, modules, or mechanisms, for example, as shown in FIG. 4. The module may constitute either a software module (eg, code embodied on a machine-readable medium or transmission signal) or a hardware module. A hardware module is a type of device capable of performing a specific operation and can be configured or arranged in a specific way. In an exemplary embodiment, one or more computer systems (eg, standalone, client or server computer systems) or one or more hardware modules (eg, processors or groups of processors) of a computer system are configured with software (eg, applications or Application part) as a hardware module operative to perform certain operations as described herein.

다양한 실시예에서, 하드웨어 모듈은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들어, 하드웨어 모듈은 (예를 들어, 필드 프로그램가능 게이트 어레이(FPGA) 또는 주문형 반도체(ASIC)와 같은 특수 목적 프로세서로서) 영구적으로 구성된 전용 회로 또는 로직을 포함할 수 있다. 하드웨어 모듈은 또한 특정 동작을 수행하기 위해 소프트웨어에 의해 (예를 들어, 범용 프로세서 또는 다른 프로그램 가능 프로세서 내에 포함되는 것으로서) 일시적으로 구성된 프로그램 가능 로직 또는 회로를 포함할 수 있다. 영구적으로 구성된 전용 회로 또는 일시적으로 구성된 회로(예를 들어, 소프트웨어에 의해 구성된 회로)로 하드웨어 모듈을 기계적으로 구현하는 것이 비용 및 시간을 고려하여 결정될 수 있음을 이해할 것이다.In various embodiments, hardware modules may be implemented mechanically or electronically. For example, a hardware module may include dedicated circuitry or logic (eg, as a special purpose processor, such as a field programmable gate array (FPGA) or a custom semiconductor (ASIC)). The hardware module may also include programmable logic or circuitry temporarily configured by software (eg, as contained within a general purpose processor or other programmable processor) to perform certain operations. It will be understood that mechanically implementing a hardware module with permanently configured dedicated circuits or temporarily configured circuits (eg, circuits constructed by software) can be determined in consideration of cost and time.

본 명세서에서 설명된 예시적인 방법의 다양한 동작은 관련 동작을 수행하도록 (예를 들어, 소프트웨어에 의해) 일시적으로 구성되거나 영구적으로 구성된 하나 이상의 프로세서, 예를 들어, 프로세서(2002)에 의해 적어도 부분적으로 수행될 수 있다. 일시적으로 구성되든 영구적으로 구성되든 이러한 프로세서는 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서 구현 모듈을 구성할 수 있다. 본 명세서에 언급된 모듈은 몇몇 실시예에서 프로세서 구현 모듈을 포함할 수 있다.The various operations of the example methods described herein are at least partially configured by one or more processors, for example, processor 2002, temporarily or permanently configured (eg, by software) to perform related operations. Can be performed. Whether temporarily or permanently configured, such a processor may constitute a processor implementation module operative to perform one or more operations or functions. The modules mentioned herein may include processor implementation modules in some embodiments.

하나 이상의 프로세서는 또한 "클라우드 컴퓨팅" 환경에서 또는 "서비스형 소프트웨어(SaaS)"로서 관련 동작의 성능을 지원하도록 동작할 수 있다. 예를 들어, 적어도 일부 동작은 컴퓨터(예를 들어, 프로세서를 포함하는 머신)의 그룹에 의해 수행될 수 있으며, 이러한 동작은 네트워크(예를 들어, 인터넷) 및 하나 이상의 적절한 인터페이스(예를 들어, 애플리케이션 프로그램 인터페이스(API))를 통해 액세스가능하다.One or more processors may also operate to support the performance of related operations in a “cloud computing” environment or as “Software as a Service (SaaS)”. For example, at least some of the operations may be performed by a group of computers (e.g., a machine including a processor), such operations as a network (e.g., the Internet) and one or more suitable interfaces (e.g., Accessible through an application program interface (API).

특정 동작 성능은 단일 머신 내에 존재할 뿐만 아니라 다수의 머신에 걸쳐 배치되는 하나 이상의 프로세서 사이에서 분산될 수 있다. 몇몇 예시적인 실시예에서, 하나 이상의 프로세서 또는 프로세서 구현 모듈은 단일 지리적 위치(예를 들어, 가정 환경, 사무실 환경 또는 서버 팜 내)에 위치할 수 있다. 다른 예시적인 실시예에서, 하나 이상의 프로세서 또는 프로세서 구현 모듈은 다수의 지리적 위치에 걸쳐 분산될 수 있다.The specific operational performance can be distributed among one or more processors not only residing within a single machine, but spread across multiple machines. In some demonstrative embodiments, one or more processors or processor-implemented modules may be located in a single geographic location (eg, in a home environment, office environment, or server farm). In other example embodiments, one or more processors or processor-implemented modules may be distributed across multiple geographic locations.

본 명세서의 일부는 머신 메모리(예를 들어, 컴퓨터 메모리) 내에 비트 또는 2진 디지털 신호로서 저장된 데이터에 대한 연산의 알고리즘 또는 심볼 표현과 관련하여 제공된다. 이러한 알고리즘 또는 심볼 표현은 데이터 처리 기술 분야의 통상의 지식을 가진 당업자가 그들의 작업 내용을 다른 당업자에게 전달하는데 사용하는 기술의 예이다. 본 명세서에 사용된 바와 같이, "알고리즘"은 원하는 결과를 유도하는 동작 또는 유사한 처리의 일관성 있는 시퀀스이다. 이러한 맥락에서, 알고리즘 및 연산은 물리량의 물리적 조작을 수반한다. 통상적으로, 그러한 물리량은 머신에 의해 저장, 액세스, 전송, 연결, 비교 또는 다른 방식으로 조작될 수 있는 전기, 자기 또는 광학 신호의 형태를 취할 수 있는데 이것이 필수적인 것은 아니다. "데이터", "콘텐츠", "비트", "값", "요소", "심볼", "문자", "용어", "수", "숫자" 등과 같은 단어는 주로 일반적으로 사용되는 용어이므로 이들을 사용하여 위와 같은 신호를 지칭하는 것이 때로는 편리하다. 그러나, 이러한 단어는 단지 편리한 레이블일 뿐이며 적절한 물리적인 양과 연관될 것이다.Portions of this specification are provided in connection with algorithms or symbolic representations of operations on data stored as bit or binary digital signals in machine memory (eg, computer memory). Such algorithms or symbolic representations are examples of techniques used by those skilled in the data processing arts to convey their work to others skilled in the art. As used herein, "algorithm" is a consistent sequence of actions or similar processes that leads to a desired result. In this context, algorithms and computations involve physical manipulation of physical quantities. Typically, such physical quantities may take the form of electrical, magnetic or optical signals that can be stored, accessed, transmitted, connected, compared or otherwise manipulated by a machine, which is not essential. Words such as "data", "content", "bits", "values", "elements", "symbols", "characters", "terms", "numbers" and "numbers" are mainly commonly used terms, so It is sometimes convenient to use these to refer to such signals. However, these words are only convenient labels and will be associated with an appropriate physical quantity.

달리 구체적으로 언급되지 않는 한, "처리", "컴퓨팅", "계산", "결정", "제시", "디스플레이" 등과 같은 단어를 사용하여 본 명세서에서 논의한 것은 머신(예를 들어, 컴퓨터)의 동작 또는 프로세스를 지칭할 수 있으며, 이 머신은 하나 이상의 메모리(예를 들어, 휘발성 메모리, 비휘발성 메모리 또는 이들의 조합), 레지스터 또는 정보를 수신, 저장, 송신 또는 디스플레이하는 기타 머신 구성 요소 내에서 물리적(예를 들어, 전자적, 자기적 또는 광학적) 양으로 표시된 데이터를 조작하거나 변환한다.Unless specifically stated otherwise, the terms discussed herein using words such as "processing", "computing", "calculation", "decision", "presentation", "display", etc. are machines (eg, computers). Can refer to the operation or process of a machine, the machine being one or more memories (e.g., volatile memory, non-volatile memory, or combinations thereof), registers or other machine components that receive, store, transmit or display information To manipulate or transform data displayed in physical (eg, electronic, magnetic or optical) quantities.

본 명세서에 사용된 바와 같이, "일 실시예" 또는 "실시예"에 대한 임의의 참조는 실시예와 관련하여 설명된 특정 요소, 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함됨을 의미한다. 명세서의 다양한 곳에서 "일 실시예에서"라는 문구가 반드시 동일한 실시예를 지칭하는 것은 아니다.As used herein, any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. . The phrase "in one embodiment" in various places in the specification does not necessarily refer to the same embodiment.

몇몇 실시예는 "연결된(coupled)"및 "접속된(connected)"이라는 표현과 함께 그 파생어를 사용하여 기술될 수 있다. 예를 들어, 몇몇 실시예는, 2개 이상의 요소가 직접 물리적 또는 전기적으로 접촉하고 있음을 나타내기 위해 "연결된"이라는 용어를 사용하여 설명될 수 있다. 그러나, "연결된"이라는 용어는 둘 이상의 요소가 서로 직접 접촉하지는 않지만 여전히 공동으로 동작하거나 서로 상호 작용한다는 것을 의미할 수도 있다. 실시예는 이 문맥에 제한되지 않는다.Some embodiments may be described using their derivatives with the expressions “coupled” and “connected”. For example, some embodiments may be described using the term “connected” to indicate that two or more elements are in direct physical or electrical contact. However, the term "connected" may mean that two or more elements are not in direct contact with each other, but still operate jointly or interact with each other. The embodiments are not limited in this context.

본 명세서에서 사용된 바와 같이, 용어 "포함하다", "포함하는", "구비하다", "구비하는", "갖다", "갖는" 또는 그것의 임의의 다른 변형은 비배타적인 포함(non-exclusive inclusion)을 커버하고자 한다. 예를 들어, 요소의 리스트를 포함하는 프로세스, 방법, 물품 또는 장치는 반드시 이러한 요소만으로 한정되는 것이 아니라, 명시적으로 열거되어 있지 않거나 그러한 프로세스, 방법, 품목 또는 장치에 내재되어 있는 다른 요소를 포함할 수도 있다. 또한, 달리 명시적으로 언급되지 않는 한, "또는(or)"은 포함적 OR을 나타내는 것이지 배타적 OR을 나타내는 것이 아니다. 예를 들어, 조건 A 또는 B는, A는 참(또는 존재함)이고 B는 거짓(또는 존재하지 않음), A는 거짓(또는 존재하지 않음)이고 B는 참(또는 존재함), A 및 B 모두가 참(또는 존재함), 중 어느 하나에 의해 만족된다.As used herein, the terms “comprises”, “comprising”, “haves”, “haves”, “haves”, “haves” or any other variation thereof are non-exclusive inclusions (non -exclusive inclusion). For example, a process, method, article, or device that includes a list of elements is not necessarily limited to only those elements, but includes other elements not explicitly listed or embedded in such processes, methods, items, or devices. You may. Also, unless explicitly stated otherwise, "or" refers to an inclusive OR, not an exclusive OR. For example, the conditions A or B are: A is true (or present), B is false (or non-existent), A is false (or not present), B is true (or exists), A and B All are satisfied by either true (or present).

또한, "하나"는 본원 실시예의 요소 및 구성 요소를 설명하기 위해 사용된다. 이는 단지 편의상 그리고 본 발명의 일반적인 의미를 제공하기 위해 이루어진다. 이러한 표현은 하나 또는 적어도 하나를 포함하는 것으로 파악되어야 하며, 단수형은 그 수가 명백하게 단수임을 의미하는 것이 아니라면 복수형을 또한 포함한다.Also, “one” is used to describe elements and components of the embodiments herein. This is done only for convenience and to provide a general sense of the invention. It should be understood that this expression includes one or at least one, and a singular form also includes a plural form unless the number clearly means that the number is singular.

당업자는 본 개시를 읽을 때 개시된 원리를 통해 가상 입체면를 포함하는 가상 3D 모델의 3D 모델 데이터를 생성하는 시스템 및 프로세스에 대한 추가의 다른 구조적 및 기능적 설계를 이해할 것이다. 따라서, 특정 실시예 및 응용이 도시되고 설명되었지만, 개시된 실시예는 여기에 개시된 정확한 구성 및 구성 요소로 한정되지 않는다는 것을 이해해야 한다. 당업자에게 명백할 다양한 수정, 변경 및 변형이 첨부된 청구 범위에서 정의된 사상 및 범주를 벗어나지 않으면서 본원에 개시된 방법 및 장치의 배치, 동작 및 세부 사항에서 이루어질 수 있다.Those skilled in the art will understand additional other structural and functional designs for systems and processes that generate 3D model data of a virtual 3D model that includes a virtual solid surface through the principles disclosed when reading this disclosure. Thus, although specific embodiments and applications have been shown and described, it should be understood that the disclosed embodiments are not limited to the precise configurations and elements disclosed herein. Various modifications, changes, and variations that will be apparent to those skilled in the art can be made in the arrangement, operation, and details of the methods and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims.

Claims (19)

3차원(3D) 객체의 복수의 2차원(2D) 단면 이미지에 기초하여 3D 모델 데이터를 생성하는 컴퓨터 구현 방법으로서,
상기 복수의 2D 단면 이미지의 제1 단면 이미지를 나타내는 제1 이미지 데이터 세트 및 상기 복수의 2D 단면 이미지의 제2 단면 이미지를 나타내는 제2 이미지 데이터 세트를 수신하는 단계;
상기 제1 단면 이미지의 픽셀로부터 제1 픽셀 세트의 제1 2D 좌표 세트를 식별하는 단계;
상기 제2 단면 이미지의 픽셀로부터 제2 픽셀 세트의 제2 2D 좌표 세트를 식별하는 단계;
상기 제1 2D 좌표 세트로부터, 6개의 서로 수직하는 면을 갖는 가상 육면체 형태에서 일부 면이 폐쇄된 제1 폐쇄면과 일부 면이 개방된 가상 개방면을 갖는 제1 입체면 모델을 나타내는 제1 입체면 데이터 세트를 생성하는 단계;
상기 제2 2D 좌표 세트로부터, 6개의 서로 수직하는 면을 갖는 가상 육면체 형태에서 일부 면이 폐쇄된 제2 폐쇄면과 일부 면이 개방된 가상 개방면을 갖는 제2 입체면 모델을 나타내는 제2 입체면 데이터 세트를 생성하는 단계; 및
상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계를 포함하고,
상기 제1 단면 이미지는 3D 축 중 하나에 따른 상기 3D 객체의 제1 위치에 대응하고, 상기 제2 단면 이미지는 상기 제1 위치에서 떨어진 상기 3D 축 중 하나에 따른 상기 3D 객체의 제2 위치에 대응하며,
상기 제1 이미지 데이터 세트 및 상기 제2 이미지 데이터 세트는 2D 좌표 및 픽셀 값을 포함하며,
상기 제1 입체면 모델은 상기 제1 2D 좌표 세트 중 하나의 좌표에서 상기 3D 축 중 하나를 기준으로 상기 좌표의 양측에 입체면이 형성된 것을 특징으로 하고,
상기 제2 입체면 모델은 상기 제2 2D 좌표 세트 중 하나의 좌표에서 상기 3D 축 중 하나를 기준으로 상기 좌표의 양측에 입체면이 형성된 것을 특징으로 하고,
상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계는, 상기 제1 입체면 모델 및 제2 입체면 모델 중 인접한 입체면 모델의 가상 개방면들을 붙이는 단계를 포함하는 컴퓨터 구현 방법.
A computer-implemented method for generating 3D model data based on a plurality of 2D (2D) cross-sectional images of a 3D (3D) object,
Receiving a first image data set representing a first section image of the plurality of 2D section images and a second image data set representing a second section image of the plurality of 2D section images;
Identifying a first set of 2D coordinates of a first set of pixels from pixels of the first cross-sectional image;
Identifying a second set of 2D coordinates of the second set of pixels from pixels of the second cross-sectional image;
From the first set of 2D coordinates, in the form of a virtual hexahedron having six mutually perpendicular faces, a first three-dimensional model representing a first three-dimensional model having a first closed face with some faces closed and a virtual open face with some faces open. Generating a face data set;
From the second set of 2D coordinates, in the form of a virtual hexahedron having six mutually perpendicular faces, a second solid surface representing a second closed face model having a second closed face with some faces closed and a virtual open face with some faces open. Generating a face data set; And
Generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set,
The first cross-sectional image corresponds to a first position of the 3D object along one of the 3D axes, and the second cross-sectional image is at a second position of the 3D object along one of the 3D axes away from the first position. To respond,
The first image data set and the second image data set include 2D coordinates and pixel values,
The first three-dimensional plane model is characterized in that three-dimensional planes are formed on both sides of the coordinates based on one of the 3D axes in one coordinate of the first 2D coordinate set,
The second three-dimensional plane model is characterized in that three-dimensional planes are formed on both sides of the coordinates based on one of the 3D axes in one coordinate of the second 2D coordinate set,
The step of generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set may include virtual open surfaces of adjacent three-dimensional model among the first three-dimensional model and the second three-dimensional model. A computer implemented method comprising the step of pasting.
제 1 항에서,
상기 제1 입체면 모델의 제1 폐쇄면 각각은 균일한 높이를 갖고, 상기 제2 입체면 모델의 제2 폐쇄면 각각은 상기 균일한 높이를 갖는 컴퓨터 구현 방법.
In claim 1,
Each of the first closed surfaces of the first three-dimensional model has a uniform height, and each of the second closed surfaces of the second three-dimensional model has the uniform height.
제 2 항에서,
상기 균일한 높이는 상기 3D 축 중 하나에 따른 상기 제1 위치와 제2 위치 사이의 거리에 대응하는 컴퓨터 구현 방법.
In claim 2,
The uniform height corresponds to the distance between the first position and the second position along one of the 3D axes.
삭제delete 제 1 항에서,
상기 제1 입체면 모델 및 제2 입체면 모델 중 인접한 입체면 모델을 붙이는 단계는,
붙은 입체면 모델의 제1 폐쇄면 및 제2 폐쇄면의 좌표를 포함하는 표면 데이터를 생성하는 단계를 포함하는 컴퓨터 구현 방법.
In claim 1,
The step of attaching an adjacent three-dimensional model among the first three-dimensional model and the second three-dimensional model,
And generating surface data including coordinates of the first closed surface and the second closed surface of the attached three-dimensional surface model.
제 5 항에서,
상기 붙은 입체면 모델의 제1 폐쇄면 및 제2 폐쇄면의 각각은 2개의 삼각형으로 이루어지는 컴퓨터 구현 방법.
In claim 5,
The computer-implemented method of each of the first closed surface and the second closed surface of the attached three-dimensional model consists of two triangles.
제 6 항에서,
상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계는,
상기 붙은 입체면 모델의 제1 폐쇄면 및 제2 폐쇄면 각각의 서로 직교하는 3개의 삼각형에 대한 공통 정점을 식별하는 단계;
상기 공통 정점의 인접한 정점을 자신의 3개의 정점으로 갖는 새로운 삼각형을 생성하는 단계; 및
상기 공통 정점 및 상기 3개의 삼각형을 제거하는 단계를 더 포함하는 컴퓨터 구현 방법.
In claim 6,
Generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set,
Identifying common vertices for three triangles orthogonal to each other of the first closed surface and the second closed surface of the attached three-dimensional surface model;
Creating a new triangle having its common vertices as its three vertices; And
And removing the common vertex and the three triangles.
제 6 항에서,
상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계는,
공통 변을 공유하는 상기 붙은 입체면 모델의 서로 직교하는 제1 삼각형 및 제2 삼각형을 식별하는 단계;
상기 공통 변과 이격된 상기 제1 삼각형의 제1 정점과 상기 공통 변과 이격된 상기 제2 삼각형의 제2 정점과 상기 공통 변의 제1 단을 3개의 정점으로 갖는 새로운 삼각형을 생성하는 단계; 및
상기 공통 변의 제2단, 상기 제1 삼각형 및 상기 제2 삼각형을 제거하는 단계를 포함하는 컴퓨터 구현 방법.
In claim 6,
Generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set,
Identifying a first triangle and a second triangle orthogonal to each other of the attached three-dimensional surface model sharing a common side;
Generating a new triangle having, as three vertices, a first vertex of the first triangle spaced apart from the common side, a second vertex of the second triangle spaced apart from the common side, and a first end of the common side as three vertices; And
And removing the second end of the common side, the first triangle, and the second triangle.
제 6 항에서,
상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계는,
3개의 삼각형에 의해 공유되는 오프셋 정점을 식별하는 단계;
상기 오프셋 정점을 상기 오프셋 정점의 인접한 정점까지 시프트시키는 단계; 및
상기 오프셋 정점을 시프트시킨 후에 중첩하는 삼각형을 제거하는 단계를 포함하고,
상기 3개의 삼각형 각각은 삼각형의 중심으로부터 상기 삼각형과 떨어진 상기 오프셋 정점의 인접한 정점까지의 거리 벡터를 갖고, 상기 3개의 삼각형의 각각의 거리 벡터는 동일한 극성을 갖는 컴퓨터 구현 방법.
In claim 6,
Generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set,
Identifying the offset vertices shared by the three triangles;
Shifting the offset vertex to an adjacent vertex of the offset vertex; And
And removing the overlapping triangles after shifting the offset vertices,
Each of the three triangles has a distance vector from the center of the triangle to an adjacent vertex of the offset vertex away from the triangle, and each distance vector of the three triangles has the same polarity.
제 6 항에서,
상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계는,
상기 붙은 입체면 모델의, 공통 정점을 공유하고 미리 결정된 표면 방향 범위 내에서 방향이 결정된 3개의 삼각형 측면을 식별하는 단계;
상기 공통 정점의 인접한 정점을 자신의 3개의 정점으로 갖는 새로운 삼각형을 생성하는 단계; 및
상기 공통 정점 및 상기 3개의 삼각형을 제거하는 단계를 포함하는 컴퓨터 구현 방법.
In claim 6,
Generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set,
Identifying three triangular sides of the attached three-dimensional model that share a common vertex and are oriented within a predetermined range of surface directions;
Creating a new triangle having its common vertices as its three vertices; And
And removing the common vertex and the three triangles.
제 6 항에서,
상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하는 단계는,
상기 붙은 입체면 모델의, 서로 공통 정점 및 공통 변을 공유하고 상기 공통 정점에서 2개의 90°각도가 형성된 2개의 직각 삼각형을 식별하는 단계;
각각의 단부가 상기 공통 정점인 복수의 변 중 최장변을 식별하는 단계;
상기 복수의 변 중 최단변을 식별하고, 상기 최장변의 길이와 상기 최단변의 길이 사이의 평균을 획득하는 단계; 및
상기 공통 정점을 상기 공통 정점과 떨어진 상기 최장변의 단부쪽으로 상기 평균의 절반만큼 시프트시키는 단계를 포함하는 컴퓨터 구현 방법.
In claim 6,
Generating the 3D model data based on the first three-dimensional data set and the second three-dimensional data set,
Identifying two right-angled triangles of the three-dimensional surface model, which share a common vertex and a common side, and have two 90 ° angles formed at the common vertex;
Identifying the longest side of the plurality of sides where each end is the common vertex;
Identifying the shortest side of the plurality of sides, and obtaining an average between the length of the longest side and the length of the shortest side; And
And shifting the common vertex by half of the mean towards the longest edge away from the common vertex.
제 1 항에서,
상기 복수의 2D 단면 이미지의 제3 단면 이미지를 나타내는 제3 이미지 데이터 세트를 수신하는 단계;
상기 제3 단면 이미지의 픽셀로부터 제3 픽셀 세트의 제3 2D 좌표 세트를 식별하는 단계; 및
상기 제3 2D 좌표 세트로부터, 6개의 서로 수직하는 면을 갖는 가상 육면체 형태에서 일부 면이 폐쇄된 제3 폐쇄면과 일부 면이 개방된 가상 개방면을 갖는 제3 입체면 모델을 나타내는 제3 입체면 데이터 세트를 생성하는 단계를 더 포함하고,
상기 제3 단면 이미지는 3D 축 중 하나에 따른 상기 3D 객체의 제3 위치에 대응하고,
상기 3D 모델 데이터는 상기 제3 입체면 데이터 세트에 기초하여 추가로 생성되는 컴퓨터 구현 방법.
In claim 1,
Receiving a third set of image data representing a third section image of the plurality of 2D section images;
Identifying a third set of 2D coordinates of a third set of pixels from pixels of the third cross-sectional image; And
From the third set of 2D coordinates, in the form of a virtual hexahedron having six mutually perpendicular faces, a third solid surface representing a third closed face model having a third closed face with some faces closed and a virtual open face with some faces open. Further comprising generating a face data set,
The third cross-sectional image corresponds to a third position of the 3D object along one of the 3D axes,
The 3D model data is further generated based on the third set of three-dimensional data computer-implemented method.
3D 객체의 복수의 2D 단면 이미지에 기초하여 3D 모델 데이터를 생성하기 위한 명령어를 포함하는 비일시적인 컴퓨터 판독가능 저장 매체로서,
상기 명령어는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
상기 복수의 2D 단면 이미지의 제1 단면 이미지를 나타내는 제1 이미지 데이터 세트 및 상기 복수의 2D 단면 이미지의 제2 단면 이미지를 나타내는 제2 이미지 데이터 세트를 수신하도록 하고,
상기 제1 단면 이미지의 픽셀로부터 제1 픽셀 세트의 제1 2D 좌표 세트를 식별하도록 하고,
상기 제2 단면 이미지의 픽셀로부터 제2 픽셀 세트의 제2 2D 좌표 세트를 식별하도록 하고,
상기 제1 2D 좌표 세트로부터, 6개의 서로 수직하는 면을 갖는 가상 육면체 형태에서 일부 면이 폐쇄된 제1 폐쇄면과 일부 면이 개방된 가상 개방면을 갖는 제1 입체면 모델을 나타내는 제1 입체면 데이터 세트를 생성하도록 하고,
상기 제2 2D 좌표 세트로부터, 6개의 서로 수직하는 면을 갖는 가상 육면체 형태에서 일부 면이 폐쇄된 제2 폐쇄면과 일부 면이 개방된 가상 개방면을 갖는 제2 입체면 모델을 나타내는 제2 입체면 데이터 세트를 생성하도록 하고,
상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하도록 하고,
상기 제1 단면 이미지는 3D 축 중 하나에 따른 상기 3D 객체의 제1 위치에 대응하고, 상기 제2 단면 이미지는 상기 제1 위치에서 떨어진 상기 3D 축 중 하나에 따른 상기 3D 객체의 제2 위치에 대응하며,
상기 제1 이미지 데이터 세트 및 상기 제2 이미지 데이터 세트는 2D 좌표 및 픽셀 값을 포함하며,
상기 제1 입체면 모델은 상기 제1 2D 좌표 세트 중 하나의 좌표에서 상기 3D 축 중 하나를 기준으로 상기 좌표의 양측에 입체면이 형성된 것을 특징으로 하고,
상기 제2 입체면 모델은 상기 제2 2D 좌표 세트 중 하나의 좌표에서 상기 3D 축 중 하나를 기준으로 상기 좌표의 양측에 입체면이 형성된 것을 특징으로 하고,
상기 프로세서에 의해 실행될 때 상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하게 하는 상기 명령어는,
상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 상기 제1 입체면 모델 및 제2 입체면 모델 중 인접한 입체면 모델의 가상 개방면들을 붙이는 명령어를 더 포함하는 비일시적인 컴퓨터 판독가능 저장 매체.
A non-transitory computer readable storage medium comprising instructions for generating 3D model data based on a plurality of 2D cross-sectional images of a 3D object,
When the instructions are executed by a processor, the processor causes the
Receiving a first image data set representing a first cross-sectional image of the plurality of 2D cross-sectional images and a second image data set representing a second cross-sectional image of the plurality of 2D cross-sectional images,
Identify a first set of 2D coordinates of a first set of pixels from pixels of the first cross-sectional image,
Identify a second set of 2D coordinates of the second set of pixels from the pixels of the second cross-sectional image,
From the first set of 2D coordinates, in the form of a virtual hexahedron having six mutually perpendicular faces, a first three-dimensional model representing a first three-dimensional model having a first closed face with some faces closed and a virtual open face with some faces open. To create a data set of faces,
From the second set of 2D coordinates, in the form of a virtual hexahedron having six mutually perpendicular faces, a second solid surface representing a second closed face model having a second closed face with some faces closed and a virtual open face with some faces open. To create a data set of faces,
Generate the 3D model data based on the first three-dimensional data set and the second three-dimensional data set,
The first cross-sectional image corresponds to a first position of the 3D object along one of the 3D axes, and the second cross-sectional image is at a second position of the 3D object along one of the 3D axes away from the first position. To respond,
The first image data set and the second image data set include 2D coordinates and pixel values,
The first three-dimensional plane model is characterized in that three-dimensional planes are formed on both sides of the coordinates based on one of the 3D axes in one coordinate of the first 2D coordinate set,
The second three-dimensional plane model is characterized in that three-dimensional planes are formed on both sides of the coordinates based on one of the 3D axes in one coordinate of the second 2D coordinate set,
The instruction that, when executed by the processor, generates the 3D model data based on the first three-dimensional data set and the second three-dimensional data set,
Non-transitory computer readable storage medium further comprising instructions that, when executed by the processor, cause the processor to attach virtual open surfaces of an adjacent three-dimensional model of the first three-dimensional model and the second three-dimensional model.
제 13 항에서,
상기 제1 입체면 모델의 제1 폐쇄면 각각은 균일한 높이를 갖고, 상기 제2 입체면 모델의 제2 폐쇄면 각각은 상기 균일한 높이를 갖는 비일시적인 컴퓨터 판독가능 저장 매체.
In claim 13,
Each of the first closed surfaces of the first three-dimensional model has a uniform height, and each of the second closed surfaces of the second three-dimensional model has the uniform height.
제 14 항에서,
상기 균일한 높이는 상기 3D 축 중 하나에 따른 상기 제1 위치와 제2 위치 사이의 거리에 대응하는 비일시적인 컴퓨터 판독가능 저장 매체.
In claim 14,
The uniform height corresponds to the distance between the first position and the second position along one of the 3D axes.
삭제delete 제 13 항에서,
상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 상기 제1 입체면 모델 및 상기 제2 입체면 모델 중 인접한 입체면 모델을 붙이는 상기 명령어는,
상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 붙은 입체면 모델의 제1 폐쇄면 및 제2 폐쇄면의 좌표를 포함하는 표면 데이터를 생성하게 하는 명령어를 더 포함하는 비일시적인 컴퓨터 판독가능 저장 매체.
In claim 13,
When executed by the processor, the instruction for causing the processor to attach an adjacent three-dimensional model among the first three-dimensional model and the second three-dimensional model,
Non-transitory computer readable storage medium further comprising instructions that, when executed by the processor, cause the processor to generate surface data including coordinates of first and second closed surfaces of the attached stereoscopic model.
제 17 항에서,
상기 붙은 입체면 모델의 제1 폐쇄면 및 제2 폐쇄면의 각각은 2개의 삼각형으로 이루어지는 비일시적인 컴퓨터 판독가능 저장 매체.
In claim 17,
A non-transitory computer-readable storage medium, wherein each of the first closed surface and the second closed surface of the attached three-dimensional model consists of two triangles.
3D 객체의 복수의 2D 단면 이미지에 기초하여 3D 모델 데이터를 생성하는 시스템으로서,
상기 시스템은,
프로세서와,
명령어를 포함하는 비일시적인 컴퓨터 판독가능 저장 매체를 포함하되,
상기 명령어는, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
상기 복수의 2D 단면 이미지의 제1 단면 이미지를 나타내는 제1 이미지 데이터 세트 및 상기 복수의 2D 단면 이미지의 제2 단면 이미지를 나타내는 제2 이미지 데이터 세트를 수신하게 하고,
상기 제1 단면 이미지의 픽셀로부터 제1 픽셀 세트의 제1 2D 좌표 세트를 식별하게 하고,
상기 제2 단면 이미지의 픽셀로부터 제2 픽셀 세트의 제2 2D 좌표 세트를 식별하게 하고,
상기 제1 2D 좌표 세트로부터, 6개의 서로 수직하는 면을 갖는 가상 육면체 형태에서 일부 면이 폐쇄된 제1 폐쇄면과 일부 면이 개방된 가상 개방면을 갖는 제1 입체면 모델을 나타내는 제1 입체면 데이터 세트를 생성하게 하고,
상기 제2 2D 좌표 세트로부터, 6개의 서로 수직하는 면을 갖는 가상 육면체 형태에서 일부 면이 폐쇄된 제2 폐쇄면과 일부 면이 개방된 가상 개방면을 갖는 제2 입체면 모델을 나타내는 제2 입체면 데이터 세트를 생성하게 하고,
상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하게 하며,
상기 제1 단면 이미지는 3D 축 중 하나에 따른 상기 3D 객체의 제1 위치에 대응하고, 상기 제2 단면 이미지는 상기 제1 위치에서 떨어진 상기 3D 축 중 하나에 따른 상기 3D 객체의 제2 위치에 대응하며,
상기 제1 이미지 데이터 세트 및 상기 제2 이미지 데이터 세트는 2D 좌표 및 픽셀 값을 포함하며,
상기 제1 입체면 모델은 상기 제1 2D 좌표 세트 중 하나의 좌표에서 상기 3D 축 중 하나를 기준으로 상기 좌표의 양측에 입체면이 형성된 것을 특징으로 하고,
상기 제2 입체면 모델은 상기 제2 2D 좌표 세트 중 하나의 좌표에서 상기 3D 축 중 하나를 기준으로 상기 좌표의 양측에 입체면이 형성된 것을 특징으로 하고,
상기 프로세서에 의해 실행될 때 상기 제1 입체면 데이터 세트 및 상기 제2 입체면 데이터 세트에 기초하여 상기 3D 모델 데이터를 생성하게 하는 상기 명령어는,
상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 상기 제1 입체면 모델 및 제2 입체면 모델 중 인접한 입체면 모델의 가상 개방면들을 붙이는 명령어를 더 포함하는 시스템.
A system for generating 3D model data based on a plurality of 2D cross-sectional images of a 3D object,
The system,
Processor,
A non-transitory computer readable storage medium comprising instructions,
The instruction, when executed by the processor, causes the processor to:
Receive a first image data set representing a first cross-sectional image of the plurality of 2D cross-sectional images and a second image data set representing a second cross-sectional image of the plurality of 2D cross-sectional images,
Identify a first set of 2D coordinates of the first set of pixels from pixels of the first cross-sectional image,
Identify a second set of 2D coordinates of the second set of pixels from the pixels of the second cross-sectional image,
From the first set of 2D coordinates, in the form of a virtual hexahedron having six mutually perpendicular faces, a first three-dimensional model representing a first three-dimensional model having a first closed face with some faces closed and a virtual open face with some faces open. Let's create a data set
From the second set of 2D coordinates, in the form of a virtual hexahedron having six mutually perpendicular faces, a second solid surface representing a second closed face model having a second closed face with some faces closed and a virtual open face with some faces open. Let's create a data set
Generate the 3D model data based on the first three-dimensional data set and the second three-dimensional data set,
The first cross-sectional image corresponds to a first position of the 3D object along one of the 3D axes, and the second cross-sectional image is at a second position of the 3D object along one of the 3D axes away from the first position. To respond,
The first image data set and the second image data set include 2D coordinates and pixel values,
The first three-dimensional plane model is characterized in that three-dimensional planes are formed on both sides of the coordinates based on one of the 3D axes in one coordinate of the first 2D coordinate set,
The second three-dimensional plane model is characterized in that three-dimensional planes are formed on both sides of the coordinates based on one of the 3D axes in one coordinate of the second 2D coordinate set,
The instruction that, when executed by the processor, generates the 3D model data based on the first three-dimensional data set and the second three-dimensional data set,
And when executed by the processor, further comprising instructions for causing the processor to attach virtual open surfaces of adjacent three-dimensional models of the first three-dimensional model and the second three-dimensional model.
KR1020190120690A 2019-09-30 2019-09-30 Method of generating 3-dimensional model data based on vertual solid surface models and system thereof Active KR102104889B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190120690A KR102104889B1 (en) 2019-09-30 2019-09-30 Method of generating 3-dimensional model data based on vertual solid surface models and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190120690A KR102104889B1 (en) 2019-09-30 2019-09-30 Method of generating 3-dimensional model data based on vertual solid surface models and system thereof

Publications (1)

Publication Number Publication Date
KR102104889B1 true KR102104889B1 (en) 2020-04-27

Family

ID=70467596

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190120690A Active KR102104889B1 (en) 2019-09-30 2019-09-30 Method of generating 3-dimensional model data based on vertual solid surface models and system thereof

Country Status (1)

Country Link
KR (1) KR102104889B1 (en)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100327541B1 (en) * 2000-08-10 2002-03-08 김재성, 이두원 3D facial modeling system and modeling method
US20020120430A1 (en) * 2001-02-23 2002-08-29 Korea Advanced Institute Of Science And Technology Hexahedral finite element modeling method for controlling element size and storage medium therefor
US20050122549A1 (en) * 2001-12-03 2005-06-09 Emine Goulanian Computer assisted hologram forming method and apparatus
JP2006502508A (en) * 2002-10-11 2006-01-19 ソノシン インコーポレイテッド 3D modeling system
US20060290695A1 (en) * 2001-01-05 2006-12-28 Salomie Ioan A System and method to obtain surface structures of multi-dimensional objects, and to represent those surface structures for animation, transmission and display
KR100695156B1 (en) * 2005-02-03 2007-03-14 삼성전자주식회사 Method and device for converting graphical images of objects
KR100810326B1 (en) * 2006-10-10 2008-03-04 삼성전자주식회사 How to create a multiresolution 3D model
WO2008063081A2 (en) * 2006-11-23 2008-05-29 Oslo Universitetssykehus Hf A method for visualising a three-dimensional image of a human body part
US20120002840A1 (en) * 2008-11-21 2012-01-05 Cortius Holding B.V. Method of and arrangement for linking image coordinates to coordinates of reference model
KR20140043945A (en) * 2011-08-09 2014-04-11 인텔 코오퍼레이션 Image-based multi-view 3d face generation
KR101676576B1 (en) * 2015-08-13 2016-11-15 삼성에스디에스 주식회사 Apparatus and method for voxelizing 3-dimensional model and assiging attribute to each voxel
KR20170134592A (en) * 2015-04-02 2017-12-06 헤드론엑스 인코포레이티드 Virtual three-dimensional model generation based on virtual hexahedron model

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100327541B1 (en) * 2000-08-10 2002-03-08 김재성, 이두원 3D facial modeling system and modeling method
US20060290695A1 (en) * 2001-01-05 2006-12-28 Salomie Ioan A System and method to obtain surface structures of multi-dimensional objects, and to represent those surface structures for animation, transmission and display
US20020120430A1 (en) * 2001-02-23 2002-08-29 Korea Advanced Institute Of Science And Technology Hexahedral finite element modeling method for controlling element size and storage medium therefor
US20050122549A1 (en) * 2001-12-03 2005-06-09 Emine Goulanian Computer assisted hologram forming method and apparatus
JP2006502508A (en) * 2002-10-11 2006-01-19 ソノシン インコーポレイテッド 3D modeling system
KR100695156B1 (en) * 2005-02-03 2007-03-14 삼성전자주식회사 Method and device for converting graphical images of objects
KR100810326B1 (en) * 2006-10-10 2008-03-04 삼성전자주식회사 How to create a multiresolution 3D model
WO2008063081A2 (en) * 2006-11-23 2008-05-29 Oslo Universitetssykehus Hf A method for visualising a three-dimensional image of a human body part
US20120002840A1 (en) * 2008-11-21 2012-01-05 Cortius Holding B.V. Method of and arrangement for linking image coordinates to coordinates of reference model
KR20140043945A (en) * 2011-08-09 2014-04-11 인텔 코오퍼레이션 Image-based multi-view 3d face generation
KR20170134592A (en) * 2015-04-02 2017-12-06 헤드론엑스 인코포레이티드 Virtual three-dimensional model generation based on virtual hexahedron model
KR101676576B1 (en) * 2015-08-13 2016-11-15 삼성에스디에스 주식회사 Apparatus and method for voxelizing 3-dimensional model and assiging attribute to each voxel

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Yi, et al. "A domain separate method of developing orthogonal hexahedron finite element mesh model from CT/μCT", Image and Signal Processing. IEEE(2014)* *

Similar Documents

Publication Publication Date Title
KR102070945B1 (en) Virtual 3D model generation based on virtual cube model
US9984498B2 (en) Sparse GPU voxelization for 3D surface reconstruction
JP5866177B2 (en) Image processing apparatus and image processing method
US8368714B2 (en) Curved surface rendering system and method
US8819016B2 (en) Apparatus, method, and program for structuring visualization object data; and apparatus, method, and program for visualizing visualization object data
JP6890945B2 (en) Mesh voxels
US10650604B1 (en) Method, device and system for volume visualization and interaction in a virtual reality environment
AU2020449562B2 (en) Geometry-aware augmented reality effects with a real-time depth map
CN105825471A (en) Unity-3D-based three-dimensional surface reconstruction and rendering method
JP7205189B2 (en) Rendering device, rendering method, and program
CN107590858A (en) Medical sample methods of exhibiting and computer equipment, storage medium based on AR technologies
KR102104889B1 (en) Method of generating 3-dimensional model data based on vertual solid surface models and system thereof
Scholz et al. Real‐time isosurface extraction with view‐dependent level of detail and applications
US7724254B1 (en) ISO-surface tesselation of a volumetric description
Garcia et al. CPU-based real-time surface and solid voxelization for incomplete point cloud
JP7429666B2 (en) Point cloud noise removal device and program
IL280826B1 (en) Determining an enclosing wall surface of a cavity of an organ
CN107545599A (en) Method of surface reconstruction and computer equipment in kind, storage medium
JP6106293B2 (en) Image processing apparatus, image processing system, and image processing method
Yuan et al. Real-time simulation of tissue cutting with CUDA based on GPGPU
Zou et al. GPU-based medical visualization for large datasets
Michikawa et al. Sparse grid distance transforms
KR101305036B1 (en) Apparatus and method for morphing
JP2009134773A (en) Drawing method, image generation device and electronic information apparatus
Domanski Slice and BlockwiseWell-Composed Sets

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20190930

PA0201 Request for examination
PA0302 Request for accelerated examination

Patent event date: 20190930

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20191022

Patent event code: PE09021S01D

AMND Amendment
PE0601 Decision on rejection of patent

Patent event date: 20200224

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20191022

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

X091 Application refused [patent]
AMND Amendment
PX0901 Re-examination

Patent event code: PX09011S01I

Patent event date: 20200224

Comment text: Decision to Refuse Application

Patent event code: PX09012R01I

Patent event date: 20191206

Comment text: Amendment to Specification, etc.

PX0701 Decision of registration after re-examination

Patent event date: 20200416

Comment text: Decision to Grant Registration

Patent event code: PX07013S01D

Patent event date: 20200320

Comment text: Amendment to Specification, etc.

Patent event code: PX07012R01I

Patent event date: 20200224

Comment text: Decision to Refuse Application

Patent event code: PX07011S01I

Patent event date: 20191206

Comment text: Amendment to Specification, etc.

Patent event code: PX07012R01I

X701 Decision to grant (after re-examination)
GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20200421

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20200421

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20221219

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20231214

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20250107

Start annual number: 6

End annual number: 6