WO2018134914A1 - モデリング装置、モデリング方法、およびモデリングプログラム - Google Patents

モデリング装置、モデリング方法、およびモデリングプログラム Download PDF

Info

Publication number
WO2018134914A1
WO2018134914A1 PCT/JP2017/001549 JP2017001549W WO2018134914A1 WO 2018134914 A1 WO2018134914 A1 WO 2018134914A1 JP 2017001549 W JP2017001549 W JP 2017001549W WO 2018134914 A1 WO2018134914 A1 WO 2018134914A1
Authority
WO
WIPO (PCT)
Prior art keywords
edge
node
nodes
mesh
edges
Prior art date
Application number
PCT/JP2017/001549
Other languages
English (en)
French (fr)
Inventor
真智子 中川
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2018562782A priority Critical patent/JP6748368B2/ja
Priority to PCT/JP2017/001549 priority patent/WO2018134914A1/ja
Priority to CN201780083810.XA priority patent/CN110214342A/zh
Publication of WO2018134914A1 publication Critical patent/WO2018134914A1/ja
Priority to US16/507,038 priority patent/US10692282B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/41Medical

Definitions

  • the present invention relates to a modeling device, a modeling method, and a modeling program.
  • the coronary artery model which is one of the input of patient-specific coronary artery simulations, is composed of triangular surfaces (hereinafter referred to as meshes) that form the shape of the aorta and coronary arteries and tetrahedral volume elements. Different material numbers are assigned to each part.
  • a computer that generates a coronary artery model first extracts a cardiovascular region from a medical image. The computer then refers to the extracted cardiovascular region to construct a heart shape and a boundary surface using a mesh representing a triangular surface, and generates a volume element based on the heart shape and boundary surface.
  • a computer that creates a coronary artery model extracts the shape of a patient's cardiovascular from a medical image such as CT (Computed Tomography) or MRI (Magnetic Resonance Imaging) because the shape of the cardiovascular varies depending on the individual.
  • the computer then refers to the extracted area and constructs a coronary artery model using a triangular mesh.
  • the originally smooth shape may be uneven in the coronary artery model.
  • two shapes that are originally separated may be connected in the coronary artery model. Therefore, a method of reducing the number of meshes in accordance with the shape of the coronary artery model after the coronary artery model is first constructed with a sufficiently small mesh is often used.
  • the original three-dimensional data so that the accuracy of the generated triangle isosurface data can be reduced even if it is reduced according to the arbitrarily set reduction rate.
  • the purpose of this case is to reduce the deviation from the original shape by reducing the number of meshes.
  • a modeling device having a storage unit and a processing unit.
  • the storage unit stores a three-dimensional mesh model representing a three-dimensional shape using a plurality of nodes, a plurality of edges connecting two nodes, and a plurality of faces having three or more nodes as vertices.
  • the processing unit calculates, for each of the plurality of edges, an evaluation value that becomes a lower value as the length is shorter, based on the length of each of the plurality of edges.
  • the processing unit selects each of the plurality of edges as the first edge in ascending order of the evaluation value.
  • the processing unit sets the specific node arrangement point where the value of the calculation formula using the distance between the first surface having at least one of the first nodes at both ends of the selected first edge and the node arrangement point is equal to or less than the threshold value Is present, the first edge, the first node, and the first surface are deleted from the three-dimensional mesh model, and the second node and the second node arranged at the specific node arrangement point are used as one end.
  • a second surface having two edges and a second node as a vertex is added to the three-dimensional mesh model.
  • FIG. 1 It is a figure which shows an example of a structure of the modeling apparatus which concerns on 1st Embodiment. It is a figure which shows an example of the system configuration
  • FIG. 1 is a diagram illustrating an example of a configuration of a modeling apparatus according to the first embodiment.
  • the modeling apparatus 10 according to the first embodiment includes a storage unit 11 and a processing unit 12.
  • the storage unit 11 is, for example, a memory or a storage device included in the modeling device 10.
  • the processing unit 12 is an arithmetic circuit such as a processor included in the modeling apparatus 10, for example.
  • the storage unit 11 is a three-dimensional mesh model 1 that represents a three-dimensional shape using a plurality of nodes, a plurality of edges connecting two nodes, and a plurality of faces (mesh) having three or more nodes as vertices.
  • the three-dimensional mesh model 1 represents, for example, an elongated shape.
  • the processing unit 12 reduces the number of meshes (number of faces) of the three-dimensional mesh model 1 by erasing the edges.
  • the processing unit 12 first calculates an evaluation value for each of the plurality of edges based on the length of each of the plurality of edges of the three-dimensional mesh model 1 that is lower as the length is shorter.
  • the processing unit 12 selects each of the plurality of edges as the first edge 2 in ascending order of evaluation value.
  • the first edge 2 is an erase candidate edge.
  • the processing unit 12 performs the following processing every time the first edge 2 is selected.
  • the processing unit 12 specifies a surface (first surface 4) having one of the nodes (first node 3) at both ends of the selected first edge 2 as a vertex. In the example of FIG. 1, 10 surfaces indicated by shading are specified as the first surface 4.
  • the processing unit 12 determines whether there is a node arrangement point where the value of the calculation formula using the distance between each first surface 4 and the node arrangement point is equal to or less than a threshold value.
  • the calculation formula is a distance function for calculating the sum of squares of the distance between the plane including the first surface 4 and the node arrangement point, for example. Such a distance function is also called QEM.
  • the node arrangement point is a point at which the value of the distance function becomes the minimum value, for example.
  • the processing unit 12 determines whether the value (minimum value) of the distance function at the node arrangement point is equal to or less than the threshold value.
  • the processing unit 12 sets the first edge 2, the first node 3, and the first surface 4 to 3 Erasing from the dimensional mesh model 1
  • the processing unit 12 also includes a second node 5 arranged at the specific node arrangement point, a second edge 7 having the second node 5 as one end, and a second surface 6 having the second node 5 as a vertex. Add to dimensional mesh model 1. As a result, a three-dimensional mesh model 1a in which the first edge 2 is deleted is generated. In the example of FIG. 1, 10 first surfaces 4 are erased and 8 second surfaces 6 are generated in accordance with erasing the first edge 2. As a result, the surface has been reduced by two.
  • the processing unit 12 erases the erasable first edge 2 and erases all erasable edges. As a result, a three-dimensional mesh model 1b with a reduced number of meshes is generated.
  • the newly added node is in a position that does not greatly deviate from the original shape, and is deleted in order from a short edge, so that the three-dimensional mesh model 1b in the three-dimensional mesh model 1b
  • the mesh shape is close to an equilateral triangle.
  • the added second edge 7 can also be an object to be erased.
  • the processing unit 12 calculates the evaluation value of the second edge 7 based on the length of the second edge 7 after the addition of the second edge 7. Then, when the processing unit 12 selects the first edge as an erasure candidate, the processing unit 12 selects the second edge 7 and an unselected edge among a plurality of edges included in the original three-dimensional mesh model 1. The first edge 2 is selected in ascending order of evaluation value. Thereby, more edges can be erased.
  • a value obtained by multiplying the length of the edge by a first weight corresponding to the radius of the portion including the edge May be used as the evaluation value of the edge.
  • a first weight corresponding to the radius of the cylindrical shape is set in advance. The first weight is a larger value as the radius is smaller.
  • the processing unit 12 multiplies the edge length by the average value of the first weights of the nodes at both ends of the edge, and uses the multiplication result as the evaluation value.
  • the edge of the thin part has a greater weight than the edge of the thick part, and the evaluation value is high even if the edge has the same length.
  • the edge of the thin portion is selected later as the first edge 2 that is the erasure candidate. The later the order of selection, the greater the likelihood that the value of the distance function when deleting that edge will increase, and as a result, there is a higher possibility that it will remain without being deleted.
  • the processing unit 12 can also stop the edge erasing process when the number of meshes of the three-dimensional mesh model 1b is reduced to a predetermined number. In this case, there is a higher possibility that an edge selected in the selected order will be left without being erased.
  • the second weight corresponding to the cylindrical radius is a value corresponding to the distance between the first surface 4 and the node arrangement point.
  • the formula for multiplying by may be the above formula.
  • the second weight corresponding to the radius of the cylindrical shape can be set in advance for the nodes included in the cylindrical portion of the three-dimensional mesh model 1.
  • the second weight is a larger value as the radius is smaller.
  • the second weight may be the same value as the first weight.
  • the processing unit 12 determines the first edge, the first node, and the first Erasing one surface and adding a second node, a second edge, and a second surface.
  • the first weight used for calculating the evaluation value of the edge and the second weight used for determining whether or not to delete the first edge are set as the average of the weights of the nodes at both ends of the edge, thereby obtaining a radius. Even at the boundary between different parts, the edge can be appropriately erased. That is, for the edge of the boundary between the thick part and the thin part in the three-dimensional mesh model 1, the average of the weight of the thick part and the weight of the thin part is used as the first weight or the second weight. Thereby, the size of a mesh can be gradually changed in the boundary of the part from which thickness differs. As a result, it is possible to prevent the boundary portion from becoming unnatural in the three-dimensional mesh model 1b after the reduction of the number of meshes.
  • the first requirement is important for performing heart simulation with high accuracy. If the shape of the coronary artery model after mesh reduction is significantly different from the original shape, the heart simulation cannot be performed with high accuracy.
  • the second requirement is also important for performing heart simulation with high accuracy.
  • the heart model is deformed as the heart beats, and at the same time, the coronary artery model is also deformed. If the mesh has an elongated shape, the coronary artery model cannot be smoothly deformed, and the accuracy of the heart simulation is lowered.
  • the third requirement is important for sufficiently reducing the calculation amount of the heart simulation. While the diameter of the aorta is about 3 cm, the coronary artery may be less than 1 mm in the peripheral or stenotic region. When the mesh size of a thin blood vessel region is increased, a smooth shape is lost, and when a thick blood vessel such as an aorta is configured with a small mesh, the calculation amount of the heart simulation becomes enormous. By setting the size of the triangle according to the size of the blood vessel, many meshes can be reduced without impairing the smooth shape.
  • FIG. 2 is a diagram illustrating an example of a system configuration according to the second embodiment.
  • the modeling apparatus 100 is connected to the heart simulator 200 via the network 20.
  • the modeling apparatus 100 creates a three-dimensional model of the heart and transmits the three-dimensional model to the heart simulator 200.
  • the heart simulator 200 performs, for example, a coronary circulation simulation of the heart based on the three-dimensional model of the heart.
  • FIG. 3 is a diagram illustrating an example of a hardware configuration of the modeling apparatus.
  • the entire modeling apparatus 100 is controlled by a processor 101.
  • a memory 102 and a plurality of peripheral devices are connected to the processor 101 via a bus 109.
  • the processor 101 may be a multiprocessor.
  • the processor 101 is, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or a DSP (Digital Signal Processor).
  • At least a part of the functions realized by the processor 101 executing the program may be realized by an electronic circuit such as ASIC (Application Specific Integrated Circuit) or PLD (Programmable Logic Device).
  • ASIC Application Specific Integrated Circuit
  • PLD Programmable Logic Device
  • the memory 102 is used as a main storage device of the modeling apparatus 100.
  • the memory 102 temporarily stores at least part of an OS (Operating System) program and application programs to be executed by the processor 101.
  • the memory 102 stores various data necessary for processing by the processor 101.
  • a volatile semiconductor storage device such as a RAM (Random Access Memory) is used.
  • Peripheral devices connected to the bus 109 include a storage device 103, a graphic processing device 104, an input interface 105, an optical drive device 106, a device connection interface 107, and a network interface 108.
  • the storage apparatus 103 writes and reads data electrically or magnetically with respect to a built-in recording medium.
  • the storage device 103 is used as an auxiliary storage device of a computer.
  • the storage device 103 stores an OS program, application programs, and various data.
  • an HDD Hard Disk Drive
  • an SSD Solid State Drive
  • a monitor 21 is connected to the graphic processing device 104.
  • the graphic processing device 104 displays an image on the screen of the monitor 21 in accordance with an instruction from the processor 101.
  • Examples of the monitor 21 include a display device using a CRT (Cathode Ray Tube) and a liquid crystal display device.
  • the keyboard 22 and the mouse 23 are connected to the input interface 105.
  • the input interface 105 transmits signals sent from the keyboard 22 and the mouse 23 to the processor 101.
  • the mouse 23 is an example of a pointing device, and other pointing devices can also be used. Examples of other pointing devices include a touch panel, a tablet, a touch pad, and a trackball.
  • the optical drive device 106 reads data recorded on the optical disk 24 using laser light or the like.
  • the optical disc 24 is a portable recording medium on which data is recorded so that it can be read by reflection of light.
  • the optical disc 24 includes a DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), and the like.
  • the device connection interface 107 is a communication interface for connecting peripheral devices to the modeling apparatus 100.
  • the memory device 25 and the memory reader / writer 26 can be connected to the device connection interface 107.
  • the memory device 25 is a recording medium equipped with a communication function with the device connection interface 107.
  • the memory reader / writer 26 is a device that writes data to the memory card 27 or reads data from the memory card 27.
  • the memory card 27 is a card type recording medium.
  • the network interface 108 is connected to the network 20.
  • the network interface 108 transmits and receives data to and from other computers or communication devices via the network 20.
  • the modeling device 10 shown in the first embodiment can also be realized by the same hardware as the modeling device 100 shown in FIG.
  • the modeling apparatus 100 implements the processing functions of the second embodiment by executing a program recorded on a computer-readable recording medium, for example.
  • the program describing the processing contents to be executed by the modeling apparatus 100 can be recorded in various recording media.
  • a program to be executed by the modeling apparatus 100 can be stored in the storage apparatus 103.
  • the processor 101 loads at least a part of the program in the storage apparatus 103 into the memory 102 and executes the program.
  • a program to be executed by the modeling apparatus 100 can also be recorded on a portable recording medium such as the optical disc 24, the memory device 25, and the memory card 27.
  • the program stored in the portable recording medium becomes executable after being installed in the storage apparatus 103 under the control of the processor 101, for example.
  • the processor 101 can also read and execute a program directly from a portable recording medium.
  • FIG. 4 is a block diagram showing functions of the modeling apparatus.
  • the modeling apparatus 100 includes a storage unit 110, a model creation unit 120, a mesh reduction unit 130, and a model transmission unit 140.
  • the storage unit 110 stores a three-dimensional mesh model 111 of the heart.
  • the three-dimensional mesh model 111 includes a structural mesh model representing a heart shape and a coronary artery model.
  • the model creation unit 120 creates a three-dimensional mesh model 111 using a fine mesh. For example, the model creation unit 120 extracts the cardiovascular shape of the patient from a medical image such as CT or MRI of the patient.
  • the model creation unit 120 creates a coronary artery model using a triangular mesh based on the extracted cardiovascular region.
  • the mesh reduction unit 130 reduces the number of meshes of the coronary circulation model so as to satisfy the above three requirements. For example, the mesh reduction unit 130 sets a flag indicating invalidity in the mesh information to be deleted among the meshes in the three-dimensional mesh model 111. The mesh reduction unit 130 adds the generated mesh to the three-dimensional mesh model 111 when a new integrated mesh is generated in order to reduce the number of meshes.
  • the model transmission unit 140 transmits the three-dimensional mesh model 111 with the reduced number of meshes to the heart simulator 200. Note that the function of each element shown in FIG. 4 can be realized, for example, by causing a computer to execute a program module corresponding to the element.
  • FIG. 5 is a diagram illustrating an example of a coronary artery model.
  • the coronary artery model 30 is a three-dimensional mesh model representing the shape of the aortic base 31 (aorta around the aortic valve) and the coronary artery 32.
  • the coronary artery model 30 is represented by a set of a large number of tetrahedral elements.
  • FIG. 6 is a diagram illustrating an example of a tetrahedral element.
  • a tetrahedral element 41 surrounded by four triangular meshes has four vertices, six edges, and four faces.
  • the tetrahedral element 41 is sometimes called an object. Vertices are sometimes called nodes.
  • FIG. 7 is a diagram showing an example of the data structure of the three-dimensional mesh model.
  • the three-dimensional mesh model 111 has vertex information 111a, edge information 111b, surface information 111c, and object information 111d.
  • the vertex information 111a is provided for each vertex (node) in the three-dimensional mesh model 111, and a vertex identifier (vID) is assigned to each vertex.
  • the vertex information 111a includes vertex coordinates (x, y, z), an identifier of the edge sharing the vertex (edgeID), a QEM coefficient (K) used for edge reduction, and a weight of the node (weight). It is.
  • the edge information 111b is provided for each edge in the three-dimensional mesh model 111, and an edge identifier (edgeID) is assigned to each edge information.
  • the edge information 111b includes a vertex identifier (prev_vID) serving as the start point of the edge, a vertex identifier serving as the end point of the edge (next_vID), and an identifier of the face sharing the edge (faceID).
  • the surface information 111c is provided for each surface in the three-dimensional mesh model 111, and a surface identifier (faceID) is assigned to each surface.
  • the face information 111c includes the identifiers (vID1, vID2, vID3) of the vertices constituting the triangle.
  • the object information 111d is provided for each object (tetrahedral element) included in the three-dimensional mesh model 111, and an object identifier (objectID) is assigned to each object information.
  • the object information 111d includes a set of vertices constituting the object (vID1, vID2,%), A set of edges constituting the object (edgeID1, edgeID2, etc, And a set of faces constituting the object (faceID1). , FaceID2,).
  • the 3D mesh model 111 is expressed with such a data structure.
  • a triangular face of the object in the three-dimensional mesh model 111 is a mesh, and one surface surface is constructed by joining the meshes.
  • a triangular mesh is represented by three vertices and three edges connecting them.
  • the mesh reduction unit 130 overlaps two adjacent nodes and merges them into one node in order to reduce the number of meshes. Specifically, the mesh reduction unit 130 deletes one edge between the merged nodes and combines the nodes at both ends to generate a new node.
  • the modeling apparatus 100 reduces the number of meshes by edge deletion.
  • FIG. 8 is a diagram showing an example of reducing the number of meshes by edge erasure.
  • the edge 42 can be deleted by merging the node v1 and the node v2.
  • the node v1 and the node v2 are deleted, and a new node v3 is generated.
  • the edge connected to the node v1 and the node v2 is deleted, and a new edge connected to the newly generated node v3 is generated. Thereby, the two meshes sharing the edge 42 are deleted.
  • a method for obtaining the coordinates of a newly created node v3 is important. For example, assuming that the midpoint of two nodes constituting the edge to be erased is a new coordinate, the new coordinate is set at a position that greatly differs from the original shape as the mesh reduction proceeds. As a result, the original shape is lost. Therefore, the mesh reduction unit 130 calculates optimal coordinates while storing the initial shape in order to keep the original shape as much as possible.
  • a mesh included in the initial three-dimensional mesh model 111 is referred to as an original mesh.
  • a method of minimizing the sum of squares (QEM) of the distance from the surface including the node merged with the corresponding node at each node can be used.
  • the calculation method of QEM is as follows.
  • the distance between a certain coordinate (x, y, z) and the plane is
  • w f is a weight for the mesh by the area of the mesh f.
  • K f is a matrix as follows.
  • the QEM of the node v existing before the mesh reduction is the sum of squares of the distance between the plane including the mesh holding the node v and the node v. Therefore, the QEMs of the nodes v existing before the mesh reduction are all 0.
  • the QEM of the node generated by erasing the edge is the sum of the QEMs for the plane containing the original mesh holding either the two nodes at both ends of the edge to be erased and the node merged with that node.
  • FIG. 9 is a diagram showing the relationship between the QEM value of the node and the plane.
  • FIG. 9 shows a plurality of planes 43 including an original mesh holding two nodes at both ends of the edge to be erased and nodes merged with the nodes. Then, two candidates for the coordinates of the node newly generated by deleting the edge are indicated by dots. Points located away from the plurality of planes 43 have a large QEM, and points near the plurality of planes 43 have a small QEM.
  • the mesh reduction unit 130 sets the coordinates of the generated node as coordinates that minimize the QEM. That is, the coordinates of the new node are the coordinates that minimize the distance between the two nodes at both ends of the edge to be erased and the mesh having either of the nodes merged with the nodes.
  • the first requirement of “preserving the original shape as much as possible” can be satisfied. If it is sufficient to satisfy the first requirement, the QEMs of newly generated nodes will be erased in order from the smallest edge. In this case, an elongated mesh such as a coronary artery tends to be an elongated mesh. That is, the second requirement that “a triangular mesh is constructed with a shape that is as close to a regular triangle as possible” cannot be satisfied. Further, if only edges with small QEM values of newly generated nodes are erased, the mesh size varies according to the curvature. As a result, the third requirement “appropriately set the mesh size in accordance with the thickness of the blood vessel” cannot be satisfied.
  • the mesh reduction unit 130 assigns an evaluation value that is lower as the length is shorter for each edge, and erases the edges in order from the lowest evaluation value, so that the triangular mesh after edge erasing becomes extremely elongated. Deter it. Further, when calculating the evaluation value, the mesh reduction unit 130 multiplies the length of the edge by a weight corresponding to the thickness of the blood vessel to which the edge belongs, thereby matching the size of the mesh with the thickness of the blood vessel. Make it the right size.
  • the mesh reduction unit 130 prepares for the reduction by using a 4 ⁇ 4 matrix that stores the coefficient K of the QEM in all nodes, and a double type weight node_weight. Have an area to store. Then, the mesh reduction unit 130 obtains initial values of the coefficient K and the weight node_weight.
  • the node weight node_weight is determined by, for example, the thickness of the blood vessel and the type of the result. In the second embodiment, it is assumed that the aorta is composed of a mesh three times larger than the coronary artery.
  • the mesh reduction unit 130 stores the average value of w f of all the meshes sharing the node as the node weight node_weight.
  • the mesh reduction unit 130 uses the node weight node_weight to calculate an evaluation value for determining the order of edges to be deleted. For example, the mesh reduction unit 130 sets a value (edge_length ⁇ weight) obtained by multiplying an average of the weights node_weight of nodes at both ends of the edge by the edge length (edge_length) as an evaluation value of the edge.
  • FIG. 10 is a diagram showing an example of weighting according to the thickness of the blood vessel.
  • the weight of the node representing the shape of the aortic base 31 is 1.0
  • the weight of the node representing the shape of the coronary artery 32 is 3.0.
  • the evaluation value of the edge is “L1 ⁇ 1.0”.
  • the evaluation value of the edge is “L2 ⁇ 3.0”.
  • the edge of the aortic base 31 and the edge of the coronary artery 32 have the same length, the evaluation value of the edge of the coronary artery 32 is higher. In this case, the edge of the aorta can be preferentially erased by preferentially erasing the edge having a low evaluation value.
  • FIG. 11 is a diagram illustrating an example of an edge reduction queue.
  • deletion candidate edge information 52 including an evaluation value and an edge identifier (edgeID) is registered.
  • the deletion candidate edge information 52 in the queue 51 is sorted in ascending order according to the evaluation value.
  • the mesh reduction unit 130 When adding new erasure candidate edge information 53 to the queue 51, the mesh reduction unit 130 compares the evaluation value of the erasure candidate edge information 52 already registered with the evaluation value of the erasure candidate edge information 53 to be added. . Then, the mesh reduction unit 130 is between the erasure candidate edge information 52 whose evaluation value is smaller than the erasure candidate edge information 53 to be added and the erasure candidate edge information 52 whose evaluation value is larger than the erasure candidate edge information 53 to be added. The erasure candidate edge information 53 is added. Further, when extracting one piece of erasure candidate edge information from the queue 51, the mesh reduction unit 130 takes out the erasure candidate edge information 54 at the head (the one with the smaller evaluation value) in the queue 51.
  • the mesh reduction unit 130 deletes the extracted edge if the QEM of the node generated after the deletion is within the threshold.
  • a triangular mesh is constructed with a shape that is as close to a regular triangle as possible”. That is, if the number of meshes is reduced by deleting edges, the length of surrounding edges becomes longer. If a long edge is erased while leaving a short edge, the surrounding mesh after the edge erasure becomes elongated. On the other hand, if a short edge is preferentially erased, it can be expected that the mesh around the edge after the edge elimination becomes close to a regular triangle.
  • the weight used for calculating the evaluation value of the edge is determined by the thickness of the blood vessel to which the mesh including the edge belongs. That is, the thinner the blood vessel, the greater the weight. The larger the weight value, the larger the edge evaluation value calculated using the weight. If the value of the edge evaluation value is large, the order in which the edge is extracted as an erasure candidate will be later, and the possibility of erasure is reduced. Thus, the third requirement “appropriately set the mesh size in accordance with the thickness of the blood vessel” can be satisfied.
  • edge reduction is performed by first erasing an edge to be reduced and all adjacent edges, and generating a new node and an edge connected thereto. Therefore, there is a possibility that the deletion candidate edge information of the edge that does not already exist remains in the queue 51. Since the already deleted edge cannot be reduced, the mesh reduction unit 130 determines whether the corresponding edge can be deleted when the deletion candidate edge information is extracted from the queue 51. If the edge corresponding to the erasure candidate edge information extracted from the queue 51 cannot be erased, the mesh reduction unit 130 retrieves new erasure candidate edge information from the queue 51 again.
  • the mesh reduction unit 130 determines whether to delete the edge based on the threshold value. For example, the mesh reduction unit 130 deletes one edge, and stores the QEM coefficient K and the weight node_weight in the node information of the newly generated node. The coefficient K and the weight node_weight are weighted averages of the values of the two deleted nodes. Subsequently, the mesh reduction unit 130 generates a plurality of edges connecting the newly created nodes and stores them in the queue. The evaluation value at the time of storing in the queue is obtained by multiplying the length of the edge by a weighted average of node_weight of two nodes held by the edge.
  • FIG. 12 is a flowchart illustrating an example of the procedure of the mesh reduction process. In the following, the process illustrated in FIG. 12 will be described in order of step number.
  • the mesh reduction unit 130 calculates the QEM coefficient K ( ⁇ K f in equation (1)) of all nodes.
  • the mesh reduction unit 130 sets the calculation result in the vertex information 111a (see FIG. 7) of the node.
  • the mesh reduction unit 130 calculates evaluation values of all edges. For example, the mesh reduction unit 130 sets a value obtained by multiplying the length of the edge by the average of the weights node_weight of the two nodes held by the edge as the evaluation value of the edge.
  • the mesh reduction unit 130 registers, in the queue, erasure candidate edge information corresponding to an edge whose evaluation value is equal to or less than a threshold value of the evaluation value.
  • the erasure candidate edge information includes an evaluation value of the corresponding edge and an identifier (edgeID) of the edge.
  • the mesh reduction unit 130 registers each erasure candidate edge information in the queue in ascending order of evaluation value.
  • Step S104 The mesh reduction unit 130 extracts the erasure candidate edge information one by one from the head of the queue one by one, and executes the edge reduction processing in steps S105 to S110. In steps S105 to S110, it is determined whether the edge indicated in the erasure candidate edge information can be reduced, and erasure processing when erasure is possible.
  • the mesh reduction unit 130 calculates an QEM of a node to be generated after erasing the edge corresponding to the extracted erasure candidate edge information as an erasure candidate.
  • the mesh reduction unit 130 determines whether or not the erasure candidate edge can be erased. For example, when the edges around the edges of the erasure candidates are erased, the erasure candidate edges may also be erased. In such a case, the edge of the erasure candidate has already been erased and cannot be erased by the current process. If the erasure candidate edge can be erased, the mesh reduction unit 130 proceeds to step S107. If the mesh reduction unit 130 cannot delete the edge of the deletion candidate, the process proceeds to step S111.
  • the mesh reduction unit 130 determines whether the value obtained by multiplying the QEM of the node generated when the edge of the erasure candidate is multiplied by the weight is less than the QEM threshold (maxcost). For example, the mesh reduction unit 130 acquires the coefficient K from the node information of the nodes at both ends of the erasure candidate edge. Next, the mesh reduction unit 130 sets the sum of the coefficient K for each node as the coefficient K of a newly generated node. Further, the mesh reduction unit 130 calculates the coordinates of the node v that minimizes the QEM of the new node, using Equation (3). The mesh reduction unit 130 calculates the QEM of the newly generated node using Equation (1) using the coordinates of the node v that minimizes the QEM.
  • the mesh reduction unit 130 multiplies the calculated QEM by the weight, and compares the result with the QEM threshold.
  • the newly generated node weight is, for example, the average of the weights of the nodes at both ends of the erasure candidate edge.
  • step S108 If the result of multiplying the QEM by the weight is less than the QEM threshold, the mesh reduction unit 130 advances the process to step S108. If the result obtained by multiplying the QEM by the weight is equal to or greater than the QEM threshold, the mesh reduction unit 130 proceeds to step S111.
  • the mesh reduction unit 130 deletes the edge of the deletion candidate and generates a new node. For example, the mesh reduction unit 130 erases the erasure candidate edges and other elements (edges, nodes, meshes, objects) that are erased by erasing the erasure candidate edges. Further, the mesh reduction unit 130 generates a new node obtained by merging nodes at both ends of the erasure candidate edge at a position where the QEM is minimized. Then, the mesh reduction unit 130 generates an edge connected to the newly generated node, generates a mesh having the generated edge, and generates an object having the generated mesh.
  • the mesh reduction unit 130 generates an edge connected to the newly generated node, generates a mesh having the generated edge, and generates an object having the generated mesh.
  • the mesh reduction unit 130 calculates the coefficient K and weight of the generated node. [Step S110] The mesh reduction unit 130 calculates the evaluation value of the generated edge. If the calculated evaluation value is equal to or less than the threshold value of the evaluation value, the mesh reduction unit 130 stores the erasure candidate edge information corresponding to the edge in the queue.
  • Step S111 If there is an unprocessed erasure candidate edge in the queue, the mesh reduction unit 130 repeats the processing of steps S105 to S110. If there is no unprocessed erasure candidate edge in the queue, the mesh reduction unit 130 ends the mesh reduction process.
  • FIG. 13 is a diagram illustrating an example of the reduction in the number of meshes for an elongated model.
  • FIG. 13 shows an example in which the mesh reduction processing for the cylindrical three-dimensional mesh model 61 is performed based on the edge length (the second embodiment is applied) and an example in which the mesh reduction process is performed based on the QEM value. (Comparative example).
  • the position of the node after edge deletion is a position where the QEM is minimized.
  • the nodes generated after edge erasure are erased in order from the edge with the lowest QEM.
  • the shape of the mesh after edge erasure is not considered.
  • the shape of the mesh after erasure becomes a shape close to a regular triangle.
  • FIG. 14 is a diagram illustrating a transition example of the model shape at the time of mesh reduction.
  • FIG. 14 shows an example in which the mesh reduction process for the donut-shaped three-dimensional mesh model 62 is performed based on the edge length (the second embodiment is applied), and an example in which the mesh reduction process is performed based on the QEM value. (Comparative example).
  • the position of the node after edge deletion is a position where the QEM is minimized.
  • the number of nodes of the original three-dimensional mesh model 62 is 4032.
  • the number of nodes gradually decreases and the shape of the model changes.
  • the donut shape cannot be maintained as the number of nodes decreases.
  • the donut shape is maintained even if the number of nodes is reduced.
  • weighting according to the thickness of the blood vessel is performed by mesh reduction so that the mesh size of the thin portion does not become too large.
  • FIG. 15 is a diagram illustrating an example of mesh reduction for a three-dimensional mesh model having portions having different thicknesses.
  • FIG. 15 shows an original coronary artery model 63 (before the mesh number reduction) and a coronary artery model 64 after the mesh number reduction.
  • the coronary artery model 63 includes a thick aortic base and a thin coronary artery. After the number of meshes is reduced, the aorta and coronary artery have different mesh sizes, and the vicinity of the boundary is a good change without a sharply sharp mesh due to a sudden change in mesh size.
  • the mesh shape can be as close to an equilateral triangle as possible. This makes it possible to maintain a shape close to the original shape even when the number of meshes is significantly reduced, particularly for a three-dimensional mesh model having an elongated shape like a blood vessel.
  • the number of meshes representing a thick blood vessel can be greatly reduced, and a thin blood vessel can be maintained in the correct shape by the fine mesh number.
  • the heart simulation is executed using the three-dimensional mesh model with the number of meshes reduced in this way, efficient simulation is possible because the number of meshes is reduced.
  • the simulation can be performed with high accuracy.
  • the mesh shape is close to an equilateral triangle, even if the coronary artery model is deformed in the simulation process, it does not become an unnatural shape, and the accuracy of the simulation can be improved.
  • the length of the edge is used to calculate the evaluation value, but the evaluation value may be calculated based on another index.
  • the evaluation value can be calculated using the aspect ratio of the mesh.
  • the aspect ratio is, for example, a ratio of radii of a triangle inscribed circle and a circumscribed circle representing a mesh.
  • the aspect ratio may be obtained by multiplying the result of dividing the radius of the inscribed circle of the mesh by the radius of the circumscribed circle of the mesh by a predetermined constant.
  • the constant to be multiplied is determined so that the aspect ratio becomes 1, for example, when the mesh is a regular triangle.
  • the mesh reduction unit 130 selects the meshes with the highest aspect ratio in order, and deletes the shortest edge included in the mesh.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

