KR20240105113A - Apparatus for segmenting teeth from three-dimensionally scanned teeth data using deep learning and method therefor - Google Patents

Apparatus for segmenting teeth from three-dimensionally scanned teeth data using deep learning and method therefor Download PDF

Info

Publication number
KR20240105113A
KR20240105113A KR1020220187995A KR20220187995A KR20240105113A KR 20240105113 A KR20240105113 A KR 20240105113A KR 1020220187995 A KR1020220187995 A KR 1020220187995A KR 20220187995 A KR20220187995 A KR 20220187995A KR 20240105113 A KR20240105113 A KR 20240105113A
Authority
KR
South Korea
Prior art keywords
scan data
learning
teeth
class
data
Prior art date
Application number
KR1020220187995A
Other languages
Korean (ko)
Inventor
조현빈
이인재
황보석
강준혁
Original Assignee
주식회사 덴티움
Filing date
Publication date
Application filed by 주식회사 덴티움 filed Critical 주식회사 덴티움
Publication of KR20240105113A publication Critical patent/KR20240105113A/en

Links

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/0059Measuring for diagnostic purposes; Identification of persons using light, e.g. diagnosis by transillumination, diascopy, fluorescence
    • A61B5/0082Measuring for diagnostic purposes; Identification of persons using light, e.g. diagnosis by transillumination, diascopy, fluorescence adapted for particular medical purposes
    • A61B5/0088Measuring for diagnostic purposes; Identification of persons using light, e.g. diagnosis by transillumination, diascopy, fluorescence adapted for particular medical purposes for oral or dental tissue
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/0033Features or image-related aspects of imaging apparatus classified in A61B5/00, e.g. for MRI, optical tomography or impedance tomography apparatus; arrangements of imaging apparatus in a room
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/0059Measuring for diagnostic purposes; Identification of persons using light, e.g. diagnosis by transillumination, diascopy, fluorescence
    • A61B5/0062Arrangements for scanning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/06Topological mapping of higher dimensional structures onto lower dimensional surfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/68Analysis of geometric attributes of symmetry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30004Biomedical image processing
    • G06T2207/30036Dental; Teeth

Abstract

치아를 분할하기 위한 방법은 데이터처리부가 복수의 치아를 3차원으로 스캔하여 복수의 셀을 포함하는 스캔 데이터를 입력받는 단계와, 분할부가 분할모델을 통해 상기 스캔 데이터에 대해 학습된 가중치에 따른 가중치 연산을 수행하여 상기 복수의 셀 각각이 학습클래스에 속할 확률을 나타내는 예측벡터를 도출하는 단계와, 상기 분할부가 상기 예측벡터의 확률에 따라 스캔 데이터 상에서 치아를 분할하는 단계를 포함한다. The method for segmenting teeth includes the steps of a data processing unit scanning a plurality of teeth in three dimensions and receiving scan data including a plurality of cells, and the segmentation unit weighting the scan data according to the weights learned for the scan data through a segmentation model. It includes performing an operation to derive a prediction vector indicating a probability that each of the plurality of cells belongs to a learning class, and dividing the teeth on the scan data by the division unit according to the probability of the prediction vector.

Description

딥러닝을 이용하여 3차원으로 치아를 스캔한 데이터에서 치아를 분할하기 위한 장치 및 이를 위한 방법{Apparatus for segmenting teeth from three-dimensionally scanned teeth data using deep learning and method therefor}Apparatus for segmenting teeth from three-dimensionally scanned teeth data using deep learning and method therefor}

본 발명은 치아를 분할하기 위한 기술에 관한 것으로, 보다 상세하게는 딥러닝을 이용하여 3차원으로 치아를 스캔한 데이터에서 치아를 분할하기 위한 장치 및 이를 위한 방법에 관한 것이다. The present invention relates to a technology for segmenting teeth, and more specifically, to a device and method for segmenting teeth from three-dimensional teeth scanned data using deep learning.

치아를 스캔한 스캔 데이터로부터 치아를 분할하는 기술은 치과에서 정확한 진단, 교정, 임플란트 디자인을 위해서 요구된다. 수작업으로 치아를 분할하는데 있어서 의료진의 높은 숙련도 및 시간이 소요된다. 따라서 자동화된 치아 분할 기술이 요청된다. Technology for segmenting teeth from scan data is required for accurate diagnosis, correction, and implant design in dentistry. Splitting teeth manually requires a high level of skill and time from the medical staff. Therefore, automated tooth segmentation technology is required.

한국공개특허 제2022-0069655호 (2022년05월27일 공개)Korean Patent Publication No. 2022-0069655 (published on May 27, 2022)

본 발명의 목적은 딥러닝을 이용하여 3차원으로 치아를 스캔한 데이터에서 치아를 분할하기 위한 장치 및 이를 위한 방법을 제공함에 있다. The purpose of the present invention is to provide a device and method for segmenting teeth from 3D teeth scanned data using deep learning.

상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 치아를 분할하기 위한 방법은 데이터처리부가 복수의 치아를 3차원으로 스캔하여 복수의 셀을 포함하는 스캔 데이터를 입력받는 단계와, 분할부가 분할모델을 통해 상기 스캔 데이터에 대해 학습된 가중치에 따른 가중치 연산을 수행하여 상기 복수의 셀 각각이 학습클래스에 속할 확률을 나타내는 예측벡터를 도출하는 단계와, 상기 분할부가 상기 예측벡터의 확률에 따라 스캔 데이터 상에서 치아를 분할하는 단계를 포함한다. A method for segmenting teeth according to a preferred embodiment of the present invention to achieve the above-described object includes the steps of: a data processing unit scanning a plurality of teeth in three dimensions and receiving scan data including a plurality of cells; A division unit performing a weight calculation according to a weight learned for the scan data through a division model to derive a prediction vector indicating a probability that each of the plurality of cells belongs to a learning class, and the division unit calculating the probability of the prediction vector. It includes dividing teeth on the scan data according to.

상기 방법은 상기 분할부가 학습클래스에서 서로 이웃하는 중절치를 제외하고 좌우 대칭되어 배치되어 동일한 클래스에 속하는 치아 쌍을 확장클래스에 따라 구분하는 단계를 더 포함한다. The method further includes the step of dividing pairs of teeth belonging to the same class according to the extended class by arranging the dividing portions left and right symmetrically except for the central incisors that are adjacent to each other in the learning class.

상기 방법은 상기 예측벡터를 도출하는 단계 전, 상기 데이터처리부가 상기 스캔 데이터를 다운 샘플링하는 단계를 더 포함한다. 또한, 상기 방법은 상기 확장클래스에 따라 구분하는 단계 후, 상기 복원부가 상기 스캔 데이터를 원본 크기로 업 샘플링하는 단계를 더 포함한다. The method further includes the step of down-sampling the scan data by the data processing unit before deriving the prediction vector. In addition, the method further includes a step of up-sampling the scan data to the original size by the restoration unit after the step of classifying according to the extension class.

상기 업 샘플링하는 단계는 상기 복원부가 수학식The up-sampling step is performed by the restoration unit using the equation

Figure pat00001
Figure pat00001

에 따라 업 샘플링된 스캔 데이터의 각 셀의 클래스를 도출하는 것을 특징으로 한다. It is characterized by deriving the class of each cell of the up-sampled scan data according to .

여기서, 상기 f는 KNN(k-Nearest Neighbor) 모델이고, 상기 x, 상기 y, 상기 z는 업 샘플링된 스캔 데이터의 셀 좌표이고, 상기 i는 업 샘플링된 스캔 데이터의 셀 인덱스이고, 상기 N은 원본 크기의 스캔 데이터의 셀 개수이고, 상기 C는 확장클래스인 것을 특징으로 한다. Here, f is a KNN (k-Nearest Neighbor) model, x, y, and z are cell coordinates of up-sampled scan data, i is a cell index of up-sampled scan data, and N is It is the number of cells of scanned data of the original size, and C is an extended class.

상기 업 샘플링하는 단계는 상기 복원부가 수학식 The up-sampling step is performed by the restoration unit using the equation

에 따라 업 샘플링된 스캔 데이터의 각 셀의 클래스를 도출하는 것을 특징으로 한다. It is characterized by deriving the class of each cell of the up-sampled scan data according to .

여기서, 상기 g는 k가 M인 KNN 모델이며, 상기 h는 k가 N인 KNN 모델이며, 상기 M 및 상기 N은 기 설정된 상수이며, M<N이고, 상기 x, 상기 y, 상기 z는 업 샘플링된 스캔 데이터의 셀 좌표이고, 상기 i는 업 샘플링된 스캔 데이터의 셀 인덱스이고, 상기 C는 확장클래스인 것을 특징으로 한다. Here, g is a KNN model where k is M, h is a KNN model where k is N, M and N are preset constants, M<N, and x, y, and z are It is a cell coordinate of sampled scan data, i is a cell index of up-sampled scan data, and C is an extended class.

상기 방법은 복원부가 특정 확장클래스의 셀의 개수가 기 설정된 임계치 보다 적은 경우, 해당 확장클래스에 속한 셀을 배경 클래스로 변환하여 소거하는 단계를 더 포함한다. The method further includes a step where, when the number of cells of a specific extended class is less than a preset threshold, the restoration unit converts the cells belonging to the extended class to the background class and erases them.

상기 방법은 상기 스캔 데이터를 입력받는 단계 후, 상기 예측벡터를 도출하는 단계 전, 상기 데이터처리부가 주성분 분석을 통해 스캔 데이터의 3차원 좌표를 2차원으로 축소하는 단계와, 상기 데이터처리부가 스캔 데이터의 단축 길이 및 장축의 길이를 산출하는 단계와, 상기 데이터처리부가 상기 학습된 기계학습모델을 이용하여 상기 단축의 길이, 상기 단축의 길이와 상기 장축의 길이의 비율로부터 상기 스캔 데이터가 전체 스캔 데이터인지 혹은 부분 스캔 데이터인지 여부를 확인하는 단계와, 상기 데이터처리부가 상기 확인 결과, 스캔 데이터가 부분 스캔 데이터이면, 스캔 데이터를 소거하는 단계를 더 포함한다. The method includes, after receiving the scan data and before deriving the prediction vector, the data processing unit reducing the three-dimensional coordinates of the scan data to two dimensions through principal component analysis, and the data processing unit reducing the scan data to two dimensions. calculating the length of the minor axis and the length of the major axis, and the data processing unit uses the learned machine learning model to calculate the scan data from the length of the minor axis and the ratio of the length of the minor axis and the length of the major axis to total scan data. It further includes a step of checking whether the scan data is scan data or partial scan data, and the data processing unit deleting the scan data if the scan data is partial scan data.

상기 방법은 상기 스캔 데이터를 입력받는 단계 후, 상기 예측벡터를 도출하는 단계 전, 상기 데이터처리부가 스캔 데이터의 xy 평면에 대한 주성분 분석을 통해 고유벡터를 도출하는 단계와, 상기 데이터처리부가 상기 고유벡터의 원점을 수평으로 지나는 기준선과 상기 고유벡터가 이루는 각 중 작은 각을 회전각으로 선택하는 단계와, 상기 데이터처리부가 상기 회전각이 0이 되도록 원점을 회전축으로 스캔 데이터를 회전시켜 스캔 데이터를 재배향하는 단계를 더 포함한다. The method includes, after receiving the scan data and before deriving the prediction vector, the data processing unit deriving an eigenvector through principal component analysis on the xy plane of the scan data, and the data processing unit deriving the eigenvector. selecting the smaller angle between the angle formed by the eigenvector and a baseline passing horizontally through the origin of the vector as the rotation angle, and the data processing unit rotating the scan data with the origin as the rotation axis so that the rotation angle is 0, It further includes a reorienting step.

상기 방법은 상기 스캔 데이터를 입력받는 단계 전, 상기 데이터처리부가 학습용 스캔 데이터와 학습용 스캔 데이터의 복수의 셀 각각에 대응하는 학습클래스를 나타내는 레이블을 포함하는 학습 데이터를 마련하는 단계와, 분할모델이 학습용 스캔 데이터에 대해 학습이 완료되지 않은 가중치가 적용되는 가중치 연산을 수행하여 학습용 스캔 데이터의 복수의 셀이 학습클래스에 속할 확률을 나타내는 학습용 예측벡터를 도출하는 단계와, 학습부가 분할 손실 및 분류 손실을 포함하는 전체 손실을 산출하는 단계와, 상기 학습부가 상기 전체 손실이 최소가 되도록 상기 분할모델의 가중치를 수정하는 최적화를 수행하는 단계를 더 포함한다. The method includes, before receiving the scan data, the data processing unit preparing training data including scan data for training and a label indicating a learning class corresponding to each of a plurality of cells of the scan data for training, and a segmentation model. A step of performing a weighting operation in which weights for which training has not been completed are applied to the training scan data to derive a training prediction vector indicating the probability that a plurality of cells in the training scan data belong to a learning class, and the learning unit performs segmentation loss and classification loss. It further includes a step of calculating a total loss including, and a step of the learning unit performing optimization to modify the weights of the segmentation model so that the total loss is minimized.

상기 전체 손실을 산출하는 단계는 상기 학습부가 수학식 The step of calculating the total loss is performed by the learning unit using the equation

에 따라 분할 손실을 산출하는 것을 특징으로 한다. It is characterized in that the division loss is calculated according to.

여기서, 상기 L은 학습클래스 개수이고, 상기 l은 학습클래스 인덱스이고, 상기 N은 셀의 개수이고, 상기 i는 셀 인덱스이고, 상기 p는 학습용 예측 벡터이고, 상기 y는 레이블이고, 상기 ε은 기 설정된 상수인 것을 특징으로 한다. Here, L is the number of learning classes, l is the learning class index, N is the number of cells, i is the cell index, p is the prediction vector for training, y is the label, and ε is It is characterized by being a preset constant.

상기 전체 손실을 산출하는 단계는 상기 학습부가 수학식 The step of calculating the total loss is performed by the learning unit using the equation

에 따라 분류 손실을 산출하는 것을 특징으로 한다. It is characterized by calculating classification loss according to .

여기서, 상기

Figure pat00005
은 데이터 단위의 확률이고, Here, the above
Figure pat00005
is the probability of the data unit,

상기

Figure pat00006
은 수학식 remind
Figure pat00006
is the math equation

Figure pat00007
Figure pat00007

에 따라 도출되는 것을 특징으로 한다. It is characterized by being derived according to .

여기서, 상기 L은 학습클래스의 개수, 상기 l은 학습클래스의 인덱스이고, 상기 y는 레이블이고, 상기 N은 스캔 데이터의 셀의 개수, 상기

Figure pat00008
은 학습클래스 인덱스에 대응하는 셀 개수인 것을 특징으로 한다. Here, L is the number of learning classes, l is the index of the learning class, y is the label, N is the number of cells in the scan data, and
Figure pat00008
is characterized by being the number of cells corresponding to the learning class index.

상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 치아를 분할하기 위한 장치는 복수의 치아를 3차원으로 스캔하여 복수의 셀을 포함하는 스캔 데이터를 입력받는 데이터처리부와, 분할모델을 통해 상기 스캔 데이터에 대해 학습된 가중치에 따른 가중치 연산을 수행하여 상기 복수의 셀 각각이 학습클래스에 속할 확률을 나타내는 예측벡터를 도출하고, 상기 예측벡터의 확률에 따라 스캔 데이터 상에서 치아를 분할하는 분할부를 포함한다. A device for segmenting teeth according to a preferred embodiment of the present invention for achieving the above-described object includes a data processing unit that scans a plurality of teeth in three dimensions and receives scan data including a plurality of cells, and a segmentation model. By performing a weight operation according to the learned weight on the scan data, a prediction vector representing the probability that each of the plurality of cells belongs to the learning class is derived, and the teeth are divided on the scan data according to the probability of the prediction vector. Includes a division part.

상기 분할부는 학습클래스에서 서로 이웃하는 중절치를 제외하고 좌우 대칭되어 배치되어 동일한 클래스에 속하는 치아 쌍을 확장클래스에 따라 구분하는 것을 특징으로 한다. The dividing portion is arranged symmetrically left and right, excluding the central incisors that are adjacent to each other in the learning class, and is characterized in that it distinguishes pairs of teeth belonging to the same class according to the extended class.

상기 데이터처리부는 상기 예측벡터를 도출하기 전, 상기 스캔 데이터를 다운 샘플링하며, 상기 복원부는 상기 확장클래스에 따라 구분한 후, 상기 스캔 데이터를 원본 크기로 업 샘플링하는 것을 특징으로 한다. The data processing unit down-samples the scan data before deriving the prediction vector, and the restoration unit up-samples the scan data to the original size after classifying it according to the extension class.

상기 복원부는 수학식 The restoration unit uses the equation

Figure pat00009
Figure pat00009

에 따라 업 샘플링된 스캔 데이터의 각 셀의 클래스를 도출하는 것을 특징으로 한다. It is characterized by deriving the class of each cell of the up-sampled scan data according to .

여기서, 상기 f는 KNN(k-Nearest Neighbor) 모델이고, 상기 x, 상기 y, 상기 z는 업 샘플링된 스캔 데이터의 셀 좌표이고, 상기 i는 업 샘플링된 스캔 데이터의 셀 인덱스이고, 상기 N은 원본 크기의 스캔 데이터의 셀 개수이고, 상기 C는 확장클래스인 것을 특징으로 한다. Here, f is a KNN (k-Nearest Neighbor) model, x, y, and z are cell coordinates of up-sampled scan data, i is a cell index of up-sampled scan data, and N is It is the number of cells of scanned data of the original size, and C is an extended class.

상기 복원부는 수학식 The restoration unit uses the equation

에 따라 업 샘플링된 스캔 데이터의 각 셀의 클래스를 도출하는 것을 특징으로 한다. It is characterized by deriving the class of each cell of the up-sampled scan data according to .

상기 g는 k가 M인 KNN 모델이며, 상기 h는 k가 N인 KNN 모델이며, 상기 M 및 상기 N은 기 설정된 상수이며, M<N이고, 상기 x, 상기 y, 상기 z는 업 샘플링된 스캔 데이터의 셀 좌표이고, 상기 i는 업 샘플링된 스캔 데이터의 셀 인덱스이고, 상기 C는 확장클래스인 것을 특징으로 한다. The g is a KNN model where k is M, the h is a KNN model where k is N, the M and the N are preset constants, M<N, and the x, the y, and the z are up-sampled It is a cell coordinate of scan data, i is a cell index of up-sampled scan data, and C is an extended class.

상기 복원부는 특정 확장클래스의 셀의 개수가 기 설정된 임계치 보다 적은 경우, 해당 확장클래스에 속한 셀을 배경 클래스로 변환하여 소거하는 것을 특징으로 한다. If the number of cells of a specific extended class is less than a preset threshold, the restoration unit converts the cells belonging to the extended class to the background class and erases them.

상기 데이터처리부는 주성분 분석을 통해 스캔 데이터의 3차원 좌표를 2차원으로 축소하고, 스캔 데이터의 단축 길이 및 장축의 길이를 산출하고, 상기 학습된 기계학습모델을 이용하여 상기 단축의 길이, 상기 단축의 길이와 상기 장축의 길이의 비율로부터 상기 스캔 데이터가 전체 스캔 데이터인지 혹은 부분 스캔 데이터인지 여부를 확인하고, 상기 스캔 데이터가 부분 스캔 데이터이면, 스캔 데이터를 소거하는 것을 특징으로 한다. The data processing unit reduces the three-dimensional coordinates of the scan data to two dimensions through principal component analysis, calculates the length of the minor axis and the major axis of the scan data, and calculates the length of the minor axis and the minor axis using the learned machine learning model. It is characterized in that it is determined whether the scan data is full scan data or partial scan data from the ratio of the length of and the length of the long axis, and if the scan data is partial scan data, the scan data is erased.

상기 데이터처리부가 스캔 데이터의 xy 평면에 대한 주성분 분석을 통해 고유벡터를 도출하고, 상기 고유벡터의 원점을 수평으로 지나는 기준선과 상기 고유벡터가 이루는 각 중 작은 각을 회전각으로 선택하고, 상기 회전각이 0이 되도록 원점을 회전축으로 스캔 데이터를 회전시켜 스캔 데이터를 재배향하는 것을 특징으로 한다. The data processing unit derives an eigenvector through principal component analysis of the xy plane of the scan data, selects the smaller angle between the angle formed by the eigenvector and a reference line horizontally passing through the origin of the eigenvector as the rotation angle, and rotates the eigenvector. It is characterized by reorienting the scan data by rotating the scan data around the origin so that the angle becomes 0.

상기 데이터처리부는 학습용 스캔 데이터와 학습용 스캔 데이터의 복수의 셀 각각에 대응하는 학습클래스를 나타내는 레이블을 포함하는 학습 데이터를 마련하는 것을 특징으로 한다. 이때, 상기 장치는 분할모델이 학습용 스캔 데이터에 대해 학습이 완료되지 않은 가중치가 적용되는 가중치 연산을 수행하여 학습용 스캔 데이터의 복수의 셀이 학습클래스에 속할 확률을 나타내는 학습용 예측벡터를 도출하면, 분할 손실 및 분류 손실을 포함하는 전체 손실을 산출하고, 상기 전체 손실이 최소가 되도록 상기 분할모델의 가중치를 수정하는 최적화를 수행하는 학습부를 더 포함한다. The data processing unit is characterized in that it prepares training data including training scan data and a label indicating a learning class corresponding to each of a plurality of cells of the training scan data. At this time, if the segmentation model performs a weighting operation in which a weight that has not yet been learned is applied to the training scan data to derive a learning prediction vector indicating the probability that a plurality of cells of the training scan data belong to the learning class, the division is performed. It further includes a learning unit that calculates a total loss including loss and classification loss, and performs optimization to modify the weights of the segmentation model so that the total loss is minimized.

상기 학습부는 수학식 The learning unit uses mathematical formulas

에 따라 분할 손실을 산출하는 것을 특징으로 한다. It is characterized in that the division loss is calculated according to.

여기서, 상기 L은 학습클래스 개수이고, 상기 l은 학습클래스 인덱스이고, 상기 N은 셀의 개수이고, 상기 i는 셀 인덱스이고, 상기 p는 학습용 예측 벡터이고, 상기 y는 레이블이고, 상기 ε은 기 설정된 상수인 것을 특징으로 한다. Here, L is the number of learning classes, l is the learning class index, N is the number of cells, i is the cell index, p is the prediction vector for training, y is the label, and ε is It is characterized by being a preset constant.

상기 학습부는 수학식 The learning unit uses mathematical formulas

에 따라 분류 손실을 산출하는 것을 특징으로 한다. It is characterized by calculating classification loss according to .

여기서, 상기

Figure pat00013
은 데이터 단위의 확률이고, Here, the above
Figure pat00013
is the probability of the data unit,

상기

Figure pat00014
은 수학식 remind
Figure pat00014
is the math equation

Figure pat00015
Figure pat00015

에 따라 도출되는 것을 특징으로 한다. It is characterized by being derived according to .

여기서, 상기 L은 학습클래스의 개수, 상기 l은 학습클래스의 인덱스이고, 상기 y는 레이블이고, 상기 N은 스캔 데이터의 셀의 개수, 상기

Figure pat00016
은 학습클래스 인덱스에 대응하는 셀 개수인 것을 특징으로 한다. Here, L is the number of learning classes, l is the index of the learning class, y is the label, N is the number of cells in the scan data, and
Figure pat00016
is characterized by being the number of cells corresponding to the learning class index.

본 발명은 상호 대칭되는 치아를 동일한 클래스로 하는 학습클래스를 이용함으로써 효율적으로 분할모델(SM)을 학습시킬 수 있다. 더욱이, 본 발명은 다운 샘플링 및 KNN 모델을 이용한 업 샘플링을 수행하고, 임계치를 통해 노이즈를 소거함으로써, 컴퓨팅 연산 부하를 감소시킴과 동시에 치아 분할 성능을 향상시킬 수 있다. 이러한 본 발명에 따르면, 자동화된 스캔데이터 필터링 및 치아 분할에 따라 의료진의 작업 부담을 현저하게 감소시킬 수 있다. 본 발명은 스캔 데이터만으로 악궁 라인을 얻을 수 있어 범용성이 있고 다양하게 활용할 수 있다. 더욱이, 본 발명은 스캔 데이터로 단순히 악궁 라인뿐 아니라 모든 기성 치아 및 소실치의 좌표를 획득할 수 있다. 게다가, 본 발명은 스캔 데이터를 이용하여 기성 치아 및 소실치의 크라운 각도를 획득할 수 있다. The present invention can efficiently learn a segmentation model (SM) by using a learning class that assigns mutually symmetrical teeth to the same class. Furthermore, the present invention performs down-sampling and up-sampling using a KNN model, and eliminates noise through a threshold, thereby reducing computing load and improving tooth segmentation performance. According to the present invention, the workload of medical staff can be significantly reduced through automated scan data filtering and tooth segmentation. The present invention is versatile and can be used in a variety of ways because it can obtain arch lines using only scan data. Moreover, the present invention can obtain the coordinates of not only the arch lines but also all existing teeth and missing teeth using scan data. In addition, the present invention can obtain crown angles of existing teeth and missing teeth using scan data.

도 1은 본 발명의 실시예에 따른 치아 스캔 데이터를 처리하기 위한 장치의 구성을 설명하기 위한 도면이다.
도 2 및 도 3은 본 발명의 실시예에 따른 분할모델의 구성을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 분할모델(SM: Segmentation Model)을 학습시키는 방법을 설명하기 위한 흐름도이다.
도 5 및 도 6은 본 발명의 실시예에 따른 분할모델을 학습시키기 위한 학습클래스를 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 딥러닝을 이용하여 3차원으로 치아를 스캔한 데이터에서 치아를 분할하기 위한 방법을 설명하기 위한 흐름도이다.
도 8 내지 도 15는 본 발명의 실시예에 따른 딥러닝을 이용하여 3차원으로 치아를 스캔한 데이터에서 치아를 분할하기 위한 방법을 설명하기 위한 화면 예이다.
도 16은 본 발명의 실시예에 따른 3차원으로 치아를 스캔한 데이터에서 소실치에 대한 치아 크라운을 배치하기 위한 방법을 설명하기 위한 흐름도이다.
도 17 내지 도 27은 본 발명의 실시예에 따른 3차원으로 치아를 스캔한 데이터에서 소실치에 대한 치아 크라운을 배치하기 위한 방법을 설명하기 위한 화면 예이다.
도 28은 본 발명의 실시예에 따른 컴퓨팅 장치를 나타내는 도면이다.
1 is a diagram for explaining the configuration of a device for processing tooth scan data according to an embodiment of the present invention.
Figures 2 and 3 are diagrams for explaining the configuration of a segmentation model according to an embodiment of the present invention.
Figure 4 is a flowchart illustrating a method of learning a segmentation model (SM) according to an embodiment of the present invention.
Figures 5 and 6 are diagrams for explaining a learning class for learning a segmentation model according to an embodiment of the present invention.
Figure 7 is a flowchart illustrating a method for segmenting teeth from 3D teeth scanned data using deep learning according to an embodiment of the present invention.
8 to 15 are example screens for explaining a method for segmenting teeth from 3D teeth scanned data using deep learning according to an embodiment of the present invention.
Figure 16 is a flowchart illustrating a method for placing a dental crown for a missing tooth in three-dimensional tooth scan data according to an embodiment of the present invention.
Figures 17 to 27 are screen examples for explaining a method for placing a dental crown for a missing tooth in 3D tooth scanned data according to an embodiment of the present invention.
Figure 28 is a diagram showing a computing device according to an embodiment of the present invention.

본 발명의 상세한 설명에 앞서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. Prior to the detailed description of the present invention, the embodiments described in this specification and the configurations shown in the drawings are only the most preferred embodiments of the present invention and do not represent the entire technical idea of the present invention, so at the time of filing this application, It should be understood that there may be various equivalents and variations that may replace them.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the attached drawings. At this time, it should be noted that in the attached drawings, identical components are indicated by identical symbols whenever possible. Additionally, detailed descriptions of well-known functions and configurations that may obscure the gist of the present invention will be omitted. For the same reason, in the accompanying drawings, some components are exaggerated, omitted, or schematically shown, and the size of each component does not entirely reflect the actual size.

특히, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. In particular, terms or words used in the specification and claims described below should not be construed as limited to their usual or dictionary meanings, and the inventor should use the concept of terms to explain his or her invention in the best way. It must be interpreted as meaning and concept consistent with the technical idea of the present invention based on the principle that it can be appropriately defined.

먼저, 본 발명의 실시예에 따른 치아 스캔 데이터를 처리하기 위한 장치에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 치아 스캔 데이터를 처리하기 위한 장치의 구성을 설명하기 위한 도면이다. 도 1을 참조하면, 본 발명의 실시예에 따른 치아시뮬레이션장치(10)는 데이터처리부(100), 학습부(200), 분할부(300), 복원부(400), 기준처리부(500), 소실치처리부(600) 및 배치부(700)를 포함한다. First, a device for processing tooth scan data according to an embodiment of the present invention will be described. 1 is a diagram for explaining the configuration of a device for processing tooth scan data according to an embodiment of the present invention. Referring to Figure 1, the dental simulation device 10 according to an embodiment of the present invention includes a data processing unit 100, a learning unit 200, a dividing unit 300, a restoration unit 400, a reference processing unit 500, It includes a missing tooth processing unit 600 and a placement unit 700.

데이터처리부(100)는 스캔 장치(미도시)로부터 치아를 3차원으로 스캔한 스캔 데이터를 수신하고, 수신된 스캔 데이터에 대한 전처리를 수행하기 위한 것이다. 이러한 전처리는 부분 스캔 데이터를 필터링하거나, 스캔 데이터를 다운 샘플링하거나, 재배향하는 것을 포함한다. 또한, 데이터처리부(100)는 스캔 데이터를 기초로 학습 데이터를 생성할 수 있다. The data processing unit 100 is used to receive scan data obtained by scanning teeth in three dimensions from a scanning device (not shown) and to perform preprocessing on the received scan data. This preprocessing includes filtering partial scan data, downsampling, or reorienting scan data. Additionally, the data processing unit 100 may generate learning data based on scan data.

학습부(200)는 인공신경망 기반의 심층학습모델(Deep Learning Model)인 분할모델(SM)을 학습시키기 위한 것이다. 학습부(200)는 학습된 분할모델(SM)을 분할부(300)에 제공한다. 이러한 학습 방법 및 분할모델(SM)의 구성에 대해서는 아래에서 더 상세하게 설명하기로 한다. The learning unit 200 is for learning a segmentation model (SM), which is a deep learning model based on an artificial neural network. The learning unit 200 provides the learned segmentation model (SM) to the segmentation unit 300. The configuration of this learning method and segmentation model (SM) will be explained in more detail below.

분할부(300)는 학습된 분할모델(SM)을 이용하여 스캔 데이터를 분석하여 학습클래스에 따라 스캔 데이터 상의 치아를 분할한다. 본 발명의 실시예에서 '분할(segmentation)'이라고 하는 용어는 분할모델(SM)의 가중치 연산에 의해 목적하는 영역을 특정한다는 의미로 사용될 것이다. 가령, 치아를 분할한다는 의미는 치아를 다른 영역과 구분하여 특정한다는 의미로 사용된다. 이 기술분야에서 통상의 지식을 가진자라면, 인공신경망의 연산에 의해 이루어지는 '분할(segmentation)'의 의미를 이해할 수 있을 것이다. The segmentation unit 300 analyzes the scan data using the learned segmentation model (SM) and divides the teeth on the scan data according to the learning class. In an embodiment of the present invention, the term 'segmentation' will be used to mean specifying a target area by calculating the weight of a segmentation model (SM). For example, dividing teeth is used to mean distinguishing teeth from other areas. Anyone with ordinary knowledge in this technical field will be able to understand the meaning of 'segmentation' performed by the calculation of an artificial neural network.

복원부(400)는 분할된 치아를 포함하는 스캔 데이터에 대한 후처리를 위한 것이다. 복원부(400)는 스캔 데이터를 원본 크기로 업 샘플링(Up-sampling)을 수행하거나, 노이즈를 제거할 수 있다. The restoration unit 400 is for post-processing scan data including segmented teeth. The restoration unit 400 may up-sample the scanned data to the original size or remove noise.

한편, 기준처리부(500), 소실치처리부(600) 및 배치부(700)는 치아가 분할된 스캔 데이터 상에서 소실치를 검출하고, 검출된 소실치에 대응하는 치아 크라운을 검출된 소실치의 위치에 배치하기 위한 것이다. 이를 위하여, 기준처리부(500)는 스캔 데이터로부터 기성 치아에 대한 정보인 기성 치아 정보를 도출하고, 소실치처리부(600)는 기성 치아 정보를 기초로 소실치에 대한 정보인 소실치 정보를 도출한다. 그리고 배치부(700)는 소실치 정보를 기초로 소실치에 대응하는 치아 크라운을 배치한다. Meanwhile, the reference processing unit 500, the missing tooth processing unit 600, and the placement unit 700 detect missing teeth on the scan data into which the teeth are segmented, and place the tooth crown corresponding to the detected missing tooth at the position of the detected missing tooth. It is for this purpose. To this end, the reference processing unit 500 derives existing tooth information, which is information about existing teeth, from scan data, and the missing tooth processing unit 600 derives missing tooth information, which is information about missing teeth, based on the existing tooth information. . Then, the placement unit 700 places a tooth crown corresponding to the missing tooth based on the missing tooth information.

데이터처리부(100), 학습부(200), 분할부(300), 복원부(400), 기준처리부(500), 소실치처리부(600) 및 배치부(700)를 포함하는 치아시뮬레이션장치(10)의 구체적인 동작에 대해서는 아래에서 더 상세하게 설명하기로 한다. Tooth simulation device (10) including a data processing unit (100), a learning unit (200), a dividing unit (300), a restoration unit (400), a reference processing unit (500), a missing tooth processing unit (600), and a placement unit (700). )'s specific operation will be explained in more detail below.

다음으로, 본 발명의 실시예에 따른 분할모델의 구성에 대해 설명하기로 한다. 도 2 및 도 3은 본 발명의 실시예에 따른 분할모델의 구성을 설명하기 위한 도면이다. Next, the configuration of a segmentation model according to an embodiment of the present invention will be described. Figures 2 and 3 are diagrams for explaining the configuration of a segmentation model according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 실시예에 따른 분할모델(SM: Segmentation Model)은 복수의 계층 혹은 모듈을 포함하며, 복수의 계층 혹은 모듈은 가중치로 연결되며, 복수의 계층 혹은 모듈 각각은 복수의 연산을 포함한다. 즉, 분할모델(SM)은 복수의 계층 간 가중치가 적용되는 복수의 연산을 수행하며, 이를 가중치 연산이라고 칭하기로 한다. 이러한 분할모델(SM)은 DGCNN(Dynamic Graph (Convolutional Neural Networks) CNN)을 기반으로 한다. Referring to FIG. 2, a segmentation model (SM) according to an embodiment of the present invention includes a plurality of layers or modules, the plurality of layers or modules are connected by weights, and each of the plurality of layers or modules has a plurality of layers or modules. Includes the computation of In other words, the segmentation model (SM) performs a plurality of operations to which weights between multiple layers are applied, and this will be referred to as a weight operation. This segmentation model (SM) is based on Dynamic Graph (Convolutional Neural Networks) CNN (DGCNN).

분할모델(SM)은 공간변환모듈(ST: spatial transform), 각각이 어텐션모듈(SE: squeeze and excitations)을 포함하는 복수의 에지컨벌루션모듈(EC: edge convolution) 및 복수의 다층퍼셉트론모듈(MLP: multi-layer perceptron)을 포함한다. 도 2에서, n은 셀의 개수(예컨대, n=15,000)이고, k는 에지 특징 세트(edge feature set)의 크기이고, c는 학습 클래스의 개수(예컨대, c=10)이다. an은 뉴런(neuron)의 개수이다.The segmentation model (SM) includes a spatial transform module (ST), a plurality of edge convolution modules (EC), each including an attention module (SE: squeeze and excitations), and a plurality of multi-layer perceptron modules (MLP: multi-layer perceptron). In Figure 2, n is the number of cells (eg, n=15,000), k is the size of the edge feature set, and c is the number of learning classes (eg, c=10). an is the number of neurons.

공간변환모듈(ST)은 복수의 셀을 포함하는 스캔 데이터가 입력받는다. 스캔 데이터의 각 셀은 셀의 좌표(3차원 좌표) 및 선택적으로 셀의 색상 정보를 포함할 수 있다. 공간변환모듈(ST)은 스캔 데이터가 입력되면, 변환행렬(예컨대, 3 × 3 행렬)을 적용하여 정준 공간(canonical space)에 정렬하도록 하는 정준 변환을 수행한다. 구체적으로, 공간변환모듈(ST)은 스캔 데이터의 각 셀과 각 셀에 이웃하는 k개의 셀 간의 좌표 차이를 연결하는 텐서를 검출하고(knn), 검출된 텐서에 대해 행렬의 성분이 학습된 가중치인 변환행렬(예컨대, 3 × 3 행렬)에 대한 행렬곱을 통해 정준 변환을 수행함으로써, 스캔 데이터가 정준 공간(canonical space)에 정렬된 특징 지도(feature map)를 생성한다. The spatial conversion module (ST) receives scan data including a plurality of cells. Each cell of scan data may include cell coordinates (3-dimensional coordinates) and optionally color information of the cell. When scan data is input, the spatial transformation module (ST) performs canonical transformation by applying a transformation matrix (for example, a 3 × 3 matrix) to align it in a canonical space. Specifically, the spatial transformation module (ST) detects a tensor (knn) connecting the coordinate differences between each cell of the scan data and the k cells neighboring each cell, and the matrix components for the detected tensor are learned weights. By performing canonical transformation through matrix multiplication for a transformation matrix (e.g., a 3 × 3 matrix), a feature map in which the scan data is aligned in a canonical space is generated.

에지컨벌루션모듈(EC)은 입력되는 특징 지도에 대해 에지컨벌루션 연산을 수행하여 각 셀에 대응하는 특징값을 가지는 특징 지도를 생성한다. 이를 위하여, 에지컨벌루션모듈(EC)은 특징 지도의 각 셀에 대해 특징 공간 상에서의 각 셀에 이웃하는 k개의 셀 간의 좌표 차이를 연결하는 텐서를 검출하고(Knn graph), 검출된 텐서에 대해 n개의 노드를 가지는 다층퍼셉트론모듈(MLP)에 의한 가중치 연산을 수행하여 에지 특징을 도출하고, 어텐션모듈(SE)에 의한 가중치 연산을 수행한 후, 풀링 연산(예컨대, max pooling)을 통해 특징 지도(n ×

Figure pat00017
)를 생성한다. The edge convolution module (EC) performs an edge convolution operation on the input feature map to generate a feature map with feature values corresponding to each cell. For this purpose, the edge convolution module (EC) detects, for each cell of the feature map, a tensor connecting the coordinate differences between k cells neighboring each cell in the feature space (Knn graph), and n for the detected tensor. Edge features are derived by performing a weighting operation using a multi-layer perceptron module (MLP) with nodes, and performing a weighting operation by an attention module (SE), then a feature map (e.g., max pooling) is performed through a pooling operation (e.g., max pooling). n ×
Figure pat00017
) is created.

이어서, 복수의 에지컨벌루션 연산 결과에 따른 특징 지도는 최종 에지 컨벌루션 연산 결과에 따른 특징 지도에 결합(concat)되고, 다시 복수의 다층퍼셉트론모듈(MLP)에 의한 가중치 연산을 수행하여 최종적으로 특징 지도(n × c)를 도출한다. 최종적으로 출력된 특징 지도의 각 성분은 스캔 데이터의 각 셀에 대응하며, 각 셀이 복수의 학습클래스 각각에 속할 확률을 나타낸다.Subsequently, the feature map according to the results of the plurality of edge convolution calculations is concatenated with the feature map according to the final edge convolution calculation result, and weight calculation by a plurality of multi-layer perceptron modules (MLP) is performed again to produce a final feature map ( Derive n × c). Each component of the finally output feature map corresponds to each cell of the scan data and represents the probability that each cell belongs to each of a plurality of learning classes.

한편, 도 3을 참조하여, 어텐션모듈(SE)에 대해 설명하면 다음과 같다. 어텐션모듈(SE)은 입력되는 특징 지도(feature map)를 복수의 채널로 구분하고, 구분된 복수의 채널 간 상호 의존도(inter-dependency)에 따라 구분된 복수의 채널 각각의 어텐션(attention)을 산출하고, 산출된 어텐션을 해당 채널에 적용한다. 이를 위하여, 어텐션모듈(SE)은 변환입력층(CI), 압축층(SQ), 활성층(EOC) 및 어텐션출력층(CO)을 포함한다. Meanwhile, with reference to FIG. 3, the attention module (SE) will be described as follows. The attention module (SE) divides the input feature map into a plurality of channels and calculates attention for each of the plurality of channels according to the inter-dependency between the channels. And apply the calculated attention to the corresponding channel. For this purpose, the attention module (SE) includes a converted input layer (CI), a compression layer (SQ), an active layer (EOC), and an attention output layer (CO).

변환입력층(CI)은 입력되는 특징 지도(feature map)를 소정의 높이(H)와 폭(W)을 가지는 복수의 채널(C)을 가지는 특징 지도(feature map)로 변환한다. 예컨대, 입력된 특징 지도(feature map)가 n×k×

Figure pat00018
의 규격을 가지면, 변환입력층(CI)은 이를 H×W×C의 규격을 가지는 특징 지도(feature map)로 변환할 수 있다.The conversion input layer (CI) converts the input feature map into a feature map having a plurality of channels (C) with a predetermined height (H) and width (W). For example, the input feature map is n×k×
Figure pat00018
If it has the specifications, the conversion input layer (CI) can convert it into a feature map with the specifications of H×W×C.

압축층(SQ)은 특징 지도(feature map)의 복수의 채널(C) 각각을 대표하는 스칼라값인 채널 디스크립터를 생성한다. 이때, 압축층(SQ)은 H×W×C의 규격을 가지는 특징 지도를 풀링 연산(Golbal pooling)을 통해 1×1×C의 규격을 가지는 특징 지도를 생성함으로써 채널 디스크립터를 생성할 수 있다. 이러한 채널 디스크립터는 해당하는 채널(C)에 대한 모든 정보가 임베딩된 벡터값이라고 할 수 있다. The compression layer (SQ) generates a channel descriptor, which is a scalar value representing each of the plurality of channels (C) of the feature map. At this time, the compression layer (SQ) can generate a channel descriptor by generating a feature map with specifications of 1 × 1 × C through pooling of a feature map with specifications of H × W × C. This channel descriptor can be said to be a vector value in which all information about the corresponding channel (C) is embedded.

활성층(EOC)은 복수의 채널 각각의 채널 디스크립터에 대한 복수의 연산을 통해 복수의 채널 각각의 어텐션(attention)을 산출한다. 이를 위하여, 활성층(EOC)은 제1 완전연결층(FC1: Fully-connected layer 1) 및 제2 완전연결층(FC2: Fully-connected layer 2)을 포함한다. The active layer (EOC) calculates the attention of each of the plurality of channels through a plurality of operations on the channel descriptor of each of the plurality of channels. To this end, the active layer (EOC) includes a first fully connected layer (FC1: Fully-connected layer 1) and a second fully connected layer (FC2: Fully-connected layer 2).

제1 완전연결층(FC1)은 채널 디스크립터를 1×1×(C/r)의 규격으로 선형 변환하고(FC: Fully-connected), 복수의 채널 각각에 대응하여 정류선형(ReLU) 연산을 수행한다. 여기서, r은 연산량을 줄이기 위한 하이퍼파라미터이다. 즉, r은 미리 설정되는 수이다. The first fully connected layer (FC1) linearly converts the channel descriptor to the standard of 1 × 1 × (C/r) (FC: Fully-connected) and performs a rectification linear (ReLU) operation for each of the plurality of channels. do. Here, r is a hyperparameter to reduce the amount of computation. That is, r is a preset number.

제2 완전연결층(FC2)은 채널 디스크립터에 대한 제1 완전연결층(FC1)의 연산 결과를 다시 1×1×C의 규격으로 선형 변환하고(FC: Fully-connected), 복수의 채널 각각에 대응하여 시그모이드(Sigmoid) 연산을 수행한다. 이러한 연산 결과는 채널 별 어텐션(attention)을 나타낸다. 이처럼, 활성층(EOC)은 복수의 채널(C) 각각의 채널 디스크립터에 대한 복수의 연산을 통해 복수의 채널 각각의 어텐션(attention)을 산출할 수 있다.The second fully connected layer (FC2) linearly converts the operation result of the first fully connected layer (FC1) on the channel descriptor back to the standard of 1 × 1 × C (FC: Fully-connected), and Correspondingly, a sigmoid operation is performed. These calculation results represent attention for each channel. In this way, the active layer (EOC) can calculate the attention of each of the plurality of channels (C) through a plurality of operations on the channel descriptor of each of the plurality of channels (C).

어텐션출력층(CO)은 채널 별로 산출된 어텐션을 복수의 채널 각각에 적용하여 변환입력층(CI)으로부터 입력된 특징 지도의 복수의 채널(C) 각각에 어텐션을 적용하여 출력한다. 즉, 어텐션출력층(CO)은 변환입력층(CI)으로부터 복수의 채널을 가지는 특징 지도를 입력받고, 제2 완전연결층(FC2)으로부터 채널 별 어텐션을 입력받고, 입력된 복수의 채널을 가지는 특징 지도의 대응하는 채널에 산출된 어텐션을 적용한다. The attention output layer (CO) applies the attention calculated for each channel to each of a plurality of channels and outputs the attention by applying the attention to each of the plurality of channels (C) of the feature map input from the conversion input layer (CI). That is, the attention output layer (CO) receives a feature map with a plurality of channels from the conversion input layer (CI), receives attention for each channel from the second fully connected layer (FC2), and receives features with a plurality of input channels. Apply the calculated attention to the corresponding channel on the map.

다음으로, 본 발명의 실시예에 따른 분할모델(SM: Segmentation Model)을 학습시키는 방법에 대해서 설명하기로 한다. 도 4는 본 발명의 실시예에 따른 분할모델(SM: Segmentation Model)을 학습시키는 방법을 설명하기 위한 흐름도이다. 도 5 및 도 6은 본 발명의 실시예에 따른 분할모델을 학습시키기 위한 학습클래스를 설명하기 위한 도면이다. Next, a method for learning a segmentation model (SM) according to an embodiment of the present invention will be described. Figure 4 is a flowchart illustrating a method of learning a segmentation model (SM) according to an embodiment of the present invention. Figures 5 and 6 are diagrams for explaining a learning class for learning a segmentation model according to an embodiment of the present invention.

도 4를 참조하면, 데이터처리부(100)는 S110 단계에서 학습 데이터를 마련한다. 학습 데이터는 학습용 스캔 데이터와 학습용 스캔 데이터의 복수의 셀 각각에 대응하는 학습클래스를 나타내는 레이블을 포함한다. 데이터처리부(100)는 네트워크 연산속도를 늘리기 위하여, 스캔 데이터로 다운 샘플링할 수 있다. 예컨대, 데이터처리부(100)는 스캔 데이터의 원본을 15,000개 셀을 가지는 학습용 스캔 데이터로 다운 샘플링 할 수 있다. 학습 데이터의 양을 증가시키기 위해 데이터 증식(Augmentation)을 수행할 수 있다. 데이터 증식(Augmentation)은 random scaling, random rotation, random translation, random horizontal flipping 등을 이용할 수 있다. 학습용 스캔 데이터는 복수의 치아 및 상기 치아와 연결된 잇몸의 적어도 일부를 포함하는 부분을 3차원으로 스캔한 것이다. 스캔 데이터의 셀은 3차원의 좌표(x, y, z)를 가진다. 스캔 데이터는 3차원으로 사람의 치아와 그 주변을 스캔한 것이다. 따라서, 본 발명의 실시예에서 셀은 격자 단위의 복셀이거나, 포인트 클라우드의 포인트이거나, STL(Stereo Lithography) 형식의 삼각형이 될 수 있다. 이에 따라, 스캔 데이터의 셀의 좌표는 셀의 중심(혹은 무게 중심)의 3차원의 좌표로 이해되어야 한다. 레이블은 각 셀이 학습클래스 각각에 속하는지 여부를 나타낸다(

Figure pat00019
, l은 학습클래스 인덱스). 학습클래스는 잇몸 및 복수의 치아 각각을 구분하기 위한 것이다. Referring to FIG. 4, the data processing unit 100 prepares learning data in step S110. The training data includes training scan data and a label indicating a learning class corresponding to each of a plurality of cells in the training scan data. The data processing unit 100 may down-sample scan data to increase network operation speed. For example, the data processing unit 100 may down-sample the original scan data into training scan data having 15,000 cells. Data augmentation can be performed to increase the amount of learning data. Data augmentation can use random scaling, random rotation, random translation, random horizontal flipping, etc. The training scan data is a three-dimensional scan of a portion including a plurality of teeth and at least a portion of the gums connected to the teeth. Cells of scan data have three-dimensional coordinates (x, y, z). Scan data is a 3D scan of a person's teeth and their surroundings. Therefore, in an embodiment of the present invention, a cell may be a voxel in a grid unit, a point in a point cloud, or a triangle in STL (Stereo Lithography) format. Accordingly, the coordinates of a cell in scan data should be understood as the three-dimensional coordinates of the center (or center of gravity) of the cell. The label indicates whether each cell belongs to each learning class (
Figure pat00019
, l is the learning class index). The learning class is for distinguishing between the gums and multiple teeth.

본 발명의 학습클래스는 전체 치아에서 상하 대칭되어 배치되는 상악의 치아 및 하악의 치아를 동일한 클래스로 설정하고, 서로 이웃하는 중절치를 제외한 좌우 대칭되어 배치되는 치아를 동일한 클래스로 설정한다. 이러한 학습클래스에 대해 보다 상세하게 설명하면 다음과 같다. 일 실시예에 따르면, 분할모델의 학습클래스의 수를 줄이기 위해 FDI 표기법에 따른 32가지 치아를 9가지 치아로 축소하여 학습클래스를 10가지의 클래스(배경(잇몸) 1, 치아 9)로 분류한다. 첫째로, 도 5의 (A)와 같이, 32가지로 구분되는 치아에서 도 5의 (B)와 같이, 상악 및 하악의 구분을 없애서 16가지 치아로 축소한다. 즉, 상하 대칭되어 배치되는 상악 및 하악의 치아를 동일한 클래스로 설정한다. 일례로, 도 5의 (A)의 상악의 17번 치아와 하악의 47번 치아를 도 5의 (B)와 같이, 2번 치아로 설정한다. 다른 예로, 도 5의 (A)의 상악의 27번 치아와 하악의 37번 치아를 도 5의 (B)와 같이, 15번 치아로 설정한다. 둘째로, 도 5의 (C)와 같이, 서로 이웃하는 중절치를 제외한 좌우 대칭되어 배치되는 치아를 동일한 클래스로 설정한다. 이에 따라, 도 5의 (C)에 도시된 바와 같이, 1~3번째 대구치, 1~2번째 소구치, 견치 및 측절치 쌍이 순서대로 1 내지 7번 치아로 분류되며, 서로 이웃하는 중절치는 8번(FDI 기준 11, 41번 치아) 및 9번 치아(FDI 기준 21번 32번 치아)로 분류된다. 이에 따라, 도 6에 도시된 바와 같이, 본 발명의 학습클래스는 잇몸을 나타내는 배경(background) 클래스와 9가지 치아를 나타내는 클래스를 포함한 총 10가지 클래스로 이루어진다. 여기서, 배경(background) 클래스는 0번으로 설정된다.The learning class of the present invention sets the upper and lower teeth, which are arranged symmetrically up and down across all teeth, to the same class, and sets the teeth arranged symmetrically left and right, excluding the central incisors that are adjacent to each other, to the same class. These learning classes are explained in more detail as follows. According to one embodiment, in order to reduce the number of learning classes in the segmentation model, 32 teeth according to FDI notation are reduced to 9 teeth and the learning classes are classified into 10 classes (background (gum) 1, tooth 9). . First, as shown in Figure 5 (A), the 32 types of teeth are reduced to 16 types by eliminating the distinction between the upper and lower jaws, as shown in Figure 5 (B). That is, the upper and lower teeth, which are arranged symmetrically up and down, are set to the same class. For example, tooth No. 17 of the upper jaw and tooth No. 47 of the lower jaw in Figure 5 (A) are set as tooth No. 2, as shown in Figure 5 (B). As another example, tooth No. 27 of the upper jaw and tooth No. 37 of the lower jaw in FIG. 5 (A) are set as tooth No. 15, as shown in (B) of FIG. 5. Second, as shown in Figure 5 (C), teeth arranged symmetrically on the left and right, excluding central incisors that are adjacent to each other, are set to the same class. Accordingly, as shown in Figure 5 (C), pairs of 1st to 3rd molars, 1st to 2nd premolars, canines, and lateral incisors are classified as teeth 1 to 7 in that order, and the central incisors adjacent to each other are classified as teeth 8 ( They are classified as teeth 11 and 41 according to FDI) and teeth 9 (tooth 21 and 32 according to FDI). Accordingly, as shown in Figure 6, the learning class of the present invention consists of a total of 10 classes, including a background class representing gums and a class representing 9 types of teeth. Here, the background class is set to 0.

학습부(200)는 S120 단계에서 학습용 스캔 데이터를 학습이 완료되지 않은 분할모델(SM)에 입력한다. The learning unit 200 inputs training scan data into the segmentation model (SM) for which learning has not been completed in step S120.

그러면, 분할모델(SM)은 S130 단계에서 학습용 스캔 데이터에 대해 학습이 완료되지 않은 가중치가 적용되는 가중치 연산을 수행하여 복수의 셀 각각에 대한 학습용 예측 벡터를 포함하는 학습용 특징 지도를 도출한다. 학습용 예측 벡터는 각 셀이 복수의 학습클래스 각각에 속할 확률을 나타낸다. 전술한 바와 같이, 학습클래스는 배경(잇몸) 및 1번 내지 9번 치아를 포함하며, 학습용 예측 벡터는 해당 셀이 배경(잇몸) 및 1번 내지 9번 치아 각각에 속할 확률을 나타내는 점수가 될 수 있다. 분할모델(SM)의 가중치 연산은 앞서 도 2 및 도 3을 참조로 설명된 바와 같다. Then, the segmentation model (SM) performs a weighting operation in which unlearned weights are applied to the training scan data in step S130 to derive a learning feature map including a learning prediction vector for each of a plurality of cells. The prediction vector for learning represents the probability that each cell belongs to each of a plurality of learning classes. As described above, the learning class includes the background (gum) and teeth 1 to 9, and the prediction vector for learning will be a score indicating the probability that the corresponding cell belongs to the background (gum) and teeth 1 to 9, respectively. You can. The weight calculation of the segmentation model (SM) is the same as previously described with reference to FIGS. 2 and 3.

그러면, 학습부(200)는 S140 단계에서 분할 손실 및 분류 손실을 포함하는 전체 손실을 산출한다. Then, the learning unit 200 calculates the total loss including the segmentation loss and classification loss in step S140.

분할 손실은 다음의 수학식 1에 따른 다이스 손실(Dice loss) 함수를 통해 도출한다. Segmentation loss is derived through the Dice loss function according to Equation 1 below.

여기서, L은 학습클래스 개수이고, l은 학습클래스 인덱스이고, N은 셀의 개수이고, i는 셀 인덱스이고, p는 학습용 예측 벡터이고, y는 레이블(ground truth label)이며,

Figure pat00021
. ε은 기 설정된 상수(constant)이다. 여기서, p와 y의 크기는 N×L이다. Here, L is the number of learning classes, l is the learning class index, N is the number of cells, i is the cell index, p is the prediction vector for learning, y is the label (ground truth label),
Figure pat00021
. ε is a preset constant. Here, the sizes of p and y are N×L.

또한, 분류 손실은 다음의 수학식 2에 따른 MLS 손실(multi-label-softmargin-loss) 함수를 통해 도출한다. Additionally, the classification loss is derived through the MLS loss (multi-label-softmargin-loss) function according to Equation 2 below.

Figure pat00022
Figure pat00022

여기서 L은 학습클래스의 개수, l은 학습클래스의 인덱스이고, y는 레이블이며,

Figure pat00023
.
Figure pat00024
은 데이터 단위의 확률(data sample-wise probability)을 나타내며, 0 혹은 1의 값을 가진다(
Figure pat00025
). 이러한
Figure pat00026
은 다음의 수학식 3과 같이 정의된다. Here, L is the number of learning classes, l is the index of the learning class, and y is the label.
Figure pat00023
.
Figure pat00024
represents the probability of a data unit (data sample-wise probability) and has a value of 0 or 1 (
Figure pat00025
). Such
Figure pat00026
is defined as in Equation 3 below.

Figure pat00027
Figure pat00027

여기서, N은 스캔 데이터의 셀의 개수, l은 레이블(학습클래스) 인덱스,

Figure pat00028
은 레이블(학습클래스) 인덱스(l)에 대응하는 셀 개수(
Figure pat00029
<N)를 의미한다. 임계치(threshold) 값에 따라서
Figure pat00030
의 값이 변동된다. 예를 들면, 임계치가 0인 경우, 하나의 학습용 특징지도에서 특정 학습클래스로 도출되는 한 개의 셀이라도 존재한다면,
Figure pat00031
은 1의 값을 가진다. 다른 예로, 임계치가 50인 경우, 특정 학습클래스로 도출된 셀의 개수가 51 이상이면,
Figure pat00032
은 1의 값을 가진다. 반대로, 임계치가 50일 때, 특정 학습클래스로 도출된 셀의 개수가 50 이하이면,
Figure pat00033
은 0의 값을 가진다. Here, N is the number of cells in the scan data, l is the label (learning class) index,
Figure pat00028
is the number of cells corresponding to the label (learning class) index (l) (
Figure pat00029
means <N). Depending on the threshold value
Figure pat00030
The value of changes. For example, when the threshold is 0, if there is even one cell derived from a specific learning class in one learning feature map,
Figure pat00031
has a value of 1. As another example, if the threshold is 50 and the number of cells derived from a specific learning class is 51 or more,
Figure pat00032
has a value of 1. Conversely, when the threshold is 50 and the number of cells derived from a specific learning class is 50 or less,
Figure pat00033
has the value of 0.

종래의 기술들은 셀 단위의 분류(cell-wise classification term)를 위하여 교차 엔트로피 손실(cross entropy loss)을 활용하였다. 하지만, 임상 현장에서는 셀 단위가 아닌 데이터 샘플(data sample)에 대한 소실치 유무의 판단이 요구된다. 따라서 본 발명은 데이터 샘플 단위(data sample-wise)로 연산하는 MLS 손실 함수를 이용한다. Conventional technologies utilized cross entropy loss for cell-wise classification terms. However, in clinical practice, determination of the presence or absence of missing teeth is required for data samples rather than cell units. Therefore, the present invention uses an MLS loss function that operates on a data sample-wise basis.

또한, 전체 손실은 다음의 수학식 4에 따라 도출된다.Additionally, the total loss is derived according to Equation 4 below.

Figure pat00034
Figure pat00034

여기서, λ는 분류 손실의 밸런스를 맞추기 위한 상수이며, 미리 설정되는 값이다. Here, λ is a constant to balance the classification loss and is a preset value.

전술한 바와 같이, 전체 손실이 산출되면, 학습부(200)는 S150 단계에서 분할 손실 및 분류 손실을 포함하는 전체 손실이 최소가 되도록 분할모델(SM)의 가중치를 수정하는 최적화를 수행한다. As described above, when the total loss is calculated, the learning unit 200 performs optimization to modify the weights of the segmentation model (SM) so that the total loss, including the segmentation loss and classification loss, is minimized in step S150.

전술한 S120 단계 내지 S150 단계는 소정의 학습 완료 조건을 만족할 때까지 서로 다른 학습 데이터를 이용하여 반복하여 수행된다. 이러한 학습 완료 조건은 전체 손실이 기 설정된 기준치 미만이거나 수렴하는 경우, 분할 손실 및 분류 손실 각각이 기 설정된 기준치 미만이면서 전체 손실이 수렴하는 경우, S120 단계 내지 S150 단계의 반복 횟수가 목표치를 달성한 경우, 등을 예시할 수 있다. 이에 따라, 학습부(200)는 S160 단계에서 학습 완료 조건을 판별하고, 학습 완료 조건이 만족되면, S170 단계에서 학습을 완료한다. 학습이 완료되면, 분할모델(SM)은 분할부(300)에 제공된다.Steps S120 to S150 described above are repeatedly performed using different learning data until a predetermined learning completion condition is satisfied. These learning completion conditions are when the overall loss is less than the preset threshold or converges, when the segmentation loss and classification loss are each less than the preset threshold and the overall loss converges, and when the number of iterations of steps S120 to S150 reaches the target value. , etc. can be exemplified. Accordingly, the learning unit 200 determines the learning completion condition in step S160, and if the learning completion condition is satisfied, it completes learning in step S170. When learning is completed, the segmentation model (SM) is provided to the segmentation unit 300.

다음으로, 본 발명의 실시예에 따른 딥러닝을 이용하여 3차원으로 치아를 스캔한 데이터에서 치아를 분할하기 위한 방법에 대해서 설명하기로 한다. 도 7은 본 발명의 실시예에 따른 딥러닝을 이용하여 3차원으로 치아를 스캔한 데이터에서 치아를 분할하기 위한 방법을 설명하기 위한 흐름도이다. 도 8 내지 도 15는 본 발명의 실시예에 따른 딥러닝을 이용하여 3차원으로 치아를 스캔한 데이터에서 치아를 분할하기 위한 방법을 설명하기 위한 화면 예이다. Next, a method for segmenting teeth from 3D teeth scanned data using deep learning according to an embodiment of the present invention will be described. Figure 7 is a flowchart illustrating a method for segmenting teeth from 3D teeth scanned data using deep learning according to an embodiment of the present invention. 8 to 15 are example screens for explaining a method for segmenting teeth from 3D teeth scanned data using deep learning according to an embodiment of the present invention.

도 7을 참조하면, 데이터처리부(100)는 S210 단계에서 사람의 치아를 3차원으로 스캔한 스캔 데이터를 입력받는다. 여기서, 스캔 데이터는 3차원으로 사람의 치아와 그 주변을 스캔한 것이다. 따라서, 본 발명의 실시예에서 셀은 격자 단위의 복셀이거나, 포인트 클라우드의 포인트이거나, STL(Stereo Lithography) 형식의 삼각형이 될 수 있다. 이에 따라, 스캔 데이터의 셀의 좌표는 셀의 중심(혹은 무게 중심)의 3차원의 좌표로 이해되어야 한다.Referring to FIG. 7, the data processing unit 100 receives scan data obtained by scanning human teeth in three dimensions in step S210. Here, the scan data is a three-dimensional scan of a person's teeth and their surroundings. Therefore, in an embodiment of the present invention, a cell may be a voxel in a grid unit, a point in a point cloud, or a triangle in STL (Stereo Lithography) format. Accordingly, the coordinates of a cell in scan data should be understood as the three-dimensional coordinates of the center (or center of gravity) of the cell.

특히, 스캔 데이터는 사람의 모든 치아를 포함하는 영역을 스캔한 전체 스캔 데이터이거나, 사람의 치아 중 일부만 스캔한 부분 스캔 데이터일 수 있다. 이에 따라, 데이터처리부(100)는 S220 단계에서 부분 스캔 데이터를 필터링한다. 즉, 데이터처리부(100)는 스캔 데이터가 전체 스캔 데이터인지 혹은 부분 스캔 데이터인지 여부를 판별하여 부분 스캔 데이터인 경우 해당 스캔 데이터를 소거한다. 이러한 S220 단계에 대해 보다 구체적으로 설명하면 다음과 같다. In particular, the scan data may be full scan data in which an area including all of the person's teeth is scanned, or it may be partial scan data in which only a portion of the person's teeth are scanned. Accordingly, the data processing unit 100 filters the partial scan data in step S220. That is, the data processing unit 100 determines whether the scan data is full scan data or partial scan data, and erases the scan data if it is partial scan data. This S220 step is described in more detail as follows.

부분 스캔 데이터를 필터링하기 위하여, 비지도 학습에 기반한 기계학습모델(Machine Learning Model)을 사용한다. 여기서, 기계학습모델은 클러스터가 2개인 K-means가 될 수 있다. 도 8의 (A)는 모든 치아를 3차원으로 촬영한 "전체 스캔 데이터"의 일례이다. 그리고 도 8의 (B)는 치아 일부를 3차원으로 촬영한 "부분 스캔 데이터"의 일례이다. 도시된 바와 같이, 전체 스캔 데이터와 부분 스캔 데이터의 평면, 즉, x, y 차원에서 차이가 뚜렷하다. 따라서 데이터처리부(100)는 스캔 데이터에서 z 차원을 제외하고 x, y 차원을 사용한다. 이를 위하여, 데이터처리부(100)는 (x, y, z) 좌표를 가진 복수의 셀(Cell)에 대한 주성분 분석(Principal Component Analysis, PCA)을 통해 (p, q) 좌표를 가진 셀(Cell)로 변환한다. 즉, 데이터처리부(100)는 주성분 분석를 통해 스캔 데이터의 3차원 좌표(x, y, z)에서 z 차원을 제외하여 2차원 좌표(p, q)로 축소한다. To filter partial scan data, a machine learning model based on unsupervised learning is used. Here, the machine learning model can be K-means with two clusters. Figure 8 (A) is an example of “full scan data” in which all teeth are photographed in 3D. And Figure 8 (B) is an example of “partial scan data” in which a part of a tooth is photographed in three dimensions. As shown, there is a clear difference in the plane, that is, the x and y dimensions, between the full scan data and the partial scan data. Therefore, the data processing unit 100 uses the x and y dimensions in the scan data, excluding the z dimension. To this end, the data processing unit 100 analyzes cells with (p, q) coordinates through principal component analysis (PCA) on a plurality of cells with (x, y, z) coordinates. Convert to That is, the data processing unit 100 reduces the scan data to two-dimensional coordinates (p, q) by excluding the z dimension from the three-dimensional coordinates (x, y, z) of the scan data through principal component analysis.

데이터처리부(100)는 2차원 좌표(p, q)를 이용해서 도 8과 같이, 단축에서의 스캔 데이터의 길이(PC1)와 장축에서의 스캔데이터의 길이(PC2)를 다음의 수학식 5에 따라 산출할 수 있다. As shown in FIG. 8, the data processing unit 100 uses two-dimensional coordinates (p, q) to calculate the length of scan data on the short axis (PC1) and the length of scan data on the long axis (PC2) in Equation 5 below. It can be calculated accordingly.

Figure pat00035
Figure pat00035

여기서, PC1과 PC2는 각각 스캔 데이터의 단축의 길이와 장축의 길이를 나타낸다. 또한,

Figure pat00036
Figure pat00037
은 각각 스캔데이터의 p 좌표의 최대값 및 최소값이고,
Figure pat00038
Figure pat00039
은 각각 q 좌표에서 스캔데이터의 q좌표의 최대값 및 최소값이다. Here, PC1 and PC2 represent the short axis length and long axis length of the scan data, respectively. also,
Figure pat00036
and
Figure pat00037
are the maximum and minimum values of the p coordinate of the scan data, respectively,
Figure pat00038
and
Figure pat00039
are the maximum and minimum values of the q-coordinate of the scan data at the q-coordinate, respectively.

데이터처리부(100)는 K-means 학습 데이터로 단축의 길이(PC1), 단장축의 길이 비율(PC1/PC2)을 이용한다. 여기서 성별 및 나이로 인한 변량을 통제하고자 무차원 변수인 PC1/PC2을 사용한다. 데이터처리부(100)는 학습된 기계학습모델(예컨대, K-means)을 이용하여 다음의 수학식 6에 따라 스캔 데이터가 전체 스캔 데이터인지 혹은 부분 스캔 데이터인지 여부를 확인할 수 있다. 여기서, 기계학습모델(예컨대, K-means)은 단축의 길이 및 단축의 길이 대 장축의 길이의 비율에 따라 스캔 데이터를 전체 스캔 데이터와 부분 스캔 데이터로 분류(예컨대, clustering)하도록 학습된 모델이다. The data processing unit 100 uses the short axis length (PC1) and the short axis length ratio (PC1/PC2) as K-means learning data. Here, dimensionless variables PC1/PC2 are used to control variables due to gender and age. The data processing unit 100 can use a learned machine learning model (eg, K-means) to check whether the scan data is full scan data or partial scan data according to Equation 6 below. Here, the machine learning model (e.g., K-means) is a model learned to classify (e.g., clustering) scan data into full scan data and partial scan data according to the length of the minor axis and the ratio of the length of the minor axis to the length of the major axis. .

Figure pat00040
Figure pat00040

여기서, f는 학습된 기계학습모델(예컨대, K-means)을 나타낸다. r은 0 또는 1의 값이다. 변수 r이 1이면 부분 스캔 데이터, 0이면 전체 스캔 데이터를 나타낸다. 이에 따라, 데이터처리부(100)는 변수 r이 1인 경우, 즉, 부분 스캔 데이터인 경우, 해당 스캔 데이터를 소거한다. Here, f represents the learned machine learning model (e.g., K-means). r is a value of 0 or 1. If the variable r is 1, it represents partial scan data, and if it is 0, it represents full scan data. Accordingly, the data processing unit 100 erases the scan data when the variable r is 1, that is, when it is partial scan data.

다음으로, 데이터처리부(100)는 S230 단계에서 스캔 데이터를 재배향한다. 이는 스캔 데이터의 일정한 축 방향을 유지한 것이다. 구체적으로, 도 9를 참조하여 설명하면, 데이터처리부(100)는 도 9의 (A)에 도시된 바와 같이, 스캔 데이터의 xy 평면에 대한 주성분 분석(Principal Component Analysis, PCA)을 통해 고유벡터(eigen vector, V1, V2)를 도출한다. 그런 다음, 데이터처리부(100)는 고유벡터(V1, V2)의 원점(Z)을 수평으로 지나는 기준선(L)과 고유벡터(V1, V2)가 이루는 각 중 작은 각을 회전각(θ)으로 선택한다. 이어서, 도 9의 (B)에 도시된 바와 같이, 데이터처리부(100)는 기준선(L)과 회전각(θ)을 이루는 고유벡터(V1)가 기준선(L)이 일치하도록 원점(Z)을 회전축으로 하여 스캔 데이터를 회전시켜 스캔 데이터를 재배향한다. 다른 말로, 데이터처리부(100)는 회전각(θ)이 0이 되도록 원점(Z)을 회전축으로 스캔 데이터를 회전시켜 스캔 데이터를 재배향한다. 한편, 본 발명은 상악의 스캔 데이터와 하악의 스캔 데이터의 방향을 일치하기 위해서 상악의 스캔 데이터를 하악의 스캔 데이터를 기준으로 재배향한다. 도 10의 (A1) 및 (A2)와 같이, 상악의 스캔 데이터와 하악의 스캔 데이터는 xy 평면에 대해 서로 대칭적인 축 방향을 가지고 있다. 따라서 도 10의 (B1) 및 (B2)와 같이, 상악의 스캔 데이터를 xy 평면 기준으로 뒤집어서(Flipping) 하악의 스캔 데이터와 동일한 방향으로 재배향한다. Next, the data processing unit 100 redirects the scan data in step S230. This maintains a constant axis direction of the scan data. Specifically, referring to FIG. 9, the data processing unit 100 generates an eigenvector through principal component analysis (PCA) on the xy plane of the scan data, as shown in (A) of FIG. 9. eigen vector, V1, V2) is derived. Then, the data processing unit 100 converts the smaller angle between the angles formed by the eigenvectors (V1, V2) and the reference line (L) horizontally passing through the origin (Z) of the eigenvectors (V1, V2) into the rotation angle (θ). Choose. Next, as shown in (B) of FIG. 9, the data processing unit 100 sets the origin (Z) so that the eigenvector (V1) forming the reference line (L) and the rotation angle (θ) coincides with the reference line (L). The scan data is reoriented by rotating the scan data around the rotation axis. In other words, the data processing unit 100 reorients the scan data by rotating the scan data around the origin (Z) as the rotation axis so that the rotation angle (θ) becomes 0. Meanwhile, in the present invention, the upper jaw scan data is reoriented based on the lower jaw scan data in order to match the directions of the upper jaw scan data and the lower jaw scan data. As shown in Figures 10 (A1) and (A2), the upper jaw scan data and the lower jaw scan data have axial directions that are symmetrical to each other with respect to the xy plane. Therefore, as shown in (B1) and (B2) of Figure 10, the scan data of the upper jaw is flipped based on the xy plane and reoriented in the same direction as the scan data of the lower jaw.

이어서, 데이터처리부(100)는 S240 단계에서 소정의 크기로 스캔 데이터를 다운 샘플링(down-sampling)한다. 예컨대, 15,000 개의 셀로 다운 샘플링 할 수 있다. Next, the data processing unit 100 down-samples the scan data to a predetermined size in step S240. For example, you can downsample to 15,000 cells.

그런 다음, 분할부(300)는 S250 단계에서 분할모델(SM)을 통해 스캔 데이터에 대해 학습된 가중치에 따른 가중치 연산을 수행하여 스캔 데이터의 복수의 셀에 대응하는 예측벡터를 포함하는 특징 지도를 도출한다. 여기서, 예측벡터는 스캔 데이터를 구성하는 각 셀이 각 학습클래스에 속할 확률을 나타낸다. 도 5 및 도 6을 참조로 설명된 바와 같이, 학습클래스는 10개의 클래스, 즉, 클래스 0 내지 9를 포함하며, 클래스 0 내지 9는 배경, 제3 대구치, 제2 대구치, 제1 대구치, 제2 소구치, 제1 소구치, 견치, 측절치, 좌측 중절치 및 우측 중절치를 나타낸다. 이에 따라, 어느 하나의 셀에 대한 예측벡터는 해당 셀이 클래스 0 내지 9 각각에 속할 확률을 나타낸다. 예를 들면, 어느 하나의 셀에 대한 예측벡터는 클래스 0 내지 9에 대해 "[배경(클래스 0), 제3 대구치(클래스 1), 제2 대구치(클래스 2), ..., 우측 중절치(클래스 9)]=[0.008, 0.003, 0.012, ..., 0.809]"과 같이 도출될 수 있다. 이는 "(배경, 제3 대구치, 제2 대구치, ..., 우측 중절치)=[1%, 0%, 1%, ..., 81%]"를 나타낸다. Then, the segmentation unit 300 performs a weighting operation according to the weights learned for the scan data through the segmentation model (SM) in step S250 to generate a feature map including prediction vectors corresponding to a plurality of cells of the scan data. Derive. Here, the prediction vector represents the probability that each cell constituting the scan data belongs to each learning class. As explained with reference to Figures 5 and 6, the learning class includes 10 classes, that is, classes 0 to 9, where classes 0 to 9 are background, third molar, second molar, first molar, and first molar. 2 Represents the premolars, first premolars, canines, lateral incisors, left central incisors and right central incisors. Accordingly, the prediction vector for one cell represents the probability that the corresponding cell belongs to each of classes 0 to 9. For example, the prediction vector for one cell is "[background (class 0), third molar (class 1), second molar (class 2), ..., right central incisor ( Class 9)]=[0.008, 0.003, 0.012, ..., 0.809]". This represents "(background, third molar, second molar, ..., right central incisor)=[1%, 0%, 1%, ..., 81%]".

다음으로, 분할부(300)는 S260 단계에서 예측벡터에 따라 스캔 데이터 상에서 치아를 분할한다. 즉, 분할부(300)는 각 셀의 예측벡터가 나타내는 각 학습클래스에 대한 확률에 따라 스캔 데이터 상에서 치아를 분할한다. 즉, 분할부(300)는 해당 셀이 가장 높은 확률을 가지는 학습클래스에 속하는 것으로 판정하고, 판정된 클래스에 따라 해당 치아를 분할한다. 이러한 방식으로 모든 셀을 예측벡터의 확률에 따라 분류하여 치아를 분할 할 수 있다. 예를 들면, 분할부(300)는 어느 하나의 복셀의 예측벡터가 "(배경, 좌측 중절치, 측절치, 견치, ..., 우측 중절치)=[0.008, 0.041, 0.752, ..., 0.016]"이라면, 해당 복셀에 대해 "(배경, 좌측 중절치, 측절치, 견치, ..., 우측 중절치)=[0, 0, 1, ..., 0]"으로 결정할 수 있다. 이는 가장 높은 확률을 가지는 클래스인 측절치(클래스 2)를 선택하여 해당 복셀의 치아 마스크, 즉, 상악 치아 마스크가 측절치를 구성함을 나타낸다.Next, the segmentation unit 300 divides the teeth on the scan data according to the prediction vector in step S260. That is, the segmentation unit 300 divides the teeth on the scan data according to the probability for each learning class indicated by the prediction vector of each cell. That is, the segmentation unit 300 determines that the corresponding cell belongs to the learning class with the highest probability, and divides the corresponding tooth according to the determined class. In this way, teeth can be segmented by classifying all cells according to the probability of the prediction vector. For example, the segmentation unit 300 determines that the prediction vector of one voxel is "(background, left central incisor, lateral incisor, canine, ..., right central incisor) = [0.008, 0.041, 0.752, ..., 0.016] If ", then the voxel can be determined as "(background, left central incisor, lateral incisor, canine, ..., right central incisor) = [0, 0, 1, ..., 0]". This indicates that the lateral incisor (class 2), which is the class with the highest probability, is selected and the tooth mask of the corresponding voxel, that is, the maxillary tooth mask, constitutes the lateral incisor.

다음으로, 분할부(300)는 S270 단계에서 학습클래스에 따라 분할된 치아를 확장클래스에 따라 세분화한다. 즉, 분할부(300)는 좌우 대칭되어 배치되어 동일한 클래스에 속하는 치아 쌍의 클래스를 구분하여 학습클래스에 따른 8개의 치아 클래스를 확장클래스에 따라 16개의 치아 클래스로 확장한다. 이로써, 16개의 치아 클래스와 1개의 배경 클래스를 포함하는 17개의 확장클래스로 변환한다. 이때, 분할부(300)는 3가지 케이스에 따라 8개의 치아 클래스를 확장클래스에 따라 16개의 치아 클래스로 변환할 수 있다. 이러한 S260 단계에 대해 보다 상세하게 설명하면 다음과 같다. 즉, 분할부(300)는 학습클래스에서 서로 이웃하는 중절치를 제외하고 좌우 대칭되어 배치되어 동일한 클래스에 속하는 치아 쌍을 확장클래스에 따라 구분한다. Next, the division unit 300 subdivides the teeth divided according to the learning class in step S270 according to the expansion class. That is, the dividing unit 300 is arranged symmetrically left and right, distinguishes classes of tooth pairs belonging to the same class, and expands 8 tooth classes according to the learning class to 16 tooth classes according to the expansion class. This converts it into 17 extended classes, including 16 tooth classes and 1 background class. At this time, the division unit 300 can convert 8 tooth classes according to 3 cases into 16 tooth classes according to extended classes. This S260 step is described in more detail as follows. That is, the dividing unit 300 is arranged symmetrically left and right, excluding the central incisors that are adjacent to each other in the learning class, and distinguishes pairs of teeth belonging to the same class according to the extended class.

첫 번째 케이스로 도 11을 참조하면, 중절치(클래스 8 및 클래스 9: FDI 표기 기준 11, 21, 31, 41)가 있는 경우, 분할부(300)는 중절치로부터 기준점(P)을 도출하고, 기준점(P)을 수직으로 지나는 중심선(L)을 구하고, 중심선(L)을 기준으로 좌우를 구분한 후, 9개의 치아 클래스를 확장클래스에 따라 16개의 치아 클래스로 확장한다. 여기서, 기준점(P)은 좌측 중절치 및 우측 중절치 모두 존재하는 경우, 수평 좌표 상에서 좌측 중절치와 우측 중절치 상호 간에 가장 인접의 셀 중 어느 하나의 셀의 좌표를 선택할 수 있다. 또한, 기준점(P)은 좌측 중절치만 존재하는 경우, 수평 좌표 상에서 가장 오른쪽에 위치한 셀의 좌표를 선택하고, 우측 중절치만 존재하는 경우, 수평 좌표 상에서 가장 왼쪽에 위치한 셀을 선택할 수 있다. In the first case, referring to Figure 11, when there are central incisors (class 8 and class 9: FDI notation standards 11, 21, 31, 41), the dividing unit 300 derives a reference point (P) from the central incisors, and the reference point Find the center line (L) that passes vertically through (P), distinguish the left and right sides based on the center line (L), and expand the 9 tooth classes into 16 tooth classes according to the expansion class. Here, when both the left central incisor and the right central incisor exist, the reference point (P) can select the coordinates of any one of the cells closest to each other between the left central incisor and the right central incisor on horizontal coordinates. Additionally, as the reference point (P), if only the left central incisor exists, the coordinates of the rightmost cell on the horizontal coordinates may be selected, and if only the right central incisor exists, the coordinates of the leftmost cell on the horizontal coordinates may be selected.

두 번째 케이스로, 도 12를 참조하면, 중절치가 없는 경우, 분할부(300)는 비지도 클러스터링 모델(unsupervised clustering model)을 이용하여 상호 대칭되는 대칭 치아를 검출한다. 이러한 비지도 클러스터링 모델은 DBSCAN(Density-based spatial clustering of applications with noise)을 예시할 수 있다. 그런 다음, 분할부(300)는 상호 대칭되는 치아를 이용하여 중심선(L)을 도출한다. 중심선(L)을 기준으로 좌우를 구분한 후, 9개의 치아 클래스를 확장클래스에 따라 16개의 치아 클래스로 확장한다. In the second case, referring to FIG. 12, when there is no central incisor, the segmentation unit 300 detects symmetrical teeth that are symmetrical to each other using an unsupervised clustering model. This unsupervised clustering model may exemplify DBSCAN (Density-based spatial clustering of applications with noise). Then, the dividing unit 300 derives the center line L using teeth that are symmetrical to each other. After dividing the left and right sides based on the center line (L), 9 tooth classes are expanded into 16 tooth classes according to the expansion class.

세 번째 케이스로, 도 13을 참조하면, 중절치도 없고 상호 대칭되는 대칭 치아도 없는 경우, 전체 셀의 중심을 나타내는 중심점을 도출하고, 중심점을 수직으로 지나는 중심선(L)을 구하고, 중심선(L)을 기준으로 좌우를 구분한 후, 중심선(L)을 기준으로 좌우를 구분한 후, 9개의 치아 클래스를 확장클래스에 따라 16개의 치아 클래스로 확장한다. In the third case, referring to Figure 13, when there are no central incisors and no mutually symmetrical teeth, a center point representing the center of all cells is derived, a center line (L) passing vertically through the center point is obtained, and the center line (L) After dividing the left and right based on , and then dividing the left and right based on the center line (L), the 9 tooth classes are expanded into 16 tooth classes according to the expansion class.

복원부(400)는 S280 단계에서 스캔 데이터를 원본 크기로 업 샘플링(Up-sampling)을 수행한다. 여기서, 원본 크기는 앞서 S240 단계에서 다운 샘플링하기 이전의 크기를 의미한다. 예컨대, 15,000개로 다운 샘플링된 스캔 데이터를 원본 크기로 업 샘플링할 수 있다. 이때, 복원부(400)는 KNN(k-Nearest Neighbor) 모델을 이용하여 업 샘플링된 스캔 데이터의 각 셀의 클래스를 예측할 수 있다. 이러한 업 샘플링에 따라 분할모델(SM)의 예측 결과를 보완할 수 있다. The restoration unit 400 performs up-sampling of the scanned data to the original size in step S280. Here, the original size refers to the size before downsampling in step S240. For example, scan data that has been down-sampled to 15,000 can be up-sampled to the original size. At this time, the restoration unit 400 may predict the class of each cell of the up-sampled scan data using a k-Nearest Neighbor (KNN) model. According to this upsampling, the prediction results of the segmentation model (SM) can be supplemented.

복원부(400)는 학습된 KNN 모델을 이용하여 다음의 수학식 7에 따라 업 샘플링된 스캔 데이터의 각 셀의 클래스를 도출한다.The restoration unit 400 uses the learned KNN model to derive the class of each cell of the up-sampled scan data according to Equation 7 below.

Figure pat00041
Figure pat00041

여기서, f는 KNN 모델을 나타낸다. 또한, x, y, z는 업 샘플링된 스캔 데이터의 셀 좌표, i는 업 샘플링된 스캔 데이터의 셀 인덱스, Z는 정수(integers)의 집합이며, N은 원본 크기의 스캔 데이터의 셀 개수, C는 KNN 모델의 출력으로 확장클래스를 나타낸다. 여기서, C는 0,1,…,16의 정수이다(C∈{0,1,…,16}). 이러한 본 발명의 실시예에 따른 KNN 모델은 분할모델(SM)의 출력값을 이용하여 학습될 수 있다. 이때, 입력되는 데이터(즉, 셀의 좌표)의 크기는 예컨대, 15,000×3이며, 확장클래스를 나타내는 레이블의 크기는 15,000×1이다.Here, f represents the KNN model. In addition, x, y, z are the cell coordinates of the up-sampled scan data, i is the cell index of the up-sampled scan data, Z is a set of integers, N is the number of cells in the original size scan data, C represents the extended class as the output of the KNN model. Here, C is 0,1,… , is an integer of 16 (C∈{0,1,…,16}). The KNN model according to this embodiment of the present invention can be learned using the output value of the segmentation model (SM). At this time, the size of the input data (i.e., cell coordinates) is, for example, 15,000 × 3, and the size of the label indicating the extended class is 15,000 × 1.

KNN 모델은 상수 k 값에 따라 Up-sampling된 치아 분할 영역이 달라진다. k 값이 작은 경우(예컨대, k=3), 도 14의 (A)와 같이, 치아 분할 경계선이 뚜렷하지만(a2), 잘못 예측된 영역을 제거하지 못할 수 있다(a1). 또한, k 값이 큰 경우(예컨대, k=100), 도 14의 (B)와 같이, 잘못 예측한 영역을 제거할 수 있지만(b1), 치아 경계선이 명확하지 못할 수 있다(b2). 이에 따라, 본 발명의 추가적인 실시예에 따르면, k가 M(예컨대, 3)인 KNN 모델(g)과 k가 N(예컨대, 100)인 KNN 모델(h)을 생성하고, 다음의 수학식 8에 따라 업 샘플링된 스캔 데이터의 각 셀의 클래스를 예측할 수 있다. In the KNN model, the up-sampled tooth segmentation area varies depending on the constant k value. When the k value is small (e.g., k=3), as shown in (A) of FIG. 14, the tooth division boundary is clear (a2), but incorrectly predicted areas may not be removed (a1). Additionally, when the k value is large (e.g., k=100), as shown in (B) of FIG. 14, incorrectly predicted areas can be removed (b1), but tooth boundaries may not be clear (b2). Accordingly, according to an additional embodiment of the present invention, a KNN model (g) where k is M (e.g., 3) and a KNN model (h) where k is N (e.g., 100) are generated, and the following Equation 8 Accordingly, the class of each cell of the upsampled scan data can be predicted.

여기서, g는 k가 M(constant)인 KNN 모델이며, h는 k가 N(constant)인 KNN 모델을 나타낸다. 여기서, M<N이다. 예컨대, M은 3이고, N은 100이 될 수 있다. 또한, x, y, z는 업 샘플링된 스캔 데이터의 셀 좌표, i는 업 샘플링된 스캔 데이터의 셀 인덱스, C는 확장클래스를 나타낸다. 즉, C=0이면, 배경 클래스이고, C가 1 내지 16이면, 치아를 나타내는 확장클래스를 의미한다. 이와 같은 방식으로, KNN 모델을 이용한 업 샘플링을 수행함으로써, 도 14의 (C)와 같이, 치아 분할 경계선이 뚜렷하면서(c2), 잘못 예측한 영역을 제거할 수 있다(c1). Here, g represents a KNN model where k is M (constant), and h represents a KNN model where k is N (constant). Here, M<N. For example, M may be 3 and N may be 100. Additionally, x, y, and z are the cell coordinates of the up-sampled scan data, i is the cell index of the up-sampled scan data, and C represents the extended class. That is, if C = 0, it means a background class, and if C is 1 to 16, it means an extended class representing a tooth. In this way, by performing up-sampling using the KNN model, as shown in Figure 14 (C), the tooth division boundary line is clear (c2) and incorrectly predicted areas can be removed (c1).

다음으로, 복원부(400)는 S290 단계에서 특정 확장클래스의 셀의 개수가 기 설정된 임계치(threshold) 보다 적은 경우, 해당 확장클래스에 속한 셀을 배경 클래스로 변환하여 소거한다. 구체적으로, 예컨대, 도 15의 (A)와 같이, 특정 클래스의 셀의 개수가 임계치 미만인 경우, 도 15의 (B)와 같이 다음의 수학식 8에 따라 해당 클래스에 속한 셀을 배경 클래스로 변환하여 소거한다. Next, if the number of cells of a specific extended class is less than a preset threshold in step S290, the restoration unit 400 converts the cells belonging to the extended class to the background class and erases them. Specifically, for example, as shown in (A) of FIG. 15, when the number of cells of a specific class is less than the threshold, cells belonging to that class are converted to the background class according to the following equation 8 as shown in (B) of FIG. 15. and erase it.

Figure pat00043
Figure pat00043

여기서 j는 확장클래스의 인덱스이고, i는 셀 인덱스이고, n은 확장클래스의 셀의 개수이다. Here, j is the index of the extended class, i is the cell index, and n is the number of cells in the extended class.

다음으로, 본 발명의 실시예에 따른 3차원으로 치아를 스캔한 데이터에서 소실치에 대한 치아 크라운을 배치하기 위한 방법에 대해서 설명하기로 한다. 도 16은 본 발명의 실시예에 따른 3차원으로 치아를 스캔한 데이터에서 소실치에 대한 치아 크라운을 배치하기 위한 방법을 설명하기 위한 흐름도이다. 도 17 내지 도 27은 본 발명의 실시예에 따른 3차원으로 치아를 스캔한 데이터에서 소실치에 대한 치아 크라운을 배치하기 위한 방법을 설명하기 위한 화면 예이다.Next, a method for placing a dental crown for a missing tooth in three-dimensional tooth scan data according to an embodiment of the present invention will be described. Figure 16 is a flowchart illustrating a method for placing a dental crown for a missing tooth in three-dimensional tooth scan data according to an embodiment of the present invention. Figures 17 to 27 are screen examples for explaining a method for placing a dental crown for a missing tooth in 3D tooth scanned data according to an embodiment of the present invention.

기준처리부(500)는 S310 단계에서 3차원의 스캔 데이터를 입력받는다. 이러한 스캔 데이터의 일례가 도 17의 (A)에 도시되었다. 도시된 바와 같이, 스캔 데이터는 분할된 복수의 치아(17a)를 포함한다. 본 발명의 실시예에서 분할된 복수의 치아(17a)를 "기성 치아"라고 칭하기로 한다. 또한, 본 발명은 "기성 치아"의 반대되는 개념으로 적어도 하나의 소실치(17b)가 있는 상황을 상정한다. 도 17의 (A)의 경우, 2개의 소실치(17b)가 존재한다.The reference processing unit 500 receives three-dimensional scan data in step S310. An example of such scan data is shown in (A) of FIG. 17. As shown, the scan data includes a plurality of segmented teeth 17a. In the embodiment of the present invention, the plurality of divided teeth 17a will be referred to as “ready-made teeth.” Additionally, the present invention assumes a situation in which there is at least one missing tooth 17b as the opposite concept of “existing tooth.” In the case of Figure 17 (A), there are two missing teeth 17b.

스캔 데이터가 입력되면, 기준처리부(500)는 S320 단계에서 기성 치아에 대한 정보를 검출한다. 기성 치아의 정보는 기성 치아의 좌표 및 회전각(수평축 기준 회전각)을 포함한다. When scan data is input, the reference processing unit 500 detects information about existing teeth in step S320. Information on the existing tooth includes the coordinates and rotation angle (rotation angle based on the horizontal axis) of the existing tooth.

이를 위하여, 기준처리부(500)는 먼저, S320 단계에서 기성 치아를 구성하는 복수의 셀의 좌표(x, y, z)로부터 기성 치아의 좌표(x, y, z)를 검출한다. 스캔 데이터는 3차원으로 사람의 치아와 그 주변을 스캔한 것이다. 따라서, 본 발명의 실시예에서 셀은 격자 단위의 복셀이거나, 포인트 클라우드의 포인트이거나, STL (Stereo Lithography) 형식의 삼각형이 될 수 있다. 이에 따라, 셀의 좌표는 셀의 중심(혹은 무게 중심)의 3차원 좌표로 이해되어야 한다. 또한, 본 발명의 실시예에서 기성 치아의 좌표는 3차원인 기성 치아의 중심의 좌표를 의미한다. 예를 들면, 도 18에 도시된 바와 같이, 기준처리부(500)는 치아(18a)를 구성하는 복수의 셀(원으로 표시)의 좌표(x, y, z)로부터 다음의 수학식 10에 따라 기성 치아(18a)의 좌표(x, y, z)를 구할 수 있다. To this end, the reference processing unit 500 first detects the coordinates (x, y, z) of the existing tooth from the coordinates (x, y, z) of a plurality of cells constituting the existing tooth in step S320. Scan data is a 3D scan of a person's teeth and their surroundings. Therefore, in an embodiment of the present invention, a cell may be a voxel in a grid unit, a point in a point cloud, or a triangle in STL (Stereo Lithography) format. Accordingly, the coordinates of a cell should be understood as the three-dimensional coordinates of the center (or center of gravity) of the cell. Additionally, in an embodiment of the present invention, the coordinates of a ready-made tooth refer to the three-dimensional coordinates of the center of the ready-made tooth. For example, as shown in FIG. 18, the reference processing unit 500 calculates the coordinates (x, y, z) of a plurality of cells (indicated by circles) constituting the tooth 18a according to the following equation 10: The coordinates (x, y, z) of the ready-made tooth 18a can be obtained.

Figure pat00044
Figure pat00044

여기서, x, y, z는 기성 치아의 좌표이다. 또한,

Figure pat00045
Figure pat00046
은 각각 기성 치아를 구성하는 복수의 셀의 x 좌표 중 최대값과 최소값이다.
Figure pat00047
Figure pat00048
은 각각 기성 치아를 구성하는 복수의 셀의 y 좌표 중 최대값과 최소값이다.
Figure pat00049
Figure pat00050
은 각각 기성 치아를 구성하는 복수의 셀의 z 좌표 중 최대값과 최소값이다. Here, x, y, z are the coordinates of the existing teeth. also,
Figure pat00045
and
Figure pat00046
are the maximum and minimum values among the x-coordinates of a plurality of cells constituting each ready-made tooth.
Figure pat00047
and
Figure pat00048
are the maximum and minimum values among the y coordinates of the plurality of cells that make up the existing teeth, respectively.
Figure pat00049
and
Figure pat00050
are the maximum and minimum values among the z-coordinates of the plurality of cells constituting the ready-made teeth, respectively.

다음으로, 기준처리부(500)는 S330 단계에서 기성 치아의 회전각(Euler angle: α, β, γ) 중 수평축 기준 회전각(β, γ)을 검출한다. 이를 위하여, 기준처리부(500)는 먼저, 기성 치아의 좌표(x, y, z)를 기준으로 로컬 회전축(x축, y축, z축)을 설정한다. 즉, 기성 치아의 좌표(x, y, z)를 원점으로 하고, 원점인 기성 치아의 좌표(x, y, z)를 상호 직교(orthogonal)하면서 수평 및 수직으로 지나는 3개의 선을 로컬 회전축(x축, y축, z축)으로 설정한다. 그런 다음, 기준처리부(500)는 먼저, 도 18에 도시된 바와 같이, 기성 치아를 구성하는 복수의 셀의 좌표에 대한 주성분 분석(Principal Component Analysis, PCA)을 통해 고유벡터(eigen vector: PC1, PC2, PC3)를 도출한다. 그런 다음, 기준처리부(500)는 로컬 회전축(x축, y축, z축) 및 고유벡터(PC1, PC2, PC3) 간 각도를 검출하여 기성 치아의 회전각(Euler angle: α, β, γ) 중 수평축 기준 회전각(β, γ)을 구한다. 보다 구체적으로, 기준처리부(500)는 기성 치아의 좌표(x, y, z)를 원점으로 하고, 원점인 기성 치아의 좌표(x, y, z)를 상호 직교하면서 수평 및 수직으로 지나는 3개의 선을 로컬 회전축(x축, y축, z축, local axis)으로 설정한다. 도 19의 (A) 및 도 20을 참조하면, 기준처리부(500)는 기성 치아를 구성하는 복수의 셀의 x, z 좌표에 대한 2차원 주성분 분석을 통해 고유벡터(PC1, PC2)를 도출하고, 로컬 회전축인 z축과 그 z축에 가장 근접한 고유벡터와의 각을 수평축 기준 회전각 β로 도출한다. 또한, 도 19의 (B) 및 도 21을 참조하면, 기준처리부(500)는 치아를 구성하는 복수의 셀의 y, z 좌표에 대한 2차원 주성분 분석을 통해 고유벡터(PC1, PC2)를 도출하고, 로컬 회전축인 z축과 그 z축에 가장 근접한 고유벡터와의 각을 수평축 기준 회전각 γ로 도출한다. Next, the reference processing unit 500 detects the horizontal axis reference rotation angles (β, γ) among the rotation angles (Euler angles: α, β, γ) of the existing teeth in step S330. To this end, the reference processing unit 500 first sets the local rotation axes (x-axis, y-axis, z-axis) based on the coordinates (x, y, z) of the existing teeth. That is, with the coordinates (x, y, z) of the prepared tooth as the origin, and the coordinates (x, y, z) of the prepared tooth as the origin, three lines that are orthogonal to each other and pass horizontally and vertically are defined as the local rotation axis ( x-axis, y-axis, z-axis). Then, as shown in FIG. 18, the reference processing unit 500 first calculates an eigen vector (PC1, PC2, PC3) are derived. Then, the reference processing unit 500 detects the angle between the local rotation axis (x-axis, y-axis, z-axis) and the eigenvectors (PC1, PC2, PC3) to determine the rotation angle (Euler angle: α, β, γ) of the existing tooth. ) Find the rotation angle (β, γ) based on the horizontal axis. More specifically, the reference processing unit 500 uses the coordinates (x, y, z) of the existing tooth as the origin, and three points that pass horizontally and vertically while being orthogonal to each other with the coordinates (x, y, z) of the existing tooth being the origin. Set the line as the local rotation axis (x-axis, y-axis, z-axis, local axis). Referring to Figures 19 (A) and 20, the reference processing unit 500 derives eigenvectors (PC1, PC2) through two-dimensional principal component analysis of the x and z coordinates of a plurality of cells constituting the ready-made teeth, , the angle between the z-axis, which is the local rotation axis, and the eigenvector closest to the z-axis is derived as the rotation angle β based on the horizontal axis. In addition, referring to Figure 19 (B) and Figure 21, the reference processing unit 500 derives eigenvectors (PC1, PC2) through two-dimensional principal component analysis of the y and z coordinates of a plurality of cells constituting the tooth. And, the angle between the z-axis, which is the local rotation axis, and the eigenvector closest to the z-axis is derived as the rotation angle γ based on the horizontal axis.

전술한 바와 같이, 기성 치아 정보, 즉, 기성 치아의 좌표 및 회전각이 도출한 후, 도 17의 (B) 및 (C)를 참조하면, 소실치처리부(600)는 기성 치아 정보로부터 치아의 악궁 라인(17c)을 이용하여 소실치 정보를 도출한다. 여기서, 소실치 정보는 소실치의 좌표 및 회전각(17d)을 포함한다. As described above, after deriving the existing tooth information, that is, the coordinates and rotation angle of the existing tooth, referring to (B) and (C) of FIG. 17, the missing tooth processing unit 600 determines the existing tooth information from the existing tooth information. Missing tooth information is derived using the arch line (17c). Here, the missing value information includes the coordinates and rotation angle (17d) of the missing value.

한편, 본 발명의 실시예에서, 소실치는 대칭 소실치, 내측 소실치 및 외측 소실치로 분류할 수 있다. 대칭 소실치는 복수의 기성 치아를 좌우로 분할하는 대칭선을 기준으로 대칭되는 기성 치아가 존재하는 소실치이다. 내측 소실치는 악궁 라인 상에서 기성 치아 사이, 즉, 내측에 존재하는 소실치이다. 외측 소실치는 악궁 라인 상에서 기성 치아의 바깥, 즉, 외측에 존재하는 소실치이다. 소실치처리부(600)는 아래에서 설명될 S340, S350 및 S360 단계에서 소실치의 분류에 따라 해당 소실치의 소실치의 좌표 및 수평축 기준 회전각을 도출한다. 이러한 S340, S350 및 S360 단계에 대해 순차로 설명될 것이지만, 이러한 S340, S350 및 S360 단계는 다른 순서로 실행되거나, 적어도 하나의 단계가 반복되어 실행될 수 있다. Meanwhile, in an embodiment of the present invention, missing teeth can be classified into symmetrical missing teeth, inner missing teeth, and outer missing teeth. Symmetrical missing teeth are missing teeth that are symmetrical based on the line of symmetry that divides a plurality of existing teeth into left and right sides. Internal missing teeth are missing teeth that exist between existing teeth on the arch line, that is, on the inside. External missing teeth are missing teeth that exist outside the existing teeth on the arch line, that is, on the outside. The missing tooth processing unit 600 derives the coordinates of the missing tooth and the rotation angle relative to the horizontal axis according to the classification of the missing tooth in steps S340, S350, and S360, which will be described below. Although steps S340, S350, and S360 will be described sequentially, steps S340, S350, and S360 may be executed in a different order, or at least one step may be repeated.

먼저, 소실치가 기성 소실치와 대칭 관계에 있는 대칭 소실치이면, 소실치처리부(600)는 S340 단계에서 복수의 기성 치아를 좌우로 분할하는 대칭선을 이용하여 대칭 소실치의 소실치 정보를 검출한다. 예를 들면, 도 22에 도시된 바와 같이, FDI 표기법 기준으로 11 내지 17, 21, 22, 24, 25번 치아가 기성 치아이며, 23, 26, 27번 치아가 소실치인 상황을 가정한다. 도시된 바와 같이, 사람의 치아는 악궁 라인(22b)을 따라 배치되며, 좌우로 대칭되어 배치되기 때문에, 2 이상의 기성 치아 쌍[(11, 21), (12, 22), (14, 24), (15, 25)]이 존재할 수 있다. 소실치처리부(600)는 이러한 2 이상의 기성 치아 쌍의 좌표 중 평면 좌표(x, y)를 이용하여 중간 좌표(예컨대, 1m, 2m, 3m, 4m의 좌표)를 도출하고, 중간 좌표를 이용한 선형 회귀(Linear regression) 분석을 통해 다음의 수학식 11과 같은 직선의 방정식, 즉, 대칭선(22a)을 도출한다.First, if the missing tooth is a symmetrical missing tooth that has a symmetrical relationship with the existing missing tooth, the missing tooth processing unit 600 detects the missing value information of the symmetrical missing tooth using the symmetry line that divides the plurality of existing teeth into left and right in step S340. . For example, as shown in Figure 22, based on the FDI notation, assume that teeth 11 to 17, 21, 22, 24, and 25 are existing teeth, and teeth 23, 26, and 27 are missing teeth. As shown, human teeth are arranged along the arch line 22b, and are symmetrical left and right, so two or more pairs of ready-made teeth [(11, 21), (12, 22), (14, 24) , (15, 25)] may exist. The missing tooth processing unit 600 derives intermediate coordinates (e.g., coordinates of 1m, 2m, 3m, and 4m) using plane coordinates (x, y) among the coordinates of two or more pairs of ready-made teeth, and linear coordinates using the intermediate coordinates. Through linear regression analysis, the equation of a straight line, that is, the symmetry line 22a, is derived as shown in Equation 11 below.

여기서, a는 기울기, b는 y 절편이다. Here, a is the slope and b is the y-intercept.

대칭선(22a)이 도출되면, 소실치처리부(600)는 대칭선(22a)을 이용하여 대칭 소실치를 특정하고, 특정된 대칭 소실치의 소실치 정보를 검출한다. 즉, 소실치처리부(600)는 13, 16, 17번 치아의 좌표(x, y)들과 대칭선(22a, 수학식 11)을 기준으로 대칭 소실치인 23, 26, 27번 치아를 특정한 후, 특정된 대칭 소실치의 평면 좌표(x*, y*)를 다음의 수학식 12에 따라 도출한다.When the symmetry line 22a is derived, the missing value processing unit 600 uses the symmetry line 22a to specify the symmetrical missing value and detects the missing value information of the specified symmetrical missing value. That is, the missing tooth processing unit 600 specifies teeth 23, 26, and 27, which are symmetrical missing teeth, based on the coordinates (x, y) of teeth 13, 16, and 17 and the line of symmetry (22a, Equation 11). , the plane coordinates (x*, y*) of the specified symmetrical vanishing value are derived according to Equation 12 below.

Figure pat00052
Figure pat00052

x, y는 대칭 소실치와 대칭선을 기준으로 대칭되는 기성 치아의 좌표이다. x*, y*는 각각 대칭 소실치의 x, y 좌표이다. 또한, a는 대칭선(22a, 수학식 11)의 기울기, b는 대칭선(수학식 11)의 y 절편이다. x, y are the coordinates of the symmetrical missing tooth and the existing tooth that is symmetrical based on the symmetry line. x*, y* are the x and y coordinates of the symmetric vanishing value, respectively. Additionally, a is the slope of the symmetry line (22a, Equation 11), and b is the y-intercept of the symmetry line (Equation 11).

또한, 소실치처리부(600)는 다음의 수학식 13에 따라 대칭되는 치아의 z, β, γ으로부터 좌표 z*와 소실치의 회전각 β*, γ*을 도출한다. Additionally, the missing tooth processing unit 600 derives the coordinates z* and the rotation angles β* and γ* of the missing tooth from z, β, and γ of the symmetrical teeth according to Equation 13 below.

Figure pat00053
Figure pat00053

z*는 대칭 소실치의 좌표이고, z는 대칭 소실치와 대칭선을 기준으로 대칭되는 기성 치아의 z 좌표이다. 또한, a는 대칭선의 기울기이고, b는 대칭선의 y 절편이다. 그리고

Figure pat00054
Figure pat00055
는 대칭 소실치와 대칭선을 기준으로 대칭되는 기성 치아의 수평축 기준 회전각이며,
Figure pat00056
Figure pat00057
는 대칭 소실치의 수평축 기준 회전각이다. z* is the coordinate of the symmetric missing tooth, and z is the z coordinate of the existing tooth that is symmetrical with respect to the symmetric missing tooth and the symmetry line. Also, a is the slope of the line of symmetry, and b is the y-intercept of the line of symmetry. and
Figure pat00054
and
Figure pat00055
is the rotation angle based on the horizontal axis of the symmetrical missing tooth and the existing tooth that is symmetrical with respect to the symmetry line,
Figure pat00056
and
Figure pat00057
is the rotation angle based on the horizontal axis of the symmetric missing tooth.

한편, 악궁 라인 상에서 기성 치아 사이에 위치하는 내측 소실치이면, 소실치처리부(600)는 S350 단계에서 악궁 라인을 도출하고, 악궁 라인 상에서 기성 치아 사이에 동일한 간격으로 배치되는 내측 소실치를 검출하고, 검출된 내측 소실치의 소실치 정보를 도출한다. 예를 들면, 도 23과 같이, FDI 표기법 기준으로 11, 12, 15, 16, 21, 22, 25, 26번 치아가 기성 치아이며, 13, 14, 23, 24번 치아가 내측 소실치인 상황을 가정한다. 이러한 경우, 소실치처리부(600)는 기성 치아, 즉, 11, 12, 15, 16, 21, 22, 25, 26번 치아의 평면 좌표(x, y)를 기초로 보간(spline interpolation) 기법을 통해 스플라인, 즉, 악궁 라인(23b)을 생성한다. 이때, 보간 기법은 실제 악궁 라인처럼 곡률을 주기 위해 quadratic spline interpolation, cubic spline interpolation을 사용할 수 있다. 소실치처리부(600)는 생성된 악궁 라인(23b) 상에서 동일한 간격으로 소실치를 배치하고, 이로부터 소실치 정보를 검출한다. 예컨대, 소실치인 13, 14번 치아의 위치는 12 및 13번 치아의 간격, 13 및 14번 치아의 간격, 14 및 15번 치아의 간격과 동일하게 배치한다. 이에 대해 보다 자세하게 설명하면 다음과 같다. 먼저, 소실치처리부(600)는 다음의 수학식 14에 따라 내측 소실치의 2개의 이웃 기성 치아 사이의 악궁 라인의 곡선 길이를 도출한다. Meanwhile, if the inner missing tooth is located between the existing teeth on the arch line, the missing tooth processing unit 600 derives the arch line in step S350 and detects the inner missing tooth disposed at equal intervals between the existing teeth on the arch line, Derive the missing value information of the detected inner missing tooth. For example, as shown in Figure 23, based on the FDI notation, teeth 11, 12, 15, 16, 21, 22, 25, and 26 are existing teeth, and teeth 13, 14, 23, and 24 are internal missing teeth. Assume. In this case, the missing tooth processing unit 600 uses a spline interpolation technique based on the plane coordinates (x, y) of the existing teeth, that is, teeth Nos. 11, 12, 15, 16, 21, 22, 25, and 26. A spline, that is, a dental arch line 23b, is created through the process. At this time, the interpolation technique can use quadratic spline interpolation or cubic spline interpolation to give curvature like an actual arch line. The missing tooth processing unit 600 arranges missing teeth at equal intervals on the generated arch line 23b and detects missing tooth information therefrom. For example, the positions of teeth 13 and 14, which are missing teeth, are placed the same as the spacing between teeth 12 and 13, the spacing between teeth 13 and 14, and the spacing between teeth 14 and 15. This is explained in more detail as follows. First, the missing tooth processing unit 600 derives the curved length of the arch line between two adjacent existing teeth of the inner missing tooth according to the following equation 14.

Figure pat00058
Figure pat00058

여기서, l은 내측 소실치의 2개의 이웃 기성 치아 사이의 악궁 라인의 곡선 길이이다.

Figure pat00059
는 악궁 라인의 시작점, 즉, 내측 소실치 중 첫 번째 내측 소실치의 이웃 기성 치아(예컨대, 15번 치아)의 x 좌표이다.
Figure pat00060
는 악궁 라인의 끝점, 즉, 내측 소실치 중 마지막 내측 소실치의 이웃 기성 치아(예컨대, 12번 치아)의 x 좌표이다. f는 보간(spline interpolation) 함수이다. Here, l is the curved length of the arch line between two neighboring existing teeth of the inner missing tooth.
Figure pat00059
is the starting point of the arch line, that is, the x-coordinate of the existing tooth (eg, tooth 15) next to the first inner missing tooth among the inner missing teeth.
Figure pat00060
is the end point of the arch line, that is, the x-coordinate of the existing tooth (eg, tooth 12) next to the last inner missing tooth among the inner missing teeth. f is an interpolation (spline interpolation) function.

이처럼, 악궁 라인의 곡선 길이(l)를 구한 후, 소실치처리부(600)는 다음의 수학식 15에 따라 소실치의 x* 좌표를 산출한다. In this way, after obtaining the curve length (l) of the arch line, the missing tooth processing unit 600 calculates the x* coordinate of the missing tooth according to the following equation 15.

Figure pat00061
Figure pat00061

여기서, x*는 소실치의 x 좌표이다. l은 악궁 라인의 곡선 길이, 즉, 내측 소실치의 2개의 이웃 기성 치아 사이의 악궁 라인의 곡선 길이이다.

Figure pat00062
는 악궁 라인의 시작점, 즉, 내측 소실치 중 첫 번째 내측 소실치의 이웃 기성 치아(예컨대, 15번 치아)의 x 좌표이다. f는 스플라인 보간(spline interpolation) 함수이다. 또한, i는 내측 소실치의 인덱스이다. 여기서, 14번 치아는 i=1이 되고, 13번 치아는 i=2가 되며,
Figure pat00063
이다. 여기서, N은 자연수(natural numbers)의 집합을 나타내며, n은 내측 소실치의 개수이고, n=2이다. Here, x* is the x coordinate of the missing value. l is the curved length of the arch line, that is, the curved length of the arch line between two neighboring existing teeth of the inner missing tooth.
Figure pat00062
is the starting point of the arch line, that is, the x-coordinate of the existing tooth (eg, tooth 15) next to the first inner missing tooth among the inner missing teeth. f is a spline interpolation function. Additionally, i is the index of the inner missing tooth. Here, tooth 14 becomes i=1, tooth 13 becomes i=2,
Figure pat00063
am. Here, N represents a set of natural numbers, n is the number of inner missing values, and n=2.

그런 다음, 소실치처리부(600)는 소실치 x* 좌표를 기초로 다음의 수학식 16에 따라 y* 및 z* 좌표를 구한다. Then, the missing value processing unit 600 calculates the y* and z* coordinates according to the following equation 16 based on the missing value x* coordinates.

여기서, x*, y*, z*는 소실치의 x, y, z 좌표이다. f는 보간(spline interpolation) 함수이고,

Figure pat00065
는 악궁 라인의 시작점, 즉, 내측 소실치 중 첫 번째 내측 소실치의 이웃 기성 치아(예컨대, 15번 치아)의 z 좌표이다.
Figure pat00066
는 악궁 라인의 끝점, 즉, 내측 소실치 중 마지막 내측 소실치의 이웃 기성 치아(예컨대, 12번 치아)의 z 좌표이다. i는 내측 소실치의 인덱스이다. Here, x*, y*, z* are the x, y, z coordinates of the missing value. f is the interpolation function,
Figure pat00065
is the starting point of the arch line, that is, the z coordinate of the existing tooth (eg, tooth 15) next to the first inner missing tooth among the inner missing teeth.
Figure pat00066
is the end point of the arch line, that is, the z-coordinate of the existing tooth (eg, tooth 12) next to the last inner missing tooth among the inner missing teeth. i is the index of the inner missing tooth.

이어서, 소실치처리부(600)는 다음의 수학식 17에 따라 소실치의 회전각 β*, γ*를 구한다. Next, the missing value processing unit 600 calculates the rotation angles β* and γ* of the missing value according to Equation 17 below.

Figure pat00067
Figure pat00067

여기서, i는 소실치의 인덱스이다.

Figure pat00068
Figure pat00069
는 소실치의 회전각(로컬 회전각)이며,
Figure pat00070
,
Figure pat00071
은 글로벌 회전각이다. 이러한 글로벌 회전각이 도 24 및 도 25에 도시되었다. 글로벌 회전각은 스캔 데이터 전체의 셀 좌표에 대해 2차원 주성분(PCA) 분석을 통해 얻어질 수 있다. 2차원 주성분(PCA) 분석의 방법은 앞서 도 18 내지 도 21을 참조로 설명된 바와 같다. 즉, 소실치처리부(600)는 스캔 데이터에 포함된 전체 셀의 좌표의 평균값을 전체 스캔 데이터의 중심 좌표(x, y, z)로 도출하고, 도출된 스캔 데이터의 중심 좌표에 따라 글로벌 회전축(golbal axis, x축, y축, z축)을 설정한다. 즉, 소실치처리부(600)는 스캔 데이터의 중심 좌표(x, y, z)를 원점으로 하고, 원점인 스캔 데이터의 중심 좌표(x, y, z)를 상호 직교(orthogonal)하면서 수평 및 수직으로 지나는 3개의 선을 글로벌 회전축(x축, y축, z축)으로 설정한다. 그런 다음, 소실치처리부(600)는 스캔 데이터를 구성하는 복수의 셀의 좌표에 대한 주성분 분석(Principal Component Analysis, PCA)을 통해 고유벡터(eigen vector: PC1, PC2, PC3)를 도출한다. 이어서, 소실치처리부(600)는 글로벌 회전축(x축, y축, z축) 및 고유벡터(PC1, PC2, PC3) 간 각도를 검출하여 스캔 데이터의 글로벌 회전각 중 수평축 기준 글로벌 회전각(
Figure pat00072
,
Figure pat00073
)을 구한다. 즉, 소실치처리부(600)는 도 24와 같이, 스캔 데이터를 구성하는 복수의 셀의 x, z 좌표에 대한 2차원 주성분 분석을 통해 고유벡터(PC1, PC2)를 도출하고, z축과 z축에 가장 근접한 고유벡터와의 각을 글로벌 회전각
Figure pat00074
로 도출한다. 또한, 소실치처리부(600)는 도 25와 같이, 스캔 데이터를 구성하는 복수의 셀의 y, z 좌표에 대한 2차원 주성분 분석을 통해 고유벡터(PC1, PC2)를 도출하고, z축과 z축에 가장 근접한 고유벡터와의 각을 글로벌 회전각
Figure pat00075
로 도출한다. 이어서, 소실치처리부(600)는 수학식 17과 같이, 수평축 기준 글로벌 회전각을 내측 소실치의 수평축 기준 회전각으로 치환한다. Here, i is the index of the missing value.
Figure pat00068
and
Figure pat00069
is the rotation angle (local rotation angle) of the missing tooth,
Figure pat00070
,
Figure pat00071
is the global rotation angle. This global rotation angle is shown in Figures 24 and 25. The global rotation angle can be obtained through two-dimensional principal component (PCA) analysis of the cell coordinates of the entire scan data. The method of two-dimensional principal component (PCA) analysis is the same as previously described with reference to FIGS. 18 to 21. That is, the missing value processing unit 600 derives the average value of the coordinates of all cells included in the scan data as the center coordinates (x, y, z) of the entire scan data, and the global rotation axis ( Set golbal axis, x-axis, y-axis, z-axis). That is, the missing value processing unit 600 uses the center coordinates (x, y, z) of the scan data as the origin, and the center coordinates (x, y, z) of the scan data, which are the origin, are orthogonal to each other horizontally and vertically. Set the three lines passing through as the global rotation axes (x-axis, y-axis, z-axis). Then, the loss processing unit 600 derives eigen vectors (PC1, PC2, PC3) through principal component analysis (PCA) on the coordinates of a plurality of cells constituting the scan data. Next, the missing value processing unit 600 detects the angle between the global rotation axes (x-axis, y-axis, z-axis) and the eigenvectors (PC1, PC2, PC3) and detects the global rotation angle relative to the horizontal axis among the global rotation angles of the scan data (
Figure pat00072
,
Figure pat00073
) is obtained. That is, as shown in FIG. 24, the missing value processing unit 600 derives eigenvectors (PC1, PC2) through two-dimensional principal component analysis of the x and z coordinates of a plurality of cells constituting the scan data, and the z-axis and z-axis The global rotation angle is the angle with the eigenvector closest to the axis.
Figure pat00074
Derived as In addition, as shown in FIG. 25, the vanishing value processing unit 600 derives eigenvectors (PC1, PC2) through two-dimensional principal component analysis of the y and z coordinates of a plurality of cells constituting the scan data, and The global rotation angle is the angle with the eigenvector closest to the axis.
Figure pat00075
Derived as Next, the missing tooth processing unit 600 replaces the global rotation angle based on the horizontal axis with the rotation angle based on the horizontal axis of the inner missing tooth, as shown in Equation 17.

한편, 소실치가 악궁 라인 상에서 기성 소실치 외측에 위치하는 외측 소실치이면, 소실치처리부(600)는 S360 단계에서 악궁 라인을 도출하고, 도출된 악궁 라인 상에서 기성 치아와의 거리에 따라 외측 소실치를 검출하고, 검출된 외측 소실치의 소실치 정보를 도출한다. 예를 들면, 도 26과 같이, FDI 표기법 기준으로 11 내지 15, 21 내지 25번 치아가 기성 치아이며, 16, 17, 26, 27번 치아가 외측 소실치인 상황을 가정한다. 이러한 경우, 소실치처리부(600)는 스플라인 보간(spline interpolation) 기법을 통해 악궁 라인(26a)을 도출하고, 악궁 라인(26a) 상에서 기 설정된 치아 사이의 거리를 이용하여 외측 소실치의 소실치 정보를 도출한다. 이때, 변곡점 생성을 방지하고자 Linear spline interpolation을 이용할 수 있다. 이에 대해 보다 자세하게 설명하면 다음과 같다. 소실치처리부(600)는 다음의 수학식 18에 따라 외측 소실치의 좌표 x*, y*, z*를 도출한다. Meanwhile, if the missing tooth is an outer missing tooth located outside the existing missing tooth on the arch line, the missing tooth processing unit 600 derives the arch line in step S360, and determines the outer missing tooth according to the distance from the existing tooth on the derived arch line. Detection is performed and vanishing value information of the detected outer missing value is derived. For example, as shown in Figure 26, based on the FDI notation, assume that teeth 11 to 15 and 21 to 25 are existing teeth, and teeth 16, 17, 26, and 27 are external missing teeth. In this case, the missing tooth processing unit 600 derives the arch line 26a through a spline interpolation technique, and uses the preset distance between teeth on the arch line 26a to provide missing tooth information of the outer missing tooth. Derive. At this time, linear spline interpolation can be used to prevent the creation of inflection points. This is explained in more detail as follows. The missing value processing unit 600 derives the coordinates x*, y*, and z* of the outer missing value according to Equation 18 below.

여기서, x*, y*는 외측 소실치의 x, y 좌표이다. d는 치아 사이의 거리(치아의 좌표 간 거리, 예컨대, 10mm로 설정)를 나타낸다. i는 외측 소실치의 인덱스이다. 여기서, 16번 치아는 i=1이 되고 17번 치아가 i=2가 된다.

Figure pat00078
이다. 여기서, N은 자연수(natural numbers)의 집합을 나타내며, n은 외측 소실치의 개수이며, n=2이다. Here, x*, y* are the x, y coordinates of the outer missing value. d represents the distance between teeth (distance between coordinates of teeth, for example, set to 10 mm). i is the index of the outer missing tooth. Here, tooth number 16 becomes i=1 and tooth number 17 becomes i=2.
Figure pat00078
am. Here, N represents a set of natural numbers, n is the number of outer missing values, and n=2.

Figure pat00079
는 악궁 라인의 시작점, 즉, 외측 소실치의 이웃 기성 치아(예컨대, 15번 치아)의 x 좌표이고, g는 보간 함수를 나타낸다. 여기서, 보간 함수는 선형 스플라인 보간(linear spline interpolation) 함수가 될 수 있다. 또한,
Figure pat00080
는 악궁 라인의 시작점, 즉, 외측 소실치의 이웃 기성 치아(예컨대, 15번 치아)의 z 좌표이다.
Figure pat00079
is the starting point of the arch line, that is, the x-coordinate of the existing tooth (eg, tooth 15) neighboring the outer missing tooth, and g represents the interpolation function. Here, the interpolation function may be a linear spline interpolation function. also,
Figure pat00080
is the starting point of the arch line, that is, the z coordinate of the existing tooth (eg, tooth 15) neighboring the outer missing tooth.

이어서, 소실치처리부(600)는 다음의 수학식 19에 따라 외측 소실치의 수평축 기준 회전각(β와 γ)을 도출한다. Next, the missing tooth processing unit 600 derives the rotation angles (β and γ) of the outer missing tooth relative to the horizontal axis according to Equation 19 below.

Figure pat00081
Figure pat00081

여기서, i는 외측 소실치의 인덱스이다.

Figure pat00082
Figure pat00083
는 외측 소실치의 회전각(로컬 회전각)이다.
Figure pat00084
,
Figure pat00085
은 글로벌 회전각이며, 앞서, 도 24 및 도 25를 참조로 설명된 바와 같다. 즉, 소실치처리부(600)는 수학식 19와 같이, 수평축 기준 글로벌 회전각(
Figure pat00086
,
Figure pat00087
)을 외측 소실치의 수평축 기준 회전각으로 치환한다. Here, i is the index of the outer missing value.
Figure pat00082
and
Figure pat00083
is the rotation angle (local rotation angle) of the outer missing tooth.
Figure pat00084
,
Figure pat00085
is the global rotation angle, as previously described with reference to FIGS. 24 and 25. That is, the missing tooth processing unit 600 calculates the global rotation angle relative to the horizontal axis, as shown in Equation 19 (
Figure pat00086
,
Figure pat00087
) is replaced by the rotation angle based on the horizontal axis of the outer missing tooth.

다음으로, 소실치처리부(600)는 S370 단계에서 기성 치아 및 소실치(대칭, 내측 및 외측 소실치)를 포함하는 모든 치아의 좌표를 이용하여 스플라인 보간을 통해 악궁 라인을 생성하고, 생성된 악궁 라인 상에서 접선의 기울기를 이용하여 회전각

Figure pat00088
를 도출한다. Next, in step S370, the missing tooth processing unit 600 generates a dental arch line through spline interpolation using the coordinates of all teeth including existing teeth and missing teeth (symmetrical, inner and outer missing teeth), and creates the dental arch line through spline interpolation. Rotation angle using the slope of the tangent on the line
Figure pat00088
Derive .

구체적으로, 도 27을 참조하면, 소실치처리부(600)는 스플라인 보간을 통해 악궁 라인(27a)을 도출하고, 다음의 수학식 20에 따라 악궁 라인 상에서 접선의 기울기(27b)를 도출하여 수직축 기준 회전각

Figure pat00089
를 도출한다. Specifically, referring to FIG. 27, the missing tooth processing unit 600 derives the arch line 27a through spline interpolation, and derives the slope 27b of the tangent line on the arch line according to the following equation 20, based on the vertical axis. rotation angle
Figure pat00089
Derive .

Figure pat00090
Figure pat00090

여기서,

Figure pat00091
는 회전각이고, f는 보간 함수이다. 보간 함수는 quadratic spline interpolation 또는 cubic spline interpolation 함수가 될 수 있다. here,
Figure pat00091
is the rotation angle, and f is the interpolation function. The interpolation function can be a quadratic spline interpolation or cubic spline interpolation function.

전술한 바와 같이, 소실치 정보, 즉, 소실치의 좌표 및 회전각을 도출한 후, 배치부(700)는 S380 단계에서 소실치 정보에 따라 스캔 데이터 상에서 소실치에 대응하는 치아 크라운을 배치한다. 도 17을 참조하면, 도 17의 (A)와 같은 스캔 데이터의 소실치(17b)에 대응하여 도 17의 (D)와 같이 치아 크라운(17e)을 배치한다. As described above, after deriving the missing tooth information, that is, the coordinates and rotation angle of the missing tooth, the placement unit 700 places the tooth crown corresponding to the missing tooth on the scan data according to the missing tooth information in step S380. Referring to FIG. 17, a tooth crown 17e is placed as shown in FIG. 17(D) in response to the missing tooth 17b in the scan data shown in FIG. 17(A).

도 28은 본 발명의 실시예에 따른 컴퓨팅 장치를 나타내는 도면이다. 도 28의 컴퓨팅 장치(TN100)는 본 명세서에서 기술된 장치, 예컨대, 치아시뮬레이션장치(10)가 될 수 있다. Figure 28 is a diagram showing a computing device according to an embodiment of the present invention. Computing device TN100 of FIG. 28 may be a device described herein, such as a dental simulation device 10.

도 28의 실시예에서, 컴퓨팅 장치(TN100)는 적어도 하나의 프로세서(TN110), 송수신 장치(TN120), 및 메모리(TN130)를 포함할 수 있다. 또한, 컴퓨팅 장치(TN100)는 저장 장치(TN140), 입력 인터페이스 장치(TN150), 출력 인터페이스 장치(TN160) 등을 더 포함할 수 있다. 컴퓨팅 장치(TN100)에 포함된 구성 요소들은 버스(bus)(TN170)에 의해 연결되어 서로 통신을 수행할 수 있다. In the embodiment of FIG. 28, the computing device TN100 may include at least one processor TN110, a transceiver device TN120, and a memory TN130. Additionally, the computing device TN100 may further include a storage device TN140, an input interface device TN150, an output interface device TN160, etc. Components included in the computing device TN100 may be connected by a bus TN170 and communicate with each other.

프로세서(TN110)는 메모리(TN130) 및 저장 장치(TN140) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(TN110)는 중앙 처리 장치(CPU: central processing unit), 그래픽 처리 장치(GPU: graphics processing unit), 또는 본 발명의 실시예에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 프로세서(TN110)는 본 발명의 실시예와 관련하여 기술된 절차, 기능, 및 방법 등을 구현하도록 구성될 수 있다. 프로세서(TN110)는 컴퓨팅 장치(TN100)의 각 구성 요소를 제어할 수 있다. The processor TN110 may execute a program command stored in at least one of the memory TN130 and the storage device TN140. The processor TN110 may refer to a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to embodiments of the present invention are performed. Processor TN110 may be configured to implement procedures, functions, and methods described in connection with embodiments of the present invention. The processor TN110 may control each component of the computing device TN100.

메모리(TN130) 및 저장 장치(TN140) 각각은 프로세서(TN110)의 동작과 관련된 다양한 정보를 저장할 수 있다. 메모리(TN130) 및 저장 장치(TN140) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(TN130)는 읽기 전용 메모리(ROM: read only memory) 및 랜덤 액세스 메모리(RAM: random access memory) 중에서 적어도 하나로 구성될 수 있다.Each of the memory TN130 and the storage device TN140 can store various information related to the operation of the processor TN110. Each of the memory TN130 and the storage device TN140 may be comprised of at least one of a volatile storage medium and a non-volatile storage medium. For example, the memory TN130 may be comprised of at least one of read only memory (ROM) and random access memory (RAM).

송수신 장치(TN120)는 유선 신호 또는 무선 신호를 송신 또는 수신할 수 있다. 송수신 장치(TN120)는 네트워크에 연결되어 통신을 수행할 수 있다. The transceiving device TN120 can transmit or receive wired signals or wireless signals. The transmitting and receiving device (TN120) can be connected to a network and perform communication.

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

이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.Although the present invention has been described above using several preferred examples, these examples are illustrative and not limiting. As such, those of ordinary skill in the technical field to which the present invention pertains will understand that various changes and modifications can be made according to the theory of equivalents without departing from the spirit of the present invention and the scope of rights set forth in the appended claims.

10: 치아시뮬레이션장치
100: 데이터처리부
200: 학습부
300: 분할부
400: 복원부
500: 기준처리부
600: 소실치처리부
700: 배치부
10: Tooth simulation device
100: Data processing unit
200: Learning Department
300: division part
400: restoration unit
500: Standard processing unit
600: Missing tooth processing unit
700: Placement unit

Claims (22)

치아를 분할하기 위한 방법에 있어서,
데이터처리부가 복수의 치아를 3차원으로 스캔하여 복수의 셀을 포함하는 스캔 데이터를 입력받는 단계;
분할부가 분할모델을 통해 상기 스캔 데이터에 대해 학습된 가중치에 따른 가중치 연산을 수행하여 상기 복수의 셀 각각이 학습클래스에 속할 확률을 나타내는 예측벡터를 도출하는 단계; 및
상기 분할부가 상기 예측벡터의 확률에 따라 스캔 데이터 상에서 치아를 분할하는 단계;
를 포함하는 것을 특징으로 하는
치아를 분할하기 위한 방법.
In the method for dividing teeth,
A data processing unit scanning a plurality of teeth in three dimensions and receiving scan data including a plurality of cells;
A division unit performing a weight calculation according to a weight learned for the scan data through a division model to derive a prediction vector indicating a probability that each of the plurality of cells belongs to a learning class; and
The segmentation unit dividing teeth on scan data according to the probability of the prediction vector;
Characterized by including
Method for dividing teeth.
제1항에 있어서,
상기 분할부가 학습클래스에서 서로 이웃하는 중절치를 제외하고 좌우 대칭되어 배치되어 동일한 클래스에 속하는 치아 쌍을 확장클래스에 따라 구분하는 단계;
를 더 포함하는 것을 특징으로 하는
치아를 분할하기 위한 방법.
According to paragraph 1,
A step of dividing pairs of teeth belonging to the same class according to the extended class by arranging the dividing portion symmetrically left and right except for the central incisors that are adjacent to each other in the learning class;
Characterized by further comprising
Method for dividing teeth.
제2항에 있어서,
상기 예측벡터를 도출하는 단계 전,
상기 데이터처리부가 상기 스캔 데이터를 다운 샘플링하는 단계;
를 더 포함하며,
상기 확장클래스에 따라 구분하는 단계 후,
상기 복원부가 상기 스캔 데이터를 원본 크기로 업 샘플링하는 단계;
를 더 포함하는 것을 특징으로 하는
치아를 분할하기 위한 방법.
According to paragraph 2,
Before deriving the prediction vector,
Down-sampling the scan data by the data processing unit;
It further includes,
After the step of classifying according to the above extended class,
Up-sampling the scanned data to the original size by the restoration unit;
Characterized by further comprising
Method for dividing teeth.
제3항에 있어서,
상기 업 샘플링하는 단계는
상기 복원부가
수학식
Figure pat00092

에 따라 업 샘플링된 스캔 데이터의 각 셀의 클래스를 도출하며,
상기 f는 KNN(k-Nearest Neighbor) 모델이고,
상기 x, 상기 y, 상기 z는 업 샘플링된 스캔 데이터의 셀 좌표이고,
상기 i는 업 샘플링된 스캔 데이터의 셀 인덱스이고,
상기 N은 원본 크기의 스캔 데이터의 셀 개수이고,
상기 C는 확장클래스인 것을 특징으로 하는
치아를 분할하기 위한 방법.
According to paragraph 3,
The upsampling step is
The restoration department
math equation
Figure pat00092

Accordingly, the class of each cell of the upsampled scan data is derived,
The f is a KNN (k-Nearest Neighbor) model,
The x, y, and z are cell coordinates of the up-sampled scan data,
The i is the cell index of the up-sampled scan data,
N is the number of cells in the scanned data of the original size,
The C is characterized in that it is an extended class.
Method for dividing teeth.
제3항에 있어서,
상기 업 샘플링하는 단계는
상기 복원부가
수학식

에 따라 업 샘플링된 스캔 데이터의 각 셀의 클래스를 도출하며,
상기 g는 k가 M인 KNN 모델이며,
상기 h는 k가 N인 KNN 모델이며,
상기 M 및 상기 N은 기 설정된 상수이며,
M<N이고,
상기 x, 상기 y, 상기 z는 업 샘플링된 스캔 데이터의 셀 좌표이고,
상기 i는 업 샘플링된 스캔 데이터의 셀 인덱스이고,
상기 C는 확장클래스인 것을 특징으로 하는
치아를 분할하기 위한 방법.
According to paragraph 3,
The upsampling step is
The restoration department
math equation

Accordingly, the class of each cell of the upsampled scan data is derived,
The g is a KNN model where k is M,
The h is a KNN model where k is N,
The M and the N are preset constants,
M<N,
The x, y, and z are cell coordinates of the up-sampled scan data,
The i is the cell index of the up-sampled scan data,
The C is characterized in that it is an extended class.
Method for dividing teeth.
제3항에 있어서,
복원부가 특정 확장클래스의 셀의 개수가 기 설정된 임계치 보다 적은 경우, 해당 확장클래스에 속한 셀을 배경 클래스로 변환하여 소거하는 단계;
를 더 포함하는 것을 특징으로 하는
치아를 분할하기 위한 방법.
According to paragraph 3,
When the restoration unit determines that the number of cells of a specific extended class is less than a preset threshold, converting the cells belonging to the extended class to a background class and erasing them;
Characterized by further comprising
Method for dividing teeth.
제1항에 있어서,
상기 스캔 데이터를 입력받는 단계 후,
상기 예측벡터를 도출하는 단계 전,
상기 데이터처리부가 주성분 분석을 통해 스캔 데이터의 3차원 좌표를 2차원으로 축소하는 단계;
상기 데이터처리부가 스캔 데이터의 단축 길이 및 장축의 길이를 산출하는 단계;
상기 데이터처리부가 상기 학습된 기계학습모델을 이용하여 상기 단축의 길이, 상기 단축의 길이와 상기 장축의 길이의 비율로부터 상기 스캔 데이터가 전체 스캔 데이터인지 혹은 부분 스캔 데이터인지 여부를 확인하는 단계;
상기 데이터처리부가 상기 확인 결과, 스캔 데이터가 부분 스캔 데이터이면, 스캔 데이터를 소거하는 단계;
를 더 포함하는 것을 특징으로 하는
치아를 분할하기 위한 방법.
According to paragraph 1,
After receiving the scan data,
Before deriving the prediction vector,
Reducing the three-dimensional coordinates of the scan data to two dimensions by the data processing unit through principal component analysis;
The data processing unit calculating the short axis length and the long axis length of the scan data;
The data processing unit confirming whether the scan data is full scan data or partial scan data based on the length of the minor axis and the ratio of the length of the minor axis and the length of the major axis using the learned machine learning model;
If the data processing unit determines that the scan data is partially scan data, deleting the scan data;
Characterized by further comprising
Method for dividing teeth.
제1항에 있어서,
상기 스캔 데이터를 입력받는 단계 후,
상기 예측벡터를 도출하는 단계 전,
상기 데이터처리부가 스캔 데이터의 xy 평면에 대한 주성분 분석을 통해 고유벡터를 도출하는 단계;
상기 데이터처리부가 상기 고유벡터의 원점을 수평으로 지나는 기준선과 상기 고유벡터가 이루는 각 중 작은 각을 회전각으로 선택하는 단계;
상기 데이터처리부가 상기 회전각이 0이 되도록 원점을 회전축으로 스캔 데이터를 회전시켜 스캔 데이터를 재배향하는 단계;
를 더 포함하는 것을 특징으로 하는
치아를 분할하기 위한 방법.
According to paragraph 1,
After receiving the scan data,
Before deriving the prediction vector,
The data processing unit deriving an eigenvector through principal component analysis of the xy plane of the scan data;
The data processing unit selecting as a rotation angle the smaller angle between the angle formed by the eigenvector and a reference line horizontally passing through the origin of the eigenvector;
reorienting the scan data by rotating the scan data around the origin so that the rotation angle becomes 0;
Characterized by further comprising
Method for dividing teeth.
제1항에 있어서,
상기 스캔 데이터를 입력받는 단계 전,
상기 데이터처리부가 학습용 스캔 데이터와 학습용 스캔 데이터의 복수의 셀 각각에 대응하는 학습클래스를 나타내는 레이블을 포함하는 학습 데이터를 마련하는 단계;
분할모델이 학습용 스캔 데이터에 대해 학습이 완료되지 않은 가중치가 적용되는 가중치 연산을 수행하여 학습용 스캔 데이터의 복수의 셀이 학습클래스에 속할 확률을 나타내는 학습용 예측벡터를 도출하는 단계;
학습부가 분할 손실 및 분류 손실을 포함하는 전체 손실을 산출하는 단계;
상기 학습부가 상기 전체 손실이 최소가 되도록 상기 분할모델의 가중치를 수정하는 최적화를 수행하는 단계;
를 더 포함하는 것을 특징으로 하는
치아를 분할하기 위한 방법.
According to paragraph 1,
Before the step of receiving the scan data,
Preparing, by the data processing unit, training data including training scan data and a label indicating a learning class corresponding to each of a plurality of cells of the training scan data;
A step where the segmentation model performs a weighting operation in which a weight that has not yet been learned is applied to the training scan data to derive a learning prediction vector indicating the probability that a plurality of cells of the training scan data belong to a learning class;
A step where the learning unit calculates an overall loss including segmentation loss and classification loss;
the learning unit performing optimization to modify the weights of the segmentation model so that the total loss is minimized;
Characterized by further comprising
Method for dividing teeth.
제9항에 있어서,
상기 전체 손실을 산출하는 단계는
상기 학습부가
수학식

에 따라 분할 손실을 산출하며,
상기 L은 학습클래스 개수이고,
상기 l은 학습클래스 인덱스이고,
상기 N은 셀의 개수이고,
상기 i는 셀 인덱스이고,
상기 p는 학습용 예측 벡터이고,
상기 y는 레이블이고,
상기 ε은 기 설정된 상수인 것을 특징으로 하는
치아를 분할하기 위한 방법.
According to clause 9,
The step of calculating the total loss is
The above learning department
math equation

The split loss is calculated according to
Where L is the number of learning classes,
Where l is the learning class index,
N is the number of cells,
Where i is the cell index,
The p is a prediction vector for learning,
where y is a label,
Wherein ε is a preset constant.
Method for dividing teeth.
제9항에 있어서,
상기 전체 손실을 산출하는 단계는
상기 학습부가
수학식

에 따라 분류 손실을 산출하며,
상기
Figure pat00096
은 데이터 단위의 확률이고,
상기
Figure pat00097

수학식
Figure pat00098

에 따라 도출되며,
상기 L은 학습클래스의 개수,
상기 l은 학습클래스의 인덱스이고,
상기 y는 레이블이고,
상기 N은 스캔 데이터의 셀의 개수,
상기
Figure pat00099
은 학습클래스 인덱스에 대응하는 셀 개수인 것을 특징으로 하는
치아를 분할하기 위한 방법.
According to clause 9,
The step of calculating the total loss is
The above learning department
math equation

Calculate classification loss according to
remind
Figure pat00096
is the probability of the data unit,
remind
Figure pat00097
silver
math equation
Figure pat00098

It is derived according to
Where L is the number of learning classes,
Where l is the index of the learning class,
where y is a label,
N is the number of cells of scan data,
remind
Figure pat00099
Characterized by being the number of cells corresponding to the learning class index.
Method for dividing teeth.
치아를 분할하기 위한 장치에 있어서,
복수의 치아를 3차원으로 스캔하여 복수의 셀을 포함하는 스캔 데이터를 입력받는 데이터처리부; 및
분할모델을 통해 상기 스캔 데이터에 대해 학습된 가중치에 따른 가중치 연산을 수행하여 상기 복수의 셀 각각이 학습클래스에 속할 확률을 나타내는 예측벡터를 도출하고,
상기 예측벡터의 확률에 따라 스캔 데이터 상에서 치아를 분할하는 분할부;
를 포함하는 것을 특징으로 하는
치아를 분할하기 위한 장치.
In a device for dividing teeth,
a data processing unit that scans a plurality of teeth in three dimensions and receives scan data including a plurality of cells; and
By performing a weight calculation according to the weight learned for the scan data through a partition model, a prediction vector representing the probability that each of the plurality of cells belongs to a learning class is derived,
a division unit that divides teeth on scan data according to the probability of the prediction vector;
Characterized by including
A device for dividing teeth.
제12항에 있어서,
상기 분할부는
학습클래스에서 서로 이웃하는 중절치를 제외하고 좌우 대칭되어 배치되어 동일한 클래스에 속하는 치아 쌍을 확장클래스에 따라 구분하는 것을 특징으로 하는
치아를 분할하기 위한 장치.
According to clause 12,
The division part is
In the learning class, teeth pairs belonging to the same class are arranged symmetrically left and right, excluding the central incisors that are adjacent to each other, and are characterized by distinguishing them according to the extended class.
A device for dividing teeth.
제13항에 있어서,
상기 데이터처리부는
상기 예측벡터를 도출하기 전, 상기 스캔 데이터를 다운 샘플링하며,
상기 복원부는 상기 확장클래스에 따라 구분한 후, 상기 스캔 데이터를 원본 크기로 업 샘플링하는 것을 특징으로 하는
치아를 분할하기 위한 장치.
According to clause 13,
The data processing unit
Before deriving the prediction vector, down-sample the scan data,
The restoration unit classifies according to the extension class and then up-samples the scanned data to the original size.
A device for dividing teeth.
제14항에 있어서,
상기 복원부는
수학식
Figure pat00100

에 따라 업 샘플링된 스캔 데이터의 각 셀의 클래스를 도출하며,
상기 f는 KNN(k-Nearest Neighbor) 모델이고,
상기 x, 상기 y, 상기 z는 업 샘플링된 스캔 데이터의 셀 좌표이고,
상기 i는 업 샘플링된 스캔 데이터의 셀 인덱스이고,
상기 N은 원본 크기의 스캔 데이터의 셀 개수이고,
상기 C는 확장클래스인 것을 특징으로 하는
치아를 분할하기 위한 장치.
According to clause 14,
The restoration department
math equation
Figure pat00100

Accordingly, the class of each cell of the upsampled scan data is derived,
The f is a KNN (k-Nearest Neighbor) model,
The x, y, and z are cell coordinates of the up-sampled scan data,
The i is the cell index of the up-sampled scan data,
N is the number of cells in the scanned data of the original size,
The C is characterized in that it is an extended class.
A device for dividing teeth.
제14항에 있어서,
상기 복원부는
수학식

에 따라 업 샘플링된 스캔 데이터의 각 셀의 클래스를 도출하며,
상기 g는 k가 M인 KNN 모델이며,
상기 h는 k가 N인 KNN 모델이며,
상기 M 및 상기 N은 기 설정된 상수이며,
M<N이고,
상기 x, 상기 y, 상기 z는 업 샘플링된 스캔 데이터의 셀 좌표이고,
상기 i는 업 샘플링된 스캔 데이터의 셀 인덱스이고,
상기 C는 확장클래스인 것을 특징으로 하는
치아를 분할하기 위한 장치.
According to clause 14,
The restoration department
math equation

Accordingly, the class of each cell of the upsampled scan data is derived,
The g is a KNN model where k is M,
The h is a KNN model where k is N,
The M and the N are preset constants,
M<N,
The x, y, and z are cell coordinates of the up-sampled scan data,
The i is the cell index of the up-sampled scan data,
The C is characterized in that it is an extended class.
A device for dividing teeth.
제14항에 있어서,
상기 복원부는
특정 확장클래스의 셀의 개수가 기 설정된 임계치 보다 적은 경우, 해당 확장클래스에 속한 셀을 배경 클래스로 변환하여 소거하는 것을 특징으로 하는
치아를 분할하기 위한 장치.
According to clause 14,
The restoration department
If the number of cells of a specific extended class is less than a preset threshold, cells belonging to the extended class are converted to the background class and erased.
A device for dividing teeth.
제12항에 있어서,
상기 데이터처리부는
주성분 분석을 통해 스캔 데이터의 3차원 좌표를 2차원으로 축소하고,
스캔 데이터의 단축 길이 및 장축의 길이를 산출하고,
상기 학습된 기계학습모델을 이용하여 상기 단축의 길이, 상기 단축의 길이와 상기 장축의 길이의 비율로부터 상기 스캔 데이터가 전체 스캔 데이터인지 혹은 부분 스캔 데이터인지 여부를 확인하고,
스캔 데이터가 부분 스캔 데이터이면, 스캔 데이터를 소거하는 것을 특징으로 하는
치아를 분할하기 위한 장치.
According to clause 12,
The data processing unit
Through principal component analysis, the three-dimensional coordinates of the scan data are reduced to two dimensions,
Calculate the short axis length and long axis length of the scan data,
Using the learned machine learning model, determine whether the scan data is full scan data or partial scan data from the length of the minor axis and the ratio of the length of the minor axis and the length of the major axis,
If the scan data is partial scan data, the scan data is erased.
A device for dividing teeth.
제12항에 있어서,
상기 데이터처리부가 스캔 데이터의 xy 평면에 대한 주성분 분석을 통해 고유벡터를 도출하고,
상기 고유벡터의 원점을 수평으로 지나는 기준선과 상기 고유벡터가 이루는 각 중 작은 각을 회전각으로 선택하고,
상기 회전각이 0이 되도록 원점을 회전축으로 스캔 데이터를 회전시켜 스캔 데이터를 재배향하는 것을 특징으로 하는
치아를 분할하기 위한 장치.
According to clause 12,
The data processing unit derives an eigenvector through principal component analysis of the xy plane of the scan data,
Selecting the smaller angle between the angle formed by the eigenvector and a reference line horizontally passing through the origin of the eigenvector as the rotation angle,
Characterized in that the scan data is reoriented by rotating the scan data with the origin as the rotation axis so that the rotation angle is 0.
A device for dividing teeth.
제12항에 있어서,
상기 데이터처리부는
학습용 스캔 데이터와 학습용 스캔 데이터의 복수의 셀 각각에 대응하는 학습클래스를 나타내는 레이블을 포함하는 학습 데이터를 마련하고,
상기 장치는
분할모델이 학습용 스캔 데이터에 대해 학습이 완료되지 않은 가중치가 적용되는 가중치 연산을 수행하여 학습용 스캔 데이터의 복수의 셀이 학습클래스에 속할 확률을 나타내는 학습용 예측벡터를 도출하면,
분할 손실 및 분류 손실을 포함하는 전체 손실을 산출하고,
상기 전체 손실이 최소가 되도록 상기 분할모델의 가중치를 수정하는 최적화를 수행하는 학습부;
를 더 포함하는 것을 특징으로 하는
치아를 분할하기 위한 장치.
According to clause 12,
The data processing unit
Prepare training data including training scan data and a label indicating a learning class corresponding to each of a plurality of cells in the training scan data,
The device is
When the segmentation model performs a weighting operation in which weights that have not yet been learned are applied to the training scan data to derive a learning prediction vector indicating the probability that a plurality of cells in the training scan data belong to the learning class,
Calculate the overall loss including segmentation loss and classification loss,
a learning unit that performs optimization by modifying the weights of the segmentation model to minimize the overall loss;
Characterized by further comprising
A device for dividing teeth.
제20항에 있어서,
상기 학습부는
수학식

에 따라 분할 손실을 산출하며,
상기 L은 학습클래스 개수이고,
상기 l은 학습클래스 인덱스이고,
상기 N은 셀의 개수이고,
상기 i는 셀 인덱스이고,
상기 p는 학습용 예측 벡터이고,
상기 y는 레이블이고,
상기 ε은 기 설정된 상수인 것을 특징으로 하는
치아를 분할하기 위한 장치.
According to clause 20,
The learning department
math equation

The split loss is calculated according to
Where L is the number of learning classes,
Where l is the learning class index,
N is the number of cells,
Where i is the cell index,
The p is a prediction vector for learning,
where y is a label,
Wherein ε is a preset constant.
A device for dividing teeth.
제20항에 있어서,
상기 학습부는
수학식

에 따라 분류 손실을 산출하며,
상기
Figure pat00104
은 데이터 단위의 확률이고,
상기
Figure pat00105

수학식
Figure pat00106

에 따라 도출되며,
상기 L은 학습클래스의 개수,
상기 l은 학습클래스의 인덱스이고,
상기 y는 레이블이고,
상기 N은 스캔 데이터의 셀의 개수,
상기
Figure pat00107
은 학습클래스 인덱스에 대응하는 셀 개수인 것을 특징으로 하는
치아를 분할하기 위한 장치.
According to clause 20,
The learning department
math equation

Calculate classification loss according to
remind
Figure pat00104
is the probability of the data unit,
remind
Figure pat00105
silver
math equation
Figure pat00106

It is derived according to
Where L is the number of learning classes,
Where l is the index of the learning class,
where y is a label,
N is the number of cells of scan data,
remind
Figure pat00107
Characterized by being the number of cells corresponding to the learning class index.
A device for dividing teeth.
KR1020220187995A 2022-12-28 Apparatus for segmenting teeth from three-dimensionally scanned teeth data using deep learning and method therefor KR20240105113A (en)

Publications (1)

Publication Number Publication Date
KR20240105113A true KR20240105113A (en) 2024-07-05

Family

ID=

Similar Documents

Publication Publication Date Title
JP7451406B2 (en) Automatic 3D root shape prediction using deep learning methods
CN109493347B (en) Method and system for segmenting sparsely distributed objects in an image
JP7412334B2 (en) Automatic classification and classification method for 3D tooth data using deep learning methods
EP2598034B1 (en) Adaptive visualization for direct physician use
US11842484B2 (en) Teeth segmentation using neural networks
CN114401666A (en) Object detection and instance segmentation of 3D point clouds based on deep learning
CN107506796A (en) A kind of alzheimer disease sorting technique based on depth forest
JP2023512083A (en) Segmentation of tooth group using neural network
CN113052955B (en) Point cloud completion method, system and application
CN108648179A (en) A kind of method and device of analysis Lung neoplasm
CN114742802B (en) Pancreas CT image segmentation method based on 3D transform mixed convolution neural network
CN116485809B (en) Tooth example segmentation method and system based on self-attention and receptive field adjustment
JP2004521425A (en) Image processing method for evaluating the suitability of a three-dimensional mesh model mapped on a target three-dimensional surface
US20220350936A1 (en) Neural network margin proposal
US20230245329A1 (en) Structured landmark detection via topology-adapting deep graph learning
CN115953583B (en) Tooth segmentation method and system based on iterative boundary optimization and deep learning
KR20240105113A (en) Apparatus for segmenting teeth from three-dimensionally scanned teeth data using deep learning and method therefor
CN111881919A (en) Intelligent line element simplification method and device based on tracking type grid subdivision
KR20240105114A (en) Apparatus for arranging dental crown for missing teeth in three-dimensionally scanned teeth data and method therefor
CN115018780B (en) Thyroid nodule segmentation method integrating global reasoning and MLP architecture
KR102330981B1 (en) Method of automatic segmentation of maxillofacial bone in ct image using deep learning
CN114418989A (en) Dental segmentation method, device, equipment and storage medium for oral medical image
CN117911705B (en) Brain MRI (magnetic resonance imaging) tumor segmentation method based on GAN-UNet variant network
US20230206455A1 (en) Automated method for tooth segmentation of three dimensional scan data using tooth boundary curve and computer readable medium having program for performing the method
US20240203093A1 (en) Image processing apparatus, method, and program