WO2019132167A1 - 3-dimensional elastic model rendering method and device, and program - Google Patents

3-dimensional elastic model rendering method and device, and program Download PDF

Info

Publication number
WO2019132167A1
WO2019132167A1 PCT/KR2018/010331 KR2018010331W WO2019132167A1 WO 2019132167 A1 WO2019132167 A1 WO 2019132167A1 KR 2018010331 W KR2018010331 W KR 2018010331W WO 2019132167 A1 WO2019132167 A1 WO 2019132167A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
voxel
tree
determining
condition
Prior art date
Application number
PCT/KR2018/010331
Other languages
French (fr)
Korean (ko)
Inventor
김호승
Original Assignee
(주)휴톰
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020180026573A external-priority patent/KR101862677B1/en
Application filed by (주)휴톰 filed Critical (주)휴톰
Publication of WO2019132167A1 publication Critical patent/WO2019132167A1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B34/00Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B34/00Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
    • A61B34/10Computer-aided planning, simulation or modelling of surgical operations
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B34/00Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
    • A61B34/20Surgical navigation systems; Devices for tracking or guiding surgical instruments, e.g. for frameless stereotaxis
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B34/00Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
    • A61B34/30Surgical robots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/40ICT specially adapted for the handling or processing of medical images for processing medical images, e.g. editing