メッシュ数を削減することによる元の形状からの乖離を少なく抑える。 モデリング装置(10)は、3次元メッシュモデル(1)の複数のエッジそれぞれの長さに基づいて、長さが短いほど低い値となる評価値を複数のエッジそれぞれについて計算し、評価値が低い順に複数のエッジそれぞれを第1エッジ(2)として選択する。次にモデリング装置(10)は、選択された第1エッジ(2)の両端の第1ノード(3)のいずれかを頂点として有する第1面(4)それぞれとノード配置点との距離を用いた計算式の値が閾値以下になる特定ノード配置点が存在する場合、第1エッジ(2)、第1ノード(3)、および第1面(4)を3次元メッシュモデル(1)から消去し、特定ノード配置点に配置された第2ノード(5)を3次元メッシュモデル(1)に追加する。

Description

モデリング装置、モデリング方法、およびモデリングプログラム
 本発明は、モデリング装置、モデリング方法、およびモデリングプログラムに関する。
 近年、数値シミュレーション解析により、生体における力学現象や電気現象等を再現する様々な研究が行われている。例えば心臓が正常に拍動するためには、酸素やエネルギーとなる栄養が豊富に含まれた血液が、心筋に供給されていることが重要である。数値シミュレーション解析を用いれば、左心室から拍出された血液の一部を心臓に張り巡らされた冠動脈がそれぞれどの程度血液を供給しているかについての血流動態を、予測することが可能である。このような予測は、血管の一部に狭窄があるような疾患において、十分な血液が心筋に供給されているのかといった診断の補助となる。現在、血管ごとの血流量の測定はカテーテルを体内に入れることで行われており、非侵襲性のシミュレーションによる代替が期待されている。
 患者固有の冠動脈のシミュレーションの入力の一つとなる冠動脈モデルは、大動脈および冠動脈の形状を形成する三角形の面(以下、メッシュと呼ぶ)と四面体のボリューム要素で構成されており、各要素には部位ごとに異なる材料番号が付されている。冠動脈モデルを生成するコンピュータでは、最初に医療画像から心血管領域を抽出する。そしてコンピュータは、抽出した心血管領域を参照して三角形の面を表すメッシュにより心臓形状や境界面を構築し、それをもとにボリューム要素を生成する。
 例えば冠動脈モデルを作成するコンピュータは、心血管の形状は個人によって形状が異なるため、CT(Computed Tomography)やMRI(Magnetic Resonance Imaging)などの医療画像から、患者の心血管の形状を抽出する。そしてコンピュータは、抽出した領域を参照し三角形のメッシュにより冠動脈モデルを構築する。このとき、構築したい形状に対してメッシュが大きい場合、本来なめらかな形状が冠動脈モデルでは凸凹となってしまう場合がある。また、本来離れた2つの形状が、冠動脈モデルでは接続されていることもある。そのため、最初に十分に小さいメッシュで冠動脈モデルを構築した後、冠動脈モデルの形状に合わせてメッシュ数を削減する方法がよくとられる。
 メッシュ数の削減方法として、例えば、生成されている三角形の等値面データについて、任意に設定された削減率に応じて、削減しても精度にあまり支障が生じないように元の三次元データで検証しつつ、小さい三角形から順次選択して削減する方法がある。また、隣接する2つのノードを重ねて一つのノードにマージする方法がある。エッジを一つ消去し、両端のノードを結合して新しいノードを生成するため、この操作をエッジ消去(Edge Contraction)と呼ぶ。
特開2003-323637号公報
M.Garland and P.S.Heckbert, "Surface Simplification Using Quadric Error Metrics", SIGGRAPH '97 Proceedings of the 24th annual conference on Computer graphics and interactive techniques, ACM Press, New York, 3-8 August 1997, pp.209-216
 エッジ消去によりメッシュ数を削減するとき、エッジ消去後の新しいノードの座標をどのように設定するのかが重要となる。例えばエッジを構成する2つのノードの中点を新しい座標とすると、メッシュの削減が進むに連れて元の形状から大きく異なるところに新しい座標が設定され元の形状が失われてしまう。上記非特許文献1では、元の形状をできるだけ保つために、各ノードにおけるノードを含む隣接面との距離の自乗和(QEM:Quadric Error Metric)を最小化する手法が用いられている。ただし、この手法では、消去後のQEMの変化が小さいエッジから消去していくため、冠動脈のような細長い形状の場合は細長いメッシュとなりやすく、早い段階で大きなメッシュ(一辺の長いメッシュ)になってしまう。細長くなったメッシュをさらに削減していくと、元の形状と大きく異なる形状になってしまう。このような問題は、心臓シミュレーションに用いる冠動脈モデルにおけるメッシュ数の削減時に限らず、3次元メッシュモデルのメッシュ数を削減する場合に共通の問題である。
 1つの側面では、本件は、メッシュ数を削減することによる元の形状からの乖離を少なく抑えることを目的とする。
 1つの案では、記憶部と処理部とを有するモデリング装置が提供される。
 記憶部は、複数のノード、2つのノード間を接続する複数のエッジ、および3つ以上のノードを頂点とする複数の面を用いて3次元形状を表した3次元メッシュモデルを記憶する。
 処理部は、複数のエッジそれぞれの長さに基づいて、長さが短いほど低い値となる評価値を複数のエッジそれぞれについて計算する。次に処理部は、評価値が低い順に複数のエッジそれぞれを第1エッジとして選択する。そして処理部は、選択された第1エッジの両端の第1ノードの少なくとも一方を頂点として有する第1面とノード配置点との距離を用いた計算式の値が閾値以下になる特定ノード配置点が存在する場合、第1エッジ、第1ノード、および第1面を3次元メッシュモデルから消去すると共に、特定ノード配置点に配置された第2ノード、第2ノードを一方の端部とする第2エッジ、および第2ノードを頂点として有する第2面を3次元メッシュモデルに追加する。
 1態様によれば、メッシュ数を削減することによる元の形状からの乖離を少なく抑えることができる。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態に係るモデリング装置の構成の一例を示す図である。 第2の実施の形態のシステム構成の一例を示す図である。 モデリング装置のハードウェアの構成の一例を示す図である。 モデリング装置の機能を示すブロック図である。 冠動脈モデルの一例を示す図である。 4面体要素の一例を示す図である。 3次元メッシュモデルのデータ構造の一例を示す図である。 エッジ消去によるメッシュ数の削減例を示す図である。 ノードのQEMの値と平面との関係を示す図である。 血管の太さに応じた重み付けの一例を示す図である。 エッジ削減用のキューの一例を示す図である。 メッシュリダクション処理の手順の一例を示すフローチャートである。 細長い形状のモデルに対するメッシュ数削減の一例を示す図である。 メッシュ削減時のモデル形状の遷移例を示す図である。 太さの異なる部分を有する3次元メッシュモデルに対するメッシュリダクションの例を示す図である。
 以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
 〔第1の実施の形態〕
 まず第1の実施の形態について説明する。
 図1は、第1の実施の形態に係るモデリング装置の構成の一例を示す図である。第1の実施の形態に係るモデリング装置10は、記憶部11と処理部12とを有する。記憶部11は、例えばモデリング装置10が有するメモリまたはストレージ装置である。処理部12は、例えばモデリング装置10が有するプロセッサなどの演算回路である。
 記憶部11は、複数のノード、2つのノード間を接続する複数のエッジ、および3つ以上のノードを頂点とする複数の面(メッシュ)を用いて3次元形状を表した3次元メッシュモデル1を記憶する。3次元メッシュモデル1は、例えば細長い形状を表している。
 処理部12は、エッジを消去していくことにより、3次元メッシュモデル1のメッシュ数(面の数)を削減する。メッシュ数を削減する際、処理部12は、まず3次元メッシュモデル1の複数のエッジそれぞれの長さに基づいて、長さが短いほど低い値となる評価値を複数のエッジそれぞれについて計算する。
 次に処理部12は、評価値が低い順に、複数のエッジそれぞれを第1エッジ2として選択する。第1エッジ2は、消去候補のエッジである。処理部12は、第1エッジ2を選択するごとに、以下の処理を行う。
 処理部12は、選択した第1エッジ2の両端のノード(第1ノード3)のいずれかを頂点として有する面(第1面4)を特定する。図1の例では、網掛けで示した10個の面が、第1面4として特定される。次に処理部12は、第1面4それぞれとノード配置点との距離を用いた計算式の値が閾値以下になるノード配置点が存在するか否かを判断する。計算式は、例えば第1面4を包含する平面とノード配置点との距離の自乗和を計算する距離関数である。このような距離関数は、QEMとも呼ばれる。ノード配置点は、例えば距離関数の値が最小値となる点である。そして処理部12は、そのノード配置点における距離関数の値(最小値)が閾値以下か否かを判断する。
 ノード配置点における計算式の値が閾値以下となるようなノード配置点(特定ノード配置点)がある場合、処理部12は、第1エッジ2、第1ノード3、および第1面4を3次元メッシュモデル1から消去する。また処理部12は、特定ノード配置点に配置された第2ノード5、第2ノード5を一方の端部とする第2エッジ7、および第2ノード5を頂点として有する第2面6を3次元メッシュモデル1に追加する。これにより、第1エッジ2を消去した3次元メッシュモデル1aが生成される。図1の例では、第1エッジ2を消去したことに伴い、10個の第1面4が消去され、8個の第2面6が生成されている。その結果、面が2つ減っている。
 以後、処理部12は、消去候補となる第1エッジ2を選択するごとに、消去可能な第1エッジ2を消去していき、消去可能な全エッジを消去する。その結果、メッシュ数を削減した3次元メッシュモデル1bが生成される。
 このようにして生成された3次元メッシュモデル1bは、新たに追加されたノードが、元の形状から大きく離れない位置にあり、しかも短いエッジから順に消去したことで、3次元メッシュモデル1b内のメッシュ形状が正三角形に近くなる。その結果、メッシュ数を大きく削減しても、メッシュ削除後の3次元メッシュモデル1bの形状が、オリジナルの3次元メッシュモデル1の形状から大きく乖離せずに済んでいる。すなわち、メッシュ数を削減することによる元の形状からの乖離が少なく抑えられている。
 なお、追加した第2エッジ7も消去の対象とすることができる。その場合、処理部12は、第2エッジ7の追加後に、第2エッジ7の長さに基づいて第2エッジ7の評価値を計算する。そして処理部12は、消去候補とする第1エッジを選択する際には、第2エッジ7と、オリジナルの3次元メッシュモデル1に含まれていた複数のエッジのうちの未選択のエッジとを、第1エッジ2として評価値が低い順に選択する。これにより、より多くのエッジを消去することができる。
 また評価値の計算対象のエッジが、3次元メッシュモデル1の円筒形の部分に含まれるとき、そのエッジの長さに、そのエッジが含まれる部分の半径に応じた第1重みを乗算した値を、そのエッジの評価値としてもよい。例えば3次元メッシュモデル1の円筒形の部分に含まれるノードについて、予め円筒形の半径に応じた第1の重みを設定しておく。第1の重みは、半径が小さい程大きな値とする。処理部12は、例えば、エッジの両端のノードの第1の重みの平均値をエッジの長さに乗算し、乗算結果を評価値とする。これにより、細い部分のエッジは太い部分のエッジよりも重みが大きくなり、同じ長さであっても評価値が高くなる。その結果、細い部分のエッジは、消去候補である第1エッジ2として選択される順番が後になる。選択される順番が後になるほど、そのエッジを削除する際の距離関数の値が大きくなる可能性が高くなり、その結果、削除されずに残される可能性が高くなる。
 また処理部12は、3次元メッシュモデル1bのメッシュ数が所定数にまで減ったら、エッジの消去処理を停止することもできる。この場合、選択される順番が後のエッジが、消去されずに残される可能性がより高くなる。
 太い部分のエッジを優先的に消去し、細い部分のエッジが残りやすくすることで、細い部分においてエッジを過剰に消去してしまい、元の形状から大きく乖離してしまうことを抑止できる。
 また、3次元メッシュモデル1の円筒形の部分に第1エッジ2が含まれるとき、円筒形の半径に応じた第2の重みを、第1面4とノード配置点との距離に応じた値に乗算する式を、上記の計算式としてもよい。例えば3次元メッシュモデル1の円筒形の部分に含まれるノードについて、予め円筒形の半径に応じた第2の重みを設定しておくことができる。第2の重みは、半径が小さい程大きな値とする。第2の重みは、上記の第1の重みと同じ値でもよい。
 処理部12は、距離に応じた値に、第1エッジ2の両端の第1ノードの第2の重みの平均を乗算した結果が閾値以下の場合に、第1エッジ、第1ノード、および第1面の消去と、第2ノード、第2エッジ、および第2面の追加とを実施する。
 これにより、細い部分のエッジは消去されにくくなり、細い部分においてエッジが過剰に消去されることを抑止できる。
 しかも、エッジの評価値の計算に用いる第1の重みや、第1エッジを消去するか否かの判定に用いる第2の重みを、エッジの両端のノードの重みの平均とすることで、半径が異なる部分の境界でも、適切にエッジを消去することができる。すなわち、3次元メッシュモデル1における太い部分と細い部分との境界のエッジについては、太い部分の重みと細い部分の重みとの平均が、第1の重みまたは第2の重みとして用いられる。これにより、太さが異なる部分の境界において、メッシュのサイズを徐々に変えることができる。その結果、メッシュ数削減後の3次元メッシュモデル1bにおいて、境界部分が不自然になることを抑止できる。
 〔第2の実施の形態〕
 次に第2の実施の形態について説明する。
 第2の実施の形態は、心臓シミュレーションに用いる心臓の冠動脈モデルのメッシュ数を削減するものである。
 冠動脈モデルのメッシュ数を削減する際、以下の3つの要件を満たすことが重要である。
(第1の要件)メッシュを削減する際、元の形状はできるだけ保持する。
(第2の要件)三角形のメッシュはできる限り正三角形に近い形状で構築する。
(第3の要件)血管の太さに合わせてメッシュの大きさを適切に設定する。
 第1の要件は、心臓シミュレーションを高精度に実施するために重要となる。メッシュ削減後の冠動脈モデルの形状が元の形状と大きく異なっていたのでは、心臓シミュレーションを高精度に実施することができない。
 第2の要件も、心臓シミュレーションを高精度に実施するために重要である。心臓シミュレーションでは、心臓の拍動に伴い心臓のモデルが変形し、同時に冠動脈モデルも変形する。メッシュが細長い形状だと、冠動脈モデルを滑らかに変形させることができず、心臓シミュレーションの精度を低下させてしまう。
 第3の要件は、心臓シミュレーションの計算量を十分に削減するために重要である。大動脈の直径が3cm程度あるのに対して、冠動脈は抹消や狭窄領域で1mmに満たない場合がある。細い血管領域のメッシュサイズを大きくするとなめらかな形状が失われ、大動脈のように太い血管を小さなメッシュで構成すると、心臓シミュレーションの計算量が膨大になる。血管の大きさに合わせて三角形の大きさを設定することで、なめらかな形状を損なわずに、多くのメッシュ削減が可能となる。
 図2は、第2の実施の形態のシステム構成の一例を示す図である。モデリング装置100は、ネットワーク20を介して心臓シミュレータ200に接続されている。モデリング装置100では、心臓の3次元モデルを作成し、その3次元モデルを心臓シミュレータ200に送信する。心臓シミュレータ200は、心臓の3次元モデルに基づいて、例えば心臓の冠循環シミュレーションを実施する。
 図3は、モデリング装置のハードウェアの構成の一例を示す図である。モデリング装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
 メモリ102は、モデリング装置100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
 バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
 ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
 グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
 入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
 光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
 機器接続インタフェース107は、モデリング装置100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
 ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
 以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示したモデリング装置10も、図3に示したモデリング装置100と同様のハードウェアにより実現することができる。
 モデリング装置100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。モデリング装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、モデリング装置100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またモデリング装置100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
 図4は、モデリング装置の機能を示すブロック図である。モデリング装置100は、記憶部110、モデル作成部120、メッシュリダクション部130、およびモデル送信部140を有する。
 記憶部110は、心臓の3次元メッシュモデル111を記憶する。3次元メッシュモデル111には、心臓の形状を表す構造メッシュモデルや冠動脈モデルが含まれる。
 モデル作成部120は、細かなメッシュによる3次元メッシュモデル111を作成する。例えばモデル作成部120は、患者のCTやMRIなどの医療画像から、その患者の心血管の形状を抽出する。そしてモデル作成部120は、抽出した心血管の領域に基づいて、三角形のメッシュにより冠動脈モデルを作成する。
 メッシュリダクション部130は、上記の3つの要件を満たすように、冠循環モデルのメッシュ数を削減する。例えばメッシュリダクション部130は、3次元メッシュモデル111内のメッシュのうち、消去するメッシュの情報に、無効であることを示すフラグを設定する。またメッシュリダクション部130は、メッシュ数の削減のために、統合した新たなメッシュを生成した場合、3次元メッシュモデル111に生成したメッシュを追加する。
 モデル送信部140は、メッシュ数を削減した3次元メッシュモデル111を、心臓シミュレータ200に送信する。
 なお、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
 次に、冠動脈モデルの構造について具体的に説明する。
 図5は、冠動脈モデルの一例を示す図である。冠動脈モデル30は、大動脈基部31(大動脈弁周辺の大動脈)と冠動脈32との形状を表す3次元メッシュモデルである。冠動脈モデル30は、多数の4面体要素の集合で表されている。
 図6は、4面体要素の一例を示す図である。4つの3角形メッシュで囲まれている4面体要素41は、4つの頂点(vertex)、6つのエッジ(edge)、および4つの面(face)を有する。4面体要素41は、オブジェクトと呼ぶこともある。頂点は、ノードと呼ぶこともある。
 図7は、3次元メッシュモデルのデータ構造の一例を示す図である。3次元メッシュモデル111は、頂点情報111a、エッジ情報111b、面情報111c、およびオブジェクト情報111dを有する。
 頂点情報111aは、3次元メッシュモデル111内の頂点(ノード)ごとに設けられており、それぞれに頂点の識別子(vID)が付与されている。頂点情報111aには、頂点の座標(x,y,z)、頂点を共有するエッジの識別子(edgeID)、エッジ削減時に使用するQEMの係数(K)、およびノードが持つ重み(weight)が含まれる。
 エッジ情報111bは、3次元メッシュモデル111内のエッジごとに設けられており、それぞれにエッジの識別子(edgeID)が付与されている。エッジ情報111bには、エッジの始点となる頂点の識別子(prev_vID)、エッジの終点となる頂点の識別子(next_vID)、およびエッジを共有する面の識別子(faceID)が含まれる。
 面情報111cは、3次元メッシュモデル111内の面ごとに設けられており、それぞれに面の識別子(faceID)が付与されている。面情報111cには、三角形を構築する頂点の識別子(vID1,vID2,vID3)が含まれる。
 オブジェクト情報111dは、3次元メッシュモデル111に含まれるオブジェクト(4面体要素)ごとに設けられており、それぞれにオブジェクトの識別子(objectID)が付与されている。オブジェクト情報111dには、オブジェクトを構成する頂点の集合(vID1,vID2,・・・)、オブジェクトを構成するエッジの集合(edgeID1,edgeID2,・・・)、およびオブジェクトを構成する面の集合(faceID1,faceID2,・・・)が含まれる。
 このようなデータ構造で、3次元メッシュモデル111が表現されている。3次元メッシュモデル111におけるオブジェクトの三角形の面(face)がメッシュであり、メッシュを接合して一つのサーフェス面が構築される。三角形のメッシュは、3つの頂点(vertex)とそれをつなぐ3つのエッジ(edge)によって表記される。
 メッシュリダクション部130は、メッシュ数を削減するため、隣接する2つのノードを重ねて一つのノードにマージする。具体的にはメッシュリダクション部130は、マージしたノード間のエッジを一つ消去し、両端のノードを結合して新しいノードを生成する。
 図7に示すようなデータ構造により、各ノードの頂点情報111aから、そのノードが所属するエッジやメッシュの識別子を取得可能となる。ただし、3次元メッシュモデル111のメッシュ数が多すぎると、3次元メッシュモデル111のデータ量も膨大となり、シミュレーションを高速に行うことが難しくなる。そこで、メッシュ数の削減が行われる。第2の実施の形態に係るモデリング装置100は、エッジ消去によりメッシュ数を削減する。
 図8は、エッジ消去によるメッシュ数の削減例を示す図である。例えばノードv1とノードv2とをマージすることで、エッジ42を消去することができる。この場合、ノードv1とノードv2とは消去され、新たなノードv3が生成される。ノードv1とノードv2とに接続されていたエッジは消去され、新たに生成されたノードv3に接続された新たなエッジが生成される。これにより、エッジ42を共有する2つのメッシュが消去されている。
 ここで、エッジ消去によるメッシュ数削減は、新しく作られるノードv3の座標を求める方法が重要となる。例えば消去するエッジを構成する2つのノードの中点を新しい座標とすると、メッシュの削減が進むに連れて元の形状から大きく異なるところに新しい座標が設定される。その結果、元の形状が失われてしまう。そこでメッシュリダクション部130は、元の形状をできるだけ保つために、最初の形状を記憶しながら最適な座標を計算する。以下、初期状態の3次元メッシュモデル111に含まれるメッシュを、オリジナルのメッシュと呼ぶ。
 最初の形状を記憶しながら最適な座標を計算する手法としては、各ノードにおける、該当ノードにマージされたノードを含む面との距離の自乗和(QEM)を最小化する手法を用いることができる。QEMの計算方法は以下の通りである。
 あるメッシュを含む平面をax+by+cz+d=0とする。a,b,cは、実数であり、a2+b2+c2=1とする。この場合、ある座標(x,y,z)と平面との距離は、|ax+by+cz+d|となる。
 よって、ノードvのQEMはv=[vx vy vz 1]T、p=[a b c d]Tとしたとき、下記のように表せる。
Figure JPOXMLDOC01-appb-M000001
 wfはメッシュfの面積などによる、そのメッシュに対する重み付けである。Kfは以下のような行列である。
Figure JPOXMLDOC01-appb-M000002
 メッシュ削減前から存在するノードvのQEMは、そのノードvを保持するメッシュを含む平面と、そのノードvとの距離の自乗和である。そのためメッシュ削減前から存在するノードvのQEMは、すべて0となる。エッジを消去することで生成されるノードのQEMは、消去するエッジ両端の2つのノードおよびそのノードにマージされたノードのいずれかを保持するオリジナルのメッシュを含む平面に対するQEMの和となる。
 図9は、ノードのQEMの値と平面との関係を示す図である。図9には、消去するエッジ両端の2つのノードおよびそのノードにマージされたノードのいずれかを保持するオリジナルのメッシュを含む複数の平面43が示されている。そしてエッジを消去することで新たに生成するノードの座標の2つの候補が、点で示されている。複数の平面43から離れた位置の点はQEMが大きく、複数の平面43の近くの点はQEMが小さくなる。
 そこで、メッシュリダクション部130は、生成されたノードの座標を、このQEMを最小にする座標とする。つまり、消去するエッジ両端の2つのノードおよびそのノードにマージされたノードのいずれかを保有するメッシュとの距離を最小にする座標が、新しいノードの座標となる。
 QEMを最小とする座標は、Kv=0を満たすvを求めることで算出できる。式で表すと、以下の通りである。
Figure JPOXMLDOC01-appb-M000003
 新しいノードを生成するごとにこのような計算を繰り返すことで、生成されたノードに関わるオリジナルのメッシュのすべてとの距離を最小となる座標にそのノードが配置され、形状を精度よく保つことができる。各メッシュとの距離の自乗和は上記式(1)の通り4×4で表される係数K(式(1)のΣKf)のみ記憶することで計算可能となる。そのため、非常に少ない情報量の保持と簡素な計算でメッシュリダクションを実行できる。
 このようにQEMを用いて新たに生成するノードの座標を計算することで、「元の形状はできるだけ保持する」という第1の要件を満たすことができる。なお第1の要件を満たすだけでよければ、新たに生成するノードのQEMが小さいエッジから順に消去することになる。この場合、冠動脈のような細長い形状の場合は細長いメッシュとなりやすい。すなわち、「三角形のメッシュはできる限り正三角形に近い形状で構築する。」という第2の要件を満たせなくなってしまう。また、新たに生成されるノードのQEM値の小さいエッジのみを消去すると、曲率に従ってメッシュのサイズにばらつきができてしまう。その結果、「血管の太さに合わせてメッシュの大きさを適切に設定する。」という第3の要件を満たすことができなくなる。
 そこでメッシュリダクション部130は、各エッジについて、長さが短いほど低い値となる評価値を付与し、評価値が低い順にエッジを消去することで、エッジ消去後の三角形のメッシュが極端に細長くなることを抑止する。さらに、メッシュリダクション部130は、評価値の算出の際、エッジの長さに、エッジが属する血管の太さに応じた重みを掛けることで、メッシュの大きさを、血管の太さに合わせた適切なサイズにする。
 第1~第3の要件を満たすため、メッシュリダクション部130は、リダクションを行うための準備として、すべてのノードにQEMの係数Kを格納する4×4の行列と、double型の重みnode_weightとを格納する領域をもたせる。そしてメッシュリダクション部130は、係数Kと重みnode_weightとの初期値を求める。ノードの重みnode_weightは、例えば血管の太さや、その結果の種別などによって決定される。第2の実施の形態では、大動脈を冠動脈の3倍の大きさのメッシュで構成するものとする。この場合、メッシュリダクション部130は、冠動脈に所属するメッシュの重みwfを3.0とし、大動脈に属するメッシュの重みwfを1.0とする。そしてメッシュリダクション部130は、ノードの重みnode_weightとして、そのノードを共有するすべてのメッシュのwfの平均値を格納する。
 メッシュリダクション部130は、ノードの重みnode_weightを用いて、消去するエッジの順番を決定するための評価値を計算する。例えばメッシュリダクション部130は、エッジの両端のノードの重みnode_weightの平均を、そのエッジの長さ(edge_length)に乗算した値(edge_length×weight)を、そのエッジの評価値とする。
 図10は、血管の太さに応じた重み付けの一例を示す図である。大動脈基部31の形状を表すノードの重みは1.0であり、冠動脈32の形状を表すノードの重みは3.0である。この場合、大動脈基部31のエッジの長さがL1(L1は正の実数)の場合、そのエッジの評価値は「L1×1.0」となる。また冠動脈32のエッジの長さがL2(L2は正の実数)の場合、そのエッジの評価値は「L2×3.0」となる。
 大動脈基部31のエッジと冠動脈32のエッジとが同じ長さであれば、冠動脈32のエッジの方が評価値が高くなる。この場合、評価値の低いエッジを優先的に消去していくことで、大動脈のエッジを優先的に消去していくことができる。
 メッシュリダクション部130は、評価値が低いエッジを効率的に選択するために、キューを用いる。
 図11は、エッジ削減用のキューの一例を示す図である。エッジ削減用のキュー51には、評価値とエッジの識別子(edgeID)とを含む消去候補エッジ情報52が登録されている。キュー51内の消去候補エッジ情報52は、評価値によって昇順にソートされている。
 メッシュリダクション部130は、キュー51に新たな消去候補エッジ情報53を追加するとき、既に登録されている消去候補エッジ情報52の評価値と、追加する消去候補エッジ情報53の評価値とを比較する。そして、メッシュリダクション部130は、追加する消去候補エッジ情報53よりも評価値が小さい消去候補エッジ情報52と、追加する消去候補エッジ情報53よりも評価値が大きい消去候補エッジ情報52との間に、消去候補エッジ情報53を追加する。またメッシュリダクション部130は、キュー51から1つの消去候補エッジ情報を取り出すとき、キュー51内の先頭(評価値の値が小さい方)の消去候補エッジ情報54を取り出す。
 このようにキュー51を用いることで、評価値の値が小さいエッジから優先的に取り出すことができる。メッシュリダクション部130は、取り出したエッジを消去しても、消去後に生成するノードのQEMが閾値以内であれば、取り出したエッジを消去する。
 これにより、短いエッジから順に消去され、「三角形のメッシュはできる限り正三角形に近い形状で構築する。」という第2の要件を満たすことができる。すなわち、エッジを消去することでメッシュ数を削減すると、周囲のエッジの長さが長くなる。短いエッジを残したまま長いエッジを消去してしまうと、エッジ消去後の周囲のメッシュは、細長くなってしまう。それに対して、短いエッジを優先的に消去すれば、エッジ消去後の周囲のメッシュが正三角形に近くなることが期待できる。
 しかもエッジの評価値の計算に用いられる重みは、そのエッジを含むメッシュが属する血管の太さによって決められている。すなわち血管が細いほど、重みが大きくなる。重みの値が大きいほど、その重みを利用して計算されるエッジの評価値の値も大きくなる。エッジの評価値の値が大きければ、そのエッジが消去候補として取り出される順番が後になり、消去される可能性が低くなる。これにより、「血管の太さに合わせてメッシュの大きさを適切に設定する。」という第3の要件を満たすことができる。
 なお、エッジの削減は、まず削減したいエッジとそれに隣接するすべてのエッジを一旦消去し、新しく一つのノードとそれに繋がるエッジを生成することで行われる。そのためキュー51には既に存在しないエッジの消去候補エッジ情報が残っている可能性がある。既に消去されたエッジの削減処理は行えないため、メッシュリダクション部130は、キュー51から消去候補エッジ情報を取り出した際に、対応するエッジが消去できるかどうかを判断する。メッシュリダクション部130は、キュー51から取り出した消去候補エッジ情報に対応するエッジが消去できない場合は、また新しい消去候補エッジ情報をキュー51から取り出す。
 また、QEM値が大きいほど元の冠動脈モデルの形状との乖離が大きくなるため、メッシュリダクション部130は、閾値によってエッジを消去するか判定する。例えばメッシュリダクション部130は、エッジを一つ消去し、新しく生成したノードのノード情報にQEMの係数Kと重みnode_weightとを格納する。係数Kと重みnode_weightは、消去された2つのノードが持つそれぞれの値の重み付きの平均である。続けてメッシュリダクション部130は、新しくできたノードをつなぐ複数のエッジを生成しキューに格納する。キューに格納する際の評価値はエッジが保有する2つのノードのnode_weightの重み付き平均をエッジの長さに掛けたものである。
 次に、メッシュリダクション処理の手順について詳細に説明する。
 図12は、メッシュリダクション処理の手順の一例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
 [ステップS101]メッシュリダクション部130は、すべてのノードのQEMの係数K(式(1)のΣKf)を計算する。メッシュリダクション部130は、ノードの係数Kの値を計算すると、計算結果をそのノードの頂点情報111a(図7参照)に設定する。
 [ステップS102]メッシュリダクション部130は、すべてのエッジの評価値を計算する。例えばメッシュリダクション部130は、エッジの長さにエッジが保有する2つのノードの重みnode_weightの平均を乗算した値を、そのエッジの評価値とする。
 [ステップS103]メッシュリダクション部130は、評価値が、評価値の閾値以下のエッジに対応する消去候補エッジ情報をキューに登録する。消去候補エッジ情報には、対応するエッジの評価値とそのエッジの識別子(edgeID)とが含まれる。メッシュリダクション部130は、各消去候補エッジ情報を、評価値が低い順にキューに登録する。
 [ステップS104]メッシュリダクション部130は、キューの先頭から順に消去候補エッジ情報を1つずつ取り出し、ステップS105~S110のエッジ削減処理を実行する。ステップS105~S110では、消去候補エッジ情報に示されるエッジが削減可能なエッジかの判定と、消去可能なときの消去処理とが行われる。
 [ステップS105]メッシュリダクション部130は、取り出し消去候補エッジ情報に対応するエッジを消去候補とし、そのエッジを消去した後に生成するノードのQEMを計算する。
 [ステップS106]メッシュリダクション部130は、消去候補のエッジを消去可能か否かを判断する。例えば消去候補のエッジの周囲のエッジが消去された際に、消去候補のエッジも合わせて消去されていることがある。このような場合、消去候補のエッジは既に消去されており、今回の処理で消去することはできない。メッシュリダクション部130は、消去候補のエッジを消去可能であれば、処理をステップS107に進める。またメッシュリダクション部130は、消去候補のエッジを消去できなければ、処理をステップS111に進める。
 [ステップS107]メッシュリダクション部130は、消去候補のエッジを消去した場合に生成されるノードのQEMに重みを乗算した値が、QEMの閾値(maxcost)未満か否かを判断する。例えばメッシュリダクション部130は、消去候補のエッジの両端のノードのノード情報から係数Kを取得する。次にメッシュリダクション部130は、ノードごとの係数Kの和を、新たに生成するノードの係数Kとする。さらにメッシュリダクション部130は、式(3)により、新たなノードのQEMが最小となるノードvの座標を算出する。メッシュリダクション部130は、QEMが最小となるノードvの座標を用いて、式(1)により、新たに生成されるノードのQEMを計算する。
 そしてメッシュリダクション部130は、計算したQEMに重みを乗算して、その結果とQEMの閾値とを比較する。新たに生成するノードの重みは、例えば消去候補のエッジの両端のノードの重みの平均である。
 メッシュリダクション部130は、QEMに重みを乗算した結果がQEMの閾値未満であれば、処理をステップS108に進める。またメッシュリダクション部130は、QEMに重みを乗算した結果がQEMの閾値以上であれば、処理をステップS111に進める。
 [ステップS108]メッシュリダクション部130は、消去候補のエッジを消去し、新たなノードを生成する。例えばメッシュリダクション部130は、消去候補のエッジ、および消去候補のエッジを消去することで消去される他の要素(エッジ、ノード、メッシュ、オブジェクト)を消去する。さらにメッシュリダクション部130は、消去候補のエッジの両端のノードをマージした新たなノードをQEMが最小となる位置に生成する。そしてメッシュリダクション部130は、新たに生成したノードに接続するエッジの生成、生成したエッジを有するメッシュの生成、生成したメッシュを有するオブジェクトの生成を行う。
 [ステップS109]メッシュリダクション部130は、生成したノードの係数Kと重み(weight)とを計算する。
 [ステップS110]メッシュリダクション部130は、生成したエッジの評価値を計算する。そしてメッシュリダクション部130は、計算した評価値が、評価値の閾値以下であれば、そのエッジに対応する消去候補エッジ情報をキューに格納する。
 [ステップS111]メッシュリダクション部130は、キュー内に未処理の消去候補エッジがあれば、ステップS105~S110の処理を繰り返す。メッシュリダクション部130は、キュー内に未処理の消去候補エッジがなければ、メッシュリダクション処理を終了する。
 このようにして、上記の第1~第3の要件を満たすようなメッシュリダクションが実現される。第1~第3の要件が満たされることで、メッシュ数を削減しても、元の冠動脈モデルに近い形状を維持できる。
 図13は、細長い形状のモデルに対するメッシュ数削減の一例を示す図である。図13には、円筒形の3次元メッシュモデル61に対するメッシュリダクション処理を、エッジの長さに基づいて実施した例(第2の実施の形態を適用)と、QEMの値に基づいて実施した例(比較例)とを示している。なおいずれのメッシュリダクション処理においても、エッジ消去後のノードの位置は、QEMが最小となる位置である。
 QEMの値に基づいてエッジを消去する場合、エッジ消去後に生成するノードのQEMが低いエッジから順に消去される。この際、エッジ消去後のメッシュの形状は考慮されない。すると図13に示すように、エッジの消去を繰り返すことで、細長い三角形のメッシュになってしまう。それに対して、エッジの長さに基づき、短いエッジから消去することで、消去後のメッシュの形状が正三角形に近い形となる。
 メッシュの形状が正三角形から乖離すると、メッシュ数を削減し続けたときに、元の形状を維持するのが困難となる。
 図14は、メッシュ削減時のモデル形状の遷移例を示す図である。図14には、ドーナツ型の3次元メッシュモデル62に対するメッシュリダクション処理を、エッジの長さに基づいて実施した例(第2の実施の形態を適用)と、QEMの値に基づいて実施した例(比較例)とを示している。なおいずれのメッシュリダクション処理においても、エッジ消去後のノードの位置は、QEMが最小となる位置である。
 オリジナルの3次元メッシュモデル62のノード数は4032である。この3次元メッシュモデル62に対するメッシュリダクション処理を行うことでノード数が徐々に減少すると共に、モデルの形状が変化する。エッジ消去後に生成するノードのQEMの値が小さいエッジから順に消去した場合(図14中の右側)、ノード数の減少に伴ってドーナツ型が維持できなくなっている。それに対して、長さが短いエッジから消去した場合(図14中の左側)、ノード数が少なくなってもドーナツ型が維持されている。
 第2の実施の形態では、メッシュリダクションにより、細い部分のメッシュサイズが大きくなりすぎないように、血管の太さに応じた重み付けを行っている。その結果、太い部分と細い部分とが混在する3次元メッシュモデルについても、元の形状を大きく崩さずに、メッシュ数を削減することができる。
 図15は、太さの異なる部分を有する3次元メッシュモデルに対するメッシュリダクションの例を示す図である。図15には、オリジナル(メッシュ数削減前)の冠動脈モデル63とメッシュ数削減後の冠動脈モデル64とが示されている。冠動脈モデル63には、太い大動脈基部と細い冠動脈が含まれている。メッシュ数削減後は、大動脈と冠動脈で異なるメッシュサイズとなっており、その境界付近も急激なメッシュサイズの変化による細く尖ったメッシュはなく良好な変化となっている。
 以上のように、第2の実施の形態によれば、短いエッジから順に消去していき、エッジを消去することにより新たに生成するノードをQEMが最小となる位置に生成することで、元の形状を保ちながら、メッシュの形状をできるだけ正三角形に近づけることができる。これにより、特に血管のように細長い形状の3次元メッシュモデルについて、メッシュ数を大幅に削減しても、元の形状に近い形状を保つことが可能となる。
 しかも、血管の太さに応じた重みを設定したことにより、太い血管を表すメッシュ数を大幅に削減し、細い血管については細かなメッシュ数により正しい形状を維持させることができる。
 このようにしてメッシュ数を削減した3次元メッシュモデルを用いて心臓シミュレーションを実行すれば、メッシュ数が削減されたことで、効率的なシミュレーションが可能である。しかも、元の形状からの乖離が少ないことで、シミュレーションを精度よく行うことができる。さらに、メッシュ形状が正三角形に近いため、シミュレーション過程で冠動脈モデルを変形させても不自然な形状にならずにすみ、シミュレーションの精度を向上させることができる。
 〔その他の実施の形態〕
 第2の実施の形態では、評価値の計算にエッジの長さを用いているが、他の指標に基づいて評価値を計算してもよい。例えば、メッシュのアスペクト比を用いて評価値を計算することもできる。アスペクト比は、例えばメッシュを表す三角形の内接円と外接円との半径の比である。メッシュの内接円の半径を、そのメッシュの外接円の半径で除算した結果に、所定の定数を乗算した結果をアスペクト比としてもよい。乗算する定数は、例えばメッシュが正三角形のときにアスペクト比が1になるように決定される。
 評価値の計算にアスペクト比を用いた場合、メッシュリダクション部130は、アスペクト比が高いメッシュから順に選択し、そのメッシュに含まれる最も短いエッジを消去する。
 上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
 1,1a,1b 3次元メッシュモデル
 2 第1エッジ
 3 第1ノード
 4 第1面
 5 第2ノード
 6 第2面
 7 第2エッジ
 10 モデリング装置
 11 記憶部
 12 処理部

Claims (8)

  1.  複数のノード、2つのノード間を接続する複数のエッジ、および3つ以上のノードを頂点とする複数の面を用いて3次元形状を表した3次元メッシュモデルを記憶する記憶部と、
     前記複数のエッジそれぞれの長さに基づいて、長さが短いほど低い値となる評価値を前記複数のエッジそれぞれについて計算し、前記評価値が低い順に前記複数のエッジそれぞれを第1エッジとして選択し、選択された前記第1エッジの両端の第1ノードの少なくとも一方を頂点として有する第1面とノード配置点との距離を用いた計算式の値が閾値以下になる特定ノード配置点が存在する場合、前記第1エッジ、前記第1ノード、および前記第1面を前記3次元メッシュモデルから消去すると共に、前記特定ノード配置点に配置された第2ノード、前記第2ノードを一方の端部とする第2エッジ、および前記第2ノードを頂点として有する第2面を前記3次元メッシュモデルに追加する処理部と、
     を有するモデリング装置。
  2.  前記処理部は、
     さらに、前記第2エッジの追加後に前記第2エッジの長さに基づいて前記第2エッジの前記評価値を計算し、
     前記選択では、前記第2エッジと前記複数のエッジのうちの未選択のエッジとを、前記第1エッジとして前記評価値が低い順に選択する、
     請求項1記載のモデリング装置。
  3.  前記処理部は、前記評価値の計算では、前記3次元メッシュモデルの円筒形の部分に含まれる計算対象エッジの長さに、前記円筒形の半径に応じた第1の重みを乗算した値を、前記計算対象エッジの前記評価値とする、
     請求項1または2のいずれかに記載のモデリング装置。
  4.  前記処理部は、前記評価値の計算では、前記計算対象エッジの両端のノードそれぞれが属する部分の前記円筒形の半径に応じた重み値の平均を、前記第1の重みとする、
     請求項3記載のモデリング装置。
  5.  前記処理部は、前記3次元メッシュモデルの前記円筒形の部分に前記第1エッジが含まれるとき、前記円筒形の半径に応じた第2の重みを、前記第1面と前記特定ノード配置点との距離に応じた値に乗算する式を、前記計算式とする、
     請求項1ないし4のいずれかに記載のモデリング装置。
  6.  前記処理部は、前記第1エッジの両端の前記第1ノードそれぞれが属する部分の前記円筒形の半径に応じた重み値の平均を、前記第2の重みとする、
     請求項5記載のモデリング装置。
  7.  コンピュータが、
     複数のノード、2つのノード間を接続する複数のエッジ、および3つ以上のノードを頂点とする複数の面を用いて3次元形状を表した3次元メッシュモデルを参照し、前記複数のエッジそれぞれの長さに基づいて、長さが短いほど低い値となる評価値を前記複数のエッジそれぞれについて計算し、
     前記評価値が低い順に前記複数のエッジそれぞれを第1エッジとして選択し、
     選択された前記第1エッジの両端の第1ノードの少なくとも一方を頂点として有する第1面とノード配置点との距離を用いた計算式の値が閾値以下になる特定ノード配置点が存在する場合、前記第1エッジ、前記第1ノード、および前記第1面を前記3次元メッシュモデルから消去すると共に、前記特定ノード配置点に配置された第2ノード、前記第2ノードを一方の端部とする第2エッジ、および前記第2ノードを頂点として有する第2面を前記3次元メッシュモデルに追加する、
     モデリング方法。
  8.  コンピュータに、
     複数のノード、2つのノード間を接続する複数のエッジ、および3つ以上のノードを頂点とする複数の面を用いて3次元形状を表した3次元メッシュモデルを参照し、前記複数のエッジそれぞれの長さに基づいて、長さが短いほど低い値となる評価値を前記複数のエッジそれぞれについて計算し、
     前記評価値が低い順に前記複数のエッジそれぞれを第1エッジとして選択し、
     選択された前記第1エッジの両端の第1ノードの少なくとも一方を頂点として有する第1面とノード配置点との距離を用いた計算式の値が閾値以下になる特定ノード配置点が存在する場合、前記第1エッジ、前記第1ノード、および前記第1面を前記3次元メッシュモデルから消去すると共に、前記特定ノード配置点に配置された第2ノード、前記第2ノードを一方の端部とする第2エッジ、および前記第2ノードを頂点として有する第2面を前記3次元メッシュモデルに追加する、
     処理を実行させるモデリングプログラム。
PCT/JP2017/001549 2017-01-18 2017-01-18 モデリング装置、モデリング方法、およびモデリングプログラム WO2018134914A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018562782A JP6748368B2 (ja) 2017-01-18 2017-01-18 モデリング装置、モデリング方法、およびモデリングプログラム
PCT/JP2017/001549 WO2018134914A1 (ja) 2017-01-18 2017-01-18 モデリング装置、モデリング方法、およびモデリングプログラム
CN201780083810.XA CN110214342A (zh) 2017-01-18 2017-01-18 建模装置、建模方法以及建模程序
US16/507,038 US10692282B2 (en) 2017-01-18 2019-07-10 Modeling apparatus and modeling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/001549 WO2018134914A1 (ja) 2017-01-18 2017-01-18 モデリング装置、モデリング方法、およびモデリングプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/507,038 Continuation US10692282B2 (en) 2017-01-18 2019-07-10 Modeling apparatus and modeling method

Publications (1)

Publication Number Publication Date
WO2018134914A1 true WO2018134914A1 (ja) 2018-07-26

Family

ID=62907839

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/001549 WO2018134914A1 (ja) 2017-01-18 2017-01-18 モデリング装置、モデリング方法、およびモデリングプログラム

Country Status (4)

Country Link
US (1) US10692282B2 (ja)
JP (1) JP6748368B2 (ja)
CN (1) CN110214342A (ja)
WO (1) WO2018134914A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023228289A1 (ja) * 2022-05-24 2023-11-30 日本電信電話株式会社 映像修正装置、映像修正方法、及びプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3608872B1 (en) * 2017-05-05 2023-07-12 Shanghai United Imaging Healthcare Co., Ltd. Image segmentation method and system
CN111553978B (zh) * 2020-04-28 2023-09-19 上海无线电设备研究所 一种基于三角形网格微元的三维粗糙模型建模方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652271A (ja) * 1992-06-24 1994-02-25 Nippon Telegr & Teleph Corp <Ntt> 3次元lsi形状シミュレーション方法
JP2001184528A (ja) * 1999-12-27 2001-07-06 Minolta Co Ltd 三次元形状データのデータ削減方法及びデータ削減装置
JP2006072490A (ja) * 2004-08-31 2006-03-16 Hokkaido Univ 四面体メッシュ生成方法およびプログラム
US20110050691A1 (en) * 2008-02-01 2011-03-03 Koshjar Hamedi Real-time user guided optimization of general 3d data

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6879324B1 (en) * 1998-07-14 2005-04-12 Microsoft Corporation Regional progressive meshes
US6356263B2 (en) * 1999-01-27 2002-03-12 Viewpoint Corporation Adaptive subdivision of mesh models
US6958753B2 (en) 1999-12-27 2005-10-25 Minolta Co., Ltd. Method and apparatus for reducing three-dimensional shape data
US7728848B2 (en) * 2000-03-28 2010-06-01 DG FastChannel, Inc. Tools for 3D mesh and texture manipulation
JP3967626B2 (ja) 2002-04-30 2007-08-29 独立行政法人科学技術振興機構 画像データ圧縮処理方法および画像処理装置
US9886792B2 (en) * 2012-05-14 2018-02-06 Autodesk, Inc. Adaptive mesh refinement

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652271A (ja) * 1992-06-24 1994-02-25 Nippon Telegr & Teleph Corp <Ntt> 3次元lsi形状シミュレーション方法
JP2001184528A (ja) * 1999-12-27 2001-07-06 Minolta Co Ltd 三次元形状データのデータ削減方法及びデータ削減装置
JP2006072490A (ja) * 2004-08-31 2006-03-16 Hokkaido Univ 四面体メッシュ生成方法およびプログラム
US20110050691A1 (en) * 2008-02-01 2011-03-03 Koshjar Hamedi Real-time user guided optimization of general 3d data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023228289A1 (ja) * 2022-05-24 2023-11-30 日本電信電話株式会社 映像修正装置、映像修正方法、及びプログラム

Also Published As

Publication number Publication date
JP6748368B2 (ja) 2020-09-02
US10692282B2 (en) 2020-06-23
US20190333271A1 (en) 2019-10-31
JPWO2018134914A1 (ja) 2019-11-07
CN110214342A (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
Fedele et al. Polygonal surface processing and mesh generation tools for the numerical simulation of the cardiac function
US9123169B2 (en) Model generation method and model generation apparatus
US9275190B2 (en) Method and system for generating a four-chamber heart model
US20170109496A1 (en) Biological simulation apparatus and biological simulation apparatus control method
US10262762B2 (en) Apparatus for generating first vascular data having a tree structure based on anatomical data and generating second vascular data without relying on the anatomical data
JP2019521733A (ja) 画像からの血管の選択方法
JP6968898B2 (ja) 仮想現実または拡張現実環境において複雑なデータをレンダリングするためのシステムおよび方法
CN112116615A (zh) 根据血管中心线获取血管轮廓线的方法和装置
JP6748368B2 (ja) モデリング装置、モデリング方法、およびモデリングプログラム
Burkhart et al. Adaptive and feature‐preserving subdivision for high‐quality tetrahedral meshes
Mönch et al. Optimization of vascular surface models for computational fluid dynamics and rapid prototyping
CN107507212A (zh) 数字脑可视化方法、装置、计算设备及存储介质
Drees et al. Hierarchical random walker segmentation for large volumetric biomedical images
EP3726477A1 (en) Chamber reconstruction from a partial volume
US20150154282A1 (en) Data search apparatus and method for controlling the same
JP2009541777A (ja) 関心のある心筋部位の自動定義
JPWO2014016894A1 (ja) 形状データ生成方法及び装置
Scarpolini et al. Enabling supra-aortic vessels inclusion in statistical shape models of the aorta: a novel non-rigid registration method
US10699479B2 (en) Apparatus and method for generating biological model
Veress et al. The direct incorporation of perfusion defect information to define ischemia and infarction in a finite element model of the left ventricle
CN102099833A (zh) 网格冲突避免
Selver et al. Implementation and use of 3D pairwise geodesic distance fields for seeding abdominal aortic vessels
Fedele et al. Semi-automatic three-dimensional vessel segmentation using a connected component localization of the region-scalable fitting energy
US20160019363A1 (en) Visualization apparatus and visualization method
JP2009020625A (ja) 解析モデル作成方法、プログラム、記録媒体および解析モデル作成装置

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018562782

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17893142

Country of ref document: EP

Kind code of ref document: A1