WO2023224350A2 - Method and device for detecting landmark from 3d volume image - Google Patents

Method and device for detecting landmark from 3d volume image Download PDF

Info

Publication number
WO2023224350A2
WO2023224350A2 PCT/KR2023/006595 KR2023006595W WO2023224350A2 WO 2023224350 A2 WO2023224350 A2 WO 2023224350A2 KR 2023006595 W KR2023006595 W KR 2023006595W WO 2023224350 A2 WO2023224350 A2 WO 2023224350A2
Authority
WO
WIPO (PCT)
Prior art keywords
landmarks
detection model
landmark
image
detecting
Prior art date
Application number
PCT/KR2023/006595
Other languages
French (fr)
Korean (ko)
Other versions
WO2023224350A3 (en
Inventor
김선경
장정열
Original Assignee
주식회사 애마슈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 애마슈 filed Critical 주식회사 애마슈
Publication of WO2023224350A2 publication Critical patent/WO2023224350A2/en
Publication of WO2023224350A3 publication Critical patent/WO2023224350A3/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B6/00Apparatus or devices for radiation diagnosis; Apparatus or devices for radiation diagnosis combined with radiation therapy equipment
    • A61B6/52Devices using data or image processing specially adapted for radiation diagnosis
    • A61B6/5211Devices using data or image processing specially adapted for radiation diagnosis involving processing of medical diagnostic data
    • A61B6/5223Devices using data or image processing specially adapted for radiation diagnosis involving processing of medical diagnostic data generating planar views from image data, e.g. extracting a coronal view from a 3D image
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • 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/05Detecting, measuring or recording for diagnosis by means of electric currents or magnetic fields; Measuring using microwaves or radio waves 
    • A61B5/055Detecting, measuring or recording for diagnosis by means of electric currents or magnetic fields; Measuring using microwaves or radio waves  involving electronic [EMR] or nuclear [NMR] magnetic resonance, e.g. magnetic resonance imaging
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B6/00Apparatus or devices for radiation diagnosis; Apparatus or devices for radiation diagnosis combined with radiation therapy equipment
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B6/00Apparatus or devices for radiation diagnosis; Apparatus or devices for radiation diagnosis combined with radiation therapy equipment
    • A61B6/02Arrangements for diagnosis sequentially in different planes; Stereoscopic radiation diagnosis
    • A61B6/03Computed tomography [CT]
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B6/00Apparatus or devices for radiation diagnosis; Apparatus or devices for radiation diagnosis combined with radiation therapy equipment
    • A61B6/02Arrangements for diagnosis sequentially in different planes; Stereoscopic radiation diagnosis
    • A61B6/03Computed tomography [CT]
    • A61B6/032Transmission computed tomography [CT]
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B6/00Apparatus or devices for radiation diagnosis; Apparatus or devices for radiation diagnosis combined with radiation therapy equipment
    • A61B6/50Apparatus or devices for radiation diagnosis; Apparatus or devices for radiation diagnosis combined with radiation therapy equipment specially adapted for specific body parts; specially adapted for specific clinical applications
    • A61B6/501Apparatus or devices for radiation diagnosis; Apparatus or devices for radiation diagnosis combined with radiation therapy equipment specially adapted for specific body parts; specially adapted for specific clinical applications for diagnosis of the head, e.g. neuroimaging or craniography
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B6/00Apparatus or devices for radiation diagnosis; Apparatus or devices for radiation diagnosis combined with radiation therapy equipment
    • A61B6/50Apparatus or devices for radiation diagnosis; Apparatus or devices for radiation diagnosis combined with radiation therapy equipment specially adapted for specific body parts; specially adapted for specific clinical applications
    • A61B6/51Apparatus or devices for radiation diagnosis; Apparatus or devices for radiation diagnosis combined with radiation therapy equipment specially adapted for specific body parts; specially adapted for specific clinical applications for dentistry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0012Biomedical image inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10072Tomographic images
    • G06T2207/10081Computed x-ray tomography [CT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10072Tomographic images
    • G06T2207/10088Magnetic resonance imaging [MRI]
    • 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/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • 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

Definitions

  • the present disclosure relates to a method and device for detecting landmarks from a 3D volume image.
  • x-ray and CT Computer Tomography
  • Two-dimensional images such as X-rays and CT images are acquired, anatomical locations (landmarks) are extracted from the two-dimensional images using oral orthodontic software, and diagnosis and treatment plans are performed based on this.
  • the present disclosure has been made in response to the above-described background technology, and seeks to provide a method and user device for detecting landmarks from a 3D volume image.
  • a method for detecting a landmark from a 3D volume image performed by a computing device includes detecting a landmark from a 3D volume image of a target portion of an object. Obtaining input data; Inputting the input data into a first landmark detection model; detecting a plurality of landmarks for a first portion of the target area using the first landmark detection model; Inputting the 3D volume image into a second landmark detection model; detecting a plurality of landmarks for a second part of the target object that is different from the first part using the second landmark detection model; and generating a plurality of landmarks for the target area based on the plurality of landmarks for the first part and the plurality of landmarks for the second part.
  • the target area may include the head, the first part may mean a skin area of the head, and the second part may mean a bone area of the head.
  • the input data may include a first two-dimensional image representing the front of the head, a depth image corresponding to the first image, and a second two-dimensional image representing the side of the head.
  • the first landmark detection model may include a first detection model learned to detect landmarks for the front of the head and a second detection model learned to detect landmarks for the side of the head. there is.
  • detecting a plurality of landmarks for the first portion using the first landmark detection model may include inputting the first image and the depth image into the first detection model; Detecting a plurality of landmarks of a first group using the first detection model; Inputting the second image into the second detection model; detecting a plurality of landmarks of a second group using the second detection model; and generating a plurality of landmarks for the first portion based on the plurality of landmarks of the first group and the plurality of landmarks of the second group.
  • the first detection model predicts a plurality of landmarks of the first group by using the first image and the depth image as input, and provides two-dimensional coordinates for the predicted plurality of landmarks of the first group It is configured to output a value
  • the second detection model predicts a plurality of landmarks of the second group using the second image as an input, and generates a two-dimensional image for the predicted plurality of landmarks of the second group. It may be configured to output coordinate values.
  • the step of generating a plurality of landmarks for the first portion includes two-dimensional coordinate values for the plurality of landmarks in the first group and two-dimensional coordinate values for the plurality of landmarks in the second group. This may be a step of generating 3D coordinate values by combining at least some of them.
  • the second landmark detection model includes a third detection model learned to detect a plurality of cropped images in which a plurality of landmarks for the second part are located from the 3D volume image, and a plurality of the detected It may include a plurality of fourth detection models learned to detect a plurality of landmarks for the second portion from the cropped image.
  • detecting a plurality of landmarks for the second portion of the target area using the second landmark detection model may include inputting the three-dimensional volume image into the third detection model; detecting the plurality of cropped images using the third detection model; Inputting the detected plurality of cropped images into the plurality of fourth detection models; and detecting a plurality of landmarks for the second portion using the plurality of fourth detection models.
  • the step of generating a plurality of landmarks for the first portion includes two-dimensional coordinate values for the plurality of landmarks in the first group and two-dimensional coordinate values for the plurality of landmarks in the second group. This may be a step of generating 3D coordinate values by combining at least some of them.
  • the second landmark detection model includes a third detection model learned to detect a plurality of cropped images in which a plurality of landmarks for the second part are located from the 3D volume image, and a plurality of the detected It may include a plurality of fourth detection models learned to detect a plurality of landmarks for the second portion from the cropped image.
  • detecting a plurality of landmarks for the second portion of the target area using the second landmark detection model may include inputting the three-dimensional volume image into the third detection model; detecting the plurality of cropped images using the third detection model; Inputting the detected plurality of cropped images into the plurality of fourth detection models; and detecting a plurality of landmarks for the second portion using the plurality of fourth detection models.
  • the third detection model uses the 3D volume image as an input to detect a plurality of candidate regions predicted as the plurality of landmarks for the second part from the 3D volume image, and It may be configured to output the plurality of cropped images corresponding to candidate areas.
  • the plurality of candidate areas may overlap at least in part and include at least one position predicted by each of a plurality of landmarks for the second part.
  • each of the plurality of fourth detection models may be configured to correspond to each of the plurality of cropped images.
  • each of the plurality of fourth detection models takes each cropped image as an input and predicts at least one landmark from a candidate area corresponding to each cropped image, and 3 models for each of the predicted at least one landmark. It may be configured to output dimensional coordinate values.
  • each of the plurality of cropped images may be a 3D volume image corresponding to each of the plurality of candidate regions.
  • a computer program stored in a computer-readable storage medium, wherein the computer program, when executed on one or more processors, performs the following operations for detecting a landmark from a three-dimensional volume image,
  • the operations include obtaining input data from a 3D volume image that captures a target portion of an object; Inputting the input data into a first landmark detection model; detecting a plurality of landmarks for a first portion of the target region using the first landmark detection model; Inputting the 3D volume image into a second landmark detection model; detecting a plurality of landmarks for a second portion of the target area using the second landmark detection model; and an operation of generating a plurality of landmarks for the target area based on the first group of landmarks and the second group of landmarks.
  • a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a computing device, causes the computing device to perform a method for detecting a landmark from a three-dimensional volume image.
  • the method includes obtaining input data from a 3D volume image captured in a target area of an object; Inputting the input data into a first landmark detection model; detecting a plurality of landmarks for a first portion of the target area using the first landmark detection model; Inputting the 3D volume image into a second landmark detection model; detecting a plurality of landmarks for a second portion of the target area using the second landmark detection model; and generating a plurality of landmarks for the target area based on the first group of landmarks and the second group of landmarks.
  • the computer program when executed by a computing device, causes the computing device to perform a method for detecting a landmark from a three-dimensional volume image.
  • the method includes obtaining input data from a 3D volume image captured in a target area of an object; Inputting the input
  • a computing device for detecting a landmark from a 3D volume image includes: at least one processor; and a memory, wherein the at least one processor acquires input data from a 3D volume image photographing a target portion of the object, inputs the input data to a first landmark detection model, and detects the first landmark. Detecting a plurality of landmarks for the first part of the target area using a detection model, inputting the 3D volume image into a second landmark detection model, and using the second landmark detection model configured to detect a plurality of landmarks for a second part of the target region and generate a plurality of landmarks for the target region based on the first group of landmarks and the second group of landmarks. You can.
  • the 3D landmark detection time can be minimized by dividing the user's head into a skin area and a bone area and detecting landmarks using each artificial intelligence-based model.
  • FIG. 1 is a configuration diagram of an example system for detecting landmarks from a 3D volume image according to an embodiment of the present disclosure.
  • Figure 2 is a block diagram of a server for detecting landmarks from a 3D volume image according to an embodiment of the present disclosure.
  • Figure 3 is a schematic diagram showing a network function according to an embodiment of the present disclosure.
  • FIG. 4 is a flowchart illustrating an example of a method for detecting a landmark from a 3D volume image according to an embodiment of the present disclosure.
  • Figure 5 is a schematic illustration for explaining a first landmark detection model according to an embodiment of the present disclosure.
  • Figure 6 is an example diagram for explaining the schematic structure of a detection model according to an embodiment of the present disclosure.
  • Figure 7 is a schematic illustration for explaining a second landmark detection model according to an embodiment of the present disclosure.
  • Figure 8 is an example diagram for explaining the schematic structure of a detection model according to an embodiment of the present disclosure.
  • Figure 9 is an example diagram for explaining the learning process of the first landmark detection model according to an embodiment of the present disclosure.
  • Figure 10 is an example diagram for explaining the inference process of the first landmark detection model according to an embodiment of the present disclosure.
  • Figure 11 is an example diagram for explaining the learning process of a second landmark detection model according to an embodiment of the present disclosure.
  • Figure 12 is an example diagram for explaining the inference process of a second landmark detection model according to an embodiment of the present disclosure.
  • Figure 13 is a brief, general schematic diagram of an example computing environment in which embodiments of the present disclosure may be implemented.
  • a component may be, but is not limited to, a process running on a processor, a processor, an object, a thread of execution, a program, and/or a computer.
  • an application running on a computing device and the computing device can be a component.
  • One or more components may reside within a processor and/or thread of execution.
  • a component may be localized within one computer.
  • a component may be distributed between two or more computers. Additionally, these components can execute from various computer-readable media having various data structures stored thereon.
  • Components can transmit signals, for example, with one or more data packets (e.g., data and/or signals from one component interacting with other components in a local system, a distributed system, to other systems and over a network such as the Internet). Depending on the data being transmitted, they may communicate through local and/or remote processes.
  • data packets e.g., data and/or signals from one component interacting with other components in a local system, a distributed system, to other systems and over a network such as the Internet.
  • a network such as the Internet
  • the term “or” is intended to mean an inclusive “or” and not an exclusive “or.” That is, unless otherwise specified or clear from context, “X utilizes A or B” is intended to mean one of the natural implicit substitutions. That is, either X uses A; X uses B; Or, if X uses both A and B, “X uses A or B” can apply to either of these cases. Additionally, the term “and/or” as used herein should be understood to refer to and include all possible combinations of one or more of the related listed items.
  • the term “at least one of A or B” should be interpreted to mean “a case containing only A,” “a case containing only B,” and “a case of combining A and B.”
  • network function artificial neural network, and neural network may be used interchangeably.
  • FIG. 1 is a configuration diagram of an example system for detecting landmarks from a 3D volume image according to an embodiment of the present disclosure.
  • a system for detecting landmarks from a 3D volume image includes an imaging device 10 that captures a 3D volume image of a target area of an object, and a request for landmark detection by acquiring the 3D volume image. It may include a computing device 20 that detects a landmark from a 3D volume image and a server 100 that detects a landmark.
  • the components shown in FIG. 1 are exemplary, and additional components may exist or some of the components may be omitted.
  • the photographing device 10, the computing device 20, and the server 100 detect landmarks from a three-dimensional volume image according to some embodiments of the present disclosure through a communication network. Data for each other can be transmitted and received.
  • the imaging device 10 is a device for taking a three-dimensional volume image of a target area of an object (e.g., a patient), for example, a computed tomography (CT) device, a cone beam CT (CBCT) device, or a multi-dimensional CT (MDCT) device.
  • CT computed tomography
  • CBCT cone beam CT
  • MDCT multi-dimensional CT
  • -detector CT and/or MRI (Magnetic Resonance Imaging) device, etc.
  • the target area may include, but is not limited to, the head including the oral cavity.
  • the imaging device 10 may provide a 3D volume image of a target area including the patient's oral cavity to the computing device 20 or the server 100 through a communication network (not shown).
  • the computing device 20 is a device for acquiring a 3D volume image from the imaging device 10 and requesting landmark detection for the 3D volume image, and is a device having a PC, laptop computer, terminal, and/or network connectivity. Can include any electronic device.
  • the computing device 20 receives a 3D volume image of a target area of an object from the imaging device 10, and sends a request to the server to detect a landmark for the target area based on the 3D volume image. It can be transmitted as (100). Additionally, the computing device 20 may display an output screen that outputs data about the landmark detected from the server 100. For example, when the server 100 operates as a web server, the computing device 20 accesses a website related to landmark detection hosted by the server 100 through an application such as a web browser and accesses the website. A web page (i.e., interface screen) can be displayed.
  • the website may include a first web page for uploading a 3D volume image and a second web page for outputting data on landmarks detected by the server.
  • the 3D volume image may be uploaded through the first web page and transmitted to the server 100.
  • the computing device 20 may be any entity capable of processing, storing, and outputting any data, including a processor, a storage unit (memory and persistent storage media), and a display unit. there is.
  • the processor in the present disclosure may consist of one or more cores, including a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), and a tensor processing unit of the computing device 20. It may include any type of processor, such as a tensor processing unit (TPU), for requesting landmark detection and displaying an output screen by executing instructions stored in memory.
  • the processor reads the computer program stored in the memory, transmits a landmark detection request according to an embodiment of the present disclosure to the server 100, and outputs data about the landmark provided from the server 100. there is.
  • the memory in the present disclosure may store a program for the operation of a processor, and may temporarily or permanently store input/output data.
  • Memory is a flash memory type, hard disk type, multimedia card micro type, card type memory (e.g. SD or XD memory, etc.), and RAM (Random Access).
  • RAM Random Access Memory
  • SRAM Static Random Access Memory
  • ROM Read-Only Memory
  • EEPROM Electrically Erasable Programmable Read-Only Memory
  • PROM Program Programmable Read-Only Memory
  • magnetic memory magnetic disk, optical disk It may include at least one type of storage medium. These memories can be operated under processor control. Additionally, memory and storage may be used interchangeably with each other in the present disclosure.
  • the server 100 is a device that detects landmarks for a target area based on a three-dimensional volume image provided from the computing device 20, and may be any type such as a computer, digital processor, portable device, and device controller. It may include a computer system or computer device.
  • the server 100 can learn an artificial intelligence-based model and detect landmarks from a 3D volume image using the learned model. Specifically, the server 100 may detect a landmark for the user's target area by performing at least one of object detection, classification, or segmentation from a 3D volume image using an artificial intelligence-based model.
  • the server 100 may be any entity capable of processing and storing any data, including a processor and a storage unit (memory and persistent storage media).
  • a processor in the present disclosure may consist of one or more cores, including a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), a tensor processing unit (TPU), a graphics processing unit (GPU), and neural processing of a computing device. It may include any type of processor for landmark detection by executing instructions stored in memory, such as a Neural Processing Unit (NPU).
  • the processor may read a computer program stored in a memory and perform landmark detection according to an embodiment of the present disclosure.
  • the memory in the present disclosure may store a program for the operation of a processor, and may temporarily or permanently store input/output data.
  • Memory includes flash memory type, hard disk type, multimedia card micro type, card type memory (e.g. SD or XD memory, etc.), RAM, SRAM, ROM, EEPROM, PROM, magnetic memory, magnetic memory. It may include at least one type of storage medium among disks and optical disks. These memories can be operated under processor control. Additionally, memory and storage may be used interchangeably with each other in the present disclosure.
  • FIG. 1 is a block diagram of a server for detecting landmarks from a 3D volume image according to an embodiment of the present disclosure.
  • the configuration of the server 100 shown in FIG. 1 is only a simplified example.
  • the server 100 may include different configurations for performing the computing environment of the server 100, and only some of the disclosed configurations may configure the server 100.
  • the server 100 may include a communication unit 110, a memory 120, and a processor 130.
  • the above-described components are not essential for implementing the server 100, so the server 100 may have more or less components than the components listed above.
  • each component may be composed of a separate chip, module, or device, or may be included in one device.
  • the communication unit 110 may include any type of wired/wireless Internet module for network connection. Additionally, the communication unit 110 may include a short range communication module. Short-distance communication technologies include Bluetooth, Radio Frequency Identification (RFID), infrared data association (IrDA), Ultra-Wideband (UWB), and ZigBee.
  • RFID Radio Frequency Identification
  • IrDA infrared data association
  • UWB Ultra-Wideband
  • ZigBee ZigBee
  • the communication unit 110 connects the server 100 to enable communication with an external device.
  • the communication unit 110 can be connected to the imaging device 10 using wired/wireless communication and receive a 3D volume image.
  • the storage unit 120 may store any type of information generated or determined by the processor 130 and any type of information received by the communication unit 110. According to some embodiments of the present disclosure, the storage unit 120 may store various data for detecting landmarks from a 3D volume image.
  • Storage unit 120 may include memory and/or persistent storage media.
  • the storage unit 120 includes flash memory type, hard disk type, multimedia card micro type, card type memory (e.g. SD or XD memory, etc.), RAM, SRAM, ROM, EEPROM, PROM, It may include at least one type of storage medium among magnetic memory, magnetic disk, and optical disk.
  • the server 100 may operate in relation to web storage that performs the storage function of the storage unit 120 on the Internet.
  • the description of the storage unit described above is merely an example, and the present disclosure is not limited thereto.
  • the processor 130 may be composed of one or more cores, and may include a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), and a tensor processing unit (TPU) of a computing device. unit) and NPU (Neural Processing Unit) may include processors for data analysis and deep learning.
  • CPU central processing unit
  • GPU general purpose graphics processing unit
  • TPU tensor processing unit
  • NPU Neurological Processing Unit
  • the processor 130 may read the computer program stored in the memory 130 and perform data processing to detect landmarks from the 3D volume image according to an embodiment of the present disclosure.
  • the processor 130 uses each artificial intelligence learned to detect a plurality of landmarks for each of the first part of the target area and the second part different from the first part.
  • a base model can be used.
  • a method for detecting a plurality of landmarks using an artificial intelligence-based model will be described in detail with reference to FIGS. 4 to 12.
  • the processor 130 may perform operations for learning a neural network.
  • the processor 130 is used for learning neural networks, such as processing input data for learning in deep learning (DL), extracting features from input data, calculating errors, and updating the weights of the neural network using backpropagation. Calculations can be performed.
  • At least one of the CPU, GPGPU, TPU, and NPU of the processor 130 may process learning of the network function.
  • CPU and GPGPU can work together to process learning of network functions and data classification using network functions.
  • the processors of a plurality of computing devices can be used together to process learning of network functions and data classification using network functions.
  • a computer program executed in the server 100 may be a CPU, GPGPU TPU, or NPU executable program.
  • Figure 3 is a schematic diagram showing a network function according to an embodiment of the present disclosure.
  • a neural network can generally consist of a set of interconnected computational units, which can be referred to as nodes. These nodes may also be referred to as neurons.
  • a neural network consists of at least one node. Nodes (or neurons) that make up neural networks may be interconnected by one or more links.
  • the detection model and/or extraction model herein may include the neural network described above.
  • one or more nodes connected through a link may form a relative input node and output node relationship.
  • the concepts of input node and output node are relative, and any node in an output node relationship with one node may be in an input node relationship with another node, and vice versa.
  • input node to output node relationships can be created around links.
  • One or more output nodes can be connected to one input node through a link, and vice versa.
  • the value of the data of the output node may be determined based on the data input to the input node.
  • the link connecting the input node and the output node may have a weight. Weights may be variable and may be varied by the user or algorithm in order for the neural network to perform the desired function. For example, when one or more input nodes are connected to one output node by respective links, the output node is set to the values input to the input nodes connected to the output node and the links corresponding to each input node. The output node value can be determined based on the weight.
  • one or more nodes are interconnected through one or more links to form an input node and output node relationship within the neural network.
  • the characteristics of the neural network can be determined according to the number of nodes and links within the neural network, the correlation between the nodes and links, and the value of the weight assigned to each link. For example, if the same number of nodes and links exist and two neural networks with different weight values of the links exist, the two neural networks may be recognized as different from each other.
  • a neural network may consist of a set of one or more nodes.
  • a subset of nodes that make up a neural network can form a layer.
  • Some of the nodes constituting the neural network may form one layer based on the distances from the first input node.
  • a set of nodes with a distance n from the initial input node may constitute n layers.
  • the distance from the initial input node can be defined by the minimum number of links that must be passed to reach the node from the initial input node.
  • this definition of a layer is arbitrary for explanation purposes, and the order of a layer within a neural network may be defined in a different way than described above.
  • a layer of nodes may be defined by distance from the final output node.
  • the initial input node may refer to one or more nodes in the neural network through which data is directly input without going through links in relationships with other nodes.
  • a neural network network in the relationship between nodes based on links, it may mean nodes that do not have other input nodes connected by links.
  • the final output node may refer to one or more nodes that do not have an output node in their relationship with other nodes among the nodes in the neural network.
  • hidden nodes may refer to nodes constituting a neural network other than the first input node and the last output node.
  • the neural network according to an embodiment of the present disclosure is a neural network in which the number of nodes in the input layer may be the same as the number of nodes in the output layer, and the number of nodes decreases and then increases again as it progresses from the input layer to the hidden layer. You can.
  • the neural network according to another embodiment of the present disclosure may be a neural network in which the number of nodes in the input layer may be less than the number of nodes in the output layer, and the number of nodes decreases as it progresses from the input layer to the hidden layer. there is.
  • the neural network according to another embodiment of the present disclosure may be a neural network in which the number of nodes in the input layer may be greater than the number of nodes in the output layer, and the number of nodes increases as it progresses from the input layer to the hidden layer. You can.
  • a neural network according to another embodiment of the present disclosure may be a neural network that is a combination of the above-described neural networks.
  • a deep neural network may refer to a neural network that includes multiple hidden layers in addition to the input layer and output layer. Deep neural networks allow you to identify latent structures in data. In other words, it is possible to identify the potential structure of a photo, text, video, voice, or music (e.g., what object is in the photo, what the content and emotion of the text are, what the content and emotion of the voice are, etc.) . Deep neural networks include convolutional neural networks (CNN), recurrent neural networks (RNN), auto encoders, generative adversarial networks (GAN), and restricted Boltzmann machines (RBM). machine), deep belief network (DBN), Q network, U network, Siamese network, Generative Adversarial Network (GAN), etc.
  • CNN convolutional neural networks
  • RNN recurrent neural networks
  • GAN generative adversarial networks
  • RBM restricted Boltzmann machines
  • DBN deep belief network
  • Q network Q network
  • U network Siamese network
  • the network function may include an autoencoder.
  • An autoencoder may be a type of artificial neural network to output output data similar to input data.
  • the autoencoder may include at least one hidden layer, and an odd number of hidden layers may be placed between input and output layers.
  • the number of nodes in each layer may be reduced from the number of nodes in the input layer to an intermediate layer called the bottleneck layer (encoding), and then expanded symmetrically and reduced from the bottleneck layer to the output layer (symmetrical to the input layer).
  • Autoencoders can perform nonlinear dimensionality reduction.
  • the number of input layers and output layers can be corresponded to the dimension after preprocessing of the input data.
  • the number of nodes in the hidden layer included in the encoder may have a structure that decreases as the distance from the input layer increases. If the number of nodes in the bottleneck layer (the layer with the fewest nodes located between the encoder and decoder) is too small, not enough information may be conveyed, so if it is higher than a certain number (e.g., more than half of the input layers, etc.) ) may be maintained.
  • a certain number e.g., more than half of the input layers, etc.
  • a neural network may be trained in at least one of supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning.
  • Learning of a neural network may be a process of applying knowledge for the neural network to perform a specific operation to the neural network.
  • Neural networks can be trained to minimize output errors.
  • neural network learning learning data is repeatedly input into the neural network, the output of the neural network and the error of the target for the learning data are calculated, and the error of the neural network is transferred from the output layer of the neural network to the input layer in the direction of reducing the error. This is the process of updating the weight of each node in the neural network through backpropagation.
  • learning data in which the correct answer is labeled for each learning data is used i.e., labeled learning data
  • the correct answer may not be labeled in each learning data.
  • the training data may be data in which each training data is labeled with a category. Labeled training data is input to the neural network, and the error can be calculated by comparing the output (category) of the neural network with the label of the training data.
  • the error can be calculated by comparing the input training data with the neural network output. The calculated error is backpropagated in the reverse direction (i.e., from the output layer to the input layer) in the neural network, and the connection weight of each node in each layer of the neural network can be updated according to backpropagation. The amount of change in the connection weight of each updated node may be determined according to the learning rate.
  • the neural network's calculation of input data and backpropagation of errors can constitute a learning cycle (epoch).
  • the learning rate may be applied differently depending on the number of repetitions of the learning cycle of the neural network. For example, in the early stages of neural network training, a high learning rate can be used to increase efficiency by allowing the neural network to quickly achieve a certain level of performance, and in the later stages of training, a low learning rate can be used to increase accuracy.
  • the training data can generally be a subset of real data (i.e., the data to be processed using the learned neural network), and thus the error for the training data is reduced, but the error for the real data is reduced. There may be an incremental learning cycle.
  • Overfitting is a phenomenon in which errors in actual data increase due to excessive learning on training data. For example, a phenomenon in which a neural network that learned a cat by showing a yellow cat fails to recognize that it is a cat when it sees a non-yellow cat may be a type of overfitting. Overfitting can cause errors in machine learning algorithms to increase. To prevent such overfitting, various optimization methods can be used. To prevent overfitting, methods such as increasing the training data, regularization, dropout to disable some of the network nodes during the learning process, and use of a batch normalization layer are used. It can be applied.
  • FIG. 4 is a flowchart illustrating an example of a method for detecting a landmark from a 3D volume image according to an embodiment of the present disclosure.
  • the operations of FIG. 4 may be performed by the processor 130 of the server 100.
  • the processor 130 obtains input data from a 3D volume image captured of a target portion of an object (S400).
  • the target area of the object may refer to the head including the patient's oral region, but is not limited thereto.
  • the processor 130 may extract a 2D skin image representing the frontal (coronal) and lateral (sagittal) skin regions of the patient's head from a 3D volume image of the patient's head. Furthermore, the processor 130 may extract a depth image. The two-dimensional skin image and depth image extracted in this way can be used as input data.
  • the processor 130 may use an extraction algorithm, but is not limited to this.
  • the processor 130 may extract a 2D skin image and a depth image from a 3D volume image through software rendering.
  • the processor 130 inputs the input data obtained in this way to the first landmark detection model (S410), and uses the first landmark detection model to detect multiple images of the first part of the target area.
  • Detect landmarks S420.
  • the first landmark detection model may be an artificial intelligence-based model learned to detect a plurality of landmarks from each skin area on the front of the head and the side of the head based on input data.
  • the first landmark detection model is a first detection model learned to detect a plurality of landmarks from the skin area on the front of the head and the skin area on the side of the head. It may include a second detection model learned to detect a plurality of landmarks.
  • the first landmark detection model will be described in detail with reference to FIG. 6.
  • Figure 5 is a schematic illustration for explaining a first landmark detection model according to an embodiment of the present disclosure.
  • the first landmark detection model 500 is a first detection model 530 learned to detect a plurality of landmarks of the first group from the first two-dimensional image 510 corresponding to the front of the head. and a second detection model 540 learned to detect a plurality of landmarks of the second group from the second two-dimensional image 520 corresponding to the side of the head.
  • the learning process of the first landmark detection model 500 will be described in detail with reference to FIG. 9 below.
  • the processor 130 inputs the first two-dimensional image 510 and the depth image into the first detection model 530, and uses the first detection model 530 to detect a plurality of landmarks of the first group ( 550) can be detected. Subsequently, the processor 130 inputs the second two-dimensional image 520 into the second detection model 540 and detects a plurality of landmarks 560 of the second group using the second detection model 540. can do.
  • the first detection model 530 may output two-dimensional coordinate values for a plurality of landmarks 550 of the first group by using the first two-dimensional image 510 and the depth image as input. Additionally, the second detection model 540 may receive the second two-dimensional image 520 as input and output two-dimensional coordinate values for the plurality of landmarks 560 of the second group.
  • the two-dimensional coordinate values of the output plurality of landmarks 550 of the first group consist of x-axis coordinate values and z-axis coordinate values
  • the output plurality of landmarks 560 of the second group The two-dimensional coordinate value for may be composed of a y-axis coordinate value and a z-axis coordinate value.
  • the processor 130 combines at least some of the detected two-dimensional coordinate values for the plurality of landmarks 550 of the first group and the two-dimensional coordinate values of the plurality of landmarks 560 of the second group to Three-dimensional coordinate values can be generated as a plurality of landmarks for the first portion.
  • the processor 130 can detect 19 landmarks (eg, Glabella, soft tissue Nasion, Nasal Dorsum, etc.) for the skin area using the first landmark detection model 500.
  • FIG. 6 is an example diagram for explaining the schematic structure of a detection model according to an embodiment of the present disclosure.
  • each of the first detection model 530 and the second detection model 540 of FIG. 5 may have the structure of the detection model 600 of FIG. 6.
  • the detection model 600 includes at least one convolution layer 610, a convolution channel, a pooling channel, etc. to extract features of the input image by performing a convolution operation.
  • the CNN 620 may preferably be a CNN such as MobileNet V1/V2, which has sufficiently high accuracy and low computational complexity, uses low energy, and has a small model size, but is not limited thereto. Since the structure of the detection model 600 described in FIG. 6 is an example, additional layers may exist or some of the layers may be omitted.
  • the processor 130 inputs the 3D volume image into the second landmark detection model (S430), and uses the second landmark detection model to detect a plurality of lands for the second part of the target area. Detect the mark (S440).
  • the second landmark detection model is a third detection model for detecting a plurality of 3D cropped images in which a plurality of landmarks for the second part are located based on the 3D volume image, and a plurality of detected 3D It may include a fourth detection model for detecting a plurality of landmarks for the second portion from the cropped image.
  • the second landmark detection model may be a C2F (Coarse to Fine) 3D CNN, but is not limited thereto.
  • a 3D cropped image in the present disclosure may mean an image edited to include at least a portion of the target image.
  • a 3D cropped image including a landmark corresponding to a second portion in a 3D volume image may be detected.
  • Figure 7 is a schematic illustration for explaining a second landmark detection model according to an embodiment of the present disclosure.
  • the second landmark detection model 700 is used to detect a crop image 730 corresponding to a candidate area where each of a plurality of landmarks for the second part is located from the 3D volume image 710.
  • a plurality of fourth detection models learned to detect a plurality of landmarks for the second part from the learned third detection model 720 and a plurality of cropped images 730 detected from the third detection model 720 740.
  • the second part refers to the bone area of the head
  • the cropped image refers to a 3D cropped image.
  • the learning process of the second landmark detection model 700 will be described in detail with reference to FIG. 11 below.
  • a plurality of fourth detection models are configured to correspond to each of the plurality of cropped images, and they may have a parallel structure.
  • the candidate area may include at least one location predicted by each of a plurality of landmarks for the second part, and each candidate area may overlap at least partially with another candidate area.
  • the processor 130 changes the 3D volume image 710 into a 3D tensor to input it to the third detection model 720, and uses the 3D tensor as input data to input the third detection model 720. ) can be entered.
  • the processor 130 uses the third detection model 720 to detect a candidate area including a position predicted by each of a plurality of landmarks for the second part and generate a crop image corresponding to the detected candidate area. You can.
  • the processor 130 may detect a plurality of cropped images corresponding to a plurality of candidate areas using the third detection model 720.
  • the third detection model 720 takes a 3D tensor as input and outputs a cropped image corresponding to a candidate area for each of a plurality of landmarks for the second part, or a plurality of landmarks A 3D volume image representing each candidate area can also be output.
  • the processor 130 inputs the plurality of cropped images 730 into each of the plurality of fourth detection models 740 corresponding to each of the plurality of cropped images 730, and generates the plurality of fourth detection models 740.
  • a plurality of landmarks 750 for the second part can be detected.
  • Each fourth detection model may use each cropped image as an input and output at least one landmark detected in each candidate area as output data.
  • the output data is the 3D coordinate values (x1, y1, z1) for the first landmark detected from the candidate area of the first cropped image 730a, and the candidate area of the second cropped image 730b.
  • 3D coordinate values (x2, y2, z2) for the second landmark, 3D coordinate values (x3, y3, z3) for the third landmark detected from the candidate area of the third cropped image 730c, 3D coordinate values (x4, y4, z4) for the fourth landmark detected from the candidate area of the fourth cropped image 730d... may include 3D coordinate values (xn, yn, zn) for the nth landmark detected from the candidate area of the nth cropped image 730n.
  • n may be a natural number greater than 4. That is, each of the plurality of fourth detection models 740 according to an embodiment of the present disclosure takes each cropped image as an input and outputs a three-dimensional coordinate value 750 for the landmark detected from the candidate area of each cropped image. You can.
  • the processor 130 may generate a 3D landmark 760 for the second portion including the 3D coordinate values detected in this way. Specifically, the processor 130 processes a first landmark, a second landmark, a third landmark,... , the 3D coordinate value 750 for the n-th landmark can be converted into a 3D landmark coordinate value in the 3D volume image to generate a plurality of 3D landmarks for the bone area of the target region. Through this, the processor 130 uses the second landmark detection model 700 to detect 49 landmarks for the bone area (e.g. Nasion, sella, R, L Po, R, L Or, R, L Pertygoid, etc. ) can be detected.
  • 49 landmarks for the bone area e.g. Nasion, sella, R, L Po, R, L Or, R, L Pertygoid, etc.
  • the plurality of fourth detection models 740 may be artificial intelligence-based models learned to detect each landmark in response to each of the plurality of landmarks. For example, if the number of landmarks for the bone area is 49, each of the plurality of fourth detection models 740 may be an artificial intelligence-based model learned to detect each of the 49 landmarks.
  • the processor 130 inputs each of the plurality of 3D cropped images into each of the 49 fourth detection models, and uses each of the 49 fourth detection models to determine 49 3D landmark coordinates from the plurality of 3D cropped images. The value can be detected. In this way, by providing a detection model for each landmark, high-accuracy detection of 3D landmarks is possible.
  • FIG. 8 is an example diagram for explaining the schematic structure of a detection model according to an embodiment of the present disclosure.
  • each of the third detection model 720 and the plurality of fourth detection models 740 of FIG. 7 may have the structure of the detection model 800 of FIG. 8.
  • the detection model 800 includes at least one convolution layer 805 that performs a convolution operation, a batch normalization (BN) layer 810, an activation function layer (RELU) 815, and max pooling. (Max Pooling) layer 820, CNN 825, BN layer 830, and FC layer 835.
  • the CNN 825 preferably solves the problem that weights are not properly updated in layers close to the input layer (vanishing-gradient problem), provides enhanced feature propagation, and reuses feature values. It can be a CNN such as DenseNet121 that can reduce the number of parameters, but is not limited to this. Since the structure of the detection model 800 described in FIG. 8 is exemplary, additional layers may exist or some of the layers may be omitted.
  • the processor 130 generates a plurality of landmarks for the target area based on the plurality of landmarks for the first part and the plurality of landmarks for the second part (S450). Specifically, the processor 130 detects using the 3D coordinate values of a plurality of landmarks for the first portion detected using the first landmark detection model 500 and the second landmark detection model 700. The 3D coordinate values of the plurality of landmarks for the second part may be combined to generate the 3D coordinate values of the plurality of landmarks for the target area.
  • the processor 130 may provide a web page indicating 3D coordinate values of a plurality of landmarks for the target area.
  • the landmark detection method extracts landmarks by distinguishing the skin area and bone area of the head from a 3D volume image using an artificial intelligence-based model, thereby minimizing landmark detection time and , detection accuracy can be improved.
  • Figure 9 is an example diagram for explaining the learning process of the first landmark detection model according to an embodiment of the present disclosure. In the presented embodiment, the following operations may be performed by the processor 130 of the server 100.
  • the processor 130 may perform a first preprocessing 905 to convert the learning data 900 into a three-dimensional tensor.
  • the learning data 900 is a 3D volume image obtained by photographing a target area corresponding to the head, and may be 200 to 300 3D CT images.
  • the first preprocessing 905 performs a linear transform to convert a 3D volume image into a 3D tensor and converts the 3D tensor into 3 with a voxel size of (1, 1, 1). It may include, but is not limited to, resampling to convert to a dimensional tensor.
  • the processor 130 may perform primary data augmentation 910 on the 3D tensor to augment the number of learning data.
  • the first data augmentation 910 is data that generates a plurality of 3D tensors and a plurality of 3D coordinate values by rotating (shifting) the 3D tensor and each 3D coordinate value for the 3D tensor by a preset angle. Augmentation methods may be used.
  • the processor 130 may generate a plurality of 3D tensors by rotating a 3D tensor along the 3D y-axis and z-axis.
  • the imaging height may be different for each user and the user may move the head during imaging, so the processor 130 can rotate the 3D tensor by various angles and use it as learning data.
  • an augmented image that is approximately 21 times the size of the existing image can be generated.
  • the processor 130 performs first learning data acquisition 915 for extracting a two-dimensional image of the front of the head from a three-dimensional tensor and second learning data acquisition 920 for extracting a two-dimensional image of the side of the head. It can be done. First learning data acquisition 915 and second learning data acquisition 920 may be performed through algorithms for this purpose.
  • the processor 130 may render a 3D tensor and extract a 2D image and a depth image of the front of the head.
  • the processor 130 may extract a 2D image of the side of the head by rendering a 3D tensor.
  • the extracted two-dimensional image may be, for example, a two-dimensional tensor.
  • the processor 130 may perform a second preprocessing 925 on the first learning data and a second preprocessing 930 on the second learning data.
  • the second preprocessing 925 for the first learning data and the second preprocessing 930 for the second learning data each normalize the two-dimensional image and make the size of the second image a preset size. It may include padding that fills empty space with a preset value, but is not limited to this.
  • the processor 130 may perform secondary data augmentation 935 on the second preprocessed first training data and secondary data augmentation 940 on the second preprocessed second training data.
  • the data augmentation method described above may be used.
  • the processor 130 may include second preprocessed first training data, that is, a second preprocessed two-dimensional image for the front of the head, a second preprocessed depth image, and two-dimensional coordinate values (x, z) for each image. ) by a preset angle to generate a plurality of two-dimensional images, a plurality of depth images, and a plurality of two-dimensional coordinate values, thereby rotating the two-dimensional image, depth image, and two-dimensional coordinate values by various angles to generate first learning data.
  • the processor 130 rotates the second preprocessed second learning data, that is, the second preprocessed two-dimensional image for the side of the head, and the two-dimensional coordinate values (y, z) for each image by a preset angle to obtain a plurality of preprocessed learning data.
  • the two-dimensional image and two-dimensional coordinates can be rotated by various angles and used as second learning data. Through this, for example, an enhanced image that is approximately 10 to 16 times larger than the existing image can be generated.
  • the processor 130 may perform first model training 945 and second model training 950.
  • the first model learning 945 uses the first learning data augmented through the secondary data augmentation 935 as input and uses the first detection model 530 to detect a plurality of landmarks from the skin area on the front of the head. It may be a learning behavior.
  • the second model learning (1050) trains the second detection model (540) to detect a plurality of landmarks from the skin area on the side of the head by using the second learning data augmented through the secondary data augmentation (940) as input. It could be a movement.
  • Figure 10 is an example diagram for explaining the inference process of the first landmark detection model according to an embodiment of the present disclosure. In the presented embodiment, the following operations may be performed by the processor 130 of the server 100.
  • the processor 130 performs a first preprocessing 1000 on the 3D volume image 710 to convert it into a 3D tensor, and from the 3D tensor a 2D image of the front of the head of the skin area.
  • First input data acquisition 1010 for extracting and second input data acquisition 1020 for extracting a two-dimensional image of the head side of the skin area may be performed.
  • the first preprocessing (1000), the first input data acquisition (1010), and the second input data acquisition (1020) are the first preprocessing (905), the first learning data acquisition (915) and the first learning data acquisition (915) described above with reference to FIG. 9. This may be at least the same operation as the second learning data acquisition 920.
  • the processor 130 acquires a first 2-dimensional image and a depth image for the front of the head from a 3D tensor as first input data through first input data acquisition 1010, and acquires second input data 1020. ), a second two-dimensional image of the side of the head can be obtained as second input data.
  • the processor 130 may perform a second preprocessing 1030 on the first input data and a second preprocessing 1040 on the second input data.
  • the second preprocessing (1030, 1040) may be at least the same operation as the second preprocessing (925, 930) described above with reference to FIG. 9.
  • the processor 130 may perform two-dimensional landmark prediction 1050 from the second pre-processed first input data and perform two-dimensional landmark prediction 1060 from the second pre-processed second input data.
  • the two-dimensional landmark prediction (1050, 1060) uses the first landmark detection model 500 described above with reference to FIG. 5 to predict a plurality of images of the first group from the first two-dimensional image 510 and the depth image. This may mean an operation of detecting a landmark 550 and detecting a plurality of landmarks 560 of the second group from the second two-dimensional image 520. That is, the processor 130 predicts the two-dimensional landmark coordinate values (x, z) and the second pre-processed Two-dimensional landmark coordinate values (y, z) predicted for the side of the head can be obtained from the second input data.
  • the processor 130 may perform 3D landmark prediction 1070 and perform post-processing 1080 to generate a 3D landmark for the target area.
  • 3D landmark prediction 1070 may refer to the operation of generating 3D coordinate values by combining at least some of the 2D landmark coordinate values obtained through 2D landmark prediction 1050 and 1060.
  • post-processing 1080 refers to the operation of acquiring modified 3D coordinate values (i.e., 3D coordinate values in a 3D volume image) based on the 3D tensor and 3D coordinate values, and an algorithm for this etc. can be used.
  • the processor 130 predicts 2D landmark coordinate values (x, z) predicted for the front of the head and 2D landmark coordinate values (y, z) can be combined to generate 3D landmark coordinate values (x, y, z).
  • processor 130 may combine the x coordinates predicted for the front of the head with the y, z coordinates predicted for the sides of the head, or the x, z coordinates predicted for the front of the head and the y coordinates predicted for the sides of the head.
  • 3D landmark coordinate values (x, y, z) for the skin area can be generated.
  • the processor 130 searches for a frontal image in the 3-dimensional tensor obtained through the first pre-processing (1000) using the (edge) can be detected. Subsequently, the processor 130 finds the coordinate value corresponding to the skin closest to the detected edge and converts the corresponding landmark coordinate value into the found coordinate value, thereby converting the predicted 3D coordinate value into the 3D coordinate value in the skin area. By moving to , the difference between the 3D coordinate value in the skin area and the predicted 3D coordinate value can be minimized.
  • the processor 130 may output the post-processed 3D landmark coordinate values as a plurality of landmarks for the first portion.
  • Figure 11 is an example diagram for explaining the learning process of a second landmark detection model according to an embodiment of the present disclosure. In the presented embodiment, the following operations may be performed by the processor 130 of the server 100.
  • the processor 130 may perform preprocessing 1110 to convert the learning data 1100 into a three-dimensional tensor.
  • the preprocessing 1110 may use a masking operation method to remove the remaining areas other than the bone area from the head area of the 3D volume image.
  • the processor 130 may remove the remaining area excluding the bone area from the head area of the 3D volume image and convert the 3D volume image including the bone area into a 3D tensor.
  • the processor 130 may perform data augmentation 1120 on the 3D tensor to augment the number of learning data.
  • the data augmentation 1120 like the first data augmentation 910 described above with reference to FIG. 9, rotates the 3D tensor and each 3D coordinate value for the 3D tensor by a preset angle to create a plurality of 3D tensors.
  • a data augmentation method that generates a plurality of three-dimensional coordinate values can be used.
  • the processor 130 may perform third model learning 1130 on the augmented 3D tensor.
  • the third model learning 1130 uses training data increased through data augmentation as input to detect a plurality of candidate regions predicted by the positions of a plurality of 3D landmarks existing in the bone region (a third detection model (3130)).
  • 720) may be a learning operation.
  • the processor 130 may perform a plurality of fourth model training 1140 on a plurality of cropped images.
  • the plurality of fourth model training 1140 may be an operation of training a plurality of fourth detection models 740 corresponding to a plurality of cropped images to detect a plurality of 3D landmarks from the plurality of cropped images.
  • Figure 12 is an example diagram for explaining the inference process of a second landmark detection model according to an embodiment of the present disclosure. In the presented embodiment, the following operations may be performed by the processor 130 of the server 100.
  • the processor 130 performs preprocessing (1200) on the 3D volume image 710, converts it into a 3D tensor, and predicts 3D landmark candidate area for the 3D tensor (1210). It can be done.
  • the preprocessing 1200 may be at least the same operation as the preprocessing 1110 described above with reference to FIG. 11 .
  • the processor 130 inputs a 3D tensor and 3D coordinate values into the third detection model 730, and uses the third detection model 730 to detect the bone.
  • a plurality of 3D crop images corresponding to a plurality of candidate areas predicted by the positions of a plurality of 3D landmarks existing in the area can be generated. That is, the third detection model 730 may output a plurality of 3D cropped images corresponding to a plurality of candidate regions by using the augmented 3D tensor and the augmented 3D coordinate values as input.
  • the processor 130 may perform a plurality of 3D landmark predictions 1220 on a plurality of 3D cropped images.
  • the processor 130 inputs a plurality of cropped images into a plurality of fourth detection models 740, and uses the plurality of fourth detection models 740 to predict a plurality of 3D landmarks.
  • a plurality of 3D landmark coordinate values can be detected from the candidate area of the cropped image. That is, the plurality of fourth detection models 740 may receive a plurality of 3D cropped images as input and output a plurality of 3D landmark coordinate values (x, y, z) predicted from a plurality of candidate areas.
  • the processor 130 may perform 3D landmark generation 1230 for the bone area based on the 3D landmark coordinate values detected from each of the plurality of 3D cropped images. Specifically, the processor 130 can generate 3D landmark coordinate values for the bone region by converting the 3D landmark coordinate values predicted from each candidate region into 3D landmark coordinate values in the 3D volume image. there is.
  • the processor 130 may combine the 3D landmark coordinate values for the skin area and the 3D landmark coordinate values for the bone area to generate 3D landmark coordinate values for the target area.
  • the landmark detection method divides the head into a skin area and a bone area and detects the landmark through an artificial intelligence-based model specialized for each landmark, thereby minimizing the time required for landmark detection. , detection accuracy can be increased, and more accurate coordinate values for each landmark can be obtained.
  • the successive detection rate (SDR) is 93% or more within an error range of 3 mm
  • the mean distance error (MDE) is The error range may be within 1.938 mm.
  • a computer-readable medium storing a data structure is disclosed.
  • Data structure can refer to the organization, management, and storage of data to enable efficient access and modification of data.
  • Data structure can refer to the organization of data to solve a specific problem (e.g., retrieving data, storing data, or modifying data in the shortest possible time).
  • a data structure may be defined as a physical or logical relationship between data elements designed to support a specific data processing function.
  • Logical relationships between data elements may include connection relationships between user-defined data elements.
  • Physical relationships between data elements may include actual relationships between data elements that are physically stored in a computer-readable storage medium (e.g., a persistent storage device).
  • a data structure may specifically include a set of data, relationships between data, and functions or instructions applicable to the data. Effectively designed data structures allow computing devices to perform computations while minimizing the use of the computing device's resources. Specifically, computing devices can increase the efficiency of operations, reading, insertion, deletion, comparison, exchange, and search through effectively designed data structures.
  • Data structures can be divided into linear data structures and non-linear data structures depending on the type of data structure.
  • a linear data structure may be a structure in which only one piece of data is connected to another piece of data.
  • Linear data structures may include List, Stack, Queue, and Deque.
  • a list can refer to a set of data that has an internal order.
  • the list may include a linked list.
  • a linked list may be a data structure in which data is connected in such a way that each data is connected in a single line with a pointer. In a linked list, a pointer may contain connection information to the next or previous data.
  • a linked list can be expressed as a singly linked list, a doubly linked list, or a circularly linked list.
  • a stack may be a data listing structure that allows limited access to data.
  • a stack can be a linear data structure in which data can be processed (for example, inserted or deleted) at only one end of the data structure.
  • Data stored in the stack may have a data structure (LIFO-Last in First Out) where the later it enters, the sooner it comes out.
  • a queue is a data listing structure that allows limited access to data. Unlike the stack, it can be a data structure (FIFO-First in First Out) where data stored later is released later.
  • a deck can be a data structure that can process data at both ends of the data structure.
  • a non-linear data structure may be a structure in which multiple pieces of data are connected behind one piece of data.
  • Nonlinear data structures may include graph data structures.
  • a graph data structure can be defined by vertices and edges, and an edge can include a line connecting two different vertices.
  • Graph data structure may include a tree data structure.
  • a tree data structure may be a data structure in which there is only one path connecting two different vertices among a plurality of vertices included in the tree. In other words, it may be a data structure that does not form a loop in the graph data structure.
  • Data structures may include neural networks. And the data structure including the neural network may be stored in a computer-readable medium. Data structures including neural networks also include data preprocessed for processing by a neural network, data input to the neural network, weights of the neural network, hyperparameters of the neural network, data acquired from the neural network, activation functions associated with each node or layer of the neural network, neural network It may include a loss function for learning.
  • a data structure containing a neural network may include any of the components disclosed above.
  • the data structure including the neural network includes preprocessed data for processing by the neural network, data input to the neural network, weights of the neural network, hyperparameters of the neural network, data acquired from the neural network, activation functions associated with each node or layer of the neural network, neural network It may be configured to include all or any combination of the loss function for learning.
  • a data structure containing a neural network may include any other information that determines the characteristics of the neural network.
  • the data structure may include all types of data used or generated in the computational process of a neural network and is not limited to the above.
  • Computer-readable media may include computer-readable recording media and/or computer-readable transmission media.
  • a neural network can generally consist of a set of interconnected computational units, which can be referred to as nodes. These nodes may also be referred to as neurons.
  • a neural network consists of at least one node.
  • the data structure may include data input to the neural network.
  • a data structure containing data input to a neural network may be stored in a computer-readable medium.
  • Data input to the neural network may include learning data input during the neural network learning process and/or input data input to the neural network on which training has been completed.
  • Data input to the neural network may include data that has undergone pre-processing and/or data subject to pre-processing.
  • Preprocessing may include a data processing process to input data into a neural network. Therefore, the data structure may include data subject to preprocessing and data generated by preprocessing.
  • the above-described data structure is only an example and the present disclosure is not limited thereto.
  • the data structure may include the weights of the neural network. (In this specification, weights and parameters may be used with the same meaning.) And the data structure including the weights of the neural network may be stored in a computer-readable medium.
  • a neural network may include multiple weights. Weights may be variable and may be varied by the user or algorithm in order for the neural network to perform the desired function. For example, when one or more input nodes are connected to one output node by respective links, the output node is set to the values input to the input nodes connected to the output node and the links corresponding to each input node. Based on the weight, the data value output from the output node can be determined.
  • the above-described data structure is only an example and the present disclosure is not limited thereto.
  • the weights may include weights that are changed during the neural network learning process and/or weights for which neural network learning has been completed.
  • Weights that change during the neural network learning process may include weights that change at the start of the learning cycle and/or weights that change during the learning cycle.
  • the above-described data structure is only an example and the present disclosure is not limited thereto.
  • the data structure including the weights of the neural network may be stored in a computer-readable storage medium (e.g., memory, hard disk) after going through a serialization process.
  • Serialization can be the process of converting a data structure into a form that can be stored on the same or a different computing device and later reorganized and used.
  • Computing devices can transmit and receive data over a network by serializing data structures.
  • Data structures containing the weights of a serialized neural network can be reconstructed on the same computing device or on a different computing device through deserialization.
  • the data structure including the weights of the neural network is not limited to serialization.
  • the data structure including the weights of the neural network is a data structure to increase computational efficiency while minimizing the use of computing device resources (e.g., in non-linear data structures, B-Tree, Trie, m-way search tree, AVL tree, Red-Black Tree) may be included.
  • computing device resources e.g., in non-linear data structures, B-Tree, Trie, m-way search tree, AVL tree, Red-Black Tree.
  • the data structure may include hyper-parameters of a neural network. And the data structure including the hyperparameters of the neural network can be stored in a computer-readable medium.
  • a hyperparameter may be a variable that can be changed by the user. Hyperparameters include, for example, learning rate, cost function, number of learning cycle repetitions, weight initialization (e.g., setting the range of weight values subject to weight initialization), Hidden Unit. It may include a number (e.g., number of hidden layers, number of nodes in hidden layers).
  • the above-described data structure is only an example and the present disclosure is not limited thereto.
  • Figure 13 is a brief, general schematic diagram of an example computing environment in which embodiments of the present disclosure may be implemented.
  • program modules include routines, programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
  • routines programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
  • program modules include routines, programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
  • the described embodiments of the disclosure can also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote memory storage devices.
  • Computers typically include a variety of computer-readable media.
  • Computer-readable media can be any medium that can be accessed by a computer, and such computer-readable media includes volatile and non-volatile media, transitory and non-transitory media, removable and non-transitory media. Includes removable media.
  • Computer-readable media may include computer-readable storage media and computer-readable transmission media.
  • Computer-readable storage media refers to volatile and non-volatile media, transient and non-transitory media, removable and non-removable, implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Includes media.
  • Computer readable storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital video disk (DVD) or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage. This includes, but is not limited to, a device, or any other medium that can be accessed by a computer and used to store desired information.
  • a computer-readable transmission medium typically implements computer-readable instructions, data structures, program modules, or other data on a modulated data signal, such as a carrier wave or other transport mechanism. Includes all information delivery media.
  • modulated data signal refers to a signal in which one or more of the characteristics of the signal have been set or changed to encode information within the signal.
  • computer-readable transmission media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above are also intended to be included within the scope of computer-readable transmission media.
  • An example environment 1300 is shown that implements various aspects of the present disclosure, including a computer 1302, which includes a processing unit 1304, a system memory 1306, and a system bus 1308. do.
  • System bus 1308 couples system components, including but not limited to system memory 1306, to processing unit 1304.
  • Processing unit 1304 may be any of a variety of commercially available processors. Dual processors and other multiprocessor architectures may also be used as processing units 1304.
  • System bus 1308 may be any of several types of bus structures that may further be interconnected to a memory bus, peripheral bus, and local bus using any of a variety of commercial bus architectures.
  • System memory 1306 includes read only memory (ROM) 1310 and random access memory (RAM) 1312.
  • the basic input/output system (BIOS) is stored in non-volatile memory 1310, such as ROM, EPROM, and EEPROM, and is a basic input/output system that helps transfer information between components within the computer 1302, such as during startup. Contains routines.
  • RAM 1312 may also include high-speed RAM, such as static RAM, for caching data.
  • Computer 1302 may also include an internal hard disk drive (HDD) 1314 (e.g., EIDE, SATA)—the internal hard disk drive 1314 may also be configured for external use within a suitable chassis (not shown).
  • a magnetic floppy disk drive (FDD) 1316 e.g., for reading from or writing to a removable diskette 1318
  • an optical disk drive 1320 e.g., a CD-ROM (for reading the disk 1322 or reading from or writing to other high-capacity optical media such as DVD).
  • Hard disk drive 1314, magnetic disk drive 1316, and optical disk drive 1320 are connected to system bus 1308 by hard disk drive interface 1324, magnetic disk drive interface 1326, and optical drive interface 1328, respectively. ) can be connected to.
  • the interface 1324 for implementing an external drive includes at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.
  • drives and their associated computer-readable media provide non-volatile storage of data, data structures, computer-executable instructions, and the like.
  • drive and media correspond to storing any data in a suitable digital format.
  • removable optical media such as HDDs, removable magnetic disks, and CDs or DVDs
  • removable optical media such as zip drives, magnetic cassettes, flash memory cards, cartridges, etc.
  • other types of computer-readable media, such as the like may also be used in the example operating environment and that any such media may contain computer-executable instructions for performing the methods of the present disclosure.
  • a number of program modules may be stored in drives and RAM 1312, including an operating system 1330, one or more application programs 1332, other program modules 1334, and program data 1336. All or portions of the operating system, applications, modules and/or data may also be cached in RAM 1312. It will be appreciated that the present disclosure may be implemented on various commercially available operating systems or combinations of operating systems.
  • a user may enter commands and information into computer 1302 through one or more wired/wireless input devices, such as a keyboard 1338 and a pointing device such as mouse 1340.
  • Other input devices may include microphones, IR remote controls, joysticks, game pads, stylus pens, touch screens, etc.
  • input device interface 1342 which is often connected to the system bus 1308, but may also include a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, It can be connected by other interfaces, etc.
  • a monitor 1344 or other type of display device is also connected to system bus 1308 through an interface, such as a video adapter 1346.
  • computers typically include other peripheral output devices (not shown) such as speakers, printers, etc.
  • Computer 1302 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 1348, via wired and/or wireless communications.
  • Remote computer(s) 1348 may be a workstation, computing device computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other conventional network node, and is generally connected to computer 1302.
  • the logical connections depicted include wired/wireless connections to a local area network (LAN) 1352 and/or a larger network, such as a wide area network (WAN) 1354.
  • LAN and WAN networking environments are common in offices and companies and facilitate enterprise-wide computer networks, such as intranets, all of which can be connected to a worldwide computer network, such as the Internet.
  • computer 1302 When used in a LAN networking environment, computer 1302 is connected to local network 1352 through wired and/or wireless communications network interfaces or adapters 1356. Adapter 1356 may facilitate wired or wireless communication to LAN 1352, which also includes a wireless access point installed thereon for communicating with wireless adapter 1356.
  • the computer 1302 When used in a WAN networking environment, the computer 1302 may include a modem 1358 or be connected to a communicating computing device on the WAN 1354 or to establish communications over the WAN 1354, such as over the Internet. Have other means. Modem 1358, which may be internal or external and a wired or wireless device, is coupled to system bus 1308 via serial port interface 1342.
  • program modules described for computer 1302, or portions thereof may be stored in remote memory/storage device 1350. It will be appreciated that the network connections shown are exemplary and that other means of establishing a communications link between computers may be used.
  • Computer 1302 may be associated with any wireless device or object deployed and operating in wireless communications, such as a printer, scanner, desktop and/or portable computer, portable data assistant (PDA), communications satellite, wirelessly detectable tag. Performs actions to communicate with any device or location and telephone. This includes at least Wi-Fi and Bluetooth wireless technologies. Accordingly, communication may be a predefined structure as in a conventional network or may simply be ad hoc communication between at least two devices.
  • wireless communications such as a printer, scanner, desktop and/or portable computer, portable data assistant (PDA), communications satellite, wirelessly detectable tag.
  • PDA portable data assistant
  • Wi-Fi Wireless Fidelity
  • Wi-Fi is a wireless technology, like cell phones, that allows these devices, such as computers, to send and receive data indoors and outdoors, anywhere within the coverage area of a base station.
  • Wi-Fi networks use wireless technology called IEEE 802.11 (a, b, g, etc.) to provide secure, reliable, and high-speed wireless connections.
  • Wi-Fi can be used to connect computers to each other, the Internet, and wired networks (using IEEE 802.3 or Ethernet).
  • Wi-Fi networks can operate in the unlicensed 2.4 and 5 GHz wireless bands, for example, at data rates of 11 Mbps (802.11a) or 54 Mbps (802.11b), or in products that include both bands (dual band). .
  • the various embodiments presented herein may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques.
  • article of manufacture includes a computer program, carrier, or media accessible from any computer-readable storage device.
  • computer-readable storage media include magnetic storage devices (e.g., hard disks, floppy disks, magnetic strips, etc.), optical disks (e.g., CDs, DVDs, etc.), smart cards, and flash. Includes, but is not limited to, memory devices (e.g., EEPROM, cards, sticks, key drives, etc.).
  • various storage media presented herein include one or more devices and/or other machine-readable media for storing information.
  • It can be used in devices and systems for detecting landmarks from 3D volume images for oral health.

Landscapes

  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Radiology & Medical Imaging (AREA)
  • Veterinary Medicine (AREA)
  • Pathology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • Public Health (AREA)
  • High Energy & Nuclear Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Optics & Photonics (AREA)
  • General Physics & Mathematics (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Dentistry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Pulmonology (AREA)
  • Neurology (AREA)
  • Neurosurgery (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

A method for detecting a landmark from a three-dimensional volume image performed by a computing device, according to one embodiment of the present disclosure, may comprise the steps of: acquiring input data from a three-dimensional volume image in which a target site of an object is photographed; inputting the input data into a first landmark detection model; detecting a plurality of landmarks for a first part of the target site by using the first landmark detection model; inputting the three-dimensional volume image into a second landmark detection model; detecting a plurality of landmarks for a second part of the target site that is different from the first part of the target site by using the second landmark detection model; and generating a plurality of landmarks for the target site on the basis of the plurality of landmarks for the first part of the target site and the plurality of landmarks for the second part of the target site. The representative drawing may be Figure 4.

Description

3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 방법 및 장치Method and device for detecting landmarks from 3D volume images
본 개시는 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 방법 및 장치에 관한 것이다.The present disclosure relates to a method and device for detecting landmarks from a 3D volume image.
최근 심미치료 및/또는 교정치료 등과 같은 구강 건강에 대한 관심이 높아지면서 청소년 및 청년층뿐만 아니라 장년층까지도 이에 대한 수요가 늘어나고 있다. Recently, as interest in oral health, such as aesthetic treatment and/or orthodontic treatment, has increased, the demand for it is increasing not only among teenagers and young adults but also among the elderly.
심미치료 및/또는 교정치료를 진행하기 위해 치과, 구강악안면외과 또는 성형외과 등에서는 엑스레이(x-ray) 기기 및 CT(Computed Tomography) 기기 등을 이용하여 환자의 구강 골격, 안면, 치아 등을 촬영한 엑스레이, CT 영상 등과 같은 2차원 영상을 획득하고, 구강 교정 소프트웨어를 이용하여, 2차원 영상으로부터 해부학적 위치(Landmark)를 추출한 후 이를 기초로 진단 및 치료 계획을 수행한다.In order to perform aesthetic treatment and/or orthodontic treatment, dentistry, oral and maxillofacial surgery, or plastic surgery, etc. use x-ray and CT (Computed Tomography) devices to photograph the patient's oral skeleton, face, teeth, etc. Two-dimensional images such as X-rays and CT images are acquired, anatomical locations (landmarks) are extracted from the two-dimensional images using oral orthodontic software, and diagnosis and treatment plans are performed based on this.
그러나, 종래의 구강 교정 소프트웨어는 2차원 영상으로부터 랜드마크를 추출하고, 이를 기초로 진단 및 치료 계획을 위한 정보를 제공할 뿐, 2차원 영상으로부터 구강 골격, 안면, 치아 등을 종합적으로 분석하기엔 기술적인 어려움이 있다.However, conventional oral orthodontic software only extracts landmarks from two-dimensional images and provides information for diagnosis and treatment planning based on them, but is not technically sufficient to comprehensively analyze the oral skeleton, face, teeth, etc. from two-dimensional images. There are difficulties.
나아가, 보다 향상된 심미치료 및/또는 교정치료를 위해 3차원 볼륨 영상 기술을 기반으로 하는 디지털 교정 기술이 도입되고 있으나, 이러한 디지털 교정 기술은 2차원 영상을 이용하는 교정 기술보다 더 많은 계측 동작을 수행해야 하므로, 3차원 영상을 분석하는데 있어 더 많은 시간이 소요되고, 3차원 볼륨 영상의 복잡도 및 볼륨감으로 인해 3차원 영상 분석의 정확도가 떨어진다는 문제점이 있다.Furthermore, digital correction technology based on 3D volume imaging technology is being introduced for improved aesthetic treatment and/or orthodontic treatment, but this digital correction technology requires more measurement operations than correction technology using 2D images. Therefore, it takes more time to analyze the 3D image, and there is a problem in that the accuracy of the 3D image analysis is reduced due to the complexity and volume of the 3D volume image.
따라서, 신속하고 정확하게 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 방법이 요구된다.Therefore, a method for quickly and accurately detecting landmarks from a 3D volume image is required.
이와 관련하여 대한민국 등록특허 제10-2334480호가 안출되어 있다.In relation to this, Republic of Korea Patent No. 10-2334480 has been issued.
본 개시는 전술한 배경기술에 대응하여 안출된 것으로, 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 방법 및 사용자 장치를 제공하고자 한다. The present disclosure has been made in response to the above-described background technology, and seeks to provide a method and user device for detecting landmarks from a 3D volume image.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present disclosure are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.
전술한 바와 같은 과제를 해결하기 위한 본 개시의 실시예에 따라, 컴퓨팅 장치에 의해 수행되는, 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 방법은, 대상체의 목적 부위를 촬영한 3차원 볼륨 영상으로부터 입력 데이터를 획득하는 단계; 상기 입력 데이터를 제1 랜드마크 검출 모델에 입력시키는 단계; 상기 제1 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제1 부분에 대한 복수의 랜드마크(landmark)를 검출하는 단계; 상기 3차원 볼륨 영상을 제2 랜드마크 검출 모델에 입력시키는 단계; 상기 제2 랜드마크 검출 모델을 이용하여 상기 목적 부의의 상기 제1 부분과 다른 제2 부분에 대한 복수의 랜드마크를 검출하는 단계; 및 상기 제1 부분에 대한 복수의 랜드마크 및 상기 제2 부분에 대한 복수의 랜드마크에 기반하여 상기 목적 부위에 대한 복수의 랜드마크를 생성하는 단계;를 포함할 수 있다.According to an embodiment of the present disclosure for solving the above-described problem, a method for detecting a landmark from a 3D volume image performed by a computing device includes detecting a landmark from a 3D volume image of a target portion of an object. Obtaining input data; Inputting the input data into a first landmark detection model; detecting a plurality of landmarks for a first portion of the target area using the first landmark detection model; Inputting the 3D volume image into a second landmark detection model; detecting a plurality of landmarks for a second part of the target object that is different from the first part using the second landmark detection model; and generating a plurality of landmarks for the target area based on the plurality of landmarks for the first part and the plurality of landmarks for the second part.
또한, 상기 목적 부위는, 두부를 포함하고, 상기 제1 부분은, 상기 두부의 피부 영역을 의미하고, 상기 제2 부분은, 상기 두부의 뼈 영역을 의미할 수 있다.Additionally, the target area may include the head, the first part may mean a skin area of the head, and the second part may mean a bone area of the head.
또한, 상기 입력 데이터는, 상기 두부의 정면을 나타내는 제1 2차원 영상, 상기 제1 영상에 대응하는 깊이(depth) 영상 및 상기 두부의 측면을 나타내는 제2 2차원 영상을 포함할 수 있다.Additionally, the input data may include a first two-dimensional image representing the front of the head, a depth image corresponding to the first image, and a second two-dimensional image representing the side of the head.
또한, 상기 제1 랜드마크 검출 모델은, 상기 두부의 정면에 대한 랜드마크를 검출하도록 학습된 제1 검출 모델과 상기 두부의 측면에 대한 랜드마크를 검출하도록 학습된 제2 검출 모델을 포함할 수 있다.Additionally, the first landmark detection model may include a first detection model learned to detect landmarks for the front of the head and a second detection model learned to detect landmarks for the side of the head. there is.
또한, 상기 제1 랜드마크 검출 모델을 이용하여 상기 제1 부분에 대한 복수의 랜드마크를 검출하는 단계는, 상기 제1 영상 및 상기 깊이 영상을 상기 제1 검출 모델에 입력시키는 단계; 상기 제1 검출 모델을 이용하여 제1 그룹의 복수의 랜드마크를 검출하는 단계; 상기 제2 영상을 상기 제2 검출 모델에 입력시키는 동작; 상기 제2 검출 모델을 이용하여 제2 그룹의 복수의 랜드마크를 검출하는 단계; 및 상기 제1 그룹의 복수의 랜드마크와 상기 제2 그룹의 복수의 랜드마크에 기반하여 상기 제1 부분에 대한 복수의 랜드마크를 생성하는 단계;를 포함할 수 있다.Additionally, detecting a plurality of landmarks for the first portion using the first landmark detection model may include inputting the first image and the depth image into the first detection model; Detecting a plurality of landmarks of a first group using the first detection model; Inputting the second image into the second detection model; detecting a plurality of landmarks of a second group using the second detection model; and generating a plurality of landmarks for the first portion based on the plurality of landmarks of the first group and the plurality of landmarks of the second group.
또한, 상기 제1 검출 모델은, 상기 제1 영상 및 상기 깊이 영상을 입력으로 하여 상기 제1 그룹의 복수의 랜드마크를 예측하고, 상기 예측된 제1 그룹의 복수의 랜드마크에 대한 2차원 좌표 값을 출력하도록 구성되고, 상기 제2 검출 모델은, 상기 제2 영상을 입력으로 하여 상기 제2 그룹의 복수의 랜드마크를 예측하고, 상기 예측된 제2 그룹의 복수의 랜드마크에 대한 2차원 좌표 값을 출력하도록 구성될 수 있다. In addition, the first detection model predicts a plurality of landmarks of the first group by using the first image and the depth image as input, and provides two-dimensional coordinates for the predicted plurality of landmarks of the first group It is configured to output a value, and the second detection model predicts a plurality of landmarks of the second group using the second image as an input, and generates a two-dimensional image for the predicted plurality of landmarks of the second group. It may be configured to output coordinate values.
또한, 상기 제1 부분에 대한 복수의 랜드마크를 생성하는 단계는, 상기 제1 그룹의 복수의 랜드마크에 대한 2차원 좌표 값과 상기 제2 그룹의 복수의 랜드마크에 대한 2차원 좌표 값 중 적어도 일부를 결합하여 3차원 좌표 값을 생성하는 단계일 수 있다.In addition, the step of generating a plurality of landmarks for the first portion includes two-dimensional coordinate values for the plurality of landmarks in the first group and two-dimensional coordinate values for the plurality of landmarks in the second group. This may be a step of generating 3D coordinate values by combining at least some of them.
또한, 상기 제2 랜드마크 검출 모델은, 상기 3차원 볼륨 영상으로부터 상기 제2 부분에 대한 복수의 랜드마크가 위치하는 복수의 크롭 영상을 검출하도록 학습된 제3 검출 모델과, 상기 검출된 복수의 크롭 영상으로부터 상기 제2 부분에 대한 복수의 랜드마크를 검출하도록 학습된 복수의 제4 검출 모델을 포함할 수 있다.In addition, the second landmark detection model includes a third detection model learned to detect a plurality of cropped images in which a plurality of landmarks for the second part are located from the 3D volume image, and a plurality of the detected It may include a plurality of fourth detection models learned to detect a plurality of landmarks for the second portion from the cropped image.
또한, 상기 제2 랜드마크 검출 모델을 이용하여 상기 목적 부의의 상기 제2 부분에 대한 복수의 랜드마크를 검출하는 단계는, 상기 3차원 볼륨 영상을 상기 제3 검출 모델에 입력시키는 단계; 상기 제3 검출 모델을 이용하여 상기 복수의 크롭 영상을 검출하는 단계; 상기 검출된 복수의 크롭 영상을 상기 복수의 제4 검출 모델에 입력시키는 단계; 및 상기 복수의 제4 검출 모델을 이용하여 상기 제2 부분에 대한 복수의 랜드마크를 검출하는 단계;를 포함할 수 있다.Additionally, detecting a plurality of landmarks for the second portion of the target area using the second landmark detection model may include inputting the three-dimensional volume image into the third detection model; detecting the plurality of cropped images using the third detection model; Inputting the detected plurality of cropped images into the plurality of fourth detection models; and detecting a plurality of landmarks for the second portion using the plurality of fourth detection models.
또한, 상기 제1 부분에 대한 복수의 랜드마크를 생성하는 단계는, 상기 제1 그룹의 복수의 랜드마크에 대한 2차원 좌표 값과 상기 제2 그룹의 복수의 랜드마크에 대한 2차원 좌표 값 중 적어도 일부를 결합하여 3차원 좌표 값을 생성하는 단계일 수 있다. In addition, the step of generating a plurality of landmarks for the first portion includes two-dimensional coordinate values for the plurality of landmarks in the first group and two-dimensional coordinate values for the plurality of landmarks in the second group. This may be a step of generating 3D coordinate values by combining at least some of them.
또한, 상기 제2 랜드마크 검출 모델은, 상기 3차원 볼륨 영상으로부터 상기 제2 부분에 대한 복수의 랜드마크가 위치하는 복수의 크롭 영상을 검출하도록 학습된 제3 검출 모델과, 상기 검출된 복수의 크롭 영상으로부터 상기 제2 부분에 대한 복수의 랜드마크를 검출하도록 학습된 복수의 제4 검출 모델을 포함할 수 있다.In addition, the second landmark detection model includes a third detection model learned to detect a plurality of cropped images in which a plurality of landmarks for the second part are located from the 3D volume image, and a plurality of the detected It may include a plurality of fourth detection models learned to detect a plurality of landmarks for the second portion from the cropped image.
또한, 상기 제2 랜드마크 검출 모델을 이용하여 상기 목적 부의의 상기 제2 부분에 대한 복수의 랜드마크를 검출하는 단계는, 상기 3차원 볼륨 영상을 상기 제3 검출 모델에 입력시키는 단계; 상기 제3 검출 모델을 이용하여 상기 복수의 크롭 영상을 검출하는 단계; 상기 검출된 복수의 크롭 영상을 상기 복수의 제4 검출 모델에 입력시키는 단계; 및 상기 복수의 제4 검출 모델을 이용하여 상기 제2 부분에 대한 복수의 랜드마크를 검출하는 단계;를 포함할 수 있다.Additionally, detecting a plurality of landmarks for the second portion of the target area using the second landmark detection model may include inputting the three-dimensional volume image into the third detection model; detecting the plurality of cropped images using the third detection model; Inputting the detected plurality of cropped images into the plurality of fourth detection models; and detecting a plurality of landmarks for the second portion using the plurality of fourth detection models.
또한, 상기 제3 검출 모델은, 상기 3차원 볼륨 영상을 입력으로 하여 상기 3차원 볼륨 영상으로부터 상기 제2 부분에 대하여 상기 복수의 랜드마크로 예측되는 복수의 후보 영역을 검출하고, 상기 검출된 복수의 후보 영역에 해당하는 상기 복수의 크롭 영상을 출력하도록 구성될 수 있다.In addition, the third detection model uses the 3D volume image as an input to detect a plurality of candidate regions predicted as the plurality of landmarks for the second part from the 3D volume image, and It may be configured to output the plurality of cropped images corresponding to candidate areas.
또한, 상기 복수의 후보 영역은, 적어도 일부 중첩되고, 상기 제2 부분에 대한 복수의 랜드마크 각각으로 예측되는 적어도 하나의 위치를 포함할 수 있다.Additionally, the plurality of candidate areas may overlap at least in part and include at least one position predicted by each of a plurality of landmarks for the second part.
또한, 상기 복수의 제4 검출 모델 각각은, 상기 복수의 크롭 영상 각각에 대응하도록 구성될 수 있다.Additionally, each of the plurality of fourth detection models may be configured to correspond to each of the plurality of cropped images.
또한, 상기 복수의 제4 검출 모델 각각은, 각 크롭 영상을 입력으로 하여 상기 각 크롭 영상에 대응하는 후보 영역으로부터 적어도 하나의 랜드마크를 예측하고, 상기 예측된 적어도 하나의 랜드마크 각각에 대한 3차원 좌표 값을 출력하도록 구성될 수 있다.In addition, each of the plurality of fourth detection models takes each cropped image as an input and predicts at least one landmark from a candidate area corresponding to each cropped image, and 3 models for each of the predicted at least one landmark. It may be configured to output dimensional coordinate values.
또한, 상기 복수의 크롭 영상 각각은, 상기 복수의 후보 영역 각각에 해당하는 3차원 볼륨 영상일 수 있다.Additionally, each of the plurality of cropped images may be a 3D volume image corresponding to each of the plurality of candidate regions.
본 개시의 실시예에 따라, 컴퓨터 판독가능 저장 매체 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 하나 이상의 프로세서에서 실행되는 경우, 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 이하의 동작들을 수행하도록 하며, 상기 동작들은, 대상체의 목적 부위를 촬영한 3차원 볼륨 영상으로부터 입력 데이터를 획득하는 동작; 상기 입력 데이터를 제1 랜드마크 검출 모델에 입력시키는 동작; 상기 제1 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제1 부분에 대한 복수의 랜드마크(landmark)를 검출하는 동작; 상기 3차원 볼륨 영상을 제2 랜드마크 검출 모델에 입력시키는 동작; 상기 제2 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제2 부분에 대한 복수의 랜드마크를 검출하는 동작; 및 상기 제1 그룹의 랜드마크 및 상기 제2 그룹의 랜드마크에 기반하여 상기 목적 부위에 대한 복수의 랜드마크를 생성하는 동작;을 포함할 수 있다.According to an embodiment of the present disclosure, a computer program stored in a computer-readable storage medium, wherein the computer program, when executed on one or more processors, performs the following operations for detecting a landmark from a three-dimensional volume image, The operations include obtaining input data from a 3D volume image that captures a target portion of an object; Inputting the input data into a first landmark detection model; detecting a plurality of landmarks for a first portion of the target region using the first landmark detection model; Inputting the 3D volume image into a second landmark detection model; detecting a plurality of landmarks for a second portion of the target area using the second landmark detection model; and an operation of generating a plurality of landmarks for the target area based on the first group of landmarks and the second group of landmarks.
본 개시의 실시예에 따라, 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행 시, 상기 컴퓨팅 장치로 하여금 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 방법을 수행하도록 하며, 상기 방법은, 대상체의 목적 부위를 촬영한 3차원 볼륨 영상으로부터 입력 데이터를 획득하는 단계; 상기 입력 데이터를 제1 랜드마크 검출 모델에 입력시키는 단계; 상기 제1 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제1 부분에 대한 복수의 랜드마크(landmark)를 검출하는 단계; 상기 3차원 볼륨 영상을 제2 랜드마크 검출 모델에 입력시키는 단계; 상기 제2 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제2 부분에 대한 복수의 랜드마크를 검출하는 단계; 및 상기 제1 그룹의 랜드마크 및 상기 제2 그룹의 랜드마크에 기반하여 상기 목적 부위에 대한 복수의 랜드마크를 생성하는 단계; 를 포함할 수 있다.According to an embodiment of the present disclosure, a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a computing device, causes the computing device to perform a method for detecting a landmark from a three-dimensional volume image. The method includes obtaining input data from a 3D volume image captured in a target area of an object; Inputting the input data into a first landmark detection model; detecting a plurality of landmarks for a first portion of the target area using the first landmark detection model; Inputting the 3D volume image into a second landmark detection model; detecting a plurality of landmarks for a second portion of the target area using the second landmark detection model; and generating a plurality of landmarks for the target area based on the first group of landmarks and the second group of landmarks. may include.
본 개시의 실시예에 따라, 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 컴퓨팅 장치로서, 적어도 하나의 프로세서; 및 메모리를 포함하며, 상기 적어도 하나의 프로세서는, 대상체의 목적 부위를 촬영한 3차원 볼륨 영상으로부터 입력 데이터를 획득하고, 상기 입력 데이터를 제1 랜드마크 검출 모델에 입력시키고, 상기 제1 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제1 부분에 대한 복수의 랜드마크(landmark)를 검출하고, 상기 3차원 볼륨 영상을 제2 랜드마크 검출 모델에 입력시키고, 상기 제2 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제2 부분에 대한 복수의 랜드마크를 검출하고, 상기 제1 그룹의 랜드마크 및 상기 제2 그룹의 랜드마크에 기반하여 상기 목적 부위에 대한 복수의 랜드마크를 생성하도록 구성될 수 있다.According to an embodiment of the present disclosure, a computing device for detecting a landmark from a 3D volume image includes: at least one processor; and a memory, wherein the at least one processor acquires input data from a 3D volume image photographing a target portion of the object, inputs the input data to a first landmark detection model, and detects the first landmark. Detecting a plurality of landmarks for the first part of the target area using a detection model, inputting the 3D volume image into a second landmark detection model, and using the second landmark detection model configured to detect a plurality of landmarks for a second part of the target region and generate a plurality of landmarks for the target region based on the first group of landmarks and the second group of landmarks. You can.
본 개시에서 얻을 수 있는 기술적 해결 수단은 이상에서 언급한 해결 수단들로 제한되지 않으며, 언급하지 않은 또 다른 해결 수단들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical solutions obtainable from this disclosure are not limited to the solutions mentioned above, and other solutions not mentioned above will be clearly apparent to those skilled in the art from the description below. It will be understandable.
본 개시의 몇몇 실시예에 따르면, 사용자의 두부를 피부 영역과 뼈 영역으로 구분하고, 각각의 인공지능 기반 모델을 이용하여 랜드마크를 검출함으로써, 3차원 랜드마크 검출 시간을 최소화할 수 있다.According to some embodiments of the present disclosure, the 3D landmark detection time can be minimized by dividing the user's head into a skin area and a bone area and detecting landmarks using each artificial intelligence-based model.
또한, 랜드마크별로 특화된 인공지능 기반 모델을 이용함으로써, 랜드마크별로 최적화된 3차원 랜드마크 좌표 값을 획득할 수 있어 랜드마크 검출 정확도를 향상시킬 수 있다.In addition, by using an artificial intelligence-based model specialized for each landmark, it is possible to obtain optimized 3D landmark coordinate values for each landmark, thereby improving landmark detection accuracy.
또한, 랜드마크 검출을 위해 3차원 영상을 2차원으로 변환시키고, 다시 3차원 영상으로 변화시키는 번거로움을 줄일 수 있다.Additionally, the hassle of converting a 3D image to 2D and then converting it back to 3D for landmark detection can be reduced.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects that can be obtained from the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below. .
다양한 양상들이 이제 도면들을 참조로 기재되며, 여기서 유사한 참조 번호들은 총괄적으로 유사한 구성요소들을 지칭하는데 이용된다. 이하의 실시예에서, 설명 목적을 위해, 다수의 특정 세부사항들이 하나 이상의 양상들의 총체적 이해를 제공하기 위해 제시된다. 그러나, 그러한 양상(들)이 이러한 구체적인 세부사항들 없이 실시될 수 있음은 명백할 것이다.Various aspects will now be described with reference to the drawings, where like reference numerals are used to collectively refer to like elements. In the following examples, for purposes of explanation, numerous specific details are set forth to provide a comprehensive understanding of one or more aspects. However, it will be clear that such aspect(s) may be practiced without these specific details.
도 1은 본 개시의 실시예에 따른 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 예시적인 시스템의 구성도이다.1 is a configuration diagram of an example system for detecting landmarks from a 3D volume image according to an embodiment of the present disclosure.
도 2는 본 개시의 실시예에 따른 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 서버의 블록 구성도이다.Figure 2 is a block diagram of a server for detecting landmarks from a 3D volume image according to an embodiment of the present disclosure.
도 3은 본 개시의 실시예에 따라 네트워크 함수를 나타낸 개략도이다.Figure 3 is a schematic diagram showing a network function according to an embodiment of the present disclosure.
도 4는 본 개시의 실시예에 따른 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 방법의 일례를 설명하기 위한 흐름도이다.FIG. 4 is a flowchart illustrating an example of a method for detecting a landmark from a 3D volume image according to an embodiment of the present disclosure.
도 5는 본 개시의 실시예에 따른 제1 랜드마크 검출 모델을 설명하기 위한 개략적인 예시도이다.Figure 5 is a schematic illustration for explaining a first landmark detection model according to an embodiment of the present disclosure.
도 6은 본 개시의 실시예에 따른 검출 모델에 대한 개략적인 구조를 설명하기 위한 예시도이다.Figure 6 is an example diagram for explaining the schematic structure of a detection model according to an embodiment of the present disclosure.
도 7은 본 개시의 실시예에 따른 제2 랜드마크 검출 모델을 설명하기 위한 개략적인 예시도이다. Figure 7 is a schematic illustration for explaining a second landmark detection model according to an embodiment of the present disclosure.
도 8은 본 개시의 실시예에 따른 검출 모델에 대한 개략적인 구조를 설명하기 위한 예시도이다.Figure 8 is an example diagram for explaining the schematic structure of a detection model according to an embodiment of the present disclosure.
도 9는 본 개시의 실시예에 따른 제1 랜드마크 검출 모델의 학습 과정을 설명하기 위한 예시도이다.Figure 9 is an example diagram for explaining the learning process of the first landmark detection model according to an embodiment of the present disclosure.
도 10은 본 개시의 실시예에 따른 제1 랜드마크 검출 모델의 추론 과정을 설명하기 위한 예시도이다.Figure 10 is an example diagram for explaining the inference process of the first landmark detection model according to an embodiment of the present disclosure.
도 11은 본 개시의 실시예에 따른 제2 랜드마크 검출 모델의 학습 과정을 설명하기 위한 예시도이다.Figure 11 is an example diagram for explaining the learning process of a second landmark detection model according to an embodiment of the present disclosure.
도 12는 본 개시의 실시예에 따른 제2 랜드마크 검출 모델의 추론 과정을 설명하기 위한 예시도이다.Figure 12 is an example diagram for explaining the inference process of a second landmark detection model according to an embodiment of the present disclosure.
도 13은 본 개시의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도이다.Figure 13 is a brief, general schematic diagram of an example computing environment in which embodiments of the present disclosure may be implemented.
다양한 실시예들이 이제 도면을 참조하여 설명된다. 본 명세서에서, 다양한 설명들이 본 개시의 이해를 제공하기 위해서 제시된다. 그러나, 이러한 실시예들은 이러한 구체적인 설명 없이도 실행될 수 있음이 명백하다.Various embodiments are now described with reference to the drawings. In this specification, various descriptions are presented to provide an understanding of the disclosure. However, it is clear that these embodiments may be practiced without these specific descriptions.
본 명세서에서 사용되는 용어 "컴포넌트", "모듈", "시스템" 등은 컴퓨터-관련 엔티티, 하드웨어, 펌웨어, 소프트웨어, 소프트웨어 및 하드웨어의 조합, 또는 소프트웨어의 실행을 지칭한다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 처리과정(procedure), 프로세서, 객체, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이들로 제한되는 것은 아니다. 예를 들어, 컴퓨팅 장치에서 실행되는 애플리케이션 및 컴퓨팅 장치 모두 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세서 및/또는 실행 스레드 내에 상주할 수 있다. 일 컴포넌트는 하나의 컴퓨터 내에 로컬화 될 수 있다. 일 컴포넌트는 2개 이상의 컴퓨터들 사이에 분배될 수 있다. 또한, 이러한 컴포넌트들은 그 내부에 저장된 다양한 데이터 구조들을 갖는 다양한 컴퓨터 판독가능한 매체로부터 실행할 수 있다. 컴포넌트들은 예를 들어 하나 이상의 데이터 패킷들을 갖는 신호(예를 들면, 로컬 시스템, 분산 시스템에서 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터 및/또는 신호를 통해 다른 시스템과 인터넷과 같은 네트워크를 통해 전송되는 데이터)에 따라 로컬 및/또는 원격 처리들을 통해 통신할 수 있다.As used herein, the terms “component,” “module,” “system,” and the like refer to a computer-related entity, hardware, firmware, software, a combination of software and hardware, or an implementation of software. For example, a component may be, but is not limited to, a process running on a processor, a processor, an object, a thread of execution, a program, and/or a computer. For example, both an application running on a computing device and the computing device can be a component. One or more components may reside within a processor and/or thread of execution. A component may be localized within one computer. A component may be distributed between two or more computers. Additionally, these components can execute from various computer-readable media having various data structures stored thereon. Components can transmit signals, for example, with one or more data packets (e.g., data and/or signals from one component interacting with other components in a local system, a distributed system, to other systems and over a network such as the Internet). Depending on the data being transmitted, they may communicate through local and/or remote processes.
더불어, 용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다. 즉, X가 A를 이용하거나; X가 B를 이용하거나; 또는 X가 A 및 B 모두를 이용하는 경우, "X는 A 또는 B를 이용한다"가 이들 경우들 어느 것으로도 적용될 수 있다. 또한, 본 명세서에 사용된 "및/또는"이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.Additionally, the term “or” is intended to mean an inclusive “or” and not an exclusive “or.” That is, unless otherwise specified or clear from context, “X utilizes A or B” is intended to mean one of the natural implicit substitutions. That is, either X uses A; X uses B; Or, if X uses both A and B, “X uses A or B” can apply to either of these cases. Additionally, the term “and/or” as used herein should be understood to refer to and include all possible combinations of one or more of the related listed items.
또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하는 것으로 이해되어야 한다. 다만, "포함한다" 및/또는 "포함하는"이라는 용어는, 하나 이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다. 또한, 달리 특정되지 않거나 단수 형태를 지시하는 것으로 문맥상 명확하지 않은 경우에, 본 명세서와 청구범위에서 단수는 일반적으로 "하나 또는 그 이상"을 의미하는 것으로 해석되어야 한다.Additionally, the terms “comprise” and/or “comprising” should be understood to mean that the corresponding feature and/or element is present. However, the terms “comprise” and/or “comprising” should be understood as not excluding the presence or addition of one or more other features, elements and/or groups thereof. Additionally, unless otherwise specified or the context is clear to indicate a singular form, the singular terms herein and in the claims should generally be construed to mean “one or more.”
그리고, "A 또는 B 중 적어도 하나"이라는 용어는, "A만을 포함하는 경우", "B 만을 포함하는 경우", "A와 B의 구성으로 조합된 경우"를 의미하는 것으로 해석되어야 한다. And, the term “at least one of A or B” should be interpreted to mean “a case containing only A,” “a case containing only B,” and “a case of combining A and B.”
당업자들은 추가적으로 여기서 개시된 실시예들과 관련되어 설명된 다양한 예시적 논리적 블록들, 구성들, 모듈들, 회로들, 수단들, 로직들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양쪽 모두의 조합들로 구현될 수 있음을 인식해야 한다. 하드웨어 및 소프트웨어의 상호교환성을 명백하게 예시하기 위해, 다양한 예시적 컴포넌트들, 블록들, 구성들, 수단들, 로직들, 모듈들, 회로들, 및 단계들은 그들의 기능성 측면에서 일반적으로 위에서 설명되었다. 그러한 기능성이 하드웨어로 또는 소프트웨어로서 구현되는지 여부는 전반적인 시스템에 부과된 특정 어플리케이션(application) 및 설계 제한들에 달려 있다. 숙련된 기술자들은 각각의 특정 어플리케이션들을 위해 다양한 방법들로 설명된 기능성을 구현할 수 있다. 다만, 그러한 구현의 결정들이 본 개시내용의 영역을 벗어나게 하는 것으로 해석되어서는 안된다.Those skilled in the art will additionally recognize that the various illustrative logical blocks, components, modules, circuits, means, logic, and algorithm steps described in connection with the embodiments disclosed herein may be implemented using electronic hardware, computer software, or a combination of both. It must be recognized that it can be implemented with To clearly illustrate the interchangeability of hardware and software, various illustrative components, blocks, configurations, means, logics, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented in hardware or software will depend on the specific application and design constraints imposed on the overall system. A skilled technician can implement the described functionality in a variety of ways for each specific application. However, such implementation decisions should not be construed as causing a departure from the scope of the present disclosure.
제시된 실시예들에 대한 설명은 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다. 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예 들로 한정되는 것이 아니다. 본 발명은 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다. The description of the presented embodiments is provided to enable anyone skilled in the art to use or practice the present invention. Various modifications to these embodiments will be apparent to those skilled in the art. The general principles defined herein may be applied to other embodiments without departing from the scope of the disclosure. Therefore, the present invention is not limited to the embodiments presented herein. The present invention is to be interpreted in the broadest scope consistent with the principles and novel features presented herein.
본 개시에서 네트워크 함수와 인공 신경망 및 뉴럴 네트워크(neural network)는 상호교환가능하게 사용될 수 있다.In this disclosure, network function, artificial neural network, and neural network may be used interchangeably.
용어 "약" 또는 "대략"이 수치 값과 관련하여 본 개시에서 사용되는 경우에, 해당 수치 값은 기재된 수치 값 주변의 ± 10 % 편차를 포함함을 의도한다.When the terms “about” or “approximately” are used in this disclosure in connection with a numerical value, that numerical value is intended to include a deviation of ±10% around the stated numerical value.
도 1은 본 개시의 실시예에 따른 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 예시적인 시스템의 구성도이다.1 is a configuration diagram of an example system for detecting landmarks from a 3D volume image according to an embodiment of the present disclosure.
도 1을 참조하면, 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 시스템은 대상체의 목적 부위에 대한 3차원 볼륨 영상을 촬영하는 촬영 장치(10), 3차원 볼륨 영상을 획득하여 랜드마크 검출을 요청하는 컴퓨팅 장치(20) 및 3차원 볼륨 영상으로부터 랜드마크를 검출하는 서버(100)를 포함할 수 있다. 도 1에서 도시되는 컴포넌트들은 예시적인 것이며, 추가적인 컴포넌트들이 존재하거나 또는 컴포넌트들의 일부가 생략될 수 있다.Referring to FIG. 1, a system for detecting landmarks from a 3D volume image includes an imaging device 10 that captures a 3D volume image of a target area of an object, and a request for landmark detection by acquiring the 3D volume image. It may include a computing device 20 that detects a landmark from a 3D volume image and a server 100 that detects a landmark. The components shown in FIG. 1 are exemplary, and additional components may exist or some of the components may be omitted.
본 개시의 몇몇 실시예에 따르면, 촬영 장치(10), 컴퓨팅 장치(20) 및 서버(100)는 통신 네트워크를 통해, 본 개시의 몇몇 실시예들에 따른 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 데이터를 상호 송수신할 수 있다.According to some embodiments of the present disclosure, the photographing device 10, the computing device 20, and the server 100 detect landmarks from a three-dimensional volume image according to some embodiments of the present disclosure through a communication network. Data for each other can be transmitted and received.
촬영 장치(10)는 대상체(예: 환자)의 목적 부위에 대한 3차원 볼륨 영상을 촬영하기 위한 장치로서, 예를 들어, CT(Computed Tomography) 장치, CBCT(Cone beam CT) 장치, MDCT(Multi-detector CT) 장치, 및/또는 MRI(Magnetic Resonance Imaging) 장치 등을 포함할 수 있다. 예를 들어, 목적 부위는 구강을 포함하는 두부를 포함할 수 있으나, 이에 한정되지 않는다.The imaging device 10 is a device for taking a three-dimensional volume image of a target area of an object (e.g., a patient), for example, a computed tomography (CT) device, a cone beam CT (CBCT) device, or a multi-dimensional CT (MDCT) device. -detector CT) device, and/or MRI (Magnetic Resonance Imaging) device, etc. may be included. For example, the target area may include, but is not limited to, the head including the oral cavity.
구체적으로, 촬영 장치(10)는 환자의 구강을 포함하는 목적 부위를 촬영한 3차원 볼륨 영상을 통신 네트워크(미도시)를 통해 컴퓨팅 장치(20) 또는 서버(100)로 제공할 수 있다. Specifically, the imaging device 10 may provide a 3D volume image of a target area including the patient's oral cavity to the computing device 20 or the server 100 through a communication network (not shown).
컴퓨팅 장치(20)는 촬영 장치(10)로부터 3차원 볼륨 영상을 획득하고, 3차원 볼륨 영상에 대한 랜드마크 검출을 요청하기 위한 장치로서, PC, 랩탑 컴퓨터, 단말 및/또는 네트워크 접속성을 갖는 임의의 전자 디바이스를 포함할 수 있다. The computing device 20 is a device for acquiring a 3D volume image from the imaging device 10 and requesting landmark detection for the 3D volume image, and is a device having a PC, laptop computer, terminal, and/or network connectivity. Can include any electronic device.
구체적으로, 컴퓨팅 장치(20)는 촬영 장치(10)로부터 대상체의 목적 부위를 촬영한 3차원 볼륨 영상을 수신하고, 3차원 볼륨 영상에 기반하여 목적 부위에 대한 랜드마크를 검출하기 위한 요청을 서버(100)로 전달할 수 있다. 또한, 컴퓨팅 장치(20)는 서버(100)로부터 검출된 랜드마크에 대한 데이터를 출력하는 출력 화면을 표시할 수 있다. 예를 들어, 서버(100)가 웹 서버로써 동작하는 경우 컴퓨팅 장치(20)는 웹 브라우저와 같은 응용 프로그램을 통해 서버(100)에서 호스팅하는 랜드마크 검출에 관련된 웹 사이트에 접근하여 해당 웹 사이트에 대한 웹 페이지(즉, 인터페이스 화면)을 표시할 수 있다. Specifically, the computing device 20 receives a 3D volume image of a target area of an object from the imaging device 10, and sends a request to the server to detect a landmark for the target area based on the 3D volume image. It can be transmitted as (100). Additionally, the computing device 20 may display an output screen that outputs data about the landmark detected from the server 100. For example, when the server 100 operates as a web server, the computing device 20 accesses a website related to landmark detection hosted by the server 100 through an application such as a web browser and accesses the website. A web page (i.e., interface screen) can be displayed.
본 개시의 몇몇 실시예에 따르면, 해당 웹 사이트는 3차원 볼륨 영상을 업로드하기 위한 제1 웹 페이지 및 서버에 의해서 검출된 랜드마크에 대한 데이터를 출력하는 제2 웹 페이지를 포함할 수 있다. 랜드마크 검출을 위해 3차원 볼륨 영상은 제1 웹 페이지를 통해 업로드 되어 서버(100)로 전달될 수 있다.According to some embodiments of the present disclosure, the website may include a first web page for uploading a 3D volume image and a second web page for outputting data on landmarks detected by the server. For landmark detection, the 3D volume image may be uploaded through the first web page and transmitted to the server 100.
본 개시의 몇몇 실시예에 따르면, 컴퓨팅 장치(20)는 프로세서, 저장부(메모리 및 영구저장매체) 및 표시부를 포함하여, 임의의 데이터를 처리 및 저장하고, 출력할 수 있는 임의의 엔티티일 수 있다.According to some embodiments of the present disclosure, the computing device 20 may be any entity capable of processing, storing, and outputting any data, including a processor, a storage unit (memory and persistent storage media), and a display unit. there is.
본 개시 내용에서의 프로세서는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치(20)의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등과 같이 메모리 상에 저장된 명령어들을 실행시킴으로써 랜드마크 검출을 요청하고, 출력 화면을 표시하기 위한 임의의 형태의 프로세서를 포함할 수 있다. 프로세서는 메모리에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 랜드마크 검출 요청을 서버(100)로 전달하고, 서버(100)로부터 제공된 랜드마크에 대한 데이터를 출력하는 동작을 수행할 수 있다.The processor in the present disclosure may consist of one or more cores, including a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), and a tensor processing unit of the computing device 20. It may include any type of processor, such as a tensor processing unit (TPU), for requesting landmark detection and displaying an output screen by executing instructions stored in memory. The processor reads the computer program stored in the memory, transmits a landmark detection request according to an embodiment of the present disclosure to the server 100, and outputs data about the landmark provided from the server 100. there is.
본 개시 내용에서의 메모리는 프로세서의 동작을 위한 프로그램을 저장할 수 있고, 입/출력되는 데이터들을 임시 또는 영구 저장할 수도 있다. 메모리는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적 어도 하나의 타입의 저장매체를 포함할 수 있다. 이러한 메모리는 프로세서에 제어에 의하여 동작될 수 있다. 또한, 본 개시 내용에서 메모리 및 저장부는 서로 상호 교환 가능하게 사용될 수 있다.The memory in the present disclosure may store a program for the operation of a processor, and may temporarily or permanently store input/output data. Memory is a flash memory type, hard disk type, multimedia card micro type, card type memory (e.g. SD or XD memory, etc.), and RAM (Random Access). Memory, RAM), SRAM (Static Random Access Memory), ROM (Read-Only Memory, ROM), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic memory, magnetic disk, optical disk It may include at least one type of storage medium. These memories can be operated under processor control. Additionally, memory and storage may be used interchangeably with each other in the present disclosure.
서버(100)는 컴퓨팅 장치(20)로부터 제공된 3차원 볼륨 영상에 기초하여 목적 부위에 대한 랜드마크를 검출하는 장치로서, 예를 들어, 컴퓨터, 디지털 프로세서, 휴대용 디바이스 및 디바이스 제어기 등과 같은 임의의 타입의 컴퓨터 시스템 또는 컴퓨터 디바이스를 포함할 수 있다. The server 100 is a device that detects landmarks for a target area based on a three-dimensional volume image provided from the computing device 20, and may be any type such as a computer, digital processor, portable device, and device controller. It may include a computer system or computer device.
구체적으로, 서버(100)는 인공지능 기반 모델을 학습하고, 학습된 모델을 이용하여 3차원 볼륨 영상으로부터 랜드마크를 검출할 수 있다. 구체적으로, 서버(100)는 인공지능 기반 모델을 이용하여 3차원 볼륨 영상으로부터 객체 검출, 분류 또는 세그먼트화 중 적어도 하나를 수행하여 사용자의 목적 부위에 대한 랜드마크를 검출할 수 있다.Specifically, the server 100 can learn an artificial intelligence-based model and detect landmarks from a 3D volume image using the learned model. Specifically, the server 100 may detect a landmark for the user's target area by performing at least one of object detection, classification, or segmentation from a 3D volume image using an artificial intelligence-based model.
본 개시의 몇몇 실시예에 따르면, 서버(100)는 프로세서 및 저장부(메모리 및 영구저장매체)를 포함하여, 임의의 데이터를 처리 및 저장할 수 있는 임의의 엔티티일 수 있다.According to some embodiments of the present disclosure, the server 100 may be any entity capable of processing and storing any data, including a processor and a storage unit (memory and persistent storage media).
본 개시 내용에서의 프로세서는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU), 범용 그래픽 처리 장치 (GPGPU), 텐서 처리 장치(TPU), 그래픽 처리 장치(GPU), 신경 처리 장치(NPU: Neural Processing Unit) 등과 같이 메모리 상에 저장된 명령어들을 실행시킴으로써 랜드마크 검출을 위한 임의의 형태의 프로세서를 포함할 수 있다. 프로세서는 메모리에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 랜드마크 검출을 수행할 수 있다.A processor in the present disclosure may consist of one or more cores, including a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), a tensor processing unit (TPU), a graphics processing unit (GPU), and neural processing of a computing device. It may include any type of processor for landmark detection by executing instructions stored in memory, such as a Neural Processing Unit (NPU). The processor may read a computer program stored in a memory and perform landmark detection according to an embodiment of the present disclosure.
본 개시 내용에서의 메모리는 프로세서의 동작을 위한 프로그램을 저장할 수 있고, 입/출력되는 데이터들을 임시 또는 영구 저장할 수도 있다. 메모리는 플래시 메모리 타입, 하드디스크 타입, 멀티미디어 카드 마이크로 타입, 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM), SRAM, 롬(ROM), EEPROM, PROM, 자기 메모리, 자기 디스크, 광디스크 중 적 어도 하나의 타입의 저장매체를 포함할 수 있다. 이러한 메모리는 프로세서에 제어에 의하여 동작될 수 있다. 또한, 본 개시 내용에서 메모리 및 저장부는 서로 상호 교환 가능하게 사용될 수 있다.The memory in the present disclosure may store a program for the operation of a processor, and may temporarily or permanently store input/output data. Memory includes flash memory type, hard disk type, multimedia card micro type, card type memory (e.g. SD or XD memory, etc.), RAM, SRAM, ROM, EEPROM, PROM, magnetic memory, magnetic memory. It may include at least one type of storage medium among disks and optical disks. These memories can be operated under processor control. Additionally, memory and storage may be used interchangeably with each other in the present disclosure.
도 2는 본 개시의 실시예에 따른 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 서버의 블록 구성도이다. 도 1에 도시된 서버(100)의 구성은 간략화하여 나타낸 예시일 뿐이다. 본 개시의 일 실시예에서 서버(100)는 서버(100)의 컴퓨팅 환경을 수행하기 위한 다른 구성들이 포함될 수 있고, 개시된 구성들 중 일부만이 서버(100)를 구성할 수도 있다. Figure 2 is a block diagram of a server for detecting landmarks from a 3D volume image according to an embodiment of the present disclosure. The configuration of the server 100 shown in FIG. 1 is only a simplified example. In one embodiment of the present disclosure, the server 100 may include different configurations for performing the computing environment of the server 100, and only some of the disclosed configurations may configure the server 100.
서버(100)는 통신부(110), 메모리(120) 및 프로세서(130)를 포함할 수 있다. 다만, 상술한 구성 요소들은 서버(100)를 구현하는데 있어서 필수적인 것은 아니어서, 서버(100)는 위에서 열거된 구성요소들보다 많거나, 또는 적은 구성요소들을 가질 수 있다. 여기서, 각각의 구성 요소들은 별개의 칩이나 모듈이나 장치로 구성될 수 있고, 하나의 장치 내에 포함될 수도 있다.The server 100 may include a communication unit 110, a memory 120, and a processor 130. However, the above-described components are not essential for implementing the server 100, so the server 100 may have more or less components than the components listed above. Here, each component may be composed of a separate chip, module, or device, or may be included in one device.
본 개시의 실시예에 따른 통신부(110)는 네트워크 접속을 위한 임의의 형태의 유/무선 인터넷 모듈을 포함할 수 있다. 또한, 통신부(110)는 근거리 통신(short range communication) 모듈을 포함할 수 있다. 근거리 통신 기술로 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra-Wideband), ZigBee 등이 이용될 수 있다.The communication unit 110 according to an embodiment of the present disclosure may include any type of wired/wireless Internet module for network connection. Additionally, the communication unit 110 may include a short range communication module. Short-distance communication technologies include Bluetooth, Radio Frequency Identification (RFID), infrared data association (IrDA), Ultra-Wideband (UWB), and ZigBee.
본 명세서에서 설명된 기술들은 위에서 언급된 네트워크들뿐만 아니라, 다른 네트워크들에서도 사용될 수 있다.The techniques described herein can be used in the networks mentioned above, as well as other networks.
본 개시의 몇몇 실시예에 따르면, 통신부(110)는 서버(100)가 외부 장치와 통신이 가능하도록 연결한다. 통신부(110)는 유/무선 통신을 이용하여 촬영 장치(10)와 연결되어 3차원 볼륨 영상을 수신할 수 있다. According to some embodiments of the present disclosure, the communication unit 110 connects the server 100 to enable communication with an external device. The communication unit 110 can be connected to the imaging device 10 using wired/wireless communication and receive a 3D volume image.
본 개시의 일 실시예에 따르면, 저장부(120)는 프로세서(130)가 생성하거나 결정한 임의의 형태의 정보 및 통신부(110)가 수신한 임의의 형태의 정보를 저장할 수 있다. 본 개시의 몇몇 실시예에 따르면, 저장부(120)는 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 다양한 데이터를 저장할 수 있다.According to an embodiment of the present disclosure, the storage unit 120 may store any type of information generated or determined by the processor 130 and any type of information received by the communication unit 110. According to some embodiments of the present disclosure, the storage unit 120 may store various data for detecting landmarks from a 3D volume image.
저장부(120)는 메모리 및/또는 영구저장매체를 포함할 수 있다. 저장부(120)는 플래시 메모리 타입, 하드디스크 타입, 멀티미디어 카드 마이크로 타입, 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM), SRAM, 롬(ROM), EEPROM, PROM, 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 서버(100)는 인터넷(internet) 상에서 상기 저장부(120)의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작할 수도 있다. 전술한 저장부에 대한 기재는 예시일 뿐, 본 개시는 이에 제한되지 않는다. Storage unit 120 may include memory and/or persistent storage media. The storage unit 120 includes flash memory type, hard disk type, multimedia card micro type, card type memory (e.g. SD or XD memory, etc.), RAM, SRAM, ROM, EEPROM, PROM, It may include at least one type of storage medium among magnetic memory, magnetic disk, and optical disk. The server 100 may operate in relation to web storage that performs the storage function of the storage unit 120 on the Internet. The description of the storage unit described above is merely an example, and the present disclosure is not limited thereto.
프로세서(130)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit), NPU(Neural Processing Unit) 등의 데이터 분석, 딥러닝을 위한 프로세서를 포함할 수 있다. The processor 130 may be composed of one or more cores, and may include a central processing unit (CPU), a general purpose graphics processing unit (GPGPU), and a tensor processing unit (TPU) of a computing device. unit) and NPU (Neural Processing Unit) may include processors for data analysis and deep learning.
프로세서(130)는 메모리(130)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 실시예에 따른 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 데이터 처리를 수행할 수 있다. The processor 130 may read the computer program stored in the memory 130 and perform data processing to detect landmarks from the 3D volume image according to an embodiment of the present disclosure.
구체적으로, 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위해 프로세서(130)는 목적 부위의 제1 부분 및 제1 부분과 다른 제2 부분 각각에 대한 복수의 랜드마크를 검출하도록 학습된 각각의 인공지능 기반 모델을 이용할 수 있다. 이하, 도 4 내지 도 12를 참조하여 인공지능 기반 모델을 이용하여 복수의 랜드마크를 검출하기 위한 방법을 구체적으로 설명하도록 한다.Specifically, in order to detect landmarks from a 3D volume image, the processor 130 uses each artificial intelligence learned to detect a plurality of landmarks for each of the first part of the target area and the second part different from the first part. A base model can be used. Hereinafter, a method for detecting a plurality of landmarks using an artificial intelligence-based model will be described in detail with reference to FIGS. 4 to 12.
본 개시의 다양한 실시예에 따라 프로세서(130)는 신경망의 학습을 위한 연산을 수행할 수 있다. 프로세서(130)는 딥러닝(DL: deep learning)에서 학습을 위한 입력 데이터의 처리, 입력 데이터에서의 피처 추출, 오차 계산, 역전파(backpropagation)를 이용한 신경망의 가중치 업데이트 등의 신경망의 학습을 위한 계산을 수행할 수 있다. 프로세서(130)의 CPU, GPGPU, TPU 및 NPU 중 적어도 하나가 네트워크 함수의 학습을 처리할 수 있다. 예를 들어, CPU 와 GPGPU가 함께 네트워크 함수의 학습, 네트워크 함수를 이용한 데이터 분류를 처리할 수 있다. 또한, 본 개시의 실시예에서 복수의 컴퓨팅 장치의 프로세서를 함께 사용하여 네트워크 함수의 학습, 네트워크 함수를 이용한 데이터 분류를 처리할 수 있다. 또한, 본 개시의 실시예에 따른 서버(100)에서 수행되는 컴퓨터 프로그램은 CPU, GPGPU TPU 또는 NPU 실행가능 프로그램일 수 있다.According to various embodiments of the present disclosure, the processor 130 may perform operations for learning a neural network. The processor 130 is used for learning neural networks, such as processing input data for learning in deep learning (DL), extracting features from input data, calculating errors, and updating the weights of the neural network using backpropagation. Calculations can be performed. At least one of the CPU, GPGPU, TPU, and NPU of the processor 130 may process learning of the network function. For example, CPU and GPGPU can work together to process learning of network functions and data classification using network functions. Additionally, in an embodiment of the present disclosure, the processors of a plurality of computing devices can be used together to process learning of network functions and data classification using network functions. Additionally, a computer program executed in the server 100 according to an embodiment of the present disclosure may be a CPU, GPGPU TPU, or NPU executable program.
도 3은 본 개시의 실시예에 따라 네트워크 함수를 나타낸 개략도이다.Figure 3 is a schematic diagram showing a network function according to an embodiment of the present disclosure.
본 명세서에 걸쳐, 연산 모델, 신경망, 네트워크 함수, 뉴럴 네트워크(neural network)는 동일한 의미로 사용될 수 있다. 신경망은 일반적으로 노드라 지칭될 수 있는 상호 연결된 계산 단위들의 집합으로 구성될 수 있다. 이러한 노드들은 뉴런(neuron)들로 지칭될 수도 있다. 신경망은 적어도 하나 이상의 노드들을 포함하여 구성된다. 신경망들을 구성하는 노드(또는 뉴런)들은 하나 이상의 링크에 의해 상호 연결될 수 있다. 일 실시예에서, 본 명세서에서의 검출 모델 및/또는 추출 모델은 전술한 신경망을 포함할 수 있다.Throughout this specification, computational model, neural network, network function, and neural network may be used interchangeably. A neural network can generally consist of a set of interconnected computational units, which can be referred to as nodes. These nodes may also be referred to as neurons. A neural network consists of at least one node. Nodes (or neurons) that make up neural networks may be interconnected by one or more links. In one embodiment, the detection model and/or extraction model herein may include the neural network described above.
신경망 내에서, 링크를 통해 연결된 하나 이상의 노드들은 상대적으로 입력 노드 및 출력 노드의 관계를 형성할 수 있다. 입력 노드 및 출력 노드의 개념은 상대적인 것으로서, 하나의 노드에 대하여 출력 노드 관계에 있는 임의의 노드는 다른 노드와의 관계에서 입력 노드 관계에 있을 수 있으며, 그 역도 성립할 수 있다. 상술한 바와 같이, 입력 노드 대 출력 노드 관계는 링크를 중심으로 생성될 수 있다. 하나의 입력 노드에 하나 이상의 출력 노드가 링크를 통해 연결될 수 있으며, 그 역도 성립할 수 있다. Within a neural network, one or more nodes connected through a link may form a relative input node and output node relationship. The concepts of input node and output node are relative, and any node in an output node relationship with one node may be in an input node relationship with another node, and vice versa. As described above, input node to output node relationships can be created around links. One or more output nodes can be connected to one input node through a link, and vice versa.
하나의 링크를 통해 연결된 입력 노드 및 출력 노드 관계에서, 출력 노드의 데이터는 입력 노드에 입력된 데이터에 기초하여 그 값이 결정될 수 있다. 여기서 입력 노드와 출력 노드를 상호 연결하는 링크는 가중치(weight)를 가질 수 있다. 가중치는 가변적일 수 있으며, 신경망이 원하는 기능을 수행하기 위해, 사용자 또는 알고리즘에 의해 가변 될 수 있다. 예를 들어, 하나의 출력 노드에 하나 이상의 입력 노드가 각각의 링크에 의해 상호 연결된 경우, 출력 노드는 상기 출력 노드와 연결된 입력 노드들에 입력된 값들 및 각각의 입력 노드들에 대응하는 링크에 설정된 가중치에 기초하여 출력 노드 값을 결정할 수 있다.In a relationship between an input node and an output node connected through one link, the value of the data of the output node may be determined based on the data input to the input node. Here, the link connecting the input node and the output node may have a weight. Weights may be variable and may be varied by the user or algorithm in order for the neural network to perform the desired function. For example, when one or more input nodes are connected to one output node by respective links, the output node is set to the values input to the input nodes connected to the output node and the links corresponding to each input node. The output node value can be determined based on the weight.
상술한 바와 같이, 신경망은 하나 이상의 노드들이 하나 이상의 링크를 통해 상호 연결되어 신경망 내에서 입력 노드 및 출력 노드 관계를 형성한다. 신경망 내에서 노드들과 링크들의 개수 및 노드들과 링크들 사이의 연관관계, 링크들 각각에 부여된 가중치의 값에 따라, 신경망의 특성이 결정될 수 있다. 예를 들어, 동일한 개수의 노드 및 링크들이 존재하고, 링크들의 가중치 값이 상이한 두 신경망이 존재하는 경우, 두 개의 신경망들은 서로 상이한 것으로 인식될 수 있다.As described above, in a neural network, one or more nodes are interconnected through one or more links to form an input node and output node relationship within the neural network. The characteristics of the neural network can be determined according to the number of nodes and links within the neural network, the correlation between the nodes and links, and the value of the weight assigned to each link. For example, if the same number of nodes and links exist and two neural networks with different weight values of the links exist, the two neural networks may be recognized as different from each other.
신경망은 하나 이상의 노드들의 집합으로 구성될 수 있다. 신경망을 구성하는 노드들의 부분 집합은 레이어(layer)를 구성할 수 있다. 신경망을 구성하는 노드들 중 일부는, 최초 입력 노드로부터의 거리들에 기초하여, 하나의 레이어(layer)를 구성할 수 있다. 예를 들어, 최초 입력 노드로부터 거리가 n인 노드들의 집합은, n 레이어를 구성할 수 있다. 최초 입력 노드로부터 거리는, 최초 입력 노드로부터 해당 노드까지 도달하기 위해 거쳐야 하는 링크들의 최소 개수에 의해 정의될 수 있다. 그러나, 이러한 레이어의 정의는 설명을 위한 임의적인 것으로서, 신경망 내에서 레이어의 차수는 상술한 것과 상이한 방법으로 정의될 수 있다. 예를 들어, 노드들의 레이어는 최종 출력 노드로부터 거리에 의해 정의될 수도 있다.A neural network may consist of a set of one or more nodes. A subset of nodes that make up a neural network can form a layer. Some of the nodes constituting the neural network may form one layer based on the distances from the first input node. For example, a set of nodes with a distance n from the initial input node may constitute n layers. The distance from the initial input node can be defined by the minimum number of links that must be passed to reach the node from the initial input node. However, this definition of a layer is arbitrary for explanation purposes, and the order of a layer within a neural network may be defined in a different way than described above. For example, a layer of nodes may be defined by distance from the final output node.
최초 입력 노드는 신경망 내의 노드들 중 다른 노드들과의 관계에서 링크를 거치지 않고 데이터가 직접 입력되는 하나 이상의 노드들을 의미할 수 있다. 또는, 신경망 네트워크 내에서, 링크를 기준으로 한 노드 간의 관계에 있어서, 링크로 연결된 다른 입력 노드들을 가지지 않는 노드들을 의미할 수 있다. 이와 유사하게, 최종 출력 노드는 신경망 내의 노드들 중 다른 노드들과의 관계에서, 출력 노드를 가지지 않는 하나 이상의 노드들을 의미할 수 있다. 또한, 히든 노드는 최초 입력 노드 및 최후 출력 노드가 아닌 신경망을 구성하는 노드들을 의미할 수 있다. The initial input node may refer to one or more nodes in the neural network through which data is directly input without going through links in relationships with other nodes. Alternatively, in a neural network network, in the relationship between nodes based on links, it may mean nodes that do not have other input nodes connected by links. Similarly, the final output node may refer to one or more nodes that do not have an output node in their relationship with other nodes among the nodes in the neural network. Additionally, hidden nodes may refer to nodes constituting a neural network other than the first input node and the last output node.
본 개시의 일 실시예에 따른 신경망은 입력 레이어의 노드의 개수가 출력 레이어의 노드의 개수와 동일할 수 있으며, 입력 레이어에서 히든 레이어로 진행됨에 따라 노드의 수가 감소하다가 다시 증가하는 형태의 신경망일 수 있다. 또한, 본 개시의 다른 일 실시예에 따른 신경망은 입력 레이어의 노드의 개수가 출력 레이어의 노드의 개수 보다 적을 수 있으며, 입력 레이어에서 히든 레이어로 진행됨에 따라 노드의 수가 감소하는 형태의 신경망일 수 있다. 또한, 본 개시의 또 다른 일 실시예에 따른 신경망은 입력 레이어의 노드의 개수가 출력 레이어의 노드의 개수보다 많을 수 있으며, 입력 레이어에서 히든 레이어로 진행됨에 따라 노드의 수가 증가하는 형태의 신경망일 수 있다. 본 개시의 또 다른 일 실시예에 따른 신경망은 상술한 신경망들의 조합된 형태의 신경망일 수 있다.The neural network according to an embodiment of the present disclosure is a neural network in which the number of nodes in the input layer may be the same as the number of nodes in the output layer, and the number of nodes decreases and then increases again as it progresses from the input layer to the hidden layer. You can. In addition, the neural network according to another embodiment of the present disclosure may be a neural network in which the number of nodes in the input layer may be less than the number of nodes in the output layer, and the number of nodes decreases as it progresses from the input layer to the hidden layer. there is. In addition, the neural network according to another embodiment of the present disclosure may be a neural network in which the number of nodes in the input layer may be greater than the number of nodes in the output layer, and the number of nodes increases as it progresses from the input layer to the hidden layer. You can. A neural network according to another embodiment of the present disclosure may be a neural network that is a combination of the above-described neural networks.
딥 뉴럴 네트워크(DNN: deep neural network, 심층신경망)는 입력 레이어와 출력 레이어 외에 복수의 히든 레이어를 포함하는 신경망을 의미할 수 있다. 딥 뉴럴 네트워크를 이용하면 데이터의 잠재적인 구조(latent structures)를 파악할 수 있다. 즉, 사진, 글, 비디오, 음성, 음악의 잠재적인 구조(예를 들어, 어떤 물체가 사진에 있는지, 글의 내용과 감정이 무엇인지, 음성의 내용과 감정이 무엇인지 등)를 파악할 수 있다. 딥 뉴럴 네트워크는 컨볼루션 뉴럴 네트워크(CNN: convolutional neural network), 리커런트 뉴럴 네트워크(RNN: recurrent neural network), 오토 인코더(auto encoder), GAN(Generative Adversarial Networks), 제한 볼츠만 머신(RBM: restricted boltzmann machine), 심층 신뢰 네트워크(DBN: deep belief network), Q 네트워크, U 네트워크, 샴 네트워크, 적대적 생성 네트워크(GAN: Generative Adversarial Network) 등을 포함할 수 있다. 전술한 딥 뉴럴 네트워크의 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다. A deep neural network (DNN) may refer to a neural network that includes multiple hidden layers in addition to the input layer and output layer. Deep neural networks allow you to identify latent structures in data. In other words, it is possible to identify the potential structure of a photo, text, video, voice, or music (e.g., what object is in the photo, what the content and emotion of the text are, what the content and emotion of the voice are, etc.) . Deep neural networks include convolutional neural networks (CNN), recurrent neural networks (RNN), auto encoders, generative adversarial networks (GAN), and restricted Boltzmann machines (RBM). machine), deep belief network (DBN), Q network, U network, Siamese network, Generative Adversarial Network (GAN), etc. The description of the deep neural network described above is only an example and the present disclosure is not limited thereto.
본 개시의 일 실시예에서 네트워크 함수는 오토 인코더(autoencoder)를 포함할 수도 있다. 오토 인코더는 입력 데이터와 유사한 출력 데이터를 출력하기 위한 인공 신경망의 일종일 수 있다. 오토 인코더는 적어도 하나의 히든 레이어를 포함할 수 있으며, 홀수 개의 히든 레이어가 입출력 레이어 사이에 배치될 수 있다. 각각의 레이어의 노드의 수는 입력 레이어의 노드의 수에서 병목 레이어(인코딩)라는 중간 레이어로 축소되었다가, 병목 레이어에서 출력 레이어(입력 레이어와 대칭)로 축소와 대칭되어 확장될 수도 있다. 오토 인코더는 비선형 차원 감소를 수행할 수 있다. 입력 레이어 및 출력 레이어의 수는 입력 데이터의 전처리 이후에 차원과 대응될 수 있다. 오토 인코더 구조에서 인코더에 포함된 히든 레이어의 노드의 수는 입력 레이어에서 멀어질수록 감소하는 구조를 가질 수 있다. 병목 레이어(인코더와 디코더 사이에 위치하는 가장 적은 노드를 가진 레이어)의 노드의 수는 너무 작은 경우 충분한 양의 정보가 전달되지 않을 수 있으므로, 특정 수 이상(예를 들어, 입력 레이어의 절반 이상 등)으로 유지될 수도 있다.In one embodiment of the present disclosure, the network function may include an autoencoder. An autoencoder may be a type of artificial neural network to output output data similar to input data. The autoencoder may include at least one hidden layer, and an odd number of hidden layers may be placed between input and output layers. The number of nodes in each layer may be reduced from the number of nodes in the input layer to an intermediate layer called the bottleneck layer (encoding), and then expanded symmetrically and reduced from the bottleneck layer to the output layer (symmetrical to the input layer). Autoencoders can perform nonlinear dimensionality reduction. The number of input layers and output layers can be corresponded to the dimension after preprocessing of the input data. In an auto-encoder structure, the number of nodes in the hidden layer included in the encoder may have a structure that decreases as the distance from the input layer increases. If the number of nodes in the bottleneck layer (the layer with the fewest nodes located between the encoder and decoder) is too small, not enough information may be conveyed, so if it is higher than a certain number (e.g., more than half of the input layers, etc.) ) may be maintained.
뉴럴 네트워크는 지도 학습(supervised learning), 비지도 학습(unsupervised learning), 반지도학습(semi supervised learning), 또는 강화학습(reinforcement learning) 중 적어도 하나의 방식으로 학습될 수 있다. 뉴럴 네트워크의 학습은 뉴럴 네트워크가 특정한 동작을 수행하기 위한 지식을 뉴럴 네트워크에 적용하는 과정일 수 있다. A neural network may be trained in at least one of supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning. Learning of a neural network may be a process of applying knowledge for the neural network to perform a specific operation to the neural network.
뉴럴 네트워크는 출력의 오류를 최소화하는 방향으로 학습될 수 있다. 뉴럴 네트워크의 학습에서 반복적으로 학습 데이터를 뉴럴 네트워크에 입력시키고 학습 데이터에 대한 뉴럴 네트워크의 출력과 타겟의 에러를 계산하고, 에러를 줄이기 위한 방향으로 뉴럴 네트워크의 에러를 뉴럴 네트워크의 출력 레이어에서부터 입력 레이어 방향으로 역전파(backpropagation)하여 뉴럴 네트워크의 각 노드의 가중치를 업데이트 하는 과정이다. 지도 학습의 경우 각각의 학습 데이터에 정답이 라벨링되어있는 학습 데이터를 사용하며(즉, 라벨링된 학습 데이터), 비지도 학습의 경우는 각각의 학습 데이터에 정답이 라벨링되어 있지 않을 수 있다. 즉, 예를 들어 데이터 분류에 관한 지도 학습의 경우의 학습 데이터는 학습 데이터 각각에 카테고리가 라벨링 된 데이터 일 수 있다. 라벨링된 학습 데이터가 뉴럴 네트워크에 입력되고, 뉴럴 네트워크의 출력(카테고리)과 학습 데이터의 라벨을 비교함으로써 오류(error)가 계산될 수 있다. 다른 예로, 데이터 분류에 관한 비지도 학습의 경우 입력인 학습 데이터가 뉴럴 네트워크 출력과 비교됨으로써 오류가 계산될 수 있다. 계산된 오류는 뉴럴 네트워크에서 역방향(즉, 출력 레이어에서 입력 레이어 방향)으로 역전파 되며, 역전파에 따라 뉴럴 네트워크의 각 레이어의 각 노드들의 연결 가중치가 업데이트 될 수 있다. 업데이트 되는 각 노드의 연결 가중치는 학습률(learning rate)에 따라 변화량이 결정될 수 있다. 입력 데이터에 대한 뉴럴 네트워크의 계산과 에러의 역전파는 학습 사이클(epoch)을 구성할 수 있다. 학습률은 뉴럴 네트워크의 학습 사이클의 반복 횟수에 따라 상이하게 적용될 수 있다. 예를 들어, 뉴럴 네트워크의 학습 초기에는 높은 학습률을 사용하여 뉴럴 네트워크가 빠르게 일정 수준의 성능을 확보하도록 하여 효율성을 높이고, 학습 후기에는 낮은 학습률을 사용하여 정확도를 높일 수 있다.Neural networks can be trained to minimize output errors. In neural network learning, learning data is repeatedly input into the neural network, the output of the neural network and the error of the target for the learning data are calculated, and the error of the neural network is transferred from the output layer of the neural network to the input layer in the direction of reducing the error. This is the process of updating the weight of each node in the neural network through backpropagation. In the case of supervised learning, learning data in which the correct answer is labeled for each learning data is used (i.e., labeled learning data), while in the case of unsupervised learning, the correct answer may not be labeled in each learning data. That is, for example, in the case of supervised learning on data classification, the training data may be data in which each training data is labeled with a category. Labeled training data is input to the neural network, and the error can be calculated by comparing the output (category) of the neural network with the label of the training data. As another example, in the case of unsupervised learning on data classification, the error can be calculated by comparing the input training data with the neural network output. The calculated error is backpropagated in the reverse direction (i.e., from the output layer to the input layer) in the neural network, and the connection weight of each node in each layer of the neural network can be updated according to backpropagation. The amount of change in the connection weight of each updated node may be determined according to the learning rate. The neural network's calculation of input data and backpropagation of errors can constitute a learning cycle (epoch). The learning rate may be applied differently depending on the number of repetitions of the learning cycle of the neural network. For example, in the early stages of neural network training, a high learning rate can be used to increase efficiency by allowing the neural network to quickly achieve a certain level of performance, and in the later stages of training, a low learning rate can be used to increase accuracy.
뉴럴 네트워크의 학습에서 일반적으로 학습 데이터는 실제 데이터(즉, 학습된 뉴럴 네트워크를 이용하여 처리하고자 하는 데이터)의 부분집합일 수 있으며, 따라서, 학습 데이터에 대한 오류는 감소하나 실제 데이터에 대해서는 오류가 증가하는 학습 사이클이 존재할 수 있다. 과적합(overfitting)은 이와 같이 학습 데이터에 과하게 학습하여 실제 데이터에 대한 오류가 증가하는 현상이다. 예를 들어, 노란색 고양이를 보여 고양이를 학습한 뉴럴 네트워크가 노란색 이외의 고양이를 보고는 고양이임을 인식하지 못하는 현상이 과적합의 일종일 수 있다. 과적합은 머신러닝 알고리즘의 오류를 증가시키는 원인으로 작용할 수 있다. 이러한 과적합을 막기 위하여 다양한 최적화 방법이 사용될 수 있다. 과적합을 막기 위해서는 학습 데이터를 증가시키거나, 레귤라리제이션(regularization), 학습의 과정에서 네트워크의 노드 일부를 비활성화하는 드롭아웃(dropout), 배치 정규화 레이어(batch normalization layer)의 활용 등의 방법이 적용될 수 있다.In the learning of neural networks, the training data can generally be a subset of real data (i.e., the data to be processed using the learned neural network), and thus the error for the training data is reduced, but the error for the real data is reduced. There may be an incremental learning cycle. Overfitting is a phenomenon in which errors in actual data increase due to excessive learning on training data. For example, a phenomenon in which a neural network that learned a cat by showing a yellow cat fails to recognize that it is a cat when it sees a non-yellow cat may be a type of overfitting. Overfitting can cause errors in machine learning algorithms to increase. To prevent such overfitting, various optimization methods can be used. To prevent overfitting, methods such as increasing the training data, regularization, dropout to disable some of the network nodes during the learning process, and use of a batch normalization layer are used. It can be applied.
이하에서는 도 4 내지 도 12를 참조하여 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 방법을 설명하도록 한다.Hereinafter, a method for detecting landmarks from a 3D volume image will be described with reference to FIGS. 4 to 12.
도 4는 본 개시의 실시예에 따른 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 방법의 일례를 설명하기 위한 흐름도이다. 제시된 실시예에서 도 4의 동작들은 서버(100)의 프로세서(130)에 의해서 수행될 수 있다.FIG. 4 is a flowchart illustrating an example of a method for detecting a landmark from a 3D volume image according to an embodiment of the present disclosure. In the presented embodiment, the operations of FIG. 4 may be performed by the processor 130 of the server 100.
도 4를 참조하면, 프로세서(130)는 대상체의 목적 부위를 촬영한 3차원 볼륨 영상으로부터 입력 데이터를 획득한다(S400). 여기서, 대상체의 목적 부위는 환자의 구강 영역을 포함하는 두부를 의미할 수 있으나, 이에 한정되지 않는다. Referring to FIG. 4, the processor 130 obtains input data from a 3D volume image captured of a target portion of an object (S400). Here, the target area of the object may refer to the head including the patient's oral region, but is not limited thereto.
구체적으로, 프로세서(130)는 환자의 두부를 촬영한 3차원 볼륨 영상으로부터 환자 두부의 정면(Coronal) 및 측면(Sagittal) 각각의 피부 영역을 나타내는 2차원 피부 영상을 추출할 수 있다. 나아가, 프로세서(130)는 깊이(depth) 영상을 추출할 수도 있다. 이와 같이 추출된 2차원 피부 영상 및 깊이 영상은 입력 데이터로서 사용될 수 있다.Specifically, the processor 130 may extract a 2D skin image representing the frontal (coronal) and lateral (sagittal) skin regions of the patient's head from a 3D volume image of the patient's head. Furthermore, the processor 130 may extract a depth image. The two-dimensional skin image and depth image extracted in this way can be used as input data.
2차원 피부 영상을 추출하기 위해 프로세서(130)는 추출을 위한 알고리즘을 이용할 수 있으나, 이에 한정되지 않는다. 예를 들어, 프로세서(130)는 3차원 볼륨 영상을 소프트웨어 랜더링을 통해 2차원 피부 영상 및 깊이 영상을 추출할 수 있다.To extract a 2D skin image, the processor 130 may use an extraction algorithm, but is not limited to this. For example, the processor 130 may extract a 2D skin image and a depth image from a 3D volume image through software rendering.
다시 도 4를 참조하면, 프로세서(130)는 이와 같이 획득된 입력 데이터를 제1 랜드마크 검출 모델에 입력시키고(S410), 제1 랜드마크 검출 모델을 이용하여 목적 부위의 제1 부분에 대한 복수의 랜드마크를 검출한다(S420). 여기서, 제1 랜드마크 검출 모델은 입력 데이터에 기반하여 두부 정면 및 두부 측면 각각의 피부 영역으로부터 복수의 랜드마크를 검출하도록 학습된 인공지능 기반 모델일 수 있다. Referring again to FIG. 4, the processor 130 inputs the input data obtained in this way to the first landmark detection model (S410), and uses the first landmark detection model to detect multiple images of the first part of the target area. Detect landmarks (S420). Here, the first landmark detection model may be an artificial intelligence-based model learned to detect a plurality of landmarks from each skin area on the front of the head and the side of the head based on input data.
두부 정면 및 두부 측면 각각의 피부 영역으로부터 복수의 랜드마크를 검출하기 위해 제1 랜드마크 검출 모델은 두부 정면의 피부 영역으로부터 복수의 랜드마크를 검출하도록 학습된 제1 검출 모델과 두부 측면의 피부 영역으로부터 복수의 랜드마크를 검출하도록 학습된 제2 검출 모델을 포함할 수 있다. 이하에서는 제1 랜드마크 검출 모델에 대해서 도 6을 참조하여 구체적으로 설명하도록 한다.In order to detect a plurality of landmarks from each of the skin areas on the front of the head and the side of the head, the first landmark detection model is a first detection model learned to detect a plurality of landmarks from the skin area on the front of the head and the skin area on the side of the head. It may include a second detection model learned to detect a plurality of landmarks. Hereinafter, the first landmark detection model will be described in detail with reference to FIG. 6.
도 5는 본 개시의 실시예에 따른 제1 랜드마크 검출 모델을 설명하기 위한 개략적인 예시도이다.Figure 5 is a schematic illustration for explaining a first landmark detection model according to an embodiment of the present disclosure.
도 5를 참조하면, 제1 랜드마크 검출 모델(500)은 두부 정면에 해당하는 제1 2차원 영상(510)으로부터 제1 그룹의 복수의 랜드마크를 검출하도록 학습된 제1 검출 모델(530)과 두부 측면에 해당하는 제2 2차원 영상(520)으로부터 제2 그룹의 복수의 랜드마크를 검출하도록 학습된 제2 검출 모델(540)을 포함한다. 제1 랜드마크 검출 모델(500)의 학습 과정에 대해서는 하기에서 도 9를 참조하여 구체적으로 설명하도록 한다.Referring to FIG. 5, the first landmark detection model 500 is a first detection model 530 learned to detect a plurality of landmarks of the first group from the first two-dimensional image 510 corresponding to the front of the head. and a second detection model 540 learned to detect a plurality of landmarks of the second group from the second two-dimensional image 520 corresponding to the side of the head. The learning process of the first landmark detection model 500 will be described in detail with reference to FIG. 9 below.
구체적으로, 프로세서(130)는 제1 2차원 영상(510) 및 깊이 영상을 제1 검출 모델(530)에 입력시키고, 제1 검출 모델(530)을 이용하여 제1 그룹의 복수의 랜드마크(550)을 검출할 수 있다. 이어서, 프로세서(130)는 제2 2차원 영상(520)을 제2 검출 모델(540)에 입력시키고, 제2 검출 모델(540)을 이용하여 제2 그룹의 복수의 랜드마크(560)를 검출할 수 있다.Specifically, the processor 130 inputs the first two-dimensional image 510 and the depth image into the first detection model 530, and uses the first detection model 530 to detect a plurality of landmarks of the first group ( 550) can be detected. Subsequently, the processor 130 inputs the second two-dimensional image 520 into the second detection model 540 and detects a plurality of landmarks 560 of the second group using the second detection model 540. can do.
제1 검출 모델(530)은 제1 2차원 영상(510) 및 깊이 영상을 입력으로 하여 제1 그룹의 복수의 랜드마크(550)에 대한 2차원 좌표 값을 출력할 수 있다. 또한, 제2 검출 모델(540)은 제2 2차원 영상(520)을 입력으로 하여 제2 그룹의 복수의 랜드마크(560)에 대한 2차원 좌표 값을 출력할 수 있다.The first detection model 530 may output two-dimensional coordinate values for a plurality of landmarks 550 of the first group by using the first two-dimensional image 510 and the depth image as input. Additionally, the second detection model 540 may receive the second two-dimensional image 520 as input and output two-dimensional coordinate values for the plurality of landmarks 560 of the second group.
예를 들어, 출력된 제1 그룹의 복수의 랜드마크(550)에 대한 2차원 좌표 값은 x축의 좌표 값과 z축의 좌표 값으로 이루어지고, 출력된 제2 그룹의 복수의 랜드마크(560)에 대한 2차원 좌표 값은 y축의 좌표 값과 z축의 좌표 값으로 이루어질 수 있다.For example, the two-dimensional coordinate values of the output plurality of landmarks 550 of the first group consist of x-axis coordinate values and z-axis coordinate values, and the output plurality of landmarks 560 of the second group The two-dimensional coordinate value for may be composed of a y-axis coordinate value and a z-axis coordinate value.
프로세서(130)는 이와 같이 검출된 제1 그룹의 복수의 랜드마크(550)에 대한 2차원 좌표 값과 제2 그룹의 복수의 랜드마크(560)에 대한 2차원 좌표 값 중 적어도 일부를 결합하여 3차원 좌표 값을 제1 부분에 대한 복수의 랜드마크로서 생성할 수 있다. 이를 통해서, 프로세서(130)는 제1 랜드마크 검출 모델(500)을 이용하여 피부 영역에 대한 19개의 랜드마크(예: Glabella, soft tissue Nasion, Nasal Dorsum 등)를 검출할 수 있다.The processor 130 combines at least some of the detected two-dimensional coordinate values for the plurality of landmarks 550 of the first group and the two-dimensional coordinate values of the plurality of landmarks 560 of the second group to Three-dimensional coordinate values can be generated as a plurality of landmarks for the first portion. Through this, the processor 130 can detect 19 landmarks (eg, Glabella, soft tissue Nasion, Nasal Dorsum, etc.) for the skin area using the first landmark detection model 500.
이하에서는 제1 검출 모델(530) 및 제2 검출 모델(540)의 개략적인 구조에 대해서 도 6을 참조하여 설명하도록 한다. Hereinafter, the schematic structure of the first detection model 530 and the second detection model 540 will be described with reference to FIG. 6.
도 6은 본 개시의 실시예에 따른 검출 모델에 대한 개략적인 구조를 설명하기 위한 예시도이다. 제시된 실시예에서는 도 5의 제1 검출 모델(530) 및 제2 검출 모델(540) 각각이 도 6의 검출 모델(600)의 구조를 가질 수 있다.Figure 6 is an example diagram for explaining the schematic structure of a detection model according to an embodiment of the present disclosure. In the presented embodiment, each of the first detection model 530 and the second detection model 540 of FIG. 5 may have the structure of the detection model 600 of FIG. 6.
도 6을 참조하면, 검출 모델(600)은 합성곱(convolution) 연산을 수행하여 입력되는 영상의 특징을 추출하기 위한 적어도 하나의 컨볼루션 레이어(610), 컨볼루션 채널 및 풀링(Pooling) 채널 등을 적어도 포함하는 컨볼루션 신경망(Convolutional Neural Network, CNN)(620), 풀링 연산을 위한 적어도 하나의 풀링 레이어(630) 및 분류를 수행하는 적어도 하나의 완전 연결 레이어(Fully Connected layer)(640)를 포함할 수 있으나, 이에 한정되지 않는다. 여기서, CNN(620)은 바람직하게는 충분하게 높은 정확도 및 낮은 연산 복잡도를 가지고, 낮은 에너지를 사용하며, 작은 모델 사이즈를 갖는 MobileNet V1/V2 등과 같은 CNN일 수 있으나, 이에 한정되지 않는다. 도 6에서 설명한 검출 모델(600)의 구조는 예시적인 것이므로, 추가적인 레이어들이 존재하거나 또는 레이어들의 일부가 생략될 수 있다.Referring to FIG. 6, the detection model 600 includes at least one convolution layer 610, a convolution channel, a pooling channel, etc. to extract features of the input image by performing a convolution operation. A convolutional neural network (CNN) 620 including at least one pooling layer 630 for a pooling operation and at least one fully connected layer 640 performing classification. It may include, but is not limited to this. Here, the CNN 620 may preferably be a CNN such as MobileNet V1/V2, which has sufficiently high accuracy and low computational complexity, uses low energy, and has a small model size, but is not limited thereto. Since the structure of the detection model 600 described in FIG. 6 is an example, additional layers may exist or some of the layers may be omitted.
다시 도 4를 참조하면, 프로세서(130)는 3차원 볼륨 영상을 제2 랜드마크 검출 모델에 입력시키고(S430), 제2 랜드마크 검출 모델을 이용하여 목적 부위의 제2 부분에 대한 복수의 랜드마크를 검출한다(S440). 여기서, 제2 랜드마크 검출 모델은 3차원 볼륨 영상에 기반하여 제2 부분에 대한 복수의 랜드마크가 위치하는 복수의 3차원 크롭 영상을 검출하기 위한 제3 검출 모델과, 검출된 복수의 3차원 크롭 영상으로부터 제2 부분에 대한 복수의 랜드마크를 검출하기 위한 제4 검출 모델을 포함할 수 있다. 예를 들어, 제2 랜드마크 검출 모델은 C2F(Coarse to Fine) 3D CNN일 수 있으나, 이에 한정되지 않는다. 일례로, 본 개시내용에서의 3차원 크롭 영상은 대상 영상의 적어도 일부분을 포함하도록 편집된 영상을 의미할 수 있다. 본 개시내용에서 3차원 볼륨 영상에서의 제2 부분에 대응되는 랜드마크를 포함하는 3차원 크롭 영상이 검출될 수 있다.Referring again to FIG. 4, the processor 130 inputs the 3D volume image into the second landmark detection model (S430), and uses the second landmark detection model to detect a plurality of lands for the second part of the target area. Detect the mark (S440). Here, the second landmark detection model is a third detection model for detecting a plurality of 3D cropped images in which a plurality of landmarks for the second part are located based on the 3D volume image, and a plurality of detected 3D It may include a fourth detection model for detecting a plurality of landmarks for the second portion from the cropped image. For example, the second landmark detection model may be a C2F (Coarse to Fine) 3D CNN, but is not limited thereto. For example, a 3D cropped image in the present disclosure may mean an image edited to include at least a portion of the target image. In the present disclosure, a 3D cropped image including a landmark corresponding to a second portion in a 3D volume image may be detected.
이하에서는 제2 랜드마크 검출 모델에 대해서 도 7을 참조하여 구체적으로 설명하도록 한다.Hereinafter, the second landmark detection model will be described in detail with reference to FIG. 7.
도 7은 본 개시의 실시예에 따른 제2 랜드마크 검출 모델을 설명하기 위한 개략적인 예시도이다. Figure 7 is a schematic illustration for explaining a second landmark detection model according to an embodiment of the present disclosure.
도 7을 참조하면, 제2 랜드마크 검출 모델(700)은 3차원 볼륨 영상(710)으로부터 제2 부분에 대한 복수의 랜드마크 각각이 위치하는 후보 영역에 해당하는 크롭 영상(730)을 검출하도록 학습된 제3 검출 모델(720)과, 제3 검출 모델(720)로부터 검출된 복수의 크롭 영상(730)으로부터 제2 부분에 대한 복수의 랜드마크를 검출하도록 학습된 복수의 제4 검출 모델(740)을 포함한다. 여기서, 제2 부분은 두부의 뼈 영역을 의미하고, 크롭 영상은 3차원 크롭 영상을 의미한다.Referring to FIG. 7, the second landmark detection model 700 is used to detect a crop image 730 corresponding to a candidate area where each of a plurality of landmarks for the second part is located from the 3D volume image 710. A plurality of fourth detection models learned to detect a plurality of landmarks for the second part from the learned third detection model 720 and a plurality of cropped images 730 detected from the third detection model 720 ( 740). Here, the second part refers to the bone area of the head, and the cropped image refers to a 3D cropped image.
제2 랜드마크 검출 모델(700)의 학습 과정에 대해서는 하기에서 도 11을 참조하여 구체적으로 설명하도록 한다.The learning process of the second landmark detection model 700 will be described in detail with reference to FIG. 11 below.
본 개시의 실시예에서 복수의 크롭 영상 각각에 대응하여 복수의 제4 검출 모델 각각이 구성되며, 이들은 병렬적 구조를 가질 수 있다. 또한, 후보 영역은 제2 부분에 대한 복수의 랜드마크 각각으로 예측되는 적어도 하나의 위치를 포함할 수 있으며, 각각의 후보 영역은 다른 후보 영역과 적어도 일부 중첩될 수도 있다. 구체적으로, 프로세서(130)는 3차원 볼륨 영상(710)을 제3 검출 모델(720)에 입력시키기 위해 3차원 텐서(tensor)로 변경하고, 3차원 텐서를 입력 데이터로서 제3 검출 모델(720)에 입력시킬 수 있다. 프로세서(130)는 제3 검출 모델(720)을 이용하여 제2 부분에 대한 복수의 랜드마크 각각으로 예측되는 위치를 포함하는 후보 영역을 검출하고, 검출된 후보 영역에 해당하는 크롭 영상을 생성할 수 있다. 다양한 실시예에서 프로세서(130)는 제3 검출 모델(720)을 이용하여 복수의 후보 영역에 해당하는 복수의 크롭 영상을 검출할 수도 있다. In an embodiment of the present disclosure, a plurality of fourth detection models are configured to correspond to each of the plurality of cropped images, and they may have a parallel structure. Additionally, the candidate area may include at least one location predicted by each of a plurality of landmarks for the second part, and each candidate area may overlap at least partially with another candidate area. Specifically, the processor 130 changes the 3D volume image 710 into a 3D tensor to input it to the third detection model 720, and uses the 3D tensor as input data to input the third detection model 720. ) can be entered. The processor 130 uses the third detection model 720 to detect a candidate area including a position predicted by each of a plurality of landmarks for the second part and generate a crop image corresponding to the detected candidate area. You can. In various embodiments, the processor 130 may detect a plurality of cropped images corresponding to a plurality of candidate areas using the third detection model 720.
즉, 본 개시의 실시예에 따른 제3 검출 모델(720)은 3차원 텐서를 입력으로 하여 제2 부분에 대한 복수의 랜드마크 각각의 후보 영역에 해당하는 크롭 영상을 출력하거나, 복수의 랜드마크 각각의 후보 영역을 나타내는 3차원 볼륨 영상을 출력할 수도 있다.That is, the third detection model 720 according to an embodiment of the present disclosure takes a 3D tensor as input and outputs a cropped image corresponding to a candidate area for each of a plurality of landmarks for the second part, or a plurality of landmarks A 3D volume image representing each candidate area can also be output.
이어서, 프로세서(130)는 복수의 크롭 영상(730)을 복수의 크롭 영상(730) 각각에 대응하는 복수의 제4 검출 모델(740) 각각에 입력시키고, 복수의 제4 검출 모델(740)을 이용하여 제2 부분에 대한 복수의 랜드마크(750)를 검출할 수 있다. 각 제4 검출 모델은 각 크롭 영상을 입력으로 하여 각 후보 영역에서 검출된 적어도 하나의 랜드마크를 출력 데이터로서 출력할 수 있다. 예를 들어, 출력 데이터는 제1 크롭 영상(730a)의 후보 영역으로부터 검출된 제1 랜드마크에 대한 3차원 좌표값 (x1, y1, z1), 제2 크롭 영상(730b)의 후보 영역으로부터 검출된 제2 랜드마크에 대한 3차원 좌표값 (x2, y2, z2), 제3 크롭 영상(730c)의 후보 영역으로부터 검출된 제3 랜드마크에 대한 3차원 좌표값 (x3, y3, z3), 제4 크롭 영상(730d)의 후보 영역으로부터 검출된 제4 랜드마크에 대한 3차원 좌표값 (x4, y4, z4), …, 제n 크롭 영상(730n)의 후보 영역으로부터 검출된 제n 랜드마크에 대한 3차원 좌표값 (xn, yn, zn)을 포함할 수 있다. 여기서, n은 4보다 큰 자연수일 수 있다. 즉, 본 개시의 실시예에 따른 복수의 제4 검출 모델(740) 각각은 각 크롭 영상을 입력으로 하여 각 크롭 영상의 후보 영역으로부터 검출된 랜드마크에 대한 3차원 좌표 값(750)을 출력할 수 있다.Next, the processor 130 inputs the plurality of cropped images 730 into each of the plurality of fourth detection models 740 corresponding to each of the plurality of cropped images 730, and generates the plurality of fourth detection models 740. Using this, a plurality of landmarks 750 for the second part can be detected. Each fourth detection model may use each cropped image as an input and output at least one landmark detected in each candidate area as output data. For example, the output data is the 3D coordinate values (x1, y1, z1) for the first landmark detected from the candidate area of the first cropped image 730a, and the candidate area of the second cropped image 730b. 3D coordinate values (x2, y2, z2) for the second landmark, 3D coordinate values (x3, y3, z3) for the third landmark detected from the candidate area of the third cropped image 730c, 3D coordinate values (x4, y4, z4) for the fourth landmark detected from the candidate area of the fourth cropped image 730d... , may include 3D coordinate values (xn, yn, zn) for the nth landmark detected from the candidate area of the nth cropped image 730n. Here, n may be a natural number greater than 4. That is, each of the plurality of fourth detection models 740 according to an embodiment of the present disclosure takes each cropped image as an input and outputs a three-dimensional coordinate value 750 for the landmark detected from the candidate area of each cropped image. You can.
프로세서(130)는 이와 같이 검출된 3차원 좌표 값을 포함하는 제2 부분에 대한 3차원 랜드마크(760)를 생성할 수 있다. 구체적으로, 프로세서(130)는 제1 랜드마크, 제2 랜드마크, 제3 랜드마크, …, 제n 랜드마크에 대한 3차원 좌표 값(750)을 3차원 볼륨 영상에서의 3차원 랜드마크 좌표 값으로 변환하여 목적 부위의 뼈 영역에 대한 복수의 3차원 랜드마크로서 생성할 수 있다. 이를 통해서, 프로세서(130)는 제2 랜드마크 검출 모델(700)을 이용하여 뼈 영역에 대한 49개의 랜드마크(예: Nasion, sella, R, L Po, R, L Or, R, L Pertygoid 등)를 검출할 수 있다.The processor 130 may generate a 3D landmark 760 for the second portion including the 3D coordinate values detected in this way. Specifically, the processor 130 processes a first landmark, a second landmark, a third landmark,... , the 3D coordinate value 750 for the n-th landmark can be converted into a 3D landmark coordinate value in the 3D volume image to generate a plurality of 3D landmarks for the bone area of the target region. Through this, the processor 130 uses the second landmark detection model 700 to detect 49 landmarks for the bone area (e.g. Nasion, sella, R, L Po, R, L Or, R, L Pertygoid, etc. ) can be detected.
다양한 실시예에서 복수의 제4 검출 모델(740)은 복수의 랜드마크 각각에 대응하여 각 랜드마크를 검출하도록 학습된 인공지능 기반 모델일 수 있다. 예를 들어, 뼈 영역에 대한 랜드마크의 개수가 49개인 경우 복수의 제4 검출 모델(740) 각각은 49개의 랜드마크 각각을 검출하기 위해 학습된 인공지능 기반 모델일 수 있다. 이러한 경우 프로세서(130)는 복수의 3차원 크롭 영상 각각을 49개의 제4 검출 모델 각각에 입력시키고, 49개의 제4 검출 모델 각각을 이용하여 복수의 3차원 크롭 영상으로부터 49개의 3차원 랜드마크 좌표값을 검출할 수 있다. 이처럼, 각 랜드마크별 검출 모델을 구비함으로써, 3차원 랜드마크에 대한 정확도 높은 검출이 가능하다.In various embodiments, the plurality of fourth detection models 740 may be artificial intelligence-based models learned to detect each landmark in response to each of the plurality of landmarks. For example, if the number of landmarks for the bone area is 49, each of the plurality of fourth detection models 740 may be an artificial intelligence-based model learned to detect each of the 49 landmarks. In this case, the processor 130 inputs each of the plurality of 3D cropped images into each of the 49 fourth detection models, and uses each of the 49 fourth detection models to determine 49 3D landmark coordinates from the plurality of 3D cropped images. The value can be detected. In this way, by providing a detection model for each landmark, high-accuracy detection of 3D landmarks is possible.
이하에서는 제3 검출 모델(720) 및 복수의 제4 검출 모델(740)의 개략적인 구조에 대해서 도 8을 참조하여 설명하도록 한다. Hereinafter, the schematic structure of the third detection model 720 and the plurality of fourth detection models 740 will be described with reference to FIG. 8.
도 8은 본 개시의 실시예에 따른 검출 모델에 대한 개략적인 구조를 설명하기 위한 예시도이다. 제시된 실시예에서는 도 7의 제3 검출 모델(720) 및 복수의 제4 검출 모델(740) 각각이 도 8의 검출 모델(800)의 구조를 가질 수 있다.Figure 8 is an example diagram for explaining the schematic structure of a detection model according to an embodiment of the present disclosure. In the presented embodiment, each of the third detection model 720 and the plurality of fourth detection models 740 of FIG. 7 may have the structure of the detection model 800 of FIG. 8.
도 8을 참조하면, 검출 모델(800)은 합성곱 연산을 수행하는 적어도 하나의 컨볼루션 레이어(805), BN(Batch Normalization) 레이어(810), 활성화 함수 레이어(RELU)(815), 맥스 풀링(Max Pooling) 레이어 (820), CNN(825), BN 레이어(830) 및 FC 레이어(835)를 포함할 수 있다. 여기서, CNN(825)은 바람직하게는 입력 레이어와 가까운 레이어에서 가중치가 제대로 업데이트되지 않은 문제(vanishing-gradient 문제)를 해결하고, 강화된 특징값 전파(feature propagation)를 제공하며, 특징값을 재사용할 수 있고, 파라미터의 수를 줄일 수 있는 DenseNet121 등과 같은 CNN일 수 있으나, 이에 한정되지 않는다. 도 8에서 설명한 검출 모델(800)의 구조는 예시적인 것이므로, 추가적인 레이어들이 존재하거나 또는 레이어들의 일부가 생략될 수 있다.Referring to FIG. 8, the detection model 800 includes at least one convolution layer 805 that performs a convolution operation, a batch normalization (BN) layer 810, an activation function layer (RELU) 815, and max pooling. (Max Pooling) layer 820, CNN 825, BN layer 830, and FC layer 835. Here, the CNN 825 preferably solves the problem that weights are not properly updated in layers close to the input layer (vanishing-gradient problem), provides enhanced feature propagation, and reuses feature values. It can be a CNN such as DenseNet121 that can reduce the number of parameters, but is not limited to this. Since the structure of the detection model 800 described in FIG. 8 is exemplary, additional layers may exist or some of the layers may be omitted.
다시 도 4를 참조하면, 프로세서(130)는 제1 부분에 대한 복수의 랜드마크 및 제2 부분에 대한 복수의 랜드마크에 기반하여 목적 부위에 대한 복수의 랜드마크를 생성한다(S450). 구체적으로, 프로세서(130)는 제1 랜드마크 검출 모델(500)을 이용하여 검출된 제1 부분에 대한 복수의 랜드마크의 3차원 좌표 값과 제2 랜드마크 검출 모델(700)을 이용하여 검출된 제2 부분에 대한 복수의 랜드마크의 3차원 좌표 값을 결합하여 목적 부위에 대한 복수의 랜드마크의 3차원 좌표 값으로써 생성할 수 있다. Referring again to FIG. 4, the processor 130 generates a plurality of landmarks for the target area based on the plurality of landmarks for the first part and the plurality of landmarks for the second part (S450). Specifically, the processor 130 detects using the 3D coordinate values of a plurality of landmarks for the first portion detected using the first landmark detection model 500 and the second landmark detection model 700. The 3D coordinate values of the plurality of landmarks for the second part may be combined to generate the 3D coordinate values of the plurality of landmarks for the target area.
나아가, 프로세서(130)는 목적 부위에 대한 복수의 랜드마크의 3차원 좌표 값을 나타내는 웹 페이지를 제공할 수 있다.Furthermore, the processor 130 may provide a web page indicating 3D coordinate values of a plurality of landmarks for the target area.
이를 통해, 본 개시의 실시예에 따른 랜드마크 검출 방법은 인공지능 기반 모델을 이용하여 3차원 볼륨 영상으로부터 두부의 피부 영역과 뼈 영역을 구분하여 랜드마크를 추출함으로써, 랜드마크 검출 시간을 최소화하고, 검출 정확도를 향상시킬 수 있다.Through this, the landmark detection method according to an embodiment of the present disclosure extracts landmarks by distinguishing the skin area and bone area of the head from a 3D volume image using an artificial intelligence-based model, thereby minimizing landmark detection time and , detection accuracy can be improved.
도 9는 본 개시의 실시예에 따른 제1 랜드마크 검출 모델의 학습 과정을 설명하기 위한 예시도이다. 제시된 실시예에서 하기의 동작들은 서버(100)의 프로세서(130)에 의해서 수행될 수 있다.Figure 9 is an example diagram for explaining the learning process of the first landmark detection model according to an embodiment of the present disclosure. In the presented embodiment, the following operations may be performed by the processor 130 of the server 100.
도 9를 참조하면, 프로세서(130)는 제1 전처리(905)를 수행하여 학습 데이터(900)를 3차원 텐서로 변환할 수 있다. 여기서, 학습 데이터(900)는 두부에 해당하는 목적 부위를 촬영한 3차원 볼륨 영상으로서, 200 내지 300장의 3D CT 영상일 수 있다. 예를 들어, 제1 전처리(905)는 3차원 볼륨 영상을 3차원 텐서로 변환하기 위한 선형 변환(liner transform) 및 3차원 텐서를 (1, 1, 1)의 복셀(vexel) 사이즈를 갖는 3차원 텐서로 변환하기 위한 리샘플링(resampling)을 포함할 수 있으나, 이에 한정되지 않는다.Referring to FIG. 9, the processor 130 may perform a first preprocessing 905 to convert the learning data 900 into a three-dimensional tensor. Here, the learning data 900 is a 3D volume image obtained by photographing a target area corresponding to the head, and may be 200 to 300 3D CT images. For example, the first preprocessing 905 performs a linear transform to convert a 3D volume image into a 3D tensor and converts the 3D tensor into 3 with a voxel size of (1, 1, 1). It may include, but is not limited to, resampling to convert to a dimensional tensor.
이어서, 프로세서(130)는 학습 데이터의 수를 보강하기 위해 3차원 텐서에 대한 1차 데이터 증강(910)을 수행할 수 있다. 여기서, 1차 데이터 증강(910)은 3차원 텐서 및 3차원 텐서에 대한 각 3차원 좌표 값을 사전 설정된 각도만큼 회전(shift)시켜 복수의 3차원 텐서 및 복수의 3차원 좌표 값을 생성하는 데이터 증강 방식이 이용될 수 있다. 예를 들어, 프로세서(130)는 3차원 텐서를 3차원 y축 및 z축으로 회전시킨 복수의 3차원 텐서를 생성할 수 있다. CT 영상의 경우 사용자마다 촬영 높이가 다를 수 있고, 촬영 중 사용자가 두부를 움직일 수 있으므로, 프로세서(130)는 3차원 텐서를 다양한 각도만큼 회전시켜 학습 데이터로서 이용할 수 있다. 이를 통해, 예를 들어 기존 영상의 약 21배에 해당하는 증강된 영상이 생성될 수 있다.Subsequently, the processor 130 may perform primary data augmentation 910 on the 3D tensor to augment the number of learning data. Here, the first data augmentation 910 is data that generates a plurality of 3D tensors and a plurality of 3D coordinate values by rotating (shifting) the 3D tensor and each 3D coordinate value for the 3D tensor by a preset angle. Augmentation methods may be used. For example, the processor 130 may generate a plurality of 3D tensors by rotating a 3D tensor along the 3D y-axis and z-axis. In the case of CT images, the imaging height may be different for each user and the user may move the head during imaging, so the processor 130 can rotate the 3D tensor by various angles and use it as learning data. Through this, for example, an augmented image that is approximately 21 times the size of the existing image can be generated.
다음으로, 프로세서(130)는 3차원 텐서로부터 두부 정면의 2차원 영상을 추출하기 위한 제1 학습 데이터 획득(915)과 두부 측면의 2차원 영상을 추출하기 위한 제2 학습 데이터 획득(920)을 수행할 수 있다. 제1 학습 데이터 획득(915) 및 제2 학습 데이터 획득(920)은 이를 위한 알고리즘을 통해서 수행될 수 있다. Next, the processor 130 performs first learning data acquisition 915 for extracting a two-dimensional image of the front of the head from a three-dimensional tensor and second learning data acquisition 920 for extracting a two-dimensional image of the side of the head. It can be done. First learning data acquisition 915 and second learning data acquisition 920 may be performed through algorithms for this purpose.
구체적으로, 제1 학습 데이터 획득(915)을 위해 프로세서(130)는 3차원 텐서를 랜더링하여 두부 정면의 2차원 영상 및 깊이 영상을 추출할 수 있다. 제2 학습 데이터 획득(920)을 위해 프로세서(130)는 3차원 텐서를 랜더링하여 두부 측면의 2차원 영상을 추출할 수 있다. 여기서, 추출된 2차원 영상은 예를 들어 2차원 텐서일 수 있다.Specifically, to obtain the first learning data 915, the processor 130 may render a 3D tensor and extract a 2D image and a depth image of the front of the head. To acquire second learning data 920, the processor 130 may extract a 2D image of the side of the head by rendering a 3D tensor. Here, the extracted two-dimensional image may be, for example, a two-dimensional tensor.
이어서, 프로세서(130)는 제1 학습 데이터에 대한 제2 전처리(925) 및 제2 학습 데이터에 대한 제2 전처리(930)를 수행할 수 있다. 여기서, 제1 학습 데이터에 대한 제2 전처리(925) 및 제2 학습 데이터에 대한 제2 전처리(930) 각각은 2차원 영상에 대한 정규화(Normalization) 및 2차 영상의 크기를 사전 설정된 크기로 만들기 위해 빈 공간을 기 설정된 값으로 채우는 패딩(padding)을 포함할 수 있으나, 이에 한정되지 않는다.Subsequently, the processor 130 may perform a second preprocessing 925 on the first learning data and a second preprocessing 930 on the second learning data. Here, the second preprocessing 925 for the first learning data and the second preprocessing 930 for the second learning data each normalize the two-dimensional image and make the size of the second image a preset size. It may include padding that fills empty space with a preset value, but is not limited to this.
다음으로, 프로세서(130)는 제2 전처리된 제1 학습 데이터에 대한 2차 데이터 증강(935) 및 제2 전처리된 제2 학습 데이터에 대한 2차 데이터 증강(940)을 수행할 수 있다. 각각의 2차 데이터 증강은 앞서 설명한 바와 같은 데이터 증강 방식이 이용될 수 있다. 예를 들어, 프로세서(130)는 제2 전처리된 제1 학습 데이터, 즉 두부 정면에 대한 제2 전처리된 2차원 영상, 제2 전처리된 깊이 영상 및 각 영상에 대한 2차원 좌표 값(x, z)을 사전 설정된 각도만큼 회전시켜 복수의 2차원 영상, 복수의 깊이 영상 및 복수의 2차원 좌표 값을 생성함으로써, 2차원 영상, 깊이 영상 및 2차원 좌표 값을 다양한 각도만큼 회전시켜 제1 학습 데이터로서 이용할 수 있다. 또한, 프로세서(130)는 제2 전처리된 제2 학습 데이터, 즉 두부 측면에 대한 제2 전처리된 2차원 영상 및 각 영상에 대한 2차원 좌표 값(y, z)을 사전 설정된 각도만큼 회전시켜 복수의 2차원 영상 및 복수의 2차원 좌표 값을 생성함으로써, 2차원 영상 및 2차원 좌표를 다양한 각도만큼 회전시켜 제2 학습 데이터로서 이용할 수 있다. 이를 통해, 예를 들어 기존 영상의 약 10배 내지 16배에 해당하는 증강된 영상이 생성될 수 있다.Next, the processor 130 may perform secondary data augmentation 935 on the second preprocessed first training data and secondary data augmentation 940 on the second preprocessed second training data. For each secondary data augmentation, the data augmentation method described above may be used. For example, the processor 130 may include second preprocessed first training data, that is, a second preprocessed two-dimensional image for the front of the head, a second preprocessed depth image, and two-dimensional coordinate values (x, z) for each image. ) by a preset angle to generate a plurality of two-dimensional images, a plurality of depth images, and a plurality of two-dimensional coordinate values, thereby rotating the two-dimensional image, depth image, and two-dimensional coordinate values by various angles to generate first learning data. It can be used as. In addition, the processor 130 rotates the second preprocessed second learning data, that is, the second preprocessed two-dimensional image for the side of the head, and the two-dimensional coordinate values (y, z) for each image by a preset angle to obtain a plurality of preprocessed learning data. By generating a two-dimensional image and a plurality of two-dimensional coordinate values, the two-dimensional image and two-dimensional coordinates can be rotated by various angles and used as second learning data. Through this, for example, an enhanced image that is approximately 10 to 16 times larger than the existing image can be generated.
이어서, 프로세서(130)는 제1 모델 학습(945) 및 제2 모델 학습(950)을 수행할 수 있다. 여기서, 제1 모델 학습(945)은 2차 데이터 증강(935)을 통해서 증강된 제1 학습 데이터를 입력으로 하여 두부 정면의 피부 영역으로부터 복수의 랜드마크를 검출하도록 제1 검출 모델(530)을 학습시키는 동작일 수 있다. 제2 모델 학습(1050)은 2차 데이터 증강(940)을 통해서 증강된 제2 학습 데이터를 입력으로 하여 두부 측면의 피부 영역으로부터 복수의 랜드마크를 검출하도록 제2 검출 모델(540)을 학습시키는 동작일 수 있다. Subsequently, the processor 130 may perform first model training 945 and second model training 950. Here, the first model learning 945 uses the first learning data augmented through the secondary data augmentation 935 as input and uses the first detection model 530 to detect a plurality of landmarks from the skin area on the front of the head. It may be a learning behavior. The second model learning (1050) trains the second detection model (540) to detect a plurality of landmarks from the skin area on the side of the head by using the second learning data augmented through the secondary data augmentation (940) as input. It could be a movement.
이하에서는 제1 랜드마크 검출 모델(500)의 추론(Inference) 과정에 대해서 도 10을 참조하여 구체적으로 설명하도록 한다.Hereinafter, the inference process of the first landmark detection model 500 will be described in detail with reference to FIG. 10.
도 10은 본 개시의 실시예에 따른 제1 랜드마크 검출 모델의 추론 과정을 설명하기 위한 예시도이다. 제시된 실시예에서 하기의 동작들은 서버(100)의 프로세서(130)에 의해서 수행될 수 있다.Figure 10 is an example diagram for explaining the inference process of the first landmark detection model according to an embodiment of the present disclosure. In the presented embodiment, the following operations may be performed by the processor 130 of the server 100.
도 10을 참조하면, 프로세서(130)는 3차원 볼륨 영상(710)에 대한 제1 전처리(1000)를 수행하여 3차원 텐서로 변환하고, 3차원 텐서로부터 피부 영역의 두부 정면에 대한 2차원 영상을 추출하기 위한 제1 입력 데이터 획득(1010)과 피부 영역의 두부 측면에 대한 2차원 영상을 추출하기 위한 제2 입력 데이터 획득(1020)을 수행할 수 있다. 여기서, 제1 전처리(1000), 제1 입력 데이터 획득(1010) 및 제2 입력 데이터 획득(1020)은 도 9를 참조하여 상술한 제1 전처리(905), 제1 학습 데이터 획득(915) 및 제2 학습 데이터 획득(920)과 적어도 동일한 동작일 수 있다.Referring to FIG. 10, the processor 130 performs a first preprocessing 1000 on the 3D volume image 710 to convert it into a 3D tensor, and from the 3D tensor a 2D image of the front of the head of the skin area. First input data acquisition 1010 for extracting and second input data acquisition 1020 for extracting a two-dimensional image of the head side of the skin area may be performed. Here, the first preprocessing (1000), the first input data acquisition (1010), and the second input data acquisition (1020) are the first preprocessing (905), the first learning data acquisition (915) and the first learning data acquisition (915) described above with reference to FIG. 9. This may be at least the same operation as the second learning data acquisition 920.
구체적으로, 프로세서(130)는 제1 입력 데이터 획득(1010)을 통해 3차원 텐서로부터 두부 정면에 대한 제1 2차원 영상 및 깊이 영상을 제1 입력 데이터로서 획득하고, 제2 입력 데이터 획득(1020)을 통해 두부 측면에 대한 제2 2차원 영상을 제2 입력 데이터로서 획득할 수 있다.Specifically, the processor 130 acquires a first 2-dimensional image and a depth image for the front of the head from a 3D tensor as first input data through first input data acquisition 1010, and acquires second input data 1020. ), a second two-dimensional image of the side of the head can be obtained as second input data.
이어서, 프로세서(130)는 제1 입력 데이터에 대한 제2 전처리(1030) 및 제2 입력 데이터에 대한 제2 전처리(1040)를 수행할 수 있다. 여기서, 제2 전처리(1030, 1040)는 도 9를 참조하여 상술한 제2 전처리(925, 930)와 적어도 동일한 동작일 수 있다. Subsequently, the processor 130 may perform a second preprocessing 1030 on the first input data and a second preprocessing 1040 on the second input data. Here, the second preprocessing (1030, 1040) may be at least the same operation as the second preprocessing (925, 930) described above with reference to FIG. 9.
다음으로, 프로세서(130)는 제2 전처리된 제1 입력 데이터로부터 2차원 랜드마크 예측(1050)을 수행하고, 제2 전처리된 제2 입력 데이터로부터 2차원 랜드마크 예측(1060)을 수행할 수 있다. 여기서, 2차원 랜드마크 예측(1050, 1060)은 도 5를 참조하여 상술한 제1 랜드마크 검출 모델(500)을 이용하여 제1 2차원 영상(510) 및 깊이 영상으로부터 제1 그룹의 복수의 랜드마크(550)를 검출하고, 제2 2차원 영상(520)으로부터 제2 그룹의 복수의 랜드마크(560)를 검출하는 동작을 의미할 수 있다. 즉, 프로세서(130)는 2차원 랜드마크 예측(1050, 1060)을 통해 제2 전처리된 제1 입력 데이터로부터 두부 정면에 대하여 예측된 2차원 랜드마크 좌표 값(x, z) 및 제2 전처리된 제2 입력 데이터로부터 두부 측면에 대하여 예측된 2차원 랜드마크 좌표 값(y, z)을 획득할 수 있다.Next, the processor 130 may perform two-dimensional landmark prediction 1050 from the second pre-processed first input data and perform two-dimensional landmark prediction 1060 from the second pre-processed second input data. there is. Here, the two-dimensional landmark prediction (1050, 1060) uses the first landmark detection model 500 described above with reference to FIG. 5 to predict a plurality of images of the first group from the first two-dimensional image 510 and the depth image. This may mean an operation of detecting a landmark 550 and detecting a plurality of landmarks 560 of the second group from the second two-dimensional image 520. That is, the processor 130 predicts the two-dimensional landmark coordinate values (x, z) and the second pre-processed Two-dimensional landmark coordinate values (y, z) predicted for the side of the head can be obtained from the second input data.
이어서, 프로세서(130)는 3차원 랜드마크 예측(1070)을 수행하고, 후처리(1080)을 수행하여 목적 부위에 대한 3차원 랜드마크를 생성할 수 있다. 여기서, 3차원 랜드마크 예측(1070)은 2차원 랜드마크 예측(1050, 1060)을 통해서 획득된 2차원 랜드마크 좌표 값들 중 적어도 일부를 결합하여 3차원 좌표 값을 생성하는 동작을 의미할 수 있다. 또한, 후처리(1080)는 3차원 텐서 및 3차원 좌표 값에 기반하여 수정된 3차원 좌표 값(즉, 3차원 볼륨 영상에서의 3차원 좌표 값)을 획득하는 동작을 의미하며, 이를 위한 알고리즘 등이 이용될 수 있다.Subsequently, the processor 130 may perform 3D landmark prediction 1070 and perform post-processing 1080 to generate a 3D landmark for the target area. Here, 3D landmark prediction 1070 may refer to the operation of generating 3D coordinate values by combining at least some of the 2D landmark coordinate values obtained through 2D landmark prediction 1050 and 1060. . In addition, post-processing 1080 refers to the operation of acquiring modified 3D coordinate values (i.e., 3D coordinate values in a 3D volume image) based on the 3D tensor and 3D coordinate values, and an algorithm for this etc. can be used.
구체적으로, 3차원 랜드마크 예측(1070)에서 프로세서(130)는 두부 정면에 대하여 예측된 2차원 랜드마크 좌표 값(x, z) 및 두부 측면에 대하여 예측된 2차원 랜드마크 좌표 값(y, z) 중 적어도 일부를 결합하여 3차원 랜드마크 좌표 값(x, y, z)을 생성할 수 있다. 예를 들어, 프로세서(130)는 두부 정면에 대하여 예측된 x 좌표와 두부 측면에 대하여 예측된 y, z 좌표를 결합하거나, 두부 정면에 대하여 예측된 x, z 좌표와 두부 측면에 대하여 예측된 y 좌표를 결합하여 피부 영역에 대한 3차원 랜드마크 좌표 값(x, y, z)을 생성할 수 있다.Specifically, in 3D landmark prediction 1070, the processor 130 predicts 2D landmark coordinate values (x, z) predicted for the front of the head and 2D landmark coordinate values (y, z) can be combined to generate 3D landmark coordinate values (x, y, z). For example, processor 130 may combine the x coordinates predicted for the front of the head with the y, z coordinates predicted for the sides of the head, or the x, z coordinates predicted for the front of the head and the y coordinates predicted for the sides of the head. By combining the coordinates, 3D landmark coordinate values (x, y, z) for the skin area can be generated.
후처리(1080)에서 프로세서(130)는 3차원 랜드마크 좌표 값 중 x 좌표를 이용하여 제1 전처리(1000)를 통해서 획득된 3차원 텐서에서, 정면 이미지를 찾고, 그에 대한 마스크를 찾은 후 에지(edge)를 검출할 수 있다. 이어서, 프로세서(130)는 검출된 에지에서 가장 가까운 피부에 해당하는 좌표 값을 찾고, 해당 랜드마크 좌표 값을 찾은 좌표 값으로 변환함으로써, 예측된 3차원 좌표 값을 피부 영역에서의 3차원 좌표 값으로 이동시켜 피부 영역에서의 3차원 좌표 값과 예측된 3차원 좌표 값 사이의 차이를 최소화할 수 있다. 프로세서(130)는 이와 같이 후처리된 3차원 랜드마크 좌표 값을 제1 부분에 대한 복수의 랜드마크로서 출력할 수 있다.In post-processing (1080), the processor 130 searches for a frontal image in the 3-dimensional tensor obtained through the first pre-processing (1000) using the (edge) can be detected. Subsequently, the processor 130 finds the coordinate value corresponding to the skin closest to the detected edge and converts the corresponding landmark coordinate value into the found coordinate value, thereby converting the predicted 3D coordinate value into the 3D coordinate value in the skin area. By moving to , the difference between the 3D coordinate value in the skin area and the predicted 3D coordinate value can be minimized. The processor 130 may output the post-processed 3D landmark coordinate values as a plurality of landmarks for the first portion.
도 11은 본 개시의 실시예에 따른 제2 랜드마크 검출 모델의 학습 과정을 설명하기 위한 예시도이다. 제시된 실시예에서 하기의 동작들은 서버(100)의 프로세서(130)에 의해서 수행될 수 있다.Figure 11 is an example diagram for explaining the learning process of a second landmark detection model according to an embodiment of the present disclosure. In the presented embodiment, the following operations may be performed by the processor 130 of the server 100.
도 11을 참조하면, 프로세서(130)는 전처리(1110)를 수행하여 학습 데이터(1100)를 3차원 텐서로 변환할 수 있다. 여기서, 전처리(1110)는 3차원 볼륨 영상의 두부 영역에서 뼈 영역 이외의 나머지 영역을 제거하기 위한 마스킹(masking) 연산 방식이 이용될 수 있다. 구체적으로, 프로세서(130)는 3차원 볼륨 영상의 두부 영역에서 뼈 영역을 제외한 나머지 영역을 제거하고, 뼈 영역이 존재하는 3차원 볼륨 영상을 3차원 텐서로 변환할 수 있다. Referring to FIG. 11, the processor 130 may perform preprocessing 1110 to convert the learning data 1100 into a three-dimensional tensor. Here, the preprocessing 1110 may use a masking operation method to remove the remaining areas other than the bone area from the head area of the 3D volume image. Specifically, the processor 130 may remove the remaining area excluding the bone area from the head area of the 3D volume image and convert the 3D volume image including the bone area into a 3D tensor.
이어서, 프로세서(130)는 학습 데이터의 수를 보강하기 위해 3차원 텐서에 대한 데이터 증강(1120)을 수행할 수 있다. 여기서, 데이터 증강(1120)은 도 9를 참조하여 상술한 1차 데이터 증강(910)과 같이 3차원 텐서 및 3차원 텐서에 대한 각 3차원 좌표 값을 사전 설정된 각도만큼 회전시켜 복수의 3차원 텐서 및 복수의 3차원 좌표 값을 생성하는 데이터 증강 방식이 이용될 수 있다.Subsequently, the processor 130 may perform data augmentation 1120 on the 3D tensor to augment the number of learning data. Here, the data augmentation 1120, like the first data augmentation 910 described above with reference to FIG. 9, rotates the 3D tensor and each 3D coordinate value for the 3D tensor by a preset angle to create a plurality of 3D tensors. And a data augmentation method that generates a plurality of three-dimensional coordinate values can be used.
다음으로, 프로세서(130)는 증강된 3차원 텐서에 대한 제3 모델 학습(1130)을 수행할 수 있다. 여기서, 제3 모델 학습(1130)은 데이터 증강을 통해서 증가된 학습 데이터를 입력으로 하여 뼈 영역에 존재하는 복수의 3차원 랜드마크의 위치로 예측되는 복수의 후보 영역을 검출하도록 제3 검출 모델(720)을 학습시키는 동작일 수 있다. Next, the processor 130 may perform third model learning 1130 on the augmented 3D tensor. Here, the third model learning 1130 uses training data increased through data augmentation as input to detect a plurality of candidate regions predicted by the positions of a plurality of 3D landmarks existing in the bone region (a third detection model (3130)). 720) may be a learning operation.
이어서, 프로세서(130)는 복수의 크롭 영상에 대한 복수의 제4 모델 학습(1140)을 수행할 수 있다. 여기서, 복수의 제4 모델 학습(1140)은 복수의 크롭 영상으로부터 복수의 3차원 랜드마크를 검출하도록 복수의 크롭 영상에 대응하는 복수의 제4 검출 모델(740)을 학습시키는 동작일 수 있다. Subsequently, the processor 130 may perform a plurality of fourth model training 1140 on a plurality of cropped images. Here, the plurality of fourth model training 1140 may be an operation of training a plurality of fourth detection models 740 corresponding to a plurality of cropped images to detect a plurality of 3D landmarks from the plurality of cropped images.
이하에서는 제2 랜드마크 검출 모델(700)의 추론 과정에 대해서 도 12를 참조하여 구체적으로 설명하도록 한다.Hereinafter, the inference process of the second landmark detection model 700 will be described in detail with reference to FIG. 12.
도 12는 본 개시의 실시예에 따른 제2 랜드마크 검출 모델의 추론 과정을 설명하기 위한 예시도이다. 제시된 실시예에서 하기의 동작들은 서버(100)의 프로세서(130)에 의해서 수행될 수 있다.Figure 12 is an example diagram for explaining the inference process of a second landmark detection model according to an embodiment of the present disclosure. In the presented embodiment, the following operations may be performed by the processor 130 of the server 100.
도 12를 참조하면, 프로세서(130)는 3차원 볼륨 영상(710)에 대한 전처리(1200)를 수행하여 3차원 텐서로 변환하고, 3차원 텐서에 대한 3차원 랜드마크 후보 영역 예측(1210)을 수행할 수 있다. 여기서, 전처리(1200)는 도 11을 참조하여 상술한 전처리(1110)와 적어도 동일한 동작일 수 있다. 구체적으로, 3차원 랜드마크 후보 영역 예측(1210)에서 프로세서(130)는 3차원 텐서 및 3차원 좌표 값을 제3 검출 모델(730)에 입력시키고, 제3 검출 모델(730)을 이용하여 뼈 영역에 존재하는 복수의 3차원 랜드마크의 위치로 예측되는 복수의 후보 영역에 해당하는 복수의 3차원 크롭 영상을 생성할 수 있다. 즉, 제3 검출 모델(730)은 증강된 3차원 텐서 및 증강된 3차원 좌표 값을 입력으로 하여 복수의 후보 영역에 해당하는 복수의 3차원 크롭 영상을 출력할 수 있다.Referring to FIG. 12, the processor 130 performs preprocessing (1200) on the 3D volume image 710, converts it into a 3D tensor, and predicts 3D landmark candidate area for the 3D tensor (1210). It can be done. Here, the preprocessing 1200 may be at least the same operation as the preprocessing 1110 described above with reference to FIG. 11 . Specifically, in the 3D landmark candidate area prediction 1210, the processor 130 inputs a 3D tensor and 3D coordinate values into the third detection model 730, and uses the third detection model 730 to detect the bone. A plurality of 3D crop images corresponding to a plurality of candidate areas predicted by the positions of a plurality of 3D landmarks existing in the area can be generated. That is, the third detection model 730 may output a plurality of 3D cropped images corresponding to a plurality of candidate regions by using the augmented 3D tensor and the augmented 3D coordinate values as input.
다음으로, 프로세서(130)는 복수의 3차원 크롭 영상에 대한 복수의 3차원 랜드마크 예측(1220)을 수행할 수 있다. 복수의 3차원 랜드마크 예측(1220)에서 프로세서(130)는 복수의 크롭 영상을 복수의 제4 검출 모델(740)에 입력시키고, 복수의 제4 검출 모델(740)을 이용하여 복수의 3차원 크롭 영상의 후보 영역으로부터 복수의 3차원 랜드마크 좌표 값을 검출할 수 있다. 즉, 복수의 제4 검출 모델(740)은 복수의 3차원 크롭 영상을 입력으로 하여 복수의 후보 영역으로부터 예측된 복수의 3차원 랜드마크 좌표 값(x, y, z)을 출력할 수 있다.Next, the processor 130 may perform a plurality of 3D landmark predictions 1220 on a plurality of 3D cropped images. In the plurality of 3D landmark predictions 1220, the processor 130 inputs a plurality of cropped images into a plurality of fourth detection models 740, and uses the plurality of fourth detection models 740 to predict a plurality of 3D landmarks. A plurality of 3D landmark coordinate values can be detected from the candidate area of the cropped image. That is, the plurality of fourth detection models 740 may receive a plurality of 3D cropped images as input and output a plurality of 3D landmark coordinate values (x, y, z) predicted from a plurality of candidate areas.
이어서, 프로세서(130)는 복수의 3차원 크롭 영상 각각으로부터 검출된 3차원 랜드마크 좌표 값을 기초로 뼈 영역에 대한 3차원 랜드마크 생성(1230)을 수행할 수 있다. 구체적으로, 프로세서(130)는 각 후보 영역으로부터 예측된 3차원 랜드마크 좌표 값을 3차원 볼륨 영상에서의 3차원 랜드마크 좌표 값으로 변환하여 뼈 영역에 대한 3차원 랜드마크 좌표 값을 생성할 수 있다.Subsequently, the processor 130 may perform 3D landmark generation 1230 for the bone area based on the 3D landmark coordinate values detected from each of the plurality of 3D cropped images. Specifically, the processor 130 can generate 3D landmark coordinate values for the bone region by converting the 3D landmark coordinate values predicted from each candidate region into 3D landmark coordinate values in the 3D volume image. there is.
나아가, 프로세서(130)는 피부 영역에 대한 3차원 랜드마크 좌표 값과 뼈 영역에 대한 3차원 랜드마크 좌표 값을 결합하여 목적 부위에 대한 3차원 랜드마크 좌표 값으로써 생성할 수 있다.Furthermore, the processor 130 may combine the 3D landmark coordinate values for the skin area and the 3D landmark coordinate values for the bone area to generate 3D landmark coordinate values for the target area.
이처럼, 본 개시의 실시예에 따른 랜드마크 검출 방법은 두부를 피부 영역과 뼈 영역을 구분하여 랜드마크별로 특화된 인공지능 기반 모델을 통해 랜드마크를 검출함으로써, 랜드마크 검출을 위해 소요되는 시간을 최소화되고, 검출 정확도를 높이며, 각 랜드마크에 대한 보다 정확한 좌표 값을 획득할 수 있다. 구체적으로, 본 개시의 실시예에 따른 인공지능 기반 모델을 이용하여 68개의 랜드마크를 검출하기 위해 SDR(successful detection rate)는 오차범위 3 mm 이내 비중 93% 이상이며, MDE(mean distance error)는 오차범위 1.938 mm 이내일 수 있다.In this way, the landmark detection method according to an embodiment of the present disclosure divides the head into a skin area and a bone area and detects the landmark through an artificial intelligence-based model specialized for each landmark, thereby minimizing the time required for landmark detection. , detection accuracy can be increased, and more accurate coordinate values for each landmark can be obtained. Specifically, to detect 68 landmarks using an artificial intelligence-based model according to an embodiment of the present disclosure, the successive detection rate (SDR) is 93% or more within an error range of 3 mm, and the mean distance error (MDE) is The error range may be within 1.938 mm.
본 개시의 일 실시예에 따라 데이터 구조를 저장한 컴퓨터 판독가능 매체가 개시된다.According to an embodiment of the present disclosure, a computer-readable medium storing a data structure is disclosed.
데이터 구조는 데이터에 효율적인 접근 및 수정을 가능하게 하는 데이터의 조직, 관리, 저장을 의미할 수 있다. 데이터 구조는 특정 문제(예를 들어, 최단 시간으로 데이터 검색, 데이터 저장, 데이터 수정) 해결을 위한 데이터의 조직을 의미할 수 있다. 데이터 구조는 특정한 데이터 처리 기능을 지원하도록 설계된, 데이터 요소들 간의 물리적이거나 논리적인 관계로 정의될 수도 있다. 데이터 요소들 간의 논리적인 관계는 사용자 정의 데이터 요소들 간의 연결관계를 포함할 수 있다. 데이터 요소들 간의 물리적인 관계는 컴퓨터 판독가능 저장매체(예를 들어, 영구 저장 장치)에 물리적으로 저장되어 있는 데이터 요소들 간의 실제 관계를 포함할 수 있다. 데이터 구조는 구체적으로 데이터의 집합, 데이터 간의 관계, 데이터에 적용할 수 있는 함수 또는 명령어를 포함할 수 있다. 효과적으로 설계된 데이터 구조를 통해 컴퓨팅 장치는 컴퓨팅 장치의 자원을 최소한으로 사용하면서 연산을 수행할 수 있다. 구체적으로 컴퓨팅 장치는 효과적으로 설계된 데이터 구조를 통해 연산, 읽기, 삽입, 삭제, 비교, 교환, 검색의 효율성을 높일 수 있다.Data structure can refer to the organization, management, and storage of data to enable efficient access and modification of data. Data structure can refer to the organization of data to solve a specific problem (e.g., retrieving data, storing data, or modifying data in the shortest possible time). A data structure may be defined as a physical or logical relationship between data elements designed to support a specific data processing function. Logical relationships between data elements may include connection relationships between user-defined data elements. Physical relationships between data elements may include actual relationships between data elements that are physically stored in a computer-readable storage medium (e.g., a persistent storage device). A data structure may specifically include a set of data, relationships between data, and functions or instructions applicable to the data. Effectively designed data structures allow computing devices to perform computations while minimizing the use of the computing device's resources. Specifically, computing devices can increase the efficiency of operations, reading, insertion, deletion, comparison, exchange, and search through effectively designed data structures.
데이터 구조는 데이터 구조의 형태에 따라 선형 데이터 구조와 비선형 데이터 구조로 구분될 수 있다. 선형 데이터 구조는 하나의 데이터 뒤에 하나의 데이터만이 연결되는 구조일 수 있다. 선형 데이터 구조는 리스트(List), 스택(Stack), 큐(Queue), 데크(Deque)를 포함할 수 있다. 리스트는 내부적으로 순서가 존재하는 일련의 데이터 집합을 의미할 수 있다. 리스트는 연결 리스트(Linked List)를 포함할 수 있다. 연결 리스트는 각각의 데이터가 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터가 연결된 데이터 구조일 수 있다. 연결 리스트에서 포인터는 다음이나 이전 데이터와의 연결 정보를 포함할 수 있다. 연결 리스트는 형태에 따라 단일 연결 리스트, 이중 연결 리스트, 원형 연결 리스트로 표현될 수 있다. 스택은 제한적으로 데이터에 접근할 수 있는 데이터 나열 구조일 수 있다. 스택은 데이터 구조의 한 쪽 끝에서만 데이터를 처리(예를 들어, 삽입 또는 삭제)할 수 있는 선형 데이터 구조일 수 있다. 스택에 저장된 데이터는 늦게 들어갈수록 빨리 나오는 데이터 구조(LIFO-Last in First Out)일 수 있다. 큐는 제한적으로 데이터에 접근할 수 있는 데이터 나열 구조로서, 스택과 달리 늦게 저장된 데이터일수록 늦게 나오는 데이터 구조(FIFO-First in First Out)일 수 있다. 데크는 데이터 구조의 양 쪽 끝에서 데이터를 처리할 수 있는 데이터 구조일 수 있다.Data structures can be divided into linear data structures and non-linear data structures depending on the type of data structure. A linear data structure may be a structure in which only one piece of data is connected to another piece of data. Linear data structures may include List, Stack, Queue, and Deque. A list can refer to a set of data that has an internal order. The list may include a linked list. A linked list may be a data structure in which data is connected in such a way that each data is connected in a single line with a pointer. In a linked list, a pointer may contain connection information to the next or previous data. Depending on its form, a linked list can be expressed as a singly linked list, a doubly linked list, or a circularly linked list. A stack may be a data listing structure that allows limited access to data. A stack can be a linear data structure in which data can be processed (for example, inserted or deleted) at only one end of the data structure. Data stored in the stack may have a data structure (LIFO-Last in First Out) where the later it enters, the sooner it comes out. A queue is a data listing structure that allows limited access to data. Unlike the stack, it can be a data structure (FIFO-First in First Out) where data stored later is released later. A deck can be a data structure that can process data at both ends of the data structure.
비선형 데이터 구조는 하나의 데이터 뒤에 복수개의 데이터가 연결되는 구조일 수 있다. 비선형 데이터 구조는 그래프(Graph) 데이터 구조를 포함할 수 있다. 그래프 데이터 구조는 정점(Vertex)과 간선(Edge)으로 정의될 수 있으며 간선은 서로 다른 두개의 정점을 연결하는 선을 포함할 수 있다. 그래프 데이터 구조 트리(Tree) 데이터 구조를 포함할 수 있다. 트리 데이터 구조는 트리에 포함된 복수개의 정점 중에서 서로 다른 두개의 정점을 연결시키는 경로가 하나인 데이터 구조일 수 있다. 즉 그래프 데이터 구조에서 루프(loop)를 형성하지 않는 데이터 구조일 수 있다.A non-linear data structure may be a structure in which multiple pieces of data are connected behind one piece of data. Nonlinear data structures may include graph data structures. A graph data structure can be defined by vertices and edges, and an edge can include a line connecting two different vertices. Graph data structure may include a tree data structure. A tree data structure may be a data structure in which there is only one path connecting two different vertices among a plurality of vertices included in the tree. In other words, it may be a data structure that does not form a loop in the graph data structure.
본 명세서에 걸쳐, 연산 모델, 신경망, 네트워크 함수, 뉴럴 네트워크(neural network)는 동일한 의미로 사용될 수 있다. 이하에서는 신경망으로 통일하여 기술한다. 데이터 구조는 신경망을 포함할 수 있다. 그리고 신경망을 포함한 데이터 구조는 컴퓨터 판독가능 매체에 저장될 수 있다. 신경망을 포함한 데이터 구조는 또한 신경망에 의한 처리를 위하여 전처리된 데이터, 신경망에 입력되는 데이터, 신경망의 가중치, 신경망의 하이퍼 파라미터, 신경망으로부터 획득한 데이터, 신경망의 각 노드 또는 레이어와 연관된 활성 함수, 신경망의 학습을 위한 손실 함수 등을 포함할 수 있다. 신경망을 포함한 데이터 구조는 상기 개시된 구성들 중 임의의 구성 요소들을 포함할 수 있다. 즉 신경망을 포함한 데이터 구조는 신경망에 의한 처리를 위하여 전처리된 데이터, 신경망에 입력되는 데이터, 신경망의 가중치, 신경망의 하이퍼 파라미터, 신경망으로부터 획득한 데이터, 신경망의 각 노드 또는 레이어와 연관된 활성 함수, 신경망의 학습을 위한 손실 함수 등 전부 또는 이들의 임의의 조합을 포함하여 구성될 수 있다. 전술한 구성들 이외에도, 신경망을 포함한 데이터 구조는 신경망의 특성을 결정하는 임의의 다른 정보를 포함할 수 있다. 또한, 데이터 구조는 신경망의 연산 과정에 사용되거나 발생되는 모든 형태의 데이터를 포함할 수 있으며 전술한 사항에 제한되는 것은 아니다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 기록 매체 및/또는 컴퓨터 판독가능 전송 매체를 포함할 수 있다. 신경망은 일반적으로 노드라 지칭될 수 있는 상호 연결된 계산 단위들의 집합으로 구성될 수 있다. 이러한 노드들은 뉴런(neuron)들로 지칭될 수도 있다. 신경망은 적어도 하나 이상의 노드들을 포함하여 구성된다.Throughout this specification, computational model, neural network, network function, and neural network may be used interchangeably. Below, it is described in a unified manner as a neural network. Data structures may include neural networks. And the data structure including the neural network may be stored in a computer-readable medium. Data structures including neural networks also include data preprocessed for processing by a neural network, data input to the neural network, weights of the neural network, hyperparameters of the neural network, data acquired from the neural network, activation functions associated with each node or layer of the neural network, neural network It may include a loss function for learning. A data structure containing a neural network may include any of the components disclosed above. In other words, the data structure including the neural network includes preprocessed data for processing by the neural network, data input to the neural network, weights of the neural network, hyperparameters of the neural network, data acquired from the neural network, activation functions associated with each node or layer of the neural network, neural network It may be configured to include all or any combination of the loss function for learning. In addition to the configurations described above, a data structure containing a neural network may include any other information that determines the characteristics of the neural network. Additionally, the data structure may include all types of data used or generated in the computational process of a neural network and is not limited to the above. Computer-readable media may include computer-readable recording media and/or computer-readable transmission media. A neural network can generally consist of a set of interconnected computational units, which can be referred to as nodes. These nodes may also be referred to as neurons. A neural network consists of at least one node.
데이터 구조는 신경망에 입력되는 데이터를 포함할 수 있다. 신경망에 입력되는 데이터를 포함하는 데이터 구조는 컴퓨터 판독가능 매체에 저장될 수 있다. 신경망에 입력되는 데이터는 신경망 학습 과정에서 입력되는 학습 데이터 및/또는 학습이 완료된 신경망에 입력되는 입력 데이터를 포함할 수 있다. 신경망에 입력되는 데이터는 전처리(pre-processing)를 거친 데이터 및/또는 전처리 대상이 되는 데이터를 포함할 수 있다. 전처리는 데이터를 신경망에 입력시키기 위한 데이터 처리 과정을 포함할 수 있다. 따라서 데이터 구조는 전처리 대상이 되는 데이터 및 전처리로 발생되는 데이터를 포함할 수 있다. 전술한 데이터 구조는 예시일 뿐 본 개시는 이에 제한되지 않는다.The data structure may include data input to the neural network. A data structure containing data input to a neural network may be stored in a computer-readable medium. Data input to the neural network may include learning data input during the neural network learning process and/or input data input to the neural network on which training has been completed. Data input to the neural network may include data that has undergone pre-processing and/or data subject to pre-processing. Preprocessing may include a data processing process to input data into a neural network. Therefore, the data structure may include data subject to preprocessing and data generated by preprocessing. The above-described data structure is only an example and the present disclosure is not limited thereto.
데이터 구조는 신경망의 가중치를 포함할 수 있다. (본 명세서에서 가중치, 파라미터는 동일한 의미로 사용될 수 있다.) 그리고 신경망의 가중치를 포함한 데이터 구조는 컴퓨터 판독가능 매체에 저장될 수 있다. 신경망은 복수개의 가중치를 포함할 수 있다. 가중치는 가변적일 수 있으며, 신경망이 원하는 기능을 수행하기 위해, 사용자 또는 알고리즘에 의해 가변 될 수 있다. 예를 들어, 하나의 출력 노드에 하나 이상의 입력 노드가 각각의 링크에 의해 상호 연결된 경우, 출력 노드는 상기 출력 노드와 연결된 입력 노드들에 입력된 값들 및 각각의 입력 노드들에 대응하는 링크에 설정된 가중치에 기초하여 출력 노드에서 출력되는 데이터 값을 결정할 수 있다. 전술한 데이터 구조는 예시일 뿐 본 개시는 이에 제한되지 않는다.The data structure may include the weights of the neural network. (In this specification, weights and parameters may be used with the same meaning.) And the data structure including the weights of the neural network may be stored in a computer-readable medium. A neural network may include multiple weights. Weights may be variable and may be varied by the user or algorithm in order for the neural network to perform the desired function. For example, when one or more input nodes are connected to one output node by respective links, the output node is set to the values input to the input nodes connected to the output node and the links corresponding to each input node. Based on the weight, the data value output from the output node can be determined. The above-described data structure is only an example and the present disclosure is not limited thereto.
제한이 아닌 예로서, 가중치는 신경망 학습 과정에서 가변되는 가중치 및/또는 신경망 학습이 완료된 가중치를 포함할 수 있다. 신경망 학습 과정에서 가변되는 가중치는 학습 사이클이 시작되는 시점의 가중치 및/또는 학습 사이클 동안 가변되는 가중치를 포함할 수 있다. 신경망 학습이 완료된 가중치는 학습 사이클이 완료된 가중치를 포함할 수 있다. 따라서 신경망의 가중치를 포함한 데이터 구조는 신경망 학습 과정에서 가변되는 가중치 및/또는 신경망 학습이 완료된 가중치를 포함한 데이터 구조를 포함할 수 있다. 그러므로 상술한 가중치 및/또는 각 가중치의 조합은 신경망의 가중치를 포함한 데이터 구조에 포함되는 것으로 한다. 전술한 데이터 구조는 예시일 뿐 본 개시는 이에 제한되지 않는다.As an example and not a limitation, the weights may include weights that are changed during the neural network learning process and/or weights for which neural network learning has been completed. Weights that change during the neural network learning process may include weights that change at the start of the learning cycle and/or weights that change during the learning cycle. Weights for which neural network training has been completed may include weights for which a learning cycle has been completed. Therefore, the data structure including the weights of the neural network may include weights that are changed during the neural network learning process and/or the data structure including the weights for which neural network learning has been completed. Therefore, the above-mentioned weights and/or combinations of each weight are included in the data structure including the weights of the neural network. The above-described data structure is only an example and the present disclosure is not limited thereto.
신경망의 가중치를 포함한 데이터 구조는 직렬화(serialization) 과정을 거친 후 컴퓨터 판독가능 저장 매체(예를 들어, 메모리, 하드 디스크)에 저장될 수 있다. 직렬화는 데이터 구조를 동일하거나 다른 컴퓨팅 장치에 저장하고 나중에 다시 재구성하여 사용할 수 있는 형태로 변환하는 과정일 수 있다. 컴퓨팅 장치는 데이터 구조를 직렬화하여 네트워크를 통해 데이터를 송수신할 수 있다. 직렬화된 신경망의 가중치를 포함한 데이터 구조는 역직렬화(deserialization)를 통해 동일한 컴퓨팅 장치 또는 다른 컴퓨팅 장치에서 재구성될 수 있다. 신경망의 가중치를 포함한 데이터 구조는 직렬화에 한정되는 것은 아니다. 나아가 신경망의 가중치를 포함한 데이터 구조는 컴퓨팅 장치의 자원을 최소한으로 사용하면서 연산의 효율을 높이기 위한 데이터 구조(예를 들어, 비선형 데이터 구조에서 B-Tree, Trie, m-way search tree, AVL tree, Red-Black Tree)를 포함할 수 있다. 전술한 사항은 예시일 뿐 본 개시는 이에 제한되지 않는다.The data structure including the weights of the neural network may be stored in a computer-readable storage medium (e.g., memory, hard disk) after going through a serialization process. Serialization can be the process of converting a data structure into a form that can be stored on the same or a different computing device and later reorganized and used. Computing devices can transmit and receive data over a network by serializing data structures. Data structures containing the weights of a serialized neural network can be reconstructed on the same computing device or on a different computing device through deserialization. The data structure including the weights of the neural network is not limited to serialization. Furthermore, the data structure including the weights of the neural network is a data structure to increase computational efficiency while minimizing the use of computing device resources (e.g., in non-linear data structures, B-Tree, Trie, m-way search tree, AVL tree, Red-Black Tree) may be included. The foregoing is merely an example and the present disclosure is not limited thereto.
데이터 구조는 신경망의 하이퍼 파라미터(Hyper-parameter)를 포함할 수 있다. 그리고 신경망의 하이퍼 파라미터를 포함한 데이터 구조는 컴퓨터 판독가능 매체에 저장될 수 있다. 하이퍼 파라미터는 사용자에 의해 가변되는 변수일 수 있다. 하이퍼 파라미터는 예를 들어, 학습률(learning rate), 비용 함수(cost function), 학습 사이클 반복 횟수, 가중치 초기화(Weight initialization)(예를 들어, 가중치 초기화 대상이 되는 가중치 값의 범위 설정), Hidden Unit 개수(예를 들어, 히든 레이어의 개수, 히든 레이어의 노드 수)를 포함할 수 있다. 전술한 데이터 구조는 예시일 뿐 본 개시는 이에 제한되지 않는다.The data structure may include hyper-parameters of a neural network. And the data structure including the hyperparameters of the neural network can be stored in a computer-readable medium. A hyperparameter may be a variable that can be changed by the user. Hyperparameters include, for example, learning rate, cost function, number of learning cycle repetitions, weight initialization (e.g., setting the range of weight values subject to weight initialization), Hidden Unit. It may include a number (e.g., number of hidden layers, number of nodes in hidden layers). The above-described data structure is only an example and the present disclosure is not limited thereto.
도 13는 본 개시의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도이다.Figure 13 is a brief, general schematic diagram of an example computing environment in which embodiments of the present disclosure may be implemented.
본 개시가 일반적으로 컴퓨팅 장치에 의해 구현될 수 있는 것으로 전술되었지만, 당업자라면 본 개시가 하나 이상의 컴퓨터 상에서 실행될 수 있는 컴퓨터 실행가능 명령어 및/또는 기타 프로그램 모듈들과 결합되어 및/또는 하드웨어와 소프트웨어의 조합으로써 구현될 수 있다는 것을 잘 알 것이다.Although the present disclosure has generally been described above as being capable of being implemented by a computing device, those skilled in the art will understand that the present disclosure can be implemented in combination with computer-executable instructions and/or other program modules that can be executed on one or more computers and/or in hardware and software. It will be well known that it can be implemented as a combination.
일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 또한, 당업자라면 본 개시의 방법이 단일-프로세서 또는 멀티프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터는 물론 퍼스널 컴퓨터, 핸드헬드(handheld) 컴퓨팅 장치, 마이크로프로세서-기반 또는 프로그램가능 가전 제품, 기타 등등(이들 각각은 하나 이상의 연관된 장치와 연결되어 동작할 수 있음)을 비롯한 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 것을 잘 알 것이다.Typically, program modules include routines, programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types. Additionally, those skilled in the art will understand that the methods of the present disclosure are applicable to single-processor or multiprocessor computer systems, minicomputers, mainframe computers, as well as personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics, etc. It will be appreciated that each of these may be implemented in other computer system configurations, including those capable of operating in conjunction with one or more associated devices.
본 개시의 설명된 실시예들은 또한 어떤 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.The described embodiments of the disclosure can also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
컴퓨터는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 일시적(transitory) 및 비일시적(non-transitory) 매체, 이동식 및 비-이동식 매체를 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체 및 컴퓨터 판독가능 전송 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 매체, 일시적 및 비-일시적 매체, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital video disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만, 이에 한정되지 않는다.Computers typically include a variety of computer-readable media. Computer-readable media can be any medium that can be accessed by a computer, and such computer-readable media includes volatile and non-volatile media, transitory and non-transitory media, removable and non-transitory media. Includes removable media. By way of example, and not limitation, computer-readable media may include computer-readable storage media and computer-readable transmission media. Computer-readable storage media refers to volatile and non-volatile media, transient and non-transitory media, removable and non-removable, implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Includes media. Computer readable storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital video disk (DVD) or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage. This includes, but is not limited to, a device, or any other medium that can be accessed by a computer and used to store desired information.
컴퓨터 판독가능 전송 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. 피변조 데이터 신호라는 용어는 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 제한이 아닌 예로서, 컴퓨터 판독가능 전송 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들 중 임의의 것의 조합도 역시 컴퓨터 판독가능 전송 매체의 범위 안에 포함되는 것으로 한다.A computer-readable transmission medium typically implements computer-readable instructions, data structures, program modules, or other data on a modulated data signal, such as a carrier wave or other transport mechanism. Includes all information delivery media. The term modulated data signal refers to a signal in which one or more of the characteristics of the signal have been set or changed to encode information within the signal. By way of example, and not limitation, computer-readable transmission media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above are also intended to be included within the scope of computer-readable transmission media.
컴퓨터(1302)를 포함하는 본 개시의 여러가지 측면들을 구현하는 예시적인 환경(1300)이 나타내어져 있으며, 컴퓨터(1302)는 처리 장치(1304), 시스템 메모리(1306) 및 시스템 버스(1308)를 포함한다. 시스템 버스(1308)는 시스템 메모리(1306)(이에 한정되지 않음)를 비롯한 시스템 컴포넌트들을 처리 장치(1304)에 연결시킨다. 처리 장치(1304)는 다양한 상용 프로세서들 중 임의의 프로세서일 수 있다. 듀얼 프로세서 및 기타 멀티프로세서 아키텍처도 역시 처리 장치(1304)로서 이용될 수 있다.An example environment 1300 is shown that implements various aspects of the present disclosure, including a computer 1302, which includes a processing unit 1304, a system memory 1306, and a system bus 1308. do. System bus 1308 couples system components, including but not limited to system memory 1306, to processing unit 1304. Processing unit 1304 may be any of a variety of commercially available processors. Dual processors and other multiprocessor architectures may also be used as processing units 1304.
시스템 버스(1308)는 메모리 버스, 주변장치 버스, 및 다양한 상용 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스에 추가적으로 상호 연결될 수 있는 몇 가지 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리(1306)는 판독 전용 메모리(ROM)(1310) 및 랜덤 액세스 메모리(RAM)(1312)를 포함한다. 기본 입/출력 시스템(BIOS)은 ROM, EPROM, EEPROM 등의 비휘발성 메모리(1310)에 저장되며, 이 BIOS는 시동 중과 같은 때에 컴퓨터(1302) 내의 구성요소들 간에 정보를 전송하는 일을 돕는 기본적인 루틴을 포함한다. RAM(1312)은 또한 데이터를 캐싱하기 위한 정적 RAM 등의 고속 RAM을 포함할 수 있다. System bus 1308 may be any of several types of bus structures that may further be interconnected to a memory bus, peripheral bus, and local bus using any of a variety of commercial bus architectures. System memory 1306 includes read only memory (ROM) 1310 and random access memory (RAM) 1312. The basic input/output system (BIOS) is stored in non-volatile memory 1310, such as ROM, EPROM, and EEPROM, and is a basic input/output system that helps transfer information between components within the computer 1302, such as during startup. Contains routines. RAM 1312 may also include high-speed RAM, such as static RAM, for caching data.
컴퓨터(1302)는 또한 내장형 하드 디스크 드라이브(HDD)(1314)(예를 들어, EIDE, SATA) -이 내장형 하드 디스크 드라이브(1314)는 또한 적당한 섀시(도시 생략) 내에서 외장형 용도로 구성될 수 있음-, 자기 플로피 디스크 드라이브(FDD)(1316)(예를 들어, 이동식 디스켓(1318)으로부터 판독을 하거나 그에 기록을 하기 위한 것임), 및 광 디스크 드라이브(1320)(예를 들어, CD-ROM 디스크(1322)를 판독하거나 DVD 등의 기타 고용량 광 매체로부터 판독을 하거나 그에 기록을 하기 위한 것임)를 포함한다. 하드 디스크 드라이브(1314), 자기 디스크 드라이브(1316) 및 광 디스크 드라이브(1320)는 각각 하드 디스크 드라이브 인터페이스(1324), 자기 디스크 드라이브 인터페이스(1326) 및 광 드라이브 인터페이스(1328)에 의해 시스템 버스(1308)에 연결될 수 있다. 외장형 드라이브 구현을 위한 인터페이스(1324)는 USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 또는 그 둘 다를 포함한다. Computer 1302 may also include an internal hard disk drive (HDD) 1314 (e.g., EIDE, SATA)—the internal hard disk drive 1314 may also be configured for external use within a suitable chassis (not shown). -, a magnetic floppy disk drive (FDD) 1316 (e.g., for reading from or writing to a removable diskette 1318), and an optical disk drive 1320 (e.g., a CD-ROM (for reading the disk 1322 or reading from or writing to other high-capacity optical media such as DVD). Hard disk drive 1314, magnetic disk drive 1316, and optical disk drive 1320 are connected to system bus 1308 by hard disk drive interface 1324, magnetic disk drive interface 1326, and optical drive interface 1328, respectively. ) can be connected to. The interface 1324 for implementing an external drive includes at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.
이들 드라이브 및 그와 연관된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어, 기타 등등의 비휘발성 저장을 제공한다. 컴퓨터(1302)의 경우, 드라이브 및 매체는 임의의 데이터를 적당한 디지털 형식으로 저장하는 것에 대응한다. 상기에서의 컴퓨터 판독가능 매체에 대한 설명이 HDD, 이동식 자기 디스크, 및 CD 또는 DVD 등의 이동식 광 매체를 언급하고 있지만, 당업자라면 집 드라이브(zip drive), 자기 카세트, 플래쉬 메모리 카드, 카트리지, 기타 등등의 컴퓨터에 의해 판독가능한 다른 유형의 매체도 역시 예시적인 운영 환경에서 사용될 수 있으며 또 임의의 이러한 매체가 본 개시의 방법들을 수행하기 위한 컴퓨터 실행가능 명령어를 포함할 수 있다는 것을 잘 알 것이다.These drives and their associated computer-readable media provide non-volatile storage of data, data structures, computer-executable instructions, and the like. For computer 1302, drive and media correspond to storing any data in a suitable digital format. Although the description of computer-readable media above refers to removable optical media such as HDDs, removable magnetic disks, and CDs or DVDs, those skilled in the art will also recognize removable optical media such as zip drives, magnetic cassettes, flash memory cards, cartridges, etc. It will be appreciated that other types of computer-readable media, such as the like, may also be used in the example operating environment and that any such media may contain computer-executable instructions for performing the methods of the present disclosure.
운영 체제(1330), 하나 이상의 애플리케이션 프로그램(1332), 기타 프로그램 모듈(1334) 및 프로그램 데이터(1336)를 비롯한 다수의 프로그램 모듈이 드라이브 및 RAM(1312)에 저장될 수 있다. 운영 체제, 애플리케이션, 모듈 및/또는 데이터의 전부 또는 그 일부분이 또한 RAM(1312)에 캐싱될 수 있다. 본 개시가 여러가지 상업적으로 이용가능한 운영 체제 또는 운영 체제들의 조합에서 구현될 수 있다는 것을 잘 알 것이다.A number of program modules may be stored in drives and RAM 1312, including an operating system 1330, one or more application programs 1332, other program modules 1334, and program data 1336. All or portions of the operating system, applications, modules and/or data may also be cached in RAM 1312. It will be appreciated that the present disclosure may be implemented on various commercially available operating systems or combinations of operating systems.
사용자는 하나 이상의 유선/무선 입력 장치, 예를 들어, 키보드(1338) 및 마우스(1340) 등의 포인팅 장치를 통해 컴퓨터(1302)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)로는 마이크, IR 리모콘, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치가 종종 시스템 버스(1308)에 연결되어 있는 입력 장치 인터페이스(1342)를 통해 처리 장치(1304)에 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스, 기타 등등의 기타 인터페이스에 의해 연결될 수 있다.A user may enter commands and information into computer 1302 through one or more wired/wireless input devices, such as a keyboard 1338 and a pointing device such as mouse 1340. Other input devices (not shown) may include microphones, IR remote controls, joysticks, game pads, stylus pens, touch screens, etc. These and other input devices are connected to the processing unit 1304 through an input device interface 1342, which is often connected to the system bus 1308, but may also include a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, It can be connected by other interfaces, etc.
모니터(1344) 또는 다른 유형의 디스플레이 장치도 역시 비디오 어댑터(1346) 등의 인터페이스를 통해 시스템 버스(1308)에 연결된다. 모니터(1344)에 부가하여, 컴퓨터는 일반적으로 스피커, 프린터, 기타 등등의 기타 주변 출력 장치(도시 생략)를 포함한다.A monitor 1344 or other type of display device is also connected to system bus 1308 through an interface, such as a video adapter 1346. In addition to monitor 1344, computers typically include other peripheral output devices (not shown) such as speakers, printers, etc.
컴퓨터(1302)는 유선 및/또는 무선 통신을 통한 원격 컴퓨터(들)(1348) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(1348)는 워크스테이션, 컴퓨팅 디바이스 컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기기, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(1302)에 대해 기술된 구성요소들 중 다수 또는 그 전부를 포함하지만, 간략함을 위해, 메모리 저장 장치(1350)만이 도시되어 있다. 도시되어 있는 논리적 연결은 근거리 통신망(LAN)(1352) 및/또는 더 큰 네트워크, 예를 들어, 원거리 통신망(WAN)(1354)에의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적인 것이며, 인트라넷 등의 전사적 컴퓨터 네트워크(enterprise-wide computer network)를 용이하게 해주며, 이들 모두는 전세계 컴퓨터 네트워크, 예를 들어, 인터넷에 연결될 수 있다. Computer 1302 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 1348, via wired and/or wireless communications. Remote computer(s) 1348 may be a workstation, computing device computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other conventional network node, and is generally connected to computer 1302. For simplicity, only memory storage device 1350 is shown, although it includes many or all of the components described. The logical connections depicted include wired/wireless connections to a local area network (LAN) 1352 and/or a larger network, such as a wide area network (WAN) 1354. These LAN and WAN networking environments are common in offices and companies and facilitate enterprise-wide computer networks, such as intranets, all of which can be connected to a worldwide computer network, such as the Internet.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1302)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1356)를 통해 로컬 네트워크(1352)에 연결된다. 어댑터(1356)는 LAN(1352)에의 유선 또는 무선 통신을 용이하게 해줄 수 있으며, 이 LAN(1352)은 또한 무선 어댑터(1356)와 통신하기 위해 그에 설치되어 있는 무선 액세스 포인트를 포함하고 있다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1302)는 모뎀(1358)을 포함할 수 있거나, WAN(1354) 상의 통신 컴퓨팅 디바이스에 연결되거나, 또는 인터넷을 통하는 등, WAN(1354)을 통해 통신을 설정하는 기타 수단을 갖는다. 내장형 또는 외장형 및 유선 또는 무선 장치일 수 있는 모뎀(1358)은 직렬 포트 인터페이스(1342)를 통해 시스템 버스(1308)에 연결된다. 네트워크화된 환경에서, 컴퓨터(1302)에 대해 설명된 프로그램 모듈들 또는 그의 일부분이 원격 메모리/저장 장치(1350)에 저장될 수 있다. 도시된 네트워크 연결이 예시적인 것이며 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 잘 알 것이다.When used in a LAN networking environment, computer 1302 is connected to local network 1352 through wired and/or wireless communications network interfaces or adapters 1356. Adapter 1356 may facilitate wired or wireless communication to LAN 1352, which also includes a wireless access point installed thereon for communicating with wireless adapter 1356. When used in a WAN networking environment, the computer 1302 may include a modem 1358 or be connected to a communicating computing device on the WAN 1354 or to establish communications over the WAN 1354, such as over the Internet. Have other means. Modem 1358, which may be internal or external and a wired or wireless device, is coupled to system bus 1308 via serial port interface 1342. In a networked environment, program modules described for computer 1302, or portions thereof, may be stored in remote memory/storage device 1350. It will be appreciated that the network connections shown are exemplary and that other means of establishing a communications link between computers may be used.
컴퓨터(1302)는 무선 통신으로 배치되어 동작하는 임의의 무선 장치 또는 개체, 예를 들어, 프린터, 스캐너, 데스크톱 및/또는 휴대용 컴퓨터, PDA(portable data assistant), 통신 위성, 무선 검출가능 태그와 연관된 임의의 장비 또는 장소, 및 전화와 통신을 하는 동작을 한다. 이것은 적어도 Wi-Fi 및 블루투스 무선 기술을 포함한다. 따라서, 통신은 종래의 네트워크에서와 같이 미리 정의된 구조이거나 단순하게 적어도 2개의 장치 사이의 애드혹 통신(ad hoc communication)일 수 있다. Computer 1302 may be associated with any wireless device or object deployed and operating in wireless communications, such as a printer, scanner, desktop and/or portable computer, portable data assistant (PDA), communications satellite, wirelessly detectable tag. Performs actions to communicate with any device or location and telephone. This includes at least Wi-Fi and Bluetooth wireless technologies. Accordingly, communication may be a predefined structure as in a conventional network or may simply be ad hoc communication between at least two devices.
Wi-Fi(Wireless Fidelity)는 유선 없이도 인터넷 등으로의 연결을 가능하게 해준다. Wi-Fi는 이러한 장치, 예를 들어, 컴퓨터가 실내에서 및 실외에서, 즉 기지국의 통화권 내의 아무 곳에서나 데이터를 전송 및 수신할 수 있게 해주는 셀 전화와 같은 무선 기술이다. Wi-Fi 네트워크는 안전하고 신뢰성 있으며 고속인 무선 연결을 제공하기 위해 IEEE 802.11(a, b, g, 기타)이라고 하는 무선 기술을 사용한다. 컴퓨터를 서로에, 인터넷에 및 유선 네트워크(IEEE 802.3 또는 이더넷을 사용함)에 연결시키기 위해 Wi-Fi가 사용될 수 있다. Wi-Fi 네트워크는 비인가 2.4 및 5GHz 무선 대역에서, 예를 들어, 11Mbps(802.11a) 또는 54 Mbps(802.11b) 데이터 레이트로 동작하거나, 양 대역(듀얼 대역)을 포함하는 제품에서 동작할 수 있다.Wi-Fi (Wireless Fidelity) allows connection to the Internet, etc. without wires. Wi-Fi is a wireless technology, like cell phones, that allows these devices, such as computers, to send and receive data indoors and outdoors, anywhere within the coverage area of a base station. Wi-Fi networks use wireless technology called IEEE 802.11 (a, b, g, etc.) to provide secure, reliable, and high-speed wireless connections. Wi-Fi can be used to connect computers to each other, the Internet, and wired networks (using IEEE 802.3 or Ethernet). Wi-Fi networks can operate in the unlicensed 2.4 and 5 GHz wireless bands, for example, at data rates of 11 Mbps (802.11a) or 54 Mbps (802.11b), or in products that include both bands (dual band). .
본 개시의 기술 분야에서 통상의 지식을 가진 자는 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 이용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 위의 설명에서 참조될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학장들 또는 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.Those skilled in the art will understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols and chips that may be referenced in the above description include voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields. It can be expressed by particles or particles, or any combination thereof.
본 개시의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 프로세서들, 수단들, 회로들 및 알고리즘 단계들이 전자 하드웨어, (편의를 위해, 여기에서 소프트웨어로 지칭되는) 다양한 형태들의 프로그램 또는 설계 코드 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능과 관련하여 위에서 일반적으로 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 특정한 애플리케이션 및 전체 시스템에 대하여 부과되는 설계 제약들에 따라 좌우된다. 본 개시의 기술 분야에서 통상의 지식을 가진 자는 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 설명된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 개시의 범위를 벗어나는 것으로 해석되어서는 안 될 것이다.Those skilled in the art will understand that the various illustrative logical blocks, modules, processors, means, circuits and algorithm steps described in connection with the embodiments disclosed herein may be used in electronic hardware, (for convenience) It will be understood that it may be implemented by various forms of program or design code (referred to herein as software) or a combination of both. To clearly illustrate this interoperability of hardware and software, various illustrative components, blocks, modules, circuits and steps have been described above generally with respect to their functionality. Whether this functionality is implemented as hardware or software depends on the specific application and design constraints imposed on the overall system. A person skilled in the art of this disclosure may implement the described functionality in various ways for each specific application, but such implementation decisions should not be construed as departing from the scope of this disclosure.
여기서 제시된 다양한 실시예들은 방법, 장치, 또는 표준 프로그래밍 및/또는 엔지니어링 기술을 사용한 제조 물품(article)으로 구현될 수 있다. 용어 제조 물품은 임의의 컴퓨터-판독가능 저장장치로부터 액세스 가능한 컴퓨터 프로그램, 캐리어, 또는 매체(media)를 포함한다. 예를 들어, 컴퓨터-판독가능 저장매체는 자기 저장 장치(예를 들면, 하드 디스크, 플로피 디스크, 자기 스트립, 등), 광학 디스크(예를 들면, CD, DVD, 등), 스마트 카드, 및 플래쉬 메모리 장치(예를 들면, EEPROM, 카드, 스틱, 키 드라이브, 등)를 포함하지만, 이들로 제한되는 것은 아니다. 또한, 여기서 제시되는 다양한 저장 매체는 정보를 저장하기 위한 하나 이상의 장치 및/또는 다른 기계-판독가능한 매체를 포함한다.The various embodiments presented herein may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques. The term article of manufacture includes a computer program, carrier, or media accessible from any computer-readable storage device. For example, computer-readable storage media include magnetic storage devices (e.g., hard disks, floppy disks, magnetic strips, etc.), optical disks (e.g., CDs, DVDs, etc.), smart cards, and flash. Includes, but is not limited to, memory devices (e.g., EEPROM, cards, sticks, key drives, etc.). Additionally, various storage media presented herein include one or more devices and/or other machine-readable media for storing information.
제시된 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조는 예시적인 접근들의 일례임을 이해하도록 한다. 설계 우선순위들에 기반하여, 본 개시의 범위 내에서 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조가 재배열될 수 있다는 것을 이해하도록 한다. 첨부된 방법 청구항들은 샘플 순서로 다양한 단계들의 엘리먼트들을 제공하지만 제시된 특정한 순서 또는 계층 구조에 한정되는 것을 의미하지는 않는다.It is to be understood that the specific order or hierarchy of steps in the processes presented is an example of illustrative approaches. It is to be understood that the specific order or hierarchy of steps in processes may be rearranged within the scope of the present disclosure, based on design priorities. The appended method claims present elements of the various steps in a sample order but are not meant to be limited to the particular order or hierarchy presented.
제시된 실시예들에 대한 설명은 임의의 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 개시는 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.The description of the presented embodiments is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments without departing from the scope of the disclosure. Thus, the present disclosure is not limited to the embodiments presented herein but is to be interpreted in the broadest scope consistent with the principles and novel features presented herein.
상기와 같이 발명의 실시를 위한 최선의 형태에서 관련 내용을 기술하였다.As described above, the relevant content has been described in the best form for carrying out the invention.
구강 건강을 위한 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 디바이스 및 시스템 등에 사용될 수 있다.It can be used in devices and systems for detecting landmarks from 3D volume images for oral health.

Claims (17)

  1. 컴퓨팅 장치에 의해 수행되는, 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 방법으로서,A method for detecting landmarks from a three-dimensional volume image, performed by a computing device, comprising:
    대상체의 목적 부위를 촬영한 3차원 볼륨 영상으로부터 입력 데이터를 획득하는 단계;Obtaining input data from a 3D volume image of a target area of an object;
    상기 입력 데이터를 제1 랜드마크 검출 모델에 입력시키는 단계;Inputting the input data into a first landmark detection model;
    상기 제1 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제1 부분에 대한 복수의 랜드마크(landmark)를 검출하는 단계;detecting a plurality of landmarks for a first portion of the target area using the first landmark detection model;
    상기 3차원 볼륨 영상을 제2 랜드마크 검출 모델에 입력시키는 단계;Inputting the 3D volume image into a second landmark detection model;
    상기 제2 랜드마크 검출 모델을 이용하여 상기 목적 부의의 상기 제1 부분과 다른 제2 부분에 대한 복수의 랜드마크를 검출하는 단계; 및 detecting a plurality of landmarks for a second part of the target object that is different from the first part using the second landmark detection model; and
    상기 제1 부분에 대한 복수의 랜드마크 및 상기 제2 부분에 대한 복수의 랜드마크에 기반하여 상기 목적 부위에 대한 복수의 랜드마크를 생성하는 단계;generating a plurality of landmarks for the target area based on a plurality of landmarks for the first part and a plurality of landmarks for the second part;
    를 포함하는,Including,
    방법.method.
  2. 제1항에 있어서, 상기 목적 부위는, 두부를 포함하고,The method of claim 1, wherein the target area includes tofu,
    상기 제1 부분은, 상기 두부의 피부 영역을 의미하고,The first portion refers to the skin area of the head,
    상기 제2 부분은, 상기 두부의 뼈 영역을 의미하는,The second part refers to the bony region of the head,
    방법.method.
  3. 제2항에 있어서, 상기 입력 데이터는,The method of claim 2, wherein the input data is:
    상기 두부의 정면을 나타내는 제1 2차원 영상, 상기 제1 영상에 대응하는 깊이(depth) 영상 및 상기 두부의 측면을 나타내는 제2 2차원 영상을 포함하는, Comprising a first two-dimensional image representing the front of the head, a depth image corresponding to the first image, and a second two-dimensional image representing the side of the head,
    방법.method.
  4. 제3항에 있어서, 상기 제1 랜드마크 검출 모델은,The method of claim 3, wherein the first landmark detection model is:
    상기 두부의 정면에 대한 랜드마크를 검출하도록 학습된 제1 검출 모델과 상기 두부의 측면에 대한 랜드마크를 검출하도록 학습된 제2 검출 모델을 포함하는,Comprising a first detection model learned to detect landmarks on the front of the head and a second detection model learned to detect landmarks on the side of the head,
    방법.method.
  5. 제4항에 있어서, 상기 제1 랜드마크 검출 모델을 이용하여 상기 제1 부분에 대한 복수의 랜드마크를 검출하는 단계는,The method of claim 4, wherein detecting a plurality of landmarks for the first portion using the first landmark detection model comprises:
    상기 제1 영상 및 상기 깊이 영상을 상기 제1 검출 모델에 입력시키는 단계;Inputting the first image and the depth image into the first detection model;
    상기 제1 검출 모델을 이용하여 제1 그룹의 복수의 랜드마크를 검출하는 단계;Detecting a plurality of landmarks of a first group using the first detection model;
    상기 제2 영상을 상기 제2 검출 모델에 입력시키는 동작;Inputting the second image into the second detection model;
    상기 제2 검출 모델을 이용하여 제2 그룹의 복수의 랜드마크를 검출하는 단계; 및detecting a plurality of landmarks of a second group using the second detection model; and
    상기 제1 그룹의 복수의 랜드마크와 상기 제2 그룹의 복수의 랜드마크에 기반하여 상기 제1 부분에 대한 복수의 랜드마크를 생성하는 단계;generating a plurality of landmarks for the first portion based on the plurality of landmarks of the first group and the plurality of landmarks of the second group;
    를 포함하는,Including,
    방법.method.
  6. 제5항에 있어서, 상기 제1 검출 모델은,The method of claim 5, wherein the first detection model is:
    상기 제1 영상 및 상기 깊이 영상을 입력으로 하여 상기 제1 그룹의 복수의 랜드마크를 예측하고, 상기 예측된 제1 그룹의 복수의 랜드마크에 대한 2차원 좌표 값을 출력하도록 구성되고,configured to predict a plurality of landmarks of the first group using the first image and the depth image as input, and output two-dimensional coordinate values for the predicted plurality of landmarks of the first group,
    상기 제2 검출 모델은,The second detection model is,
    상기 제2 영상을 입력으로 하여 상기 제2 그룹의 복수의 랜드마크를 예측하고, 상기 예측된 제2 그룹의 복수의 랜드마크에 대한 2차원 좌표 값을 출력하도록 구성되는,Configured to predict a plurality of landmarks of the second group using the second image as an input, and output two-dimensional coordinate values for the predicted plurality of landmarks of the second group,
    방법.method.
  7. 제6항에 있어서, 상기 제1 부분에 대한 복수의 랜드마크를 생성하는 단계는,The method of claim 6, wherein generating a plurality of landmarks for the first portion comprises:
    상기 제1 그룹의 복수의 랜드마크에 대한 2차원 좌표 값과 상기 제2 그룹의 복수의 랜드마크에 대한 2차원 좌표 값 중 적어도 일부를 결합하여 3차원 좌표 값을 생성하는 단계인,Combining at least some of the two-dimensional coordinate values for the plurality of landmarks in the first group and the two-dimensional coordinate values for the plurality of landmarks in the second group to generate a three-dimensional coordinate value,
    방법.method.
  8. 제2항에 있어서, 상기 제2 랜드마크 검출 모델은,The method of claim 2, wherein the second landmark detection model is:
    상기 3차원 볼륨 영상으로부터 상기 제2 부분에 대한 복수의 랜드마크가 위치하는 복수의 크롭 영상을 검출하도록 학습된 제3 검출 모델과, 상기 검출된 복수의 크롭 영상으로부터 상기 제2 부분에 대한 복수의 랜드마크를 검출하도록 학습된 복수의 제4 검출 모델을 포함하는,A third detection model learned to detect a plurality of cropped images in which a plurality of landmarks for the second part are located from the 3D volume image, and a plurality of cropped images for the second part from the detected plurality of cropped images Comprising a plurality of fourth detection models learned to detect landmarks,
    방법.method.
  9. 제8항에 있어서, 상기 제2 랜드마크 검출 모델을 이용하여 상기 목적 부의의 상기 제2 부분에 대한 복수의 랜드마크를 검출하는 단계는, The method of claim 8, wherein the step of detecting a plurality of landmarks for the second portion of the target area using the second landmark detection model comprises:
    상기 3차원 볼륨 영상을 상기 제3 검출 모델에 입력시키는 단계;Inputting the 3D volume image into the third detection model;
    상기 제3 검출 모델을 이용하여 상기 복수의 크롭 영상을 검출하는 단계; detecting the plurality of cropped images using the third detection model;
    상기 검출된 복수의 크롭 영상을 상기 복수의 제4 검출 모델에 입력시키는 단계; 및 Inputting the detected plurality of cropped images into the plurality of fourth detection models; and
    상기 복수의 제4 검출 모델을 이용하여 상기 제2 부분에 대한 복수의 랜드마크를 검출하는 단계;detecting a plurality of landmarks for the second portion using the plurality of fourth detection models;
    를 포함하는, Including,
    방법.method.
  10. 제9항에 있어서, 상기 제3 검출 모델은,The method of claim 9, wherein the third detection model is:
    상기 3차원 볼륨 영상을 입력으로 하여 상기 3차원 볼륨 영상으로부터 상기 제2 부분에 대하여 상기 복수의 랜드마크로 예측되는 복수의 후보 영역을 검출하고, 상기 검출된 복수의 후보 영역에 해당하는 상기 복수의 크롭 영상을 출력하도록 구성되는,Using the 3D volume image as an input, detecting a plurality of candidate regions predicted as the plurality of landmarks for the second part from the 3D volume image, and cropping the plurality of candidate regions corresponding to the plurality of detected candidate regions. configured to output an image,
    방법.method.
  11. 제10항에 있어서, 상기 복수의 후보 영역은, 적어도 일부 중첩되고,The method of claim 10, wherein the plurality of candidate regions overlap at least in part,
    상기 제2 부분에 대한 복수의 랜드마크 각각으로 예측되는 적어도 하나의 위치를 포함하는, Containing at least one location predicted for each of a plurality of landmarks for the second portion,
    방법.method.
  12. 제9항에 있어서, 상기 복수의 제4 검출 모델 각각은, 상기 복수의 크롭 영상 각각에 대응하도록 구성되는, The method of claim 9, wherein each of the plurality of fourth detection models is configured to correspond to each of the plurality of cropped images.
    방법.method.
  13. 제12항에 있어서, 상기 복수의 제4 검출 모델 각각은, The method of claim 12, wherein each of the plurality of fourth detection models is:
    각 크롭 영상을 입력으로 하여 상기 각 크롭 영상에 대응하는 후보 영역으로부터 적어도 하나의 랜드마크를 예측하고, 상기 예측된 적어도 하나의 랜드마크 각각에 대한 3차원 좌표 값을 출력하도록 구성되는, Configured to predict at least one landmark from a candidate area corresponding to each cropped image using each cropped image as an input, and output a three-dimensional coordinate value for each of the predicted at least one landmark,
    방법.method.
  14. 제9항에 있어서, 상기 복수의 크롭 영상 각각은, 상기 복수의 후보 영역 각각에 해당하는 3차원 볼륨 영상인, The method of claim 9, wherein each of the plurality of cropped images is a 3D volume image corresponding to each of the plurality of candidate regions.
    방법.method.
  15. 컴퓨터 판독가능 저장 매체 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 하나 이상의 프로세서에서 실행되는 경우, 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 이하의 동작들을 수행하도록 하며, 상기 동작들은:A computer program stored on a computer-readable storage medium, wherein the computer program, when executed on one or more processors, performs the following operations for detecting a landmark from a three-dimensional volume image, the operations being:
    대상체의 목적 부위를 촬영한 3차원 볼륨 영상으로부터 입력 데이터를 획득하는 동작;An operation of acquiring input data from a 3D volume image of a target area of an object;
    상기 입력 데이터를 제1 랜드마크 검출 모델에 입력시키는 동작;Inputting the input data into a first landmark detection model;
    상기 제1 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제1 부분에 대한 복수의 랜드마크(landmark)를 검출하는 동작;detecting a plurality of landmarks for a first portion of the target region using the first landmark detection model;
    상기 3차원 볼륨 영상을 제2 랜드마크 검출 모델에 입력시키는 동작;Inputting the 3D volume image into a second landmark detection model;
    상기 제2 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제2 부분에 대한 복수의 랜드마크를 검출하는 동작; 및 detecting a plurality of landmarks for a second portion of the target area using the second landmark detection model; and
    상기 제1 그룹의 랜드마크 및 상기 제2 그룹의 랜드마크에 기반하여 상기 목적 부위에 대한 복수의 랜드마크를 생성하는 동작;generating a plurality of landmarks for the target area based on the first group of landmarks and the second group of landmarks;
    을 포함하는,Including,
    컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램.A computer program stored on a computer-readable storage medium.
  16. 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행 시, 상기 컴퓨팅 장치로 하여금 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 방법을 수행하도록 하며, 상기 방법은:A computer-readable storage medium storing a computer program, the computer program, when executed by a computing device, causing the computing device to perform a method for detecting a landmark from a three-dimensional volume image, the method comprising:
    대상체의 목적 부위를 촬영한 3차원 볼륨 영상으로부터 입력 데이터를 획득하는 단계;Obtaining input data from a 3D volume image of a target area of an object;
    상기 입력 데이터를 제1 랜드마크 검출 모델에 입력시키는 단계;Inputting the input data into a first landmark detection model;
    상기 제1 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제1 부분에 대한 복수의 랜드마크(landmark)를 검출하는 단계;detecting a plurality of landmarks for a first portion of the target area using the first landmark detection model;
    상기 3차원 볼륨 영상을 제2 랜드마크 검출 모델에 입력시키는 단계;Inputting the 3D volume image into a second landmark detection model;
    상기 제2 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제2 부분에 대한 복수의 랜드마크를 검출하는 단계; 및 detecting a plurality of landmarks for a second portion of the target area using the second landmark detection model; and
    상기 제1 그룹의 랜드마크 및 상기 제2 그룹의 랜드마크에 기반하여 상기 목적 부위에 대한 복수의 랜드마크를 생성하는 단계;generating a plurality of landmarks for the target area based on the first group of landmarks and the second group of landmarks;
    를 포함하는,Including,
    컴퓨터 판독가능 저장 매체.Computer readable storage medium.
  17. 3차원 볼륨 영상으로부터 랜드마크를 검출하기 위한 컴퓨팅 장치로서,A computing device for detecting landmarks from a three-dimensional volume image, comprising:
    적어도 하나의 프로세서; 및at least one processor; and
    메모리를 포함하며,Contains memory,
    상기 적어도 하나의 프로세서는:The at least one processor:
    대상체의 목적 부위를 촬영한 3차원 볼륨 영상으로부터 입력 데이터를 획득하고,Obtain input data from a 3D volume image taken of the target area of the object,
    상기 입력 데이터를 제1 랜드마크 검출 모델에 입력시키고,Input the input data into a first landmark detection model,
    상기 제1 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제1 부분에 대한 복수의 랜드마크(landmark)를 검출하고,Detecting a plurality of landmarks for a first part of the target area using the first landmark detection model,
    상기 3차원 볼륨 영상을 제2 랜드마크 검출 모델에 입력시키고,Input the 3D volume image into a second landmark detection model,
    상기 제2 랜드마크 검출 모델을 이용하여 상기 목적 부위의 제2 부분에 대한 복수의 랜드마크를 검출하고,Detecting a plurality of landmarks for a second part of the target area using the second landmark detection model,
    상기 제1 그룹의 랜드마크 및 상기 제2 그룹의 랜드마크에 기반하여 상기 목적 부위에 대한 복수의 랜드마크를 생성하도록 구성되는,Configured to generate a plurality of landmarks for the target area based on the first group of landmarks and the second group of landmarks,
    컴퓨팅 장치.Computing device.
PCT/KR2023/006595 2022-05-17 2023-05-16 Method and device for detecting landmark from 3d volume image WO2023224350A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0060156 2022-05-17
KR1020220060156A KR20230160995A (en) 2022-05-17 2022-05-17 Method and apparatus for detecting landmark from three dimensional volume image

Publications (2)

Publication Number Publication Date
WO2023224350A2 true WO2023224350A2 (en) 2023-11-23
WO2023224350A3 WO2023224350A3 (en) 2024-01-04

Family

ID=88835592

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/006595 WO2023224350A2 (en) 2022-05-17 2023-05-16 Method and device for detecting landmark from 3d volume image

Country Status (2)

Country Link
KR (1) KR20230160995A (en)
WO (1) WO2023224350A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118155106A (en) * 2024-05-13 2024-06-07 齐鲁空天信息研究院 Unmanned aerial vehicle pedestrian detection method, system, equipment and medium for mountain rescue

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102130963B1 (en) * 2018-07-09 2020-07-08 라온피플 주식회사 Apparatus and method for analyzing cephalic image
KR101952887B1 (en) * 2018-07-27 2019-06-11 김예현 Method for predicting anatomical landmarks and device for predicting anatomical landmarks using the same
KR102044237B1 (en) * 2018-10-23 2019-11-13 연세대학교 산학협력단 Shadowed 2D image-based machine learning, and automatic 3D landmark detection method and apparatus using thereof
KR102348036B1 (en) * 2019-12-05 2022-01-10 울산대학교 산학협력단 Prediction apparatus for predicting anatomical landmarks and a prediction method thereof
KR102334519B1 (en) * 2020-12-14 2021-12-06 이마고웍스 주식회사 Automated and simplified method for extracting landmarks of three dimensional dental scan data and computer readable medium having program for performing the method
KR102334480B1 (en) 2020-04-16 2021-12-06 이마고웍스 주식회사 Method and apparatus for detecting landmarks from medical 3d volume image based on deep learning

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118155106A (en) * 2024-05-13 2024-06-07 齐鲁空天信息研究院 Unmanned aerial vehicle pedestrian detection method, system, equipment and medium for mountain rescue

Also Published As

Publication number Publication date
WO2023224350A3 (en) 2024-01-04
KR20230160995A (en) 2023-11-27

Similar Documents

Publication Publication Date Title
WO2023224350A2 (en) Method and device for detecting landmark from 3d volume image
WO2022005090A1 (en) Method and apparatus for providing diagnosis result
WO2022119162A1 (en) Medical image-based disease prediction method
WO2020248841A1 (en) Au detection method and apparatus for image, and electronic device and storage medium
CN112560980B (en) Training method and device of target detection model and terminal equipment
WO2022149696A1 (en) Classification method using deep learning model
WO2022005091A1 (en) Method and apparatus for reading bone age
WO2022255564A1 (en) Biological signal analysis method
WO2021261825A1 (en) Device and method for generating meteorological data on basis of machine learning
WO2022107998A1 (en) Method and apparatus for segmenting three-dimensional image
WO2022050719A1 (en) Method and device for determining dementia level of user
WO2021010671A2 (en) Disease diagnosis system and method for performing segmentation by using neural network and unlocalized block
WO2023224298A1 (en) Cloud-based skin analysis system and method using camera module
WO2024117708A1 (en) Facial image conversion method using diffusion model
WO2022265292A1 (en) Method and device for detecting abnormal data
WO2024058465A1 (en) Method for training local neural network model for federated learning
WO2022186594A1 (en) Medical-image-based lesion analysis method
WO2023101417A1 (en) Method for predicting precipitation based on deep learning
WO2022114600A1 (en) Medical imaging-based method for detecting white matter lesion
WO2022139170A1 (en) Medical-image-based lesion analysis method
WO2019107624A1 (en) Sequence-to-sequence translation method and apparatus therefor
WO2021251691A1 (en) Anchor-free rpn-based object detection method
KR20230006306A (en) Image processing method
WO2021107471A1 (en) Medical data retrieval method
WO2023224457A1 (en) Method for obtaining feature point of depth map

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23807869

Country of ref document: EP

Kind code of ref document: A2