Definitions

  • the present invention relates to a three-dimensional elastic model rendering method, apparatus and program.
  • Rendering is a computer graphics term that refers to the process of creating a three-dimensional image by injecting realism into a two-dimensional image in consideration of external information such as light source, position, and color.
  • Rendering is a computer graphics process that adds realism to a solid object by giving shadows or changes in the density of the object.
  • An octree is an octree, and is often used to recursively partition a three-dimensional space.
  • Octree is used to represent a three-dimensional space enclosed in a cube, and is used for voxel-based rendering.
  • the present invention provides a three-dimensional elastic model rendering method, apparatus, and program.
  • a method of rendering a three-dimensional elastic model comprising: searching a tree by a computer; determining a limit node for a first path included in the tree; Comprising the steps of: obtaining information about a first voxel corresponding to a node and displaying the object including the first voxel using the obtained information, And one or more nodes each corresponding to one or more voxels that have been divided into groups.
  • the information about the first voxel may include information about the elasticity of the first voxel, and the information about the elasticity of the first voxel may include information on the elasticity of the first voxel, And the color of the position corresponding to the second color is obtained.
  • the step of displaying the image may include calculating a state change of the object based on the information about the elasticity value of the first voxel, and displaying the image based on the calculation result have.
  • the limit node may be a node that satisfies a first condition that a difference between elastic values of voxels corresponding to child nodes of the limit node is less than or equal to a predetermined threshold value.
  • the limit node may be a node that satisfies a second condition that color information of a position corresponding to each child node of the limit node in the medical image falls within a predetermined range.
  • the color information may be a gray scale value of a position corresponding to each child node of the limit node in the medical image.
  • the limit node may be a node having the lowest level among the nodes on the first path satisfying the first condition or the second condition.
  • the step of determining the limit node may include the step of determining the end node of the first path as the limit node when there is no node satisfying the first condition or the second condition on the first path .
  • the step of determining the limit node may include sequentially performing a search along the first path until a node satisfying the first condition or the second condition is found from the root node, Determining, if a node satisfying the second condition is found, the discovered node as the limit node, and if no node satisfying the first condition or the second condition up to the end node is found, And determining the node as the limit node.
  • the determining of the threshold node may also include determining a level of the threshold node based on a distance from a point of view.
  • the tree may be an octree having a hexahedron containing the three-dimensional model data as a root.
  • a method for rendering a three-dimensional elastic model comprising the steps of: obtaining a medical image of a body part of a body of a computer; The method of claim 1, further comprising: obtaining three-dimensional model data; hierarchically dividing the three-dimensional model data into one or more voxels; generating a tree including nodes corresponding to each of the hierarchically- Determining an attribute value of a first voxel corresponding to a first node included in the tree based on a color of a position corresponding to the first voxel in the medical image; And storing the determined elasticity value of the first voxel in the first node.
  • an apparatus for rendering a three-dimensional elastic model comprising: a memory for storing one or more instructions; and a processor for executing the one or more instructions stored in the memory, The method comprising: searching a tree by executing one or more instructions; determining a threshold node for a first path included in the tree; obtaining information about a first voxel corresponding to the determined threshold node; And displaying the object including the first voxel using the information, wherein the tree includes one or more nodes each corresponding to one or more voxels that hierarchically divide the three-dimensional model data of the object .
  • an apparatus for rendering a three-dimensional elastic model comprising: a memory for storing one or more instructions; and a processor for executing the one or more instructions stored in the memory, Obtaining three-dimensional model data of the body part on the basis of the medical image by executing one or more instructions, acquiring a medical image of the body part of the object by executing one or more instructions, , Generating a tree including nodes corresponding to each of the hierarchically divided voxels, determining an attribute value of a first voxel corresponding to a first node included in the tree, Wherein in the medical image, based on a color of a position corresponding to the first voxel, Determining an attribute value of the voxel; and storing the determined elastic value of the first voxel in the first node.
  • a computer program stored in a computer-readable recording medium for performing a three-dimensional elastic model rendering method according to the disclosed embodiments in combination with a computer, .
  • FIG. 1 is a simplified schematic diagram of a system capable of performing robotic surgery in accordance with the disclosed embodiments.
  • FIG. 2 is a diagram illustrating a three-dimensional elastic model rendering system in accordance with one embodiment.
  • FIG. 3 is a flowchart illustrating a method of rendering a three-dimensional elastic model according to an embodiment.
  • FIG. 4 is a diagram showing an example of a method of dividing three-dimensional model data into voxels and a method of obtaining elastic values of voxels based on a medical image.
  • FIG. 5 is a diagram showing three-dimensional model data and a tree corresponding thereto.
  • FIG. 6 is a diagram illustrating an example of methods for searching for a threshold node.
  • FIG. 7 is a diagram showing an example of a result of determining the threshold nodes of the tree.
  • FIG. 8 is a diagram illustrating a method of performing rendering based on a point of view according to one embodiment.
  • Fig. 9 is a diagram showing an example of a change in the tree structure when the object is cut.
  • FIG. 10 is a configuration diagram of an apparatus 900 according to one embodiment.
  • the term “part” or “module” refers to a hardware component, such as a software, FPGA, or ASIC, and a “component” or “module” performs certain roles. However, “part” or “ module “ is not meant to be limited to software or hardware. A “module “ or “ module “ may be configured to reside on an addressable storage medium and configured to play back one or more processors. Thus, by way of example, “a” or " module " is intended to encompass all types of elements, such as software components, object oriented software components, class components and task components, Microcode, circuitry, data, databases, data structures, tables, arrays, and variables, as used herein. Or " modules " may be combined with a smaller number of components and "parts " or " modules " Can be further separated.
  • spatially relative can be used to easily describe a correlation between an element and other elements.
  • Spatially relative terms should be understood in terms of the directions shown in the drawings, including the different directions of components at the time of use or operation. For example, when inverting an element shown in the figures, an element described as “below” or “beneath” of another element may be placed “above” another element .
  • the exemplary term “below” can include both downward and upward directions.
  • the components can also be oriented in different directions, so that spatially relative terms can be interpreted according to orientation.
  • the rendering is understood as meaning encompassing all kinds of calculation processes performed to create a three-dimensional image.
  • FIG. 1 is a simplified schematic diagram of a system capable of performing robotic surgery in accordance with the disclosed embodiments.
  • the robotic surgery system includes a medical imaging apparatus 10, a server 20, a control unit 30 provided in an operating room, a display 32, and a surgical robot 34.
  • the medical imaging equipment 10 may be omitted from the robotic surgery system according to the disclosed embodiment.
  • the surgical robot 34 includes a photographing device 36 and a surgical tool 38.
  • robotic surgery is performed by the user controlling the surgical robot 34 using the control unit 30.
  • robot surgery may be performed automatically by the control unit 30 without user control.
  • the server 20 is a computing device including at least one processor and a communication unit.
  • the control unit 30 includes a computing device including at least one processor and a communication unit. In one embodiment, the control unit 30 includes hardware and software interfaces for controlling the surgical robot 34.
  • the photographing apparatus 36 includes at least one image sensor. That is, the photographing device 36 includes at least one camera device and is used to photograph a target object, that is, a surgical site. In one embodiment, the imaging device 36 includes at least one camera coupled with a surgical arm of the surgical robot 34.
  • the image photographed at the photographing device 36 is displayed on the display 340.
  • the surgical robot 34 includes one or more surgical tools 38 that can perform cutting, clipping, anchoring, grabbing, etc., of the surgical site.
  • the surgical tool 38 is used in combination with the surgical arm of the surgical robot 34.
  • the control unit 30 receives information necessary for surgery from the server 20, or generates information necessary for surgery and provides the information to the user. For example, the control unit 30 displays on the display 32 information necessary for surgery, which is generated or received.
  • the user operates the control unit 30 while viewing the display 32 to perform the robot surgery by controlling the movement of the surgical robot 34.
  • the server 20 generates information necessary for the robot surgery using the medical image data of the object photographed previously from the medical imaging apparatus 10 and provides the generated information to the control unit 30.
  • the control unit 30 provides the information received from the server 20 to the user by displaying the information on the display 32 or controls the surgical robot 34 using the information received from the server 20.
  • the means that can be used in the medical imaging equipment 10 is not limited, and various other medical imaging acquiring means such as CT, X-Ray, PET, MRI and the like may be used.
  • the surgical image obtained in the photographing device 36 is transmitted to the control section 30.
  • control unit 30 may segment the surgical image obtained during the operation in real time.
  • control unit 30 transmits a surgical image to the server 20 during or after surgery.
  • the server 20 can divide and analyze the surgical image.
  • FIG. 2 is a diagram illustrating a three-dimensional elastic model rendering system in accordance with one embodiment.
  • a three-dimensional elastic model rendering system includes a client 100 and a server 200.
  • client 100 and server 200 are computer devices that include at least one processor.
  • the client 100 may be a computing device in an operating room (surgical site).
  • the client 100 may correspond to the control unit 30 shown in FIG.
  • the client 100 may be provided in the operating room as a separate computing device from the control unit 30, and may be connected to the control unit 30.
  • a connection includes not only a physical connection but also an electronic connection concept, and it can also be understood as a concept of connection that the communication state is mutually communicable.
  • the client 100 may be connected to the control unit 30 by wire or wireless, and may be in a state where they can communicate with each other using short-range wireless communication or network communication.
  • FIG. 3 is a flowchart illustrating a method of rendering a three-dimensional elastic model according to an embodiment.
  • the method shown in FIG. 3 is a step-by-step illustration of operations performed in the client 100 or the server 200 shown in FIG.
  • the computer is described as performing the method shown in FIG. 3 and the embodiments shown in FIG. 3 and below, but at least some or all of the steps and embodiments may be performed by the client 100 or the server 200 ), And the subject of execution is not limited.
  • a tree is defined.
  • the tree includes one or more nodes each corresponding to one or more voxels that hierarchically divide the three-dimensional model data of the object.
  • the tree may be, but is not limited to, an octree consisting of nodes corresponding to one or more voxels that divide the cube containing the object.
  • the three-dimensional model data of the object is obtained based on the medical image of the object.
  • information about the voxels corresponding to each node may be stored in each node of the tree.
  • the information about the voxel includes the elastic value of the voxel.
  • the elasticity value of the voxel may be obtained based on the color of the position corresponding to each voxel in the medical image taken of the object.
  • the medical image may be a CT image, and the color may mean a gray scale value, but is not limited thereto.
  • CT images represent different gray scales depending on the physical properties, such as the molecular structure of the subject (subject) to be photographed. Therefore, the physical property of each part can be determined based on the gray scale value of the CT image, and the elasticity value can be determined based on the property.
  • FIG. 4 an example of a method of dividing three-dimensional model data into voxels and a method of acquiring elastic values of respective voxels based on medical images is shown.
  • a hexahedron 400 including a three-dimensional model 300 and a three-dimensional model 300 is shown.
  • the three-dimensional model 300 may be a three-dimensional model that models the liver.
  • the computer divides the hexahedron 400 into eight hexahedrons. Each cube is again divided, and a cube 410 having a limited volume can be obtained through a metric division.
  • the computer creates a tree (e.g., an octree) with nodes corresponding to each cube generated in the segmentation process.
  • a voxel is understood as a concept that can cover both the hexahedron 402 and the first hexahedron 400 generated in the division process, in addition to the terminal hexahedron 410 having a limited volume.
  • the voxels may be understood as the smallest unit having a limit volume, and may also include larger volumes of voxels produced by combining them.
  • the computer acquires the grayscale value of the position 520 corresponding to the terminal hexahedron 410 in the medical image 500 to obtain the elasticity value of the voxel 410.
  • the grayscale value may be obtained as an average of the grayscale values contained in location 520, but is not limited thereto.
  • the object i.e., the hexahedron not including the three-dimensional model 300, can be removed.
  • the removed cube is not included in the tree.
  • the computer in the partitioning of the hexahedron 400 and the creation of the tree, can either halt the partitioning if certain conditions are met, or merge the partitioned cubes.
  • the computer can stop the division and determine the hexahedron to be the terminal hexahedron.
  • the computer may divide a specific hexahedron, and if the grayscale values of each of the eight hexahedrons generated therefrom are similar (e.g., within a predetermined range, or each gray scale value is below a predetermined reference value)
  • the eight hexahedrons can be merged, and the merged hexahedron can be determined as the terminal hexahedron.
  • the load can be reduced by not further dividing the hexahedron .
  • the load of calculation can be reduced by adjusting the dividing step of each cube.
  • the determination of the rendering level may be performed in the process of creating the tree as described above.
  • step S110 the computer searches for a tree generated based on the three-dimensional model data of the object.
  • the computer searches the tree from the root node of the tree.
  • the computer can search the tree in a top-down or bottom-up manner, but is not limited thereto.
  • step S120 the computer determines a limit node for the first path included in the tree searched in step S110. For example, in the process of searching the first path included in the tree, the computer determines a limit node that is a rendering target node.
  • step S130 the computer obtains information on the first voxel corresponding to the limit node determined in step S120.
  • the information on the first voxel includes information on the elasticity values of the first voxel.
  • step S140 the computer performs rendering on the object including the first voxel and the first voxel, using the information obtained in step S130.
  • the computer performs rendering on the object including the first voxel and the first voxel using the elasticity value of the first voxel.
  • the computer performs a calculation for displaying an object including the first voxel, performs rendering for displaying an object including the first voxel based on the calculation result, 1 Display an object containing a voxel.
  • an object comprising a first voxel may refer to a body part (e.g., organ) of a patient.
  • the computer computes a state change of an object corresponding to an external stimulus for an object comprising the first voxel using the elastic value of the first voxel.
  • a change in the state of an object may include, but is not limited to, movement and transformation of the object.
  • the elasticity value may be used for the calculation to have a similar reaction to the actual object. For example, when you press or cut a model that rendered an object in the simulation process, it can be pushed or cut in a similar fashion to the actual object.
  • the computer uses the tree to determine the threshold nodes for computing the motion and deformation of the object, and calculates the motion and deformation of the object using the information obtained from the determined threshold nodes.
  • the computer determines a limit node for each path using a tree instead of calculating elastic values corresponding to all the voxels included in the object,
  • the motion and deformation of the object can be calculated using the elasticity value of the corresponding voxel.
  • the computer can display the object by changing the state of the object based on the calculation result, and performing rendering to display the object based on the changed state.
  • the computer also determines a limit node for rendering the object based on the distance from the rendering point to the object.
  • a computer may render a three-dimensional model represented by a tree, but instead of rendering all the end nodes, the computer determines a limit node on the path connecting each end node from the root, and then only the voxels corresponding to the limit node To reduce the load required for rendering. Specific methods for determining the limit nodes for rendering based on distance will be described below.
  • a tree 600 generated corresponding to the three-dimensional model data 300 is shown.
  • the computer searches the tree 600 and determines rendering levels, i.e., threshold nodes, for rendering the three-dimensional model data 300.
  • the tree 600 may be an octree rooted at the hexahedron 400 including the three-dimensional model data 300, but is not limited thereto.
  • the tree 600 includes a first path that includes a root node 610 and its child nodes 620, child nodes 630 of the child nodes 620 and child nodes 640 of the child nodes 630 .
  • the computer determines a limit node to render along the first path.
  • the lower the level of the limit node the more the rendering is performed. Therefore, the load of the rendering is reduced. The higher the level of the limit node, the smaller the rendering is performed.
  • determining the rendering level determines the level of the limit node to render for each path included in the tree 600.
  • the level is defined as being smaller toward the root of the tree, and increasing as the distance from the root increases.
  • a level can be defined as the distance from the root.
  • the threshold node may be a node that satisfies a first condition in which the difference in elastic values of voxels corresponding to the child nodes of the threshold node is less than or equal to a predetermined threshold.
  • 1 path can be a limit node.
  • the threshold node may be a node that satisfies the second condition that the color information of the position corresponding to each of the child nodes of the threshold node in the medical image 500 falls within a predetermined range.
  • the color information e.g., gray scale value
  • the node 630 may be the limit node of the first path.
  • the threshold node may be the node having the lowest level among the nodes on each path satisfying the first condition or the second condition.
  • a node 620 may be a limit node of one or more paths.
  • FIG. 6 an example of methods for searching for a threshold node is shown.
  • the computer can search the threshold node in a top-down manner or in a bottom-up manner.
  • the computer may stop searching if a limit node is found, and may not search child nodes of the limit node.
  • the computer may compare, at node 630, the elastic or gray scale values corresponding to the child nodes of node 630.
  • Each elastic value or grayscale value may be stored in each node and may be obtained in a search process. If the elastic or grayscale values corresponding to the child nodes of node 630 are similar to each other, the computer can determine node 630 as a threshold node and stop the search.
  • the computer can continuously search for nodes satisfying the condition at a lower level even when a node satisfying the condition of the limit node is found.
  • the computer can search the tree in a recursive manner and perform searches from the end node.
  • the computer may obtain the elastic or grayscale values from each of the child nodes 640-644, compare the obtained values at the parent node 630, and determine the parent node 630 as the limit node according to the comparison result have.
  • the computer must continue to search for the sibling nodes of node 630 and the parent nodes (and ancestor nodes) of node 630.
  • the parent node may become a new limit node if both the siblings of node 630 also meet the condition of the limit node, and the parent node of node 630 also meets the condition of the limit node.
  • the computer renders the voxel corresponding to the end node of the first path. That is, the end node of the first path becomes the limit node of the first path.
  • the computer sequentially searches from the root node along the first path until a node satisfying the first condition or the second condition is found. If a node satisfying the first condition or the second condition is found, the computer determines the discovered node as the limit node.
  • the computer determines the end node as the limit node.
  • FIG. 7 is a diagram showing an example of a result of determining the threshold nodes of the tree.
  • FIG. 7 a tree 700 generated based on three-dimensional model data is shown.
  • the tree 700 is shown in the form of a binary tree in FIG. 7, but the form of the tree is not limited thereto.
  • the tree 700 may be an octree.
  • the length (level) of each path included in the tree 700 may be different. For example, in the process of creating a tree, if the corresponding hexahedron is empty (i.e., does not include a three-dimensional model), the corresponding node may be deleted from the tree.
  • siblings having similar elasticity values or grayscale values may be deleted from the tree, and the parent node may be a terminal node. These nodes may be deleted during the preprocessing or tree creation process and may be retained and excluded from the search and rendering process.
  • nodes 720 are nodes corresponding to voxels whose sibling nodes have similar elastic or gray scale values to one another.
  • nodes 720 are excluded in the rendering process, and the nodes 710 are rendered as voxels corresponding to the nodes 710 as the limit nodes for each path.
  • the elasticity values of the voxels corresponding to the nodes 710 may be determined by the sum of the elastic values of the voxels corresponding to the respective child nodes, but are not limited thereto.
  • the elasticity of the vertices of the voxels corresponding to the nodes 710 may be the sum of the elastic values of the vertices of the voxels corresponding to the child nodes.
  • FIG. 8 is a diagram illustrating a method of performing rendering based on a point of view according to one embodiment.
  • the location of the imaging device 36 is used to determine the rendering time.
  • the position of the object 800 is used as a position relative to the position of the photographing device 36 to determine the position of the three-dimensional model to be rendered.
  • the computer determines the level of the limit node for each path of the tree based on the distance from the point of view.
  • the voxel 810 may correspond to a higher-level limit node than the voxel 820.
  • the path itself corresponding to the invisible part 830 at the rendering time can be excluded from the tree, and in this case, the limit node of the path can be the root node of the tree, but is not limited thereto.
  • the path corresponding to the invisible portion 830 at the rendering time may be a path of a subtree included in the tree.
  • the limit node of the path may be the root node of the included subtree.
  • Fig. 9 is a diagram showing an example of a change in the tree structure when the object is cut.
  • the object 800 may be a body part, i.e., an organ, and the result of rendering the object 800 may be used for a surgical simulation or the like, so that the object 800 may be cut.
  • Polygon-based rendering is vulnerable to the truncation of the model and has the disadvantage of requiring new rendering each time.
  • the tree 700 is divided based on the cut surface 802 from which the target 800 is cut, Can be expressed.
  • the computer may divide the tree 700 based on branch 702 that corresponds to the cut surface 802 of the object 800.
  • the divided subtrees correspond to the divided parts of the object, respectively.
  • the computer may divide the tree based on the node corresponding to the section plane 802 of the object 800, and the division method is not limited thereto.
  • FIG. 10 is a configuration diagram of an apparatus according to an embodiment.
  • the processor 902 may include a connection path (e.g., a bus, etc.) that transmits and receives signals with one or more cores (not shown) and a graphics processing unit (not shown) and / .
  • a connection path e.g., a bus, etc.
  • the processor 902 may include a connection path (e.g., a bus, etc.) that transmits and receives signals with one or more cores (not shown) and a graphics processing unit (not shown) and / .
  • the processor 902 in accordance with one embodiment performs the surgical video data learning method described with respect to Figures 1-9 by executing one or more instructions stored in the memory 904.
  • the processor 902 may search the tree by executing one or more instructions stored in memory, determine a threshold node for the first path included in the tree, and determine a threshold for the first voxel corresponding to the determined threshold node Dimensional model data of the object, and the tree is generated by rendering one or more nodes corresponding to one or more voxels, which hierarchically divide the three-dimensional model data of the object, wherein the information on the first voxel includes information on elasticity values of the first voxel and information on the elasticity values of the first voxel includes information on elasticity values of the first voxel, 1 < / RTI > voxel.
  • the processor 902 may include a random access memory (RAM) (not shown) and a read-only memory (ROM) for temporarily and / or permanently storing signals (or data) , Not shown).
  • the processor 902 may be implemented as a system-on-chip (SoC) including at least one of a graphics processing unit, a RAM, and a ROM.
  • SoC system-on-chip
  • the memory 904 may store programs (one or more instructions) for processing and control of the processor 902. Programs stored in the memory 904 can be divided into a plurality of modules according to functions.
  • the surgical image segmentation method may be implemented as a program (or an application) to be executed in combination with a hardware computer and stored in a medium.
  • the above-described program may be stored in a computer-readable medium such as C, C ++, JAVA, machine language, or the like that can be read by the processor (CPU) of the computer through the device interface of the computer, And may include a code encoded in a computer language of the computer.
  • code may include a functional code related to a function or the like that defines necessary functions for executing the above methods, and includes a control code related to an execution procedure necessary for the processor of the computer to execute the functions in a predetermined procedure can do.
  • code may further include memory reference related code as to whether the additional information or media needed to cause the processor of the computer to execute the functions should be referred to at any location (address) of the internal or external memory of the computer have.
  • the code may be communicated to any other computer or server remotely using the communication module of the computer
  • a communication-related code for determining whether to communicate, what information or media should be transmitted or received during communication, and the like.
  • the medium to be stored is not a medium for storing data for a short time such as a register, a cache, a memory, etc., but means a medium that semi-permanently stores data and is capable of being read by a device.
  • examples of the medium to be stored include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, but are not limited thereto.
  • the program may be stored in various recording media on various servers to which the computer can access, or on various recording media on the user's computer.
  • the medium may be distributed to a network-connected computer system so that computer-readable codes may be stored in a distributed manner.
  • the steps of a method or algorithm described in connection with the embodiments of the present invention may be embodied directly in hardware, in software modules executed in hardware, or in a combination of both.
  • the software module may be a random access memory (RAM), a read only memory (ROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), a flash memory, a hard disk, a removable disk, a CD- May reside in any form of computer readable recording medium known in the art to which the invention pertains.

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Surgery (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Public Health (AREA)
  • Biomedical Technology (AREA)
  • Animal Behavior & Ethology (AREA)
  • Molecular Biology (AREA)
  • Veterinary Medicine (AREA)
  • Heart & Thoracic Surgery (AREA)
  • General Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Radiology & Medical Imaging (AREA)
  • Epidemiology (AREA)
  • Primary Health Care (AREA)
  • Image Generation (AREA)

Abstract

Provided is a 3-dimensional elastic model rendering method comprising the steps of: searching for a tree by a computer; determining a limit node for a first path included in the tree; acquiring information on a first voxel corresponding to the determined limit node; and displaying an object including the first voxel by using the acquired information, wherein the tree includes one or more nodes corresponding to each of one or more voxels obtained by hierarchically dividing 3-dimensional model data of the object.

Description

3차원 탄성 모델 렌더링 방법, 장치 및 프로그램3D elastic model rendering method, apparatus and program
본 발명은 3차원 탄성 모델 렌더링 방법, 장치 및 프로그램에 관한 것이다.The present invention relates to a three-dimensional elastic model rendering method, apparatus and program.
렌더링은 2차원의 화상에 광원, 위치 및 색상 등 외부의 정보를 고려하여 사실감을 불어넣어, 3차원 화상을 만드는 과정을 뜻하는 컴퓨터그래픽스 용어이다.Rendering is a computer graphics term that refers to the process of creating a three-dimensional image by injecting realism into a two-dimensional image in consideration of external information such as light source, position, and color.
예를 들어, 평면인 그림에 형태, 위치, 조명 등 외부의 정보에 따라 다르게 나타나는 그림자, 색상, 농도 등을 고려하면서 실감나는 3차원 화상을 만들어내는 과정 또는 그러한 기법을 일컫는다. 즉, 평면적으로 보이는 물체에 그림자나 농도의 변화 등을 주어 입체감이 들게 함으로써 사실감을 추가하는 컴퓨터그래픽상의 과정이 곧 렌더링이다.For example, it refers to the process of creating realistic three-dimensional images taking into account the shadows, colors, and densities that appear differently depending on the external information such as shape, position, and illumination. Rendering is a computer graphics process that adds realism to a solid object by giving shadows or changes in the density of the object.
옥트리(octree)는 팔진 트리를 의미하며, 삼차원 공간을 재귀적으로 분할하는 경우에 자주 쓰인다. 옥트리는 입방체로 감싸인 3차원 공간을 표현하는 데 사용되며, 복셀 기반 렌더링에 이용된다.An octree is an octree, and is often used to recursively partition a three-dimensional space. Octree is used to represent a three-dimensional space enclosed in a cube, and is used for voxel-based rendering.
본 발명이 해결하고자 하는 과제는 3차원 탄성 모델 렌더링 방법, 장치 및 프로그램을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention provides a three-dimensional elastic model rendering method, apparatus, and program.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the above-mentioned problems, and other problems which are not mentioned can be clearly understood by those skilled in the art from the following description.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 3차원 탄성 모델 렌더링 방법은, 컴퓨터가 트리를 탐색하는 단계, 상기 트리에 포함된 제1 경로에 대한 한계 노드를 결정하는 단계, 상기 결정된 한계 노드에 대응하는 제1 복셀에 대한 정보를 획득하는 단계 및 상기 획득된 정보를 이용하여, 상기 제1 복셀을 포함하는 객체를 표시하는 단계를 포함하고, 상기 트리는, 대상체의 3차원 모델 데이터를 계층적으로 분할한 하나 이상의 복셀에 각각 대응하는 하나 이상의 노드를 포함한다.According to an aspect of the present invention, there is provided a method of rendering a three-dimensional elastic model, the method comprising: searching a tree by a computer; determining a limit node for a first path included in the tree; Comprising the steps of: obtaining information about a first voxel corresponding to a node and displaying the object including the first voxel using the obtained information, And one or more nodes each corresponding to one or more voxels that have been divided into groups.
또한, 상기 제1 복셀에 대한 정보는, 상기 제1 복셀의 탄성값에 대한 정보를 포함하고, 상기 제1 복셀의 탄성값에 대한 정보는, 상기 대상체를 촬영한 의료영상에서, 상기 제1 복셀에 대응하는 위치의 색에 기초하여 획득되는 것을 특징으로 할 수 있다. The information about the first voxel may include information about the elasticity of the first voxel, and the information about the elasticity of the first voxel may include information on the elasticity of the first voxel, And the color of the position corresponding to the second color is obtained.
또한, 상기 영상을 표시하는 단계는, 상기 제1 복셀의 탄성값에 대한 정보에 기초하여, 상기 객체의 상태 변화를 계산하는 단계 및 상기 계산 결과에 기초하여 상기 영상을 표시하는 단계를 포함할 수 있다.In addition, the step of displaying the image may include calculating a state change of the object based on the information about the elasticity value of the first voxel, and displaying the image based on the calculation result have.
또한, 상기 한계 노드는, 상기 한계 노드의 자식 노드들에 대응하는 복셀들 각각의 탄성값의 차이가 소정의 한계치(threshold) 이하인 제1 조건을 만족하는 노드인 것을 특징으로 할 수 있다.The limit node may be a node that satisfies a first condition that a difference between elastic values of voxels corresponding to child nodes of the limit node is less than or equal to a predetermined threshold value.
또한, 상기 한계 노드는, 상기 의료영상에서 상기 한계 노드의 자식 노드들 각각에 대응하는 위치의 색상정보가 소정의 범위 내에 속하는 제2 조건을 만족하는 노드인 것을 특징으로 할 수 있다.The limit node may be a node that satisfies a second condition that color information of a position corresponding to each child node of the limit node in the medical image falls within a predetermined range.
또한, 상기 색상정보는, 상기 의료영상에서 상기 한계 노드의 자식 노드들 각각에 대응하는 위치의 그레이스케일 값인 것을 특징으로 할 수 있다.The color information may be a gray scale value of a position corresponding to each child node of the limit node in the medical image.
또한, 상기 한계 노드는, 상기 제1 조건 또는 상기 제2 조건을 만족하는 상기 제1 경로상의 노드 중 가장 낮은 레벨을 갖는 노드인 것을 특징으로 할 수 있다.The limit node may be a node having the lowest level among the nodes on the first path satisfying the first condition or the second condition.
또한, 상기 한계 노드를 결정하는 단계는, 상기 제1 경로상에 상기 제1 조건 또는 상기 제2 조건을 만족하는 노드가 없는 경우, 상기 제1 경로의 말단 노드를 상기 한계 노드로 결정하는 단계를 포함할 수 있다.The step of determining the limit node may include the step of determining the end node of the first path as the limit node when there is no node satisfying the first condition or the second condition on the first path .
또한, 상기 한계 노드를 결정하는 단계는, 루트 노드에서부터 상기 제1 조건 또는 상기 제2 조건을 만족하는 노드가 발견될때까지 상기 제1 경로를 따라 순차적으로 탐색을 수행하는 단계, 상기 제1 조건 또는 상기 제2 조건을 만족하는 노드가 발견되는 경우, 상기 발견된 노드를 상기 한계 노드로 결정하는 단계 및 말단 노드까지 상기 제1 조건 또는 상기 제2 조건을 만족하는 노드가 발견되지 않는 경우, 상기 말단 노드를 상기 한계 노드로 결정하는 단계를 포함할 수 있다.The step of determining the limit node may include sequentially performing a search along the first path until a node satisfying the first condition or the second condition is found from the root node, Determining, if a node satisfying the second condition is found, the discovered node as the limit node, and if no node satisfying the first condition or the second condition up to the end node is found, And determining the node as the limit node.
또한, 상기 한계 노드를 결정하는 단계는, 렌더링 시점(point of view)으로부터의 거리에 기초하여 상기 한계 노드의 레벨을 결정하는 단계를 포함할 수 있다.The determining of the threshold node may also include determining a level of the threshold node based on a distance from a point of view.
또한, 상기 트리는, 상기 3차원 모델 데이터를 포함하는 육면체를 루트로 하는 옥트리(octree)인 것을 특징으로 할 수 있다.In addition, the tree may be an octree having a hexahedron containing the three-dimensional model data as a root.
상술한 과제를 해결하기 위한 본 발명의 다른 일 면에 따른 3차원 탄성 모델 렌더링 방법은, 컴퓨터가 대상체의 신체부위를 촬영한 의료 영상을 획득하는 단계, 상기 의료 영상에 기초하여, 상기 신체부위의 3차원 모델 데이터를 획득하는 단계, 상기 3차원 모델 데이터를 하나 이상의 복셀로 계층적으로 분할하는 단계, 상기 계층적으로 분할된 하나 이상의 복셀 각각에 대응하는 노드를 포함하는 트리를 생성하는 단계, 상기 트리에 포함된 제1 노드에 대응하는 제1 복셀의 속성값을 결정하되, 상기 의료영상에서, 상기 제1 복셀에 대응하는 위치의 색에 기초하여 상기 제1 복셀의 속성값을 결정하는, 단계 및 상기 결정된 상기 제1 복셀의 탄성값을 상기 제1 노드에 저장하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method for rendering a three-dimensional elastic model, the method comprising the steps of: obtaining a medical image of a body part of a body of a computer; The method of claim 1, further comprising: obtaining three-dimensional model data; hierarchically dividing the three-dimensional model data into one or more voxels; generating a tree including nodes corresponding to each of the hierarchically- Determining an attribute value of a first voxel corresponding to a first node included in the tree based on a color of a position corresponding to the first voxel in the medical image; And storing the determined elasticity value of the first voxel in the first node.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 3차원 탄성 모델 렌더링 장치는, 하나 이상의 인스트럭션을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 트리를 탐색하는 단계, 상기 트리에 포함된 제1 경로에 대한 한계 노드를 결정하는 단계, 상기 결정된 한계 노드에 대응하는 제1 복셀에 대한 정보를 획득하는 단계 및 상기 획득된 정보를 이용하여, 상기 제1 복셀을 포함하는 객체를 표시하는 단계를 수행하고, 상기 트리는, 대상체의 3차원 모델 데이터를 계층적으로 분할한 하나 이상의 복셀에 각각 대응하는 하나 이상의 노드를 포함한다.According to an aspect of the present invention, there is provided an apparatus for rendering a three-dimensional elastic model, comprising: a memory for storing one or more instructions; and a processor for executing the one or more instructions stored in the memory, The method comprising: searching a tree by executing one or more instructions; determining a threshold node for a first path included in the tree; obtaining information about a first voxel corresponding to the determined threshold node; And displaying the object including the first voxel using the information, wherein the tree includes one or more nodes each corresponding to one or more voxels that hierarchically divide the three-dimensional model data of the object .
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 3차원 탄성 모델 렌더링 장치는, 하나 이상의 인스트럭션을 저장하는 메모리 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 대상체의 신체부위를 촬영한 의료 영상을 획득하는 단계, 상기 의료 영상에 기초하여, 상기 신체부위의 3차원 모델 데이터를 획득하는 단계, 상기 3차원 모델 데이터를 하나 이상의 복셀로 계층적으로 분할하는 단계, 상기 계층적으로 분할된 하나 이상의 복셀 각각에 대응하는 노드를 포함하는 트리를 생성하는 단계, 상기 트리에 포함된 제1 노드에 대응하는 제1 복셀의 속성값을 결정하되, 상기 의료영상에서, 상기 제1 복셀에 대응하는 위치의 색에 기초하여 상기 제1 복셀의 속성값을 결정하는, 단계 및 상기 결정된 상기 제1 복셀의 탄성값을 상기 제1 노드에 저장하는 단계를 수행한다.According to an aspect of the present invention, there is provided an apparatus for rendering a three-dimensional elastic model, comprising: a memory for storing one or more instructions; and a processor for executing the one or more instructions stored in the memory, Obtaining three-dimensional model data of the body part on the basis of the medical image by executing one or more instructions, acquiring a medical image of the body part of the object by executing one or more instructions, , Generating a tree including nodes corresponding to each of the hierarchically divided voxels, determining an attribute value of a first voxel corresponding to a first node included in the tree, Wherein in the medical image, based on a color of a position corresponding to the first voxel, Determining an attribute value of the voxel; and storing the determined elastic value of the first voxel in the first node.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따라 하드웨어인 컴퓨터와 결합되어, 개시된 실시 예에 따른 3차원 탄성 모델 렌더링 방법을 수행할 수 있도록 컴퓨터에서 독출가능한 기록매체에 저장된 컴퓨터프로그램이 제공된다.According to an aspect of the present invention, there is provided a computer program stored in a computer-readable recording medium for performing a three-dimensional elastic model rendering method according to the disclosed embodiments in combination with a computer, .
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.
개시된 실시 예에 따르면, 트리를 이용하여 렌더링에 필요한 연산량을 감소시키면서, 실제 장기의 탄성값을 반영할 수 있는 렌더링을 수행하는 효과가 있다.According to the disclosed embodiment, there is an effect of performing rendering that can reflect the elasticity value of an actual organ while reducing the amount of computation required for rendering using a tree.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the above-mentioned effects, and other effects not mentioned can be clearly understood by those skilled in the art from the following description.
도 1은 개시된 실시 예에 따라 로봇수술을 수행할 수 있는 시스템을 간략하게 도식화한 도면이다.1 is a simplified schematic diagram of a system capable of performing robotic surgery in accordance with the disclosed embodiments.
도 2는 일 실시 예에 따른 3차원 탄성 모델 렌더링 시스템을 도시한 도면이다.2 is a diagram illustrating a three-dimensional elastic model rendering system in accordance with one embodiment.
도 3은 일 실시 예에 따른 3차원 탄성 모델 렌더링 방법을 도시한 흐름도이다.3 is a flowchart illustrating a method of rendering a three-dimensional elastic model according to an embodiment.
도 4는 3차원 모델 데이터를 복셀로 분할하는 방법 및 의료 영상에 기초하여 각 복셀의 탄성값을 획득하는 방법의 일 예를 도시한 도면이다.4 is a diagram showing an example of a method of dividing three-dimensional model data into voxels and a method of obtaining elastic values of voxels based on a medical image.
도 5는 3차원 모델 데이터 및 이에 대응하는 트리를 도시한 도면이다.5 is a diagram showing three-dimensional model data and a tree corresponding thereto.
도 6은 한계 노드를 탐색하는 방법들의 일 예를 도시한 도면이다.6 is a diagram illustrating an example of methods for searching for a threshold node.
도 7은 트리의 한계 노드들을 결정한 결과의 일 예를 도시한 도면이다.FIG. 7 is a diagram showing an example of a result of determining the threshold nodes of the tree.
도 8은 일 실시 예에 따라 렌더링 시점(point of view)에 기초하여 렌더링을 수행하는 방법을 도시한 도면이다.8 is a diagram illustrating a method of performing rendering based on a point of view according to one embodiment.
도 9는 대상체를 절단하는 데 따른 트리 구조의 변화의 일 예를 도시한 도면이다.Fig. 9 is a diagram showing an example of a change in the tree structure when the object is cut.
도 10은 일 실시 예에 따른 장치(900)의 구성도이다.10 is a configuration diagram of an apparatus 900 according to one embodiment.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. It should be understood, however, that the invention is not limited to the disclosed embodiments, but may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein, Is provided to fully convey the scope of the present invention to a technician, and the present invention is only defined by the scope of the claims.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of illustrating embodiments and is not intended to be limiting of the present invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. The terms " comprises "and / or" comprising "used in the specification do not exclude the presence or addition of one or more other elements in addition to the stated element. Like reference numerals refer to like elements throughout the specification and "and / or" include each and every combination of one or more of the elements mentioned. Although "first "," second "and the like are used to describe various components, it is needless to say that these components are not limited by these terms. These terms are used only to distinguish one component from another. Therefore, it goes without saying that the first component mentioned below may be the second component within the technical scope of the present invention.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless defined otherwise, all terms (including technical and scientific terms) used herein may be used in a sense that is commonly understood by one of ordinary skill in the art to which this invention belongs. In addition, commonly used predefined terms are not ideally or excessively interpreted unless explicitly defined otherwise.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.As used herein, the term "part" or "module" refers to a hardware component, such as a software, FPGA, or ASIC, and a "component" or "module" performs certain roles. However, "part" or " module " is not meant to be limited to software or hardware. A "module " or " module " may be configured to reside on an addressable storage medium and configured to play back one or more processors. Thus, by way of example, "a" or " module " is intended to encompass all types of elements, such as software components, object oriented software components, class components and task components, Microcode, circuitry, data, databases, data structures, tables, arrays, and variables, as used herein. Or " modules " may be combined with a smaller number of components and "parts " or " modules " Can be further separated.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)"등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.The terms spatially relative, "below", "beneath", "lower", "above", "upper" And can be used to easily describe a correlation between an element and other elements. Spatially relative terms should be understood in terms of the directions shown in the drawings, including the different directions of components at the time of use or operation. For example, when inverting an element shown in the figures, an element described as "below" or "beneath" of another element may be placed "above" another element . Thus, the exemplary term "below" can include both downward and upward directions. The components can also be oriented in different directions, so that spatially relative terms can be interpreted according to orientation.
본 명세서에서, 렌더링은 3차원 화상을 만들기 위하여 수행되는 모든 종류의 계산과정을 포괄하는 의미로서 이해된다.In the present specification, the rendering is understood as meaning encompassing all kinds of calculation processes performed to create a three-dimensional image.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 개시된 실시 예에 따라 로봇수술을 수행할 수 있는 시스템을 간략하게 도식화한 도면이다.1 is a simplified schematic diagram of a system capable of performing robotic surgery in accordance with the disclosed embodiments.
도 1에 따르면, 로봇수술 시스템은 의료영상 촬영장비(10), 서버(20) 및 수술실에 구비된 제어부(30), 디스플레이(32) 및 수술로봇(34)을 포함한다. 실시 예에 따라서, 의료영상 촬영장비(10)는 개시된 실시 예에 따른 로봇수술 시스템에서 생략될 수 있다.1, the robotic surgery system includes a medical imaging apparatus 10, a server 20, a control unit 30 provided in an operating room, a display 32, and a surgical robot 34. Depending on the embodiment, the medical imaging equipment 10 may be omitted from the robotic surgery system according to the disclosed embodiment.
일 실시 예에서, 수술로봇(34)은 촬영장치(36) 및 수술도구(38)를 포함한다.In one embodiment, the surgical robot 34 includes a photographing device 36 and a surgical tool 38.
일 실시 예에서, 로봇수술은 사용자가 제어부(30)를 이용하여 수술용 로봇(34)을 제어함으로써 수행된다. 일 실시 예에서, 로봇수술은 사용자의 제어 없이 제어부(30)에 의하여 자동으로 수행될 수도 있다.In one embodiment, robotic surgery is performed by the user controlling the surgical robot 34 using the control unit 30. [ In one embodiment, robot surgery may be performed automatically by the control unit 30 without user control.
서버(20)는 적어도 하나의 프로세서와 통신부를 포함하는 컴퓨팅 장치이다.The server 20 is a computing device including at least one processor and a communication unit.
제어부(30)는 적어도 하나의 프로세서와 통신부를 포함하는 컴퓨팅 장치를 포함한다. 일 실시 예에서, 제어부(30)는 수술용 로봇(34)을 제어하기 위한 하드웨어 및 소프트웨어 인터페이스를 포함한다.The control unit 30 includes a computing device including at least one processor and a communication unit. In one embodiment, the control unit 30 includes hardware and software interfaces for controlling the surgical robot 34.
촬영장치(36)는 적어도 하나의 이미지 센서를 포함한다. 즉, 촬영장치(36)는 적어도 하나의 카메라 장치를 포함하여, 대상체, 즉 수술부위를 촬영하는 데 이용된다. 일 실시 예에서, 촬영장치(36)는 수술로봇(34)의 수술 암(arm)과 결합된 적어도 하나의 카메라를 포함한다.The photographing apparatus 36 includes at least one image sensor. That is, the photographing device 36 includes at least one camera device and is used to photograph a target object, that is, a surgical site. In one embodiment, the imaging device 36 includes at least one camera coupled with a surgical arm of the surgical robot 34.
일 실시 예에서, 촬영장치(36)에서 촬영된 영상은 디스플레이(340)에 표시된다.In one embodiment, the image photographed at the photographing device 36 is displayed on the display 340. [
일 실시 예에서, 수술로봇(34)은 수술부위의 절단, 클리핑, 고정, 잡기 동작 등을 수행할 수 있는 하나 이상의 수술도구(38)를 포함한다. 수술도구(38)는 수술로봇(34)의 수술 암과 결합되어 이용된다.In one embodiment, the surgical robot 34 includes one or more surgical tools 38 that can perform cutting, clipping, anchoring, grabbing, etc., of the surgical site. The surgical tool 38 is used in combination with the surgical arm of the surgical robot 34.
제어부(30)는 서버(20)로부터 수술에 필요한 정보를 수신하거나, 수술에 필요한 정보를 생성하여 사용자에게 제공한다. 예를 들어, 제어부(30)는 생성 또는 수신된, 수술에 필요한 정보를 디스플레이(32)에 표시한다.The control unit 30 receives information necessary for surgery from the server 20, or generates information necessary for surgery and provides the information to the user. For example, the control unit 30 displays on the display 32 information necessary for surgery, which is generated or received.
예를 들어, 사용자는 디스플레이(32)를 보면서 제어부(30)를 조작하여 수술로봇(34)의 움직임을 제어함으로써 로봇수술을 수행한다.For example, the user operates the control unit 30 while viewing the display 32 to perform the robot surgery by controlling the movement of the surgical robot 34.
서버(20)는 의료영상 촬영장비(10)로부터 사전에 촬영된 대상체의 의료영상데이터를 이용하여 로봇수술에 필요한 정보를 생성하고, 생성된 정보를 제어부(30)에 제공한다. The server 20 generates information necessary for the robot surgery using the medical image data of the object photographed previously from the medical imaging apparatus 10 and provides the generated information to the control unit 30. [
제어부(30)는 서버(20)로부터 수신된 정보를 디스플레이(32)에 표시함으로써 사용자에게 제공하거나, 서버(20)로부터 수신된 정보를 이용하여 수술로봇(34)을 제어한다.The control unit 30 provides the information received from the server 20 to the user by displaying the information on the display 32 or controls the surgical robot 34 using the information received from the server 20. [
일 실시 예에서, 의료영상 촬영장비(10)에서 사용될 수 있는 수단은 제한되지 않으며, 예를 들어 CT, X-Ray, PET, MRI 등 다른 다양한 의료영상 획득수단이 사용될 수 있다. In one embodiment, the means that can be used in the medical imaging equipment 10 is not limited, and various other medical imaging acquiring means such as CT, X-Ray, PET, MRI and the like may be used.
개시된 실시 예에서, 촬영장치(36)에서 획득되는 수술영상은 제어부(30)로 전달된다.In the disclosed embodiment, the surgical image obtained in the photographing device 36 is transmitted to the control section 30. [
일 실시 예에서, 제어부(30)는 수술 중에 획득되는 수술영상을 실시간으로 분할(segmentation)할 수 있다.In one embodiment, the control unit 30 may segment the surgical image obtained during the operation in real time.
일 실시 예에서, 제어부(30)는 수술 중 또는 수술이 완료된 후 수술영상을 서버(20)에 전송한다.In one embodiment, the control unit 30 transmits a surgical image to the server 20 during or after surgery.
서버(20)는 수술영상을 분할하여 분석할 수 있다.The server 20 can divide and analyze the surgical image.
도 2는 일 실시 예에 따른 3차원 탄성 모델 렌더링 시스템을 도시한 도면이다.2 is a diagram illustrating a three-dimensional elastic model rendering system in accordance with one embodiment.
도 2를 참조하면, 3차원 탄성 모델 렌더링 시스템은 클라이언트(100) 및 서버(200)를 포함한다.Referring to FIG. 2, a three-dimensional elastic model rendering system includes a client 100 and a server 200.
일 실시 예에서, 클라이언트(100) 및 서버(200)는 적어도 하나의 프로세서를 포함하는 컴퓨터 장치이다.In one embodiment, client 100 and server 200 are computer devices that include at least one processor.
일 실시 예에서, 클라이언트(100)는 수술실(수술현장)에 구비된 컴퓨팅 장치일 수 있다. 예를 들어, 클라이언트(100)는 도 1에 도시된 제어부(30)에 대응할 수 있다. 다른 예로, 클라이언트(100)는 제어부(30)와 별도의 컴퓨팅 장치로서 수술실에 구비되고, 제어부(30)와 연결될 수 있다. 본 명세서에서, 연결은 물리적 연결뿐 아니라 전자적인 연결 개념을 포함하며, 서로 통신가능한 상태에 놓이는 것 또한 연결의 개념으로 이해될 수 있다. 예를 들어, 클라이언트(100)는 제어부(30)와 유선 또는 무선으로 연결될 수 있고, 근거리 무선 통신이나 네트워크 통신을 이용하여 상호 통신가능한 상태가 될 수 있다.In one embodiment, the client 100 may be a computing device in an operating room (surgical site). For example, the client 100 may correspond to the control unit 30 shown in FIG. As another example, the client 100 may be provided in the operating room as a separate computing device from the control unit 30, and may be connected to the control unit 30. In this specification, a connection includes not only a physical connection but also an electronic connection concept, and it can also be understood as a concept of connection that the communication state is mutually communicable. For example, the client 100 may be connected to the control unit 30 by wire or wireless, and may be in a state where they can communicate with each other using short-range wireless communication or network communication.
도 3은 일 실시 예에 따른 3차원 탄성 모델 렌더링 방법을 도시한 흐름도이다.3 is a flowchart illustrating a method of rendering a three-dimensional elastic model according to an embodiment.
일 실시 예에서, 도 3에 도시된 방법은 도 2에 도시된 클라이언트(100) 또는 서버(200)에서 수행되는 동작들을 단계적으로 도시한 것이다. 이하에서는, 설명의 편의상 컴퓨터가 도 3에 도시된 방법 및 도 3이하에 도시된 실시 예들을 수행하는 것으로 서술하나, 각각의 단계 및 실시 예들의 적어도 일부 또는 전부가 클라이언트(100) 또는 서버(200)에서 수행될 수 있으며, 그 수행 주체는 제한되지 않는다.In one embodiment, the method shown in FIG. 3 is a step-by-step illustration of operations performed in the client 100 or the server 200 shown in FIG. Hereinafter, for convenience of description, the computer is described as performing the method shown in FIG. 3 and the embodiments shown in FIG. 3 and below, but at least some or all of the steps and embodiments may be performed by the client 100 or the server 200 ), And the subject of execution is not limited.
일 실시 예에서, 트리가 정의된다. 트리는, 대상체의 3차원 모델 데이터를 계층적으로 분할한 하나 이상의 복셀에 각각 대응하는 하나 이상의 노드를 포함한다. 예를 들어, 트리는 대상체를 포함하는 육면체를 분할한 하나 이상의 복셀에 대응하는 노드들로 이루어지는 옥트리(octree)일 수 있으나, 이에 제한되지 않는다.In one embodiment, a tree is defined. The tree includes one or more nodes each corresponding to one or more voxels that hierarchically divide the three-dimensional model data of the object. For example, the tree may be, but is not limited to, an octree consisting of nodes corresponding to one or more voxels that divide the cube containing the object.
일 실시 예에서, 대상체의 3차원 모델 데이터는 대상체를 촬영한 의료 영상에 기초하여 획득된다. In one embodiment, the three-dimensional model data of the object is obtained based on the medical image of the object.
일 실시 예에서, 트리의 각 노드에는 각 노드에 대응하는 복셀에 대한 정보가 저장될 수 있다. 복셀에 대한 정보는, 복셀의 탄성(elastic)값을 포함한다.In one embodiment, information about the voxels corresponding to each node may be stored in each node of the tree. The information about the voxel includes the elastic value of the voxel.
일 실시 예에서, 복셀의 탄성값은, 대상체를 촬영한 의료영상에서, 각 복셀에 대응하는 위치의 색에 기초하여 획득될 수 있다. 예를 들어, 의료영상은 CT 영상일 수 있으며, 색은 그레이스케일 값을 의미할 수 있으나, 이에 제한되지 않는다.In one embodiment, the elasticity value of the voxel may be obtained based on the color of the position corresponding to each voxel in the medical image taken of the object. For example, the medical image may be a CT image, and the color may mean a gray scale value, but is not limited thereto.
예를 들어, CT 영상은 촬영대상 신체(대상체)의 분자구조 등 물성에 따라 서로 다른 그레이스케일을 표현한다. 따라서, CT 영상의 그레이스케일 값에 기초하여 각 부분의 물성을 판단할 수 있으며, 이에 기초하여 탄성값을 결정할 수 있다.For example, CT images represent different gray scales depending on the physical properties, such as the molecular structure of the subject (subject) to be photographed. Therefore, the physical property of each part can be determined based on the gray scale value of the CT image, and the elasticity value can be determined based on the property.
도 4를 참조하면, 3차원 모델 데이터를 복셀로 분할하는 방법 및 의료 영상에 기초하여 각 복셀의 탄성값을 획득하는 방법의 일 예가 도시되어 있다.Referring to FIG. 4, an example of a method of dividing three-dimensional model data into voxels and a method of acquiring elastic values of respective voxels based on medical images is shown.
도 4를 참조하면, 3차원 모델(300) 및 3차원 모델(300)을 포함하는 육면체(400)가 도시되어 있다. 예를 들어, 3차원 모델(300)은 간을 모델링한 3차원 모델일 수 있다.Referring to FIG. 4, a hexahedron 400 including a three-dimensional model 300 and a three-dimensional model 300 is shown. For example, the three-dimensional model 300 may be a three-dimensional model that models the liver.
일 실시 예에서, 컴퓨터는 육면체(400)를 8개의 육면체로 분할한다. 각각의 육면체는 다시 분할되며, 계측정 분할을 통해 한계부피를 갖는 말단 육면체(410)를 획득할 수 있다.In one embodiment, the computer divides the hexahedron 400 into eight hexahedrons. Each cube is again divided, and a cube 410 having a limited volume can be obtained through a metric division.
컴퓨터는 분할 과정에서 생성되는 각각의 육면체에 대응하는 노드를 갖는 트리(예를 들어, 옥트리)를 생성한다. 본 명세서에서, 복셀은 한계부피를 갖는 말단 육면체(410) 외에도 분할 과정에서 생성되는 육면체(402) 및 최초의 육면체(400)를 모두 포괄할 수 있는 개념으로 이해된다. The computer creates a tree (e.g., an octree) with nodes corresponding to each cube generated in the segmentation process. In this specification, a voxel is understood as a concept that can cover both the hexahedron 402 and the first hexahedron 400 generated in the division process, in addition to the terminal hexahedron 410 having a limited volume.
즉, 복셀은 한계부피를 갖는 최소단위로서 이해될 수도 있으며, 이들이 결합되어 생성되는 더 큰 부피의 복셀 또한 포함할 수 있다.That is, the voxels may be understood as the smallest unit having a limit volume, and may also include larger volumes of voxels produced by combining them.
또한, 도 4를 참조하면 대상체(510)를 포함하는 의료영상(500)의 일 예가 도시되어 있다. 컴퓨터는 복셀(410)의 탄성값을 획득하기 위해, 의료영상(500)에서 말단 육면체(410)에 대응하는 위치(520)의 그레이스케일 값을 획득한다. 4, an example of the medical image 500 including the object 510 is shown. The computer acquires the grayscale value of the position 520 corresponding to the terminal hexahedron 410 in the medical image 500 to obtain the elasticity value of the voxel 410. [
예를 들어, 그레이스케일 값은 위치(520)에 포함된 그레이스케일 값의 평균으로 획득될 수 있으나, 이에 제한되지 않는다.For example, the grayscale value may be obtained as an average of the grayscale values contained in location 520, but is not limited thereto.
일 실시 예에서, 육면체(400)의 분할 과정에서 오브젝트, 즉 3차원 모델(300)이 포함되지 않은 육면체는 제거될 수 있다. 제거된 육면체는 트리에 포함되지 않는다.In one embodiment, in the division process of the hexahedron 400, the object, i.e., the hexahedron not including the three-dimensional model 300, can be removed. The removed cube is not included in the tree.
일 실시 예에서, 육면체(400)의 분할 및 트리의 생성 과정에서, 컴퓨터는 특정 조건이 만족되는 경우 분할을 중지하거나, 분할된 육면체들을 병합할 수 있다.In one embodiment, in the partitioning of the hexahedron 400 and the creation of the tree, the computer can either halt the partitioning if certain conditions are met, or merge the partitioned cubes.
예를 들어, 컴퓨터는 분할된 육면체 중 의료영상(500)에서 해당 육면체에 대응하는 위치의 그레이스케일 값이 균일한 경우, 분할을 중지하고, 해당 육면체를 말단 육면체로 결정할 수 있다. For example, if the gray scale value of the position corresponding to the corresponding hexahedron is uniform in the medical image 500 among the divided hexahedrons, the computer can stop the division and determine the hexahedron to be the terminal hexahedron.
다른 예로, 컴퓨터는 특정 육면체를 분할한 후, 이로부터 생성된 8개의 육면체 각각의 그레이스케일 값이 유사한 경우(예를 들어, 소정 범위 내에 속하거나, 각각의 그레이스케일 값이 소정 기준값 이하인 경우), 8개의 육면체를 병합하고, 병합된 육면체를 말단 육면체로 결정할 수 있다.As another example, the computer may divide a specific hexahedron, and if the grayscale values of each of the eight hexahedrons generated therefrom are similar (e.g., within a predetermined range, or each gray scale value is below a predetermined reference value) The eight hexahedrons can be merged, and the merged hexahedron can be determined as the terminal hexahedron.
육면체 내부의 그레이스케일 값의 변화가 없거나 적으면 육면체 전체가 동일하거나 유사한 물성을 갖는다는 것을 의미하고, 즉 유사한 탄성값을 가질 것으로 예측할 수 있으므로, 이러한 육면체는 추가적으로 분할하지 않음으로써 부하를 줄일 수 있다. 예를 들어, 물체의 탄성에 의한 움직임(deformation)을 계산함에 있어서, 각 육면체의 분할단계를 조절함으로써, 계산의 부하를 줄일 수 있다.Since there is little or no change in the gray scale value inside the hexahedron means that the entire hexahedron has the same or similar physical properties, that is, it can be predicted to have a similar elasticity value, the load can be reduced by not further dividing the hexahedron . For example, in calculating the deformation due to the elasticity of an object, the load of calculation can be reduced by adjusting the dividing step of each cube.
렌더링 수준을 결정하는 것은 상술한 바와 같이 컴퓨터가 트리를 생성하는 과정에서도 수행될 수 있다. The determination of the rendering level may be performed in the process of creating the tree as described above.
이하에서는, 도 3을 참조하여 컴퓨터가 생성된 트리를 이용하여 렌더링 수준을 결정하고, 렌더링을 수행하는 방법을 설명한다.Hereinafter, a method of determining a rendering level and performing rendering using a tree created by a computer will be described with reference to FIG.
단계 S110에서, 컴퓨터는 대상체의 3차원 모델 데이터에 기초하여 생성된 트리를 탐색한다. 일 실시 예에서, 컴퓨터는 트리의 루트 노드에서부터 트리를 탐색한다. 컴퓨터는 트리를 탑 다운(top-down)방식 또는 바텀 업(bottom-up) 방식으로 탐색할 수 있으나, 이에 제한되지 않는다.In step S110, the computer searches for a tree generated based on the three-dimensional model data of the object. In one embodiment, the computer searches the tree from the root node of the tree. The computer can search the tree in a top-down or bottom-up manner, but is not limited thereto.
단계 S120에서, 컴퓨터는 단계 S110에서 탐색하는 트리에 포함된 제1 경로에 대한 한계 노드를 결정한다. 예를 들어, 컴퓨터는 트리에 포함된 제1 경로를 탐색하는 과정에서, 렌더링 대상 노드인 한계 노드를 결정한다.In step S120, the computer determines a limit node for the first path included in the tree searched in step S110. For example, in the process of searching the first path included in the tree, the computer determines a limit node that is a rendering target node.
한계 노드를 결정하는 방법에 대해서는 구체적으로 후술한다.The method of determining the limit node will be described in detail later.
단계 S130에서, 컴퓨터는 단계 S120에서 결정된 한계 노드에 대응하는 제1 복셀에 대한 정보를 획득한다. 예를 들어, 제1 복셀에 대한 정보는 제1 복셀의 탄성값에 대한 정보를 포함한다. In step S130, the computer obtains information on the first voxel corresponding to the limit node determined in step S120. For example, the information on the first voxel includes information on the elasticity values of the first voxel.
단계 S140에서, 컴퓨터는 단계 S130에서 획득된 정보를 이용하여, 제1 복셀 및 제1 복셀을 포함하는 객체에 대한 렌더링을 수행한다. 컴퓨터는 제1 복셀의 탄성값을 이용하여 제1 복셀 및 제1 복셀을 포함하는 객체에 대한 렌더링을 수행한다.In step S140, the computer performs rendering on the object including the first voxel and the first voxel, using the information obtained in step S130. The computer performs rendering on the object including the first voxel and the first voxel using the elasticity value of the first voxel.
일 실시 예에서, 컴퓨터는 제1 복셀을 포함하는 객체를 표시하기 위한 계산을 수행하고, 계산 결과에 기초하여 제1 복셀을 포함하는 객체를 표시하기 위한 렌더링을 수행하며, 렌더링 결과를 이용하여 제1 복셀을 포함하는 객체를 표시한다. 예를 들어, 제1 복셀을 포함하는 객체는 환자의 신체부위(예를 들어, 장기)를 의미할 수 있다.In one embodiment, the computer performs a calculation for displaying an object including the first voxel, performs rendering for displaying an object including the first voxel based on the calculation result, 1 Display an object containing a voxel. For example, an object comprising a first voxel may refer to a body part (e.g., organ) of a patient.
일 실시 예에서, 컴퓨터는 제1 복셀의 탄성값을 이용하여 제1 복셀을 포함하는 객체에 대한 외부 자극에 대응하는 객체의 상태 변화를 계산한다. 예를 들어, 객체의 상태 변화는 객체의 움직임 및 변형을 포함할 수 있으나, 이에 제한되지 않는다.In one embodiment, the computer computes a state change of an object corresponding to an external stimulus for an object comprising the first voxel using the elastic value of the first voxel. For example, a change in the state of an object may include, but is not limited to, movement and transformation of the object.
예를 들어, 렌더링된 모델에 대하여 시뮬레이션 과정에서 외부의 자극이 있는 경우, 이에 대하여 실제 대상체와 유사한 반응을 하도록 하기 위한 계산에 탄성값이 이용될 수 있다. 예를 들어, 시뮬레이션 과정에서 대상체를 렌더링한 모델을 누르거나 자를 때, 실제 대상체와 유사한 형태로 눌리거나 잘려질 수 있다. 컴퓨터는 트리를 이용하여 객체의 움직임 및 변형을 계산하기 위한 한계 노드를 결정하고, 결정된 한계 노드로부터 획득되는 정보를 이용하여 객체의 움직임 및 변형을 계산한다.For example, if there is an external stimulus in the simulation process for the rendered model, the elasticity value may be used for the calculation to have a similar reaction to the actual object. For example, when you press or cut a model that rendered an object in the simulation process, it can be pushed or cut in a similar fashion to the actual object. The computer uses the tree to determine the threshold nodes for computing the motion and deformation of the object, and calculates the motion and deformation of the object using the information obtained from the determined threshold nodes.
즉, 컴퓨터는 객체의 움직임 및 변형을 계산할 때, 객체에 포함된 모든 복셀들에 대응하는 탄성값을 일일이 계산하지 않고, 트리를 이용하여 각각의 경로에 대한 한계 노드를 결정하고, 결정된 한계 노드에 대응하는 복셀의 탄성값을 이용하여 객체의 움직임 및 변형을 계산할 수 있다.That is, when calculating the motion and deformation of an object, the computer determines a limit node for each path using a tree instead of calculating elastic values corresponding to all the voxels included in the object, The motion and deformation of the object can be calculated using the elasticity value of the corresponding voxel.
컴퓨터는 계산 결과에 기초하여 객체의 상태를 변화시키고, 변화된 상태에 기초하여 객체를 표시하기 위한 렌더링을 수행하여 객체를 표시할 수 있다.The computer can display the object by changing the state of the object based on the calculation result, and performing rendering to display the object based on the changed state.
또한, 컴퓨터는 렌더링 시점으로부터 객체까지의 거리에 기초하여 객체를 렌더링하기 위한 한계 노드를 결정한다.The computer also determines a limit node for rendering the object based on the distance from the rendering point to the object.
예를 들어, 컴퓨터는 트리로 나타내어지는 3차원 모델을 렌더링하되, 모든 말단 노드를 렌더링하는 대신, 루트에서부터 각각의 말단 노드를 연결하는 경로 상에서 한계 노드를 결정한 후, 한계 노드만에 대응하는 복셀들만을 렌더링함으로써 렌더링에 필요한 부하를 줄일 수 있다. 거리에 기초하여 렌더링을 위한 한계 노드들을 결정하는 구체적인 방법에 대해서는 이하에서 후술한다.For example, a computer may render a three-dimensional model represented by a tree, but instead of rendering all the end nodes, the computer determines a limit node on the path connecting each end node from the root, and then only the voxels corresponding to the limit node To reduce the load required for rendering. Specific methods for determining the limit nodes for rendering based on distance will be described below.
도 5를 참조하면, 3차원 모델 데이터 및 이에 대응하는 트리가 도시되어 있다.Referring to FIG. 5, three-dimensional model data and corresponding trees are shown.
도 5를 참조하면, 3차원 모델 데이터(300)에 대응하여 생성된 트리(600)가 도시되어 있다. 컴퓨터는 트리(600)를 탐색하며 3차원 모델 데이터(300)를 렌더링하기 위한 렌더링 수준, 즉 한계 노드들을 결정한다.Referring to FIG. 5, a tree 600 generated corresponding to the three-dimensional model data 300 is shown. The computer searches the tree 600 and determines rendering levels, i.e., threshold nodes, for rendering the three-dimensional model data 300.
일 실시 예에서, 트리(600)는 3차원 모델 데이터(300)를 포함하는 육면체(400)를 루트로 하는 옥트리일 수 있으나, 이에 제한되지 않는다.In one embodiment, the tree 600 may be an octree rooted at the hexahedron 400 including the three-dimensional model data 300, but is not limited thereto.
트리(600)는 루트 노드(610) 및 그 자식 노드(620), 자식 노드(620)의 자식 노드(630) 및 자식 노드(630)의 자식 노드(640)를 포함하는 제1 경로를 포함한다. 일 실시 예에서, 컴퓨터는 제1 경로를 따라 렌더링할 한계 노드를 결정한다.The tree 600 includes a first path that includes a root node 610 and its child nodes 620, child nodes 630 of the child nodes 620 and child nodes 640 of the child nodes 630 . In one embodiment, the computer determines a limit node to render along the first path.
일 실시 예에서, 한계 노드의 레벨이 낮을수록 더 큰 단위로 렌더링을 하게 되므로 렌더링의 부하가 줄어들고, 한계 노드의 레벨이 높을수록 더 작은 단위로 렌더링을 하게 되므로 렌더링의 부하가 늘어나게 된다.In one embodiment, the lower the level of the limit node, the more the rendering is performed. Therefore, the load of the rendering is reduced. The higher the level of the limit node, the smaller the rendering is performed.
따라서, 렌더링 수준을 결정하는 것은 트리(600)에 포함된 각각의 경로에 대하여 렌더링할 한계 노드의 레벨을 결정하는 것으로 이해될 수 있다.Thus, it can be understood that determining the rendering level determines the level of the limit node to render for each path included in the tree 600.
본 명세서에서, 레벨은 트리의 루트에 가까울수록 작아지고, 루트에서 멀어질수록 커지는 것으로 정의된다. 예를 들어, 레벨은 루트로부터의 거리로 정의될 수 있다.In this specification, the level is defined as being smaller toward the root of the tree, and increasing as the distance from the root increases. For example, a level can be defined as the distance from the root.
일 실시 예에서, 한계 노드는, 한계 노드의 자식 노드들에 대응하는 복셀들 각각의 탄성값의 차이가 소정의 한계치 이하인 제1 조건을 만족하는 노드일 수 있다.In one embodiment, the threshold node may be a node that satisfies a first condition in which the difference in elastic values of voxels corresponding to the child nodes of the threshold node is less than or equal to a predetermined threshold.
예를 들어, 노드(630)의 자식 노드들(640 내지 644) 각각에 대응하는 복셀들 각각의 탄성값이 소정 범위 내에 속하거나, 각각의 차이가 소정의 한계치 이하인 경우, 노드(630)는 제1 경로의 한계 노드가 될 수 있다.For example, if the elasticity of each of the voxels corresponding to each of the child nodes 640-644 of the node 630 falls within a predetermined range, or if the difference is below a predetermined threshold, 1 path can be a limit node.
일 실시 예에서, 한계 노드는, 의료영상(500)에서 한계 노드의 자식 노드들 각각에 대응하는 위치의 색상정보가 소정의 범위 내에 속하는 제2 조건을 만족하는 노드일 수 있다.In one embodiment, the threshold node may be a node that satisfies the second condition that the color information of the position corresponding to each of the child nodes of the threshold node in the medical image 500 falls within a predetermined range.
예를 들어, 노드(630)의 자식 노드들(640 내지 644) 각각에 대응하는 복셀들 각각에 대하여, 의료영상(500)에서 각각 대응하는 위치의 색상정보(예를 들어, 그레이스케일 값)가 유사한 경우, 노드(630)는 제1 경로의 한계 노드가 될 수 있다. For example, for each voxel corresponding to each of the child nodes 640 to 644 of the node 630, the color information (e.g., gray scale value) of the corresponding position in the medical image 500 is In a similar case, the node 630 may be the limit node of the first path.
일 실시 예에서, 한계 노드는, 상기한 제1 조건 또는 제2 조건을 만족하는 각각의 경로상의 노드 중 가장 낮은 레벨을 갖는 노드일 수 있다.In one embodiment, the threshold node may be the node having the lowest level among the nodes on each path satisfying the first condition or the second condition.
예를 들어, 노드(630)가 제1 조건 또는 제2 조건을 만족하는 경우에도, 노드(620)가 제1 조건 또는 제2 조건을 만족하는 경우, 제1 경로에 대한 한계노드는 노드(620)가 될 수 있다. 도 5를 참조하면, 노드(620)는 하나 이상의 경로의 한계 노드가 될 수 있다. For example, if the node 620 satisfies the first condition or the second condition, even if the node 630 satisfies the first condition or the second condition, the limit node for the first path is the node 620 ). Referring to FIG. 5, a node 620 may be a limit node of one or more paths.
도 6을 참조하면, 한계 노드를 탐색하는 방법들의 일 예가 도시되어 있다.Referring to FIG. 6, an example of methods for searching for a threshold node is shown.
컴퓨터는 한계 노드를 탑 다운 방식으로 탐색할 수도 있고, 바텀 업 방식으로 탐색할 수도 있다.The computer can search the threshold node in a top-down manner or in a bottom-up manner.
탑 다운 방식으로 탐색하는 경우, 컴퓨터는 한계 노드가 발견되는 경우 탐색을 중지하고, 한계 노드의 자식 노드들을 탐색하지 않을 수 있다.When searching in a top-down manner, the computer may stop searching if a limit node is found, and may not search child nodes of the limit node.
예를 들어, 컴퓨터는 노드(630)에서, 노드(630)의 자식 노드들에 대응하는 탄성값 또는 그레이스케일 값을 비교할 수 있다. 각각의 탄성값 또는 그레이스케일 값은 각각의 노드에 저장되어 있을 수도 있고, 탐색과정에서 획득될 수도 있다. 노드(630)의 자식 노드들에 대응하는 탄성값 또는 그레이스케일 값이 서로 유사한 경우, 컴퓨터는 노드(630)를 한계 노드로 결정하고, 탐색을 중지할 수 있다.For example, the computer may compare, at node 630, the elastic or gray scale values corresponding to the child nodes of node 630. [ Each elastic value or grayscale value may be stored in each node and may be obtained in a search process. If the elastic or grayscale values corresponding to the child nodes of node 630 are similar to each other, the computer can determine node 630 as a threshold node and stop the search.
바텀 업 방식으로 탐색하는 경우, 컴퓨터는 한계 노드의 조건을 만족하는 노드가 발견되는 경우에도, 더 낮은 레벨에서 해당 조건을 만족하는 노드가 있는지 여부를 계속해서 탐색할 수 있다.When searching in the bottom up method, the computer can continuously search for nodes satisfying the condition at a lower level even when a node satisfying the condition of the limit node is found.
예를 들어, 컴퓨터는 재귀(recursive)방식으로 트리를 탐색하며, 말단 노드에서부터 탐색을 수행할 수 있다. 컴퓨터는 각각의 자식 노드(640 내지 644)로부터 탄성값 또는 그레이스케일 값을 획득하고, 획득된 값을 부모 노드(630)에서 비교하고, 비교 결과에 따라 부모 노드(630)를 한계 노드로 결정할 수 있다. For example, the computer can search the tree in a recursive manner and perform searches from the end node. The computer may obtain the elastic or grayscale values from each of the child nodes 640-644, compare the obtained values at the parent node 630, and determine the parent node 630 as the limit node according to the comparison result have.
하지만, 이 경우 컴퓨터는 노드(630)의 형제 노드들 및 노드(630)의 부모 노드(및 조상 노드들)에 대한 탐색을 계속해야 한다.However, in this case, the computer must continue to search for the sibling nodes of node 630 and the parent nodes (and ancestor nodes) of node 630.
예를 들어, 노드(630)의 형제 노드들 또한 모두 한계 노드의 조건을 만족하고, 노드(630)의 부모 노드 또한 한계 노드의 조건을 만족하는 경우, 부모 노드는 새로운 한계 노드가 될 수 있다.For example, if both the siblings of node 630 also meet the condition of the limit node, and the parent node of node 630 also meets the condition of the limit node, the parent node may become a new limit node.
일 실시 예에서, 제1 경로상에 한계 노드가 존재하지 않을 수 있다. 이 경우, 컴퓨터는 제1 경로의 말단 노드에 대응하는 복셀을 렌더링한다. 즉, 제1 경로의 말단 노드가 제1 경로의 한계 노드가 된다.In one embodiment, there may not be a limit node on the first path. In this case, the computer renders the voxel corresponding to the end node of the first path. That is, the end node of the first path becomes the limit node of the first path.
예를 들어, 탑 다운 방식의 경우, 컴퓨터는 루트 노드에서부터 상기 제1 조건 또는 상기 제2 조건을 만족하는 노드가 발견될때까지 상기 제1 경로를 따라 순차적으로 탐색을 수행한다. 상기 제1 조건 또는 상기 제2 조건을 만족하는 노드가 발견되는 경우, 컴퓨터는 상기 발견된 노드를 상기 한계 노드로 결정한다.For example, in the case of a top-down approach, the computer sequentially searches from the root node along the first path until a node satisfying the first condition or the second condition is found. If a node satisfying the first condition or the second condition is found, the computer determines the discovered node as the limit node.
말단 노드까지 상기 제1 조건 또는 상기 제2 조건을 만족하는 노드가 발견되지 않는 경우, 컴퓨터는 말단 노드를 한계 노드로 결정한다.If no node satisfying the first condition or the second condition up to the end node is found, the computer determines the end node as the limit node.
도 7은 트리의 한계 노드들을 결정한 결과의 일 예를 도시한 도면이다.FIG. 7 is a diagram showing an example of a result of determining the threshold nodes of the tree.
도 7을 참조하면, 3차원 모델 데이터에 기초하여 생성된 트리(700)가 도시되어 있다.Referring to Fig. 7, a tree 700 generated based on three-dimensional model data is shown.
설명의 편의를 위하여 도 7에서는 이진 트리 형태로 트리(700)를 도시하였으나, 트리의 형태는 이에 제한되지 않는다. 예를 들어, 트리(700)는 옥트리일 수 있다.For convenience of explanation, the tree 700 is shown in the form of a binary tree in FIG. 7, but the form of the tree is not limited thereto. For example, the tree 700 may be an octree.
상술한 바와 같이, 트리(700)에 포함된 각 경로의 길이(레벨)는 상이할 수 있다. 예를 들어, 트리를 생성하는 과정에서 특정 노드에 대응하는 육면체가 비어 있는 경우(즉, 3차원 모델을 포함하지 않는 경우) 해당 노드는 트리에서 삭제될 수 있다.As described above, the length (level) of each path included in the tree 700 may be different. For example, in the process of creating a tree, if the corresponding hexahedron is empty (i.e., does not include a three-dimensional model), the corresponding node may be deleted from the tree.
또한, 실시 예에 따라서 서로 유사한 탄성값이나 그레이스케일 값을 갖는 형제 노드들은 트리에서 삭제되고, 부모 노드가 말단 노드가 될 수도 있다. 이러한 노드들은 전처리 과정 또는 트리 생성 과정에서 삭제될 수도 있고, 유지되어 탐색 및 렌더링 과정에서 배제될 수도 있다.Also, depending on the embodiment, siblings having similar elasticity values or grayscale values may be deleted from the tree, and the parent node may be a terminal node. These nodes may be deleted during the preprocessing or tree creation process and may be retained and excluded from the search and rendering process.
도 7에 도시된 실시 예에 따르면, 노드들(720)은 형제 노드들이 서로 유사한 탄성값 또는 그레이스케일 값을 갖는 복셀에 대응하는 노드들이다.According to the embodiment shown in FIG. 7, nodes 720 are nodes corresponding to voxels whose sibling nodes have similar elastic or gray scale values to one another.
이러한 노드들(720)은 렌더링 과정에서 배제되며, 노드들(710)은 각각의 경로에 대한 한계 노드들로서, 노드들(710)에 대응하는 복셀들에 대하여 렌더링이 수행된다. These nodes 720 are excluded in the rendering process, and the nodes 710 are rendered as voxels corresponding to the nodes 710 as the limit nodes for each path.
일 실시 예에서, 노드들(710)에 대응하는 복셀들의 탄성값은 각각의 자식 노드들에 대응하는 복셀들의 탄성값의 합으로 결정될 수 있으나, 이에 제한되지 않는다. 예를 들어, 노드들(710)에 대응하는 복셀들의 버텍스(vertex)의 탄성값은 자식 노드들에 대응하는 복셀들의 버텍스의 탄성값의 합일 수 있다.In one embodiment, the elasticity values of the voxels corresponding to the nodes 710 may be determined by the sum of the elastic values of the voxels corresponding to the respective child nodes, but are not limited thereto. For example, the elasticity of the vertices of the voxels corresponding to the nodes 710 may be the sum of the elastic values of the vertices of the voxels corresponding to the child nodes.
도 8은 일 실시 예에 따라 렌더링 시점(point of view)에 기초하여 렌더링을 수행하는 방법을 도시한 도면이다.8 is a diagram illustrating a method of performing rendering based on a point of view according to one embodiment.
도 8을 참조하면, 촬영장치(36)가 대상체(800)를 촬영하는 일 예가 도시되어 있다. 8, an example in which the photographing device 36 photographs the object 800 is shown.
일 실시 예에서, 촬영장치(36)의 위치는 렌더링 시점을 결정하는 데 이용된다. 또한, 대상체(800)의 위치는 촬영장치(36)의 위치에 대한 상대적인 위치로서, 렌더링 대상인 3차원 모델의 위치를 결정하는 데 이용된다.In one embodiment, the location of the imaging device 36 is used to determine the rendering time. In addition, the position of the object 800 is used as a position relative to the position of the photographing device 36 to determine the position of the three-dimensional model to be rendered.
일 실시 예에서, 컴퓨터는 렌더링 시점(point of view)으로부터의 거리에 기초하여 트리의 각 경로에 대한 한계 노드의 레벨을 결정한다.In one embodiment, the computer determines the level of the limit node for each path of the tree based on the distance from the point of view.
예를 들어, 렌더링 시점으로부터의 거리가 가까울수록 더 상세한 표현이 필요하므로, 한계 노드의 레벨은 커질 수 있다.For example, the closer the distance from the rendering point is, the more detailed the representation is needed, so the level of the limit node can be large.
반대로, 렌더링 시점으로부터의 거리가 멀수록 상세한 표현이 불필요하고, 원근에 의하여 렌더링되는 크기 자체도 작아지므로, 한계 노드의 레벨은 작아질 수 있다.Conversely, the greater the distance from the rendering point, the more detailed representation is unnecessary, and the size rendered by the perspective becomes smaller, so the level of the limit node can be reduced.
도 8을 참조하면, 복셀(810)은 복셀(820)보다 높은 레벨의 한계 노드에 대응할 수 있다.Referring to FIG. 8, the voxel 810 may correspond to a higher-level limit node than the voxel 820.
또한, 렌더링 시점에서 보이지 않는 부분(830)의 경우, 렌더링이 불필요할 수 있다. 따라서, 렌더링 시점에서 보이지 않는 부분(830)에 대응하는 경로 자체가 트리에서 배제될 수 있으며, 이 경우 해당 경로의 한계 노드는 트리의 루트 노드가 될 수 있으나, 이에 제한되는 것은 아니다. 예를 들어, 렌더링 시점에서 보이지 않는 부분(830)에 대응하는 경로는 트리에 포함된 서브트리의 경로일 수 있으며, 이 경우 해당 경로의 한계 노드는 포함된 서브트리의 루트 노드가 될 수 있다.Also, in the case of the invisible portion 830 at rendering time, rendering may be unnecessary. Therefore, the path itself corresponding to the invisible part 830 at the rendering time can be excluded from the tree, and in this case, the limit node of the path can be the root node of the tree, but is not limited thereto. For example, the path corresponding to the invisible portion 830 at the rendering time may be a path of a subtree included in the tree. In this case, the limit node of the path may be the root node of the included subtree.
도 9는 대상체를 절단하는 데 따른 트리 구조의 변화의 일 예를 도시한 도면이다.Fig. 9 is a diagram showing an example of a change in the tree structure when the object is cut.
개시된 실시 예에서, 대상체(800)는 신체부위, 즉 장기일 수 있고, 대상체(800)를 렌더링한 결과는 수술 시뮬레이션 등에 활용되므로, 대상체(800)를 절단하는 경우가 있을 수 있다.In the disclosed embodiment, the object 800 may be a body part, i.e., an organ, and the result of rendering the object 800 may be used for a surgical simulation or the like, so that the object 800 may be cut.
폴리곤 기반의 렌더링은 모델을 절단하는 동작에 취약하며, 매번 새로 렌더링을 해야 하는 단점이 있다.Polygon-based rendering is vulnerable to the truncation of the model and has the disadvantage of requiring new rendering each time.
반면에, 개시된 실시 예에 따른 복셀 기반 렌더링을 수행하는 경우 대상체(800)를 절단한 절단면(802)에 기초하여 트리(700)를 분할함으로써, 추가 렌더링 동작 없이 간단하게 절단된 대상체(800)를 표현할 수 있다.On the other hand, when the voxel-based rendering according to the disclosed embodiment is performed, the tree 700 is divided based on the cut surface 802 from which the target 800 is cut, Can be expressed.
예를 들어, 컴퓨터는 대상체(800)의 절단면(802)에 대응하는 가지(702)를 기준으로 트리(700)를 분할할 수 있다. 분할된 서브트리는 대상체의 분할된 부분에 각각 대응한다.For example, the computer may divide the tree 700 based on branch 702 that corresponds to the cut surface 802 of the object 800. The divided subtrees correspond to the divided parts of the object, respectively.
다른 예로, 컴퓨터는 대상체(800)의 절단면(802)에 대응하는 노드를 기준으로 트리를 분할할 수도 있으며, 분할방법은 이에 제한되지 않는다.As another example, the computer may divide the tree based on the node corresponding to the section plane 802 of the object 800, and the division method is not limited thereto.
도 10은 일 실시 예에 따른 장치의 구성도이다.10 is a configuration diagram of an apparatus according to an embodiment.
프로세서(902)는 하나 이상의 코어(core, 미도시) 및 그래픽 처리부(미도시) 및/또는 다른 구성 요소와 신호를 송수신하는 연결 통로(예를 들어, 버스(bus) 등)를 포함할 수 있다.The processor 902 may include a connection path (e.g., a bus, etc.) that transmits and receives signals with one or more cores (not shown) and a graphics processing unit (not shown) and / .
일 실시예에 따른 프로세서(902)는 메모리(904)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 1 내지 도 9와 관련하여 설명된 수술영상데이터 학습방법을 수행한다.The processor 902 in accordance with one embodiment performs the surgical video data learning method described with respect to Figures 1-9 by executing one or more instructions stored in the memory 904. [
예를 들어, 프로세서(902)는 메모리에 저장된 하나 이상의 인스트럭션을 실행함으로써 트리를 탐색 하고, 상기 트리에 포함된 제1 경로에 대한 한계 노드를 결정하고, 상기 결정된 한계 노드에 대응하는 제1 복셀에 대한 정보를 획득하고, 상기 획득된 정보를 이용하여, 상기 제1 복셀에 대한 렌더링을 수행 하고, 상기 트리는, 대상체의 3차원 모델 데이터를 계층적으로 분할한 하나 이상의 복셀에 각각 대응하는 하나 이상의 노드를 포함하고, 상기 제1 복셀에 대한 정보는, 상기 제1 복셀의 탄성값에 대한 정보를 포함하고, 상기 제1 복셀의 탄성값에 대한 정보는, 상기 대상체를 촬영한 의료영상에서, 상기 제1 복셀에 대응하는 위치의 색에 기초하여 획득된다.For example, the processor 902 may search the tree by executing one or more instructions stored in memory, determine a threshold node for the first path included in the tree, and determine a threshold for the first voxel corresponding to the determined threshold node Dimensional model data of the object, and the tree is generated by rendering one or more nodes corresponding to one or more voxels, which hierarchically divide the three-dimensional model data of the object, Wherein the information on the first voxel includes information on elasticity values of the first voxel and information on the elasticity values of the first voxel includes information on elasticity values of the first voxel, 1 < / RTI > voxel.
한편, 프로세서(902)는 프로세서(902) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(902)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다. The processor 902 may include a random access memory (RAM) (not shown) and a read-only memory (ROM) for temporarily and / or permanently storing signals (or data) , Not shown). In addition, the processor 902 may be implemented as a system-on-chip (SoC) including at least one of a graphics processing unit, a RAM, and a ROM.
메모리(904)에는 프로세서(902)의 처리 및 제어를 위한 프로그램들(하나 이상의 인스트럭션들)을 저장할 수 있다. 메모리(904)에 저장된 프로그램들은 기능에 따라 복수 개의 모듈들로 구분될 수 있다.The memory 904 may store programs (one or more instructions) for processing and control of the processor 902. Programs stored in the memory 904 can be divided into a plurality of modules according to functions.
이상에서 전술한 본 발명의 일 실시예에 따른 수술영상 분할방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.As described above, the surgical image segmentation method according to an embodiment of the present invention may be implemented as a program (or an application) to be executed in combination with a hardware computer and stored in a medium.
상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다. The above-described program may be stored in a computer-readable medium such as C, C ++, JAVA, machine language, or the like that can be read by the processor (CPU) of the computer through the device interface of the computer, And may include a code encoded in a computer language of the computer. Such code may include a functional code related to a function or the like that defines necessary functions for executing the above methods, and includes a control code related to an execution procedure necessary for the processor of the computer to execute the functions in a predetermined procedure can do. Further, such code may further include memory reference related code as to whether the additional information or media needed to cause the processor of the computer to execute the functions should be referred to at any location (address) of the internal or external memory of the computer have. Also, when the processor of the computer needs to communicate with any other computer or server that is remote to execute the functions, the code may be communicated to any other computer or server remotely using the communication module of the computer A communication-related code for determining whether to communicate, what information or media should be transmitted or received during communication, and the like.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The medium to be stored is not a medium for storing data for a short time such as a register, a cache, a memory, etc., but means a medium that semi-permanently stores data and is capable of being read by a device. Specifically, examples of the medium to be stored include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, but are not limited thereto. That is, the program may be stored in various recording media on various servers to which the computer can access, or on various recording media on the user's computer. In addition, the medium may be distributed to a network-connected computer system so that computer-readable codes may be stored in a distributed manner.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of a method or algorithm described in connection with the embodiments of the present invention may be embodied directly in hardware, in software modules executed in hardware, or in a combination of both. The software module may be a random access memory (RAM), a read only memory (ROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), a flash memory, a hard disk, a removable disk, a CD- May reside in any form of computer readable recording medium known in the art to which the invention pertains.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다. While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, You will understand. Therefore, it should be understood that the above-described embodiments are illustrative in all aspects and not restrictive.
[부호의 설명][Description of Symbols]
100: 클라이언트100: Client
200: 서버200: Server

Claims (15)

  1. 컴퓨터가 트리를 탐색하는 단계;The computer searching the tree;
    상기 트리에 포함된 제1 경로에 대한 한계 노드를 결정하는 단계;Determining a limit node for a first path included in the tree;
    상기 결정된 한계 노드에 대응하는 제1 복셀에 대한 정보를 획득하는 단계; 및Obtaining information on a first voxel corresponding to the determined limit node; And
    상기 획득된 정보를 이용하여, 상기 제1 복셀을 포함하는 객체를 표시하는 단계; 를 포함하고, Displaying the object including the first voxel using the obtained information; Lt; / RTI >
    상기 트리는,The tree,
    대상체의 3차원 모델 데이터를 계층적으로 분할한 하나 이상의 복셀에 각각 대응하는 하나 이상의 노드를 포함는 것인, 3차원 탄성 모델 렌더링 방법.Wherein the at least one voxel includes at least one node corresponding to at least one voxel that hierarchically divides the three-dimensional model data of the object.
  2. 제1 항에 있어서,The method according to claim 1,
    상기 제1 복셀에 대한 정보는,The information about the first voxel may include:
    상기 제1 복셀의 탄성값에 대한 정보를 포함하고,And information on the elasticity of the first voxel,
    상기 제1 복셀의 탄성값에 대한 정보는,The information about the elasticity value of the first voxel may be,
    상기 대상체를 촬영한 의료영상에서, 상기 제1 복셀에 대응하는 위치의 색에 기초하여 획득되는 것을 특징으로 하는, 3차원 탄성 모델 렌더링 방법.Dimensional model is obtained based on a color of a position corresponding to the first voxel in a medical image taken of the object.
  3. 제2 항에 있어서,3. The method of claim 2,
    상기 영상을 표시하는 단계는,Wherein the displaying the image comprises:
    상기 제1 복셀의 탄성값에 대한 정보에 기초하여, Based on information on the elasticity value of the first voxel,
    상기 객체의 상태 변화를 계산하는 단계; 및Calculating a state change of the object; And
    상기 계산 결과에 기초하여 상기 영상을 표시하는 단계; 를 포함하는, 3차원 탄성 모델 렌더링 방법.Displaying the image based on the calculation result; Dimensional elastic model.
  4. 제3 항에 있어서,The method of claim 3,
    상기 한계 노드는,The limit node comprises:
    상기 한계 노드의 자식 노드들에 대응하는 복셀들 각각의 탄성값의 차이가 소정의 한계치(threshold) 이하인 제1 조건을 만족하는 노드인 것을 특징으로 하는, 3차원 탄성 모델 렌더링 방법.Wherein the node is a node that satisfies a first condition that a difference between elastic values of voxels corresponding to child nodes of the limit node is equal to or less than a predetermined threshold value.
  5. 제4 항에 있어서,5. The method of claim 4,
    상기 한계 노드는, The limit node comprises:
    상기 의료영상에서 상기 한계 노드의 자식 노드들 각각에 대응하는 위치의 색상정보가 소정의 범위 내에 속하는 제2 조건을 만족하는 노드인 것을 특징으로 하는, 3차원 탄성 모델 렌더링 방법.Wherein the color information of the position corresponding to each of the child nodes of the limit node in the medical image satisfies a second condition that the color information belongs to a predetermined range.
  6. 제5 항에 있어서,6. The method of claim 5,
    상기 색상정보는,The color-
    상기 의료영상에서 상기 한계 노드의 자식 노드들 각각에 대응하는 위치의 그레이스케일 값인 것을 특징으로 하는, 3차원 탄성 모델 렌더링 방법.Wherein the gray level value is a gray scale value at a position corresponding to each child node of the limit node in the medical image.
  7. 제4 항 또는 제5 항 중 어느 한 항에 있어서,6. The method according to any one of claims 4 to 5,
    상기 한계 노드는,The limit node comprises:
    상기 제1 조건 또는 상기 제2 조건을 만족하는 상기 제1 경로상의 노드 중 가장 낮은 레벨을 갖는 노드인 것을 특징으로 하는, 3차원 탄성 모델 렌더링 방법.Wherein the node is a node having the lowest level among the nodes on the first path satisfying the first condition or the second condition.
  8. 제4 항 또는 제5 항 중 어느 한 항에 있어서,6. The method according to any one of claims 4 to 5,
    상기 한계 노드를 결정하는 단계는,Wherein determining the limit node comprises:
    상기 제1 경로상에 상기 제1 조건 또는 상기 제2 조건을 만족하는 노드가 없는 경우, 상기 제1 경로의 말단 노드를 상기 한계 노드로 결정하는 단계; 를 포함하는, 3차원 탄성 모델 렌더링 방법.Determining an end node of the first path as the limit node if there is no node on the first path that satisfies the first condition or the second condition; Dimensional elastic model.
  9. 제4 항 또는 제5 항 중 어느 한 항에 있어서,6. The method according to any one of claims 4 to 5,
    상기 한계 노드를 결정하는 단계는,Wherein determining the limit node comprises:
    루트 노드에서부터 상기 제1 조건 또는 상기 제2 조건을 만족하는 노드가 발견될때까지 상기 제1 경로를 따라 순차적으로 탐색을 수행하는 단계;Performing a search sequentially along the first path from a root node until a node satisfying the first condition or the second condition is found;
    상기 제1 조건 또는 상기 제2 조건을 만족하는 노드가 발견되는 경우, 상기 발견된 노드를 상기 한계 노드로 결정하는 단계; 및If the node satisfying the first condition or the second condition is found, determining the discovered node as the limit node; And
    말단 노드까지 상기 제1 조건 또는 상기 제2 조건을 만족하는 노드가 발견되지 않는 경우, 상기 말단 노드를 상기 한계 노드로 결정하는 단계; 를 포함하는, 3차원 탄성 모델 렌더링 방법.Determining, if the node satisfying the first condition or the second condition to the end node is not found, the end node as the limit node; Dimensional elastic model.
  10. 제1 항에 있어서,The method according to claim 1,
    상기 한계 노드를 결정하는 단계는,Wherein determining the limit node comprises:
    렌더링 시점(point of view)으로부터의 거리에 기초하여 상기 한계 노드의 레벨을 결정하는 단계; 를 포함하는, 3차원 탄성 모델 렌더링 방법.Determining a level of the limit node based on a distance from a point of view; Dimensional elastic model.
  11. 제1 항에 있어서,The method according to claim 1,
    상기 트리는,The tree,
    상기 3차원 모델 데이터를 포함하는 육면체를 루트로 하는 옥트리(octree)인 것을 특징으로 하는, 3차원 탄성 모델 렌더링 방법.Dimensional model data is an octree having a hexahedron containing the three-dimensional model data as a root.
  12. 컴퓨터가 대상체의 신체부위를 촬영한 의료 영상을 획득하는 단계;Obtaining a medical image in which a computer captures a body part of a target object;
    상기 의료 영상에 기초하여, 상기 신체부위의 3차원 모델 데이터를 획득하는 단계;Obtaining three-dimensional model data of the body part based on the medical image;
    상기 3차원 모델 데이터를 하나 이상의 복셀로 계층적으로 분할하는 단계;Dividing the three-dimensional model data hierarchically into one or more voxels;
    상기 계층적으로 분할된 하나 이상의 복셀 각각에 대응하는 노드를 포함하는 트리를 생성하는 단계;Generating a tree including nodes corresponding to each of the one or more hierarchically-divided voxels;
    상기 트리에 포함된 제1 노드에 대응하는 제1 복셀의 속성값을 결정하되, 상기 의료영상에서, 상기 제1 복셀에 대응하는 위치의 색에 기초하여 상기 제1 복셀의 속성값을 결정하는, 단계; 및Determining an attribute value of the first voxel corresponding to a first node included in the tree, and determining an attribute value of the first voxel based on a color of a position corresponding to the first voxel in the medical image, step; And
    상기 결정된 상기 제1 복셀의 탄성값을 상기 제1 노드에 저장하는 단계; 를 포함하는, 3차원 탄성 모델 렌더링 방법.Storing the determined elasticity value of the first voxel in the first node; Dimensional elastic model.
  13. 하나 이상의 인스트럭션을 저장하는 메모리; 및A memory for storing one or more instructions; And
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,And a processor executing the one or more instructions stored in the memory,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, The processor executing the one or more instructions,
    트리를 탐색하는 단계;Searching the tree;
    상기 트리에 포함된 제1 경로에 대한 한계 노드를 결정하는 단계;Determining a limit node for a first path included in the tree;
    상기 결정된 한계 노드에 대응하는 제1 복셀에 대한 정보를 획득하는 단계; 및Obtaining information on a first voxel corresponding to the determined limit node; And
    상기 획득된 정보를 이용하여, 상기 제1 복셀을 포함하는 객체를 표시하는 단계; 를 수행하고,Displaying the object including the first voxel using the obtained information; Lt; / RTI >
    상기 트리는,The tree,
    대상체의 3차원 모델 데이터를 계층적으로 분할한 하나 이상의 복셀에 각각 대응하는 하나 이상의 노드를 포함하는 것인, 3차원 탄성 모델 렌더링 장치.Wherein at least one node corresponding to at least one voxel that hierarchically divides the three-dimensional model data of the object is included.
  14. 하나 이상의 인스트럭션을 저장하는 메모리; 및A memory for storing one or more instructions; And
    상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,And a processor executing the one or more instructions stored in the memory,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, The processor executing the one or more instructions,
    대상체의 신체부위를 촬영한 의료 영상을 획득하는 단계;Acquiring a medical image of a body part of the object;
    상기 의료 영상에 기초하여, 상기 신체부위의 3차원 모델 데이터를 획득하는 단계;Obtaining three-dimensional model data of the body part based on the medical image;
    상기 3차원 모델 데이터를 하나 이상의 복셀로 계층적으로 분할하는 단계;Dividing the three-dimensional model data hierarchically into one or more voxels;
    상기 계층적으로 분할된 하나 이상의 복셀 각각에 대응하는 노드를 포함하는 트리를 생성하는 단계;Generating a tree including nodes corresponding to each of the one or more hierarchically-divided voxels;
    상기 트리에 포함된 제1 노드에 대응하는 제1 복셀의 속성값을 결정하되, 상기 의료영상에서, 상기 제1 복셀에 대응하는 위치의 색에 기초하여 상기 제1 복셀의 속성값을 결정하는, 단계; 및Determining an attribute value of the first voxel corresponding to a first node included in the tree, and determining an attribute value of the first voxel based on a color of a position corresponding to the first voxel in the medical image, step; And
    상기 결정된 상기 제1 복셀의 탄성값을 상기 제1 노드에 저장하는 단계; 를 수행하는, 3차원 탄성 모델 렌더링 장치.Storing the determined elasticity value of the first voxel in the first node; Dimensional elastic model rendering device.
  15. 하드웨어인 컴퓨터와 결합되어, 제1 항 또는 제12 항의 방법을 수행할 수 있도록 컴퓨터에서 독출가능한 기록매체에 저장된 컴퓨터프로그램.A computer program stored in a computer readable recording medium in combination with a computer which is hardware and which is capable of performing the method of any one of claims 1 or 12.
PCT/KR2018/010331 2017-12-28 2018-09-05 3-dimensional elastic model rendering method and device, and program WO2019132167A1 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR10-2017-0182898 2017-12-28
KR10-2017-0182899 2017-12-28
KR20170182899 2017-12-28
KR20170182900 2017-12-28
KR20170182898 2017-12-28
KR10-2017-0182900 2017-12-28
KR1020180026573A KR101862677B1 (en) 2018-03-06 2018-03-06 Method, apparatus and program for rendering 3d elastic model
KR10-2018-0026573 2018-03-06

Publications (1)

Publication Number Publication Date
WO2019132167A1 true WO2019132167A1 (en) 2019-07-04

Family

ID=67067790

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/010331 WO2019132167A1 (en) 2017-12-28 2018-09-05 3-dimensional elastic model rendering method and device, and program

Country Status (1)

Country Link
WO (1) WO2019132167A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005373A (en) * 2001-11-27 2004-01-08 Samsung Electronics Co Ltd Node structure for representing three-dimensional object based on depth image
US20090295800A1 (en) * 2008-05-30 2009-12-03 Siemens Corporate Research, Inc. Method for direct volumetric rendering of deformable bricked volumes
KR101175065B1 (en) * 2011-11-04 2012-10-12 주식회사 아폴로엠 Method for bleeding scanning during operation using image processing apparatus for surgery
JP2014064957A (en) * 2014-01-22 2014-04-17 Mitsubishi Precision Co Ltd Organism data model creation method and device, data structure of organism data model, data storage device of organism data model, and load sharing method and device for three-dimensional data model
KR20160005490A (en) * 2014-07-07 2016-01-15 삼성전자주식회사 rendering system and rendering method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005373A (en) * 2001-11-27 2004-01-08 Samsung Electronics Co Ltd Node structure for representing three-dimensional object based on depth image
US20090295800A1 (en) * 2008-05-30 2009-12-03 Siemens Corporate Research, Inc. Method for direct volumetric rendering of deformable bricked volumes
KR101175065B1 (en) * 2011-11-04 2012-10-12 주식회사 아폴로엠 Method for bleeding scanning during operation using image processing apparatus for surgery
JP2014064957A (en) * 2014-01-22 2014-04-17 Mitsubishi Precision Co Ltd Organism data model creation method and device, data structure of organism data model, data storage device of organism data model, and load sharing method and device for three-dimensional data model
KR20160005490A (en) * 2014-07-07 2016-01-15 삼성전자주식회사 rendering system and rendering method thereof

Similar Documents

Publication Publication Date Title
WO2013015549A2 (en) Plane-characteristic-based markerless augmented reality system and method for operating same
KR20190080702A (en) Method, apparatus and program for rendering 3d elastic model
WO2019132168A1 (en) System for learning surgical image data
US20240062488A1 (en) Object centric scanning
WO2013168998A1 (en) Apparatus and method for processing 3d information
WO2019132614A1 (en) Surgical image segmentation method and apparatus
JP2004235934A (en) Calibration processor, calibration processing method, and computer program
JP7282216B2 (en) Representation and Extraction of Layered Motion in Monocular Still Camera Video
WO2017007254A1 (en) Device and method for generating and displaying 3d map
KR101995411B1 (en) Device and method for making body model
WO2016006786A1 (en) Rendering system and rendering method thereof
US11640692B1 (en) Excluding objects during 3D model generation
WO2019132167A1 (en) 3-dimensional elastic model rendering method and device, and program
JP7479793B2 (en) Image processing device, system for generating virtual viewpoint video, and method and program for controlling the image processing device
WO2023090808A1 (en) Representing 3d shapes with probabilistic directed distance fields
WO2020101300A1 (en) Image processing apparatus and operating method thereof
JP2004213481A (en) Image processor and processing method
WO2022114506A1 (en) Electronic device and control method of electronic device
WO2022019779A1 (en) Method and system for identifying incompatibility between versions of compiled software code
WO2018182066A1 (en) Method and apparatus for applying dynamic effect to image
WO2023113471A1 (en) Electronic device and method for acquiring three-dimensional skeleton data of subject photographed using plurality of cameras
WO2012074174A1 (en) Augmented reality implementation system using original identification information
KR101862677B1 (en) Method, apparatus and program for rendering 3d elastic model
CN111198616A (en) Virtual scene generation method applied to interactive projection game
WO2024053876A1 (en) Electronic device performing camera calibration, and operation method therefor

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: 18897464

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18897464

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 01/02/2021)

122 Ep: pct application non-entry in european phase

Ref document number: 18897464

Country of ref document: EP

Kind code of ref document: A1