Abstract
Studying human motion using musculoskeletal models is a common practice in the field of biomechanics. By using such models, recorded subject’s motions can be analyzed in successive steps from kinematics and dynamics to muscle control. However simulating muscle deformation and interaction is not possible, but other methods such as a finite element (FE) simulation are very well suited to simulate deformation and interaction of objects. In this paper we present a practical framework for the automatic generation of FE ready meshes based on subject-specific segmented MRI data. The proposed method resolves several types of data inconsistencies: noise, an incomplete data set and self-intersections. This paper shows the different steps of the method, such as solving overlaps in the segmented surfaces, generating the volume mesh and the connection to a musculoskeletal simulation.
Similar content being viewed by others
References
Lee, D., Glueck, M., Khan, A., Fiume, E., Jackson, K.: Modeling and simulation of skeletal muscle for computer graphics: a survey. Found. Trends Comput. Graph. Vis. 7(4), 229–276 (2012)
Teran, J., Sifakis, E., Blemker, S., Ng-Thow-Hing, V., Lau, C., Fedkiw, R.: Creating and simulating skeletal muscle from the visible human data set. IEEE Trans. Vis. Comput. Graph. 11(3), 317–328 (2005)
Delp, S.L., Anderson, F.C., Arnold, A.S., Loan, P., Habib, A., John, C.T., Guendelman, E., Thelen, D.G.: OpenSim: open-source software to create and analyze dynamic simulations of movement. IEEE Trans. Biomed. Eng. 54(11), 1940–1950 (2007)
Damsgaard, M., Rasmussen, J., Christensen, S.T., Surma, E., de Zee, M.: Analysis of musculoskeletal systems in the AnyBody Modeling System. Simul. Model. Pract. Theory 14, 1100–1111 (2006)
Delp, S.L., Loan, J.P., Hoy, M.G., Zajac, F.E., Topp, E.L., Rosen, J.M.: An interactive graphics-based model of the lower extremity to study orthopaedic surgical procedures. IEEE Trans. Biomed. Eng. 37(8), 757–767 (1990)
Wang, J.M., Hamner, S.R., Delp, S.L., Koltun, V.: Optimizing locomotion controllers using biologically-based actuators and objectives. ACM Trans. Graph. 31(4), 25 (2012)
Gielen, A.W.J., Oomens, C.W.J., Bovendeerd, P.H.M., Arts, T., Janssen, J.D.: A finite element approach for skeletal muscle using a distributed moment model of contraction. Comput. Methods Biomech. Biomed. Eng. 3(3), 231–244 (2000)
Johansson, T., Meier, P., Blickhan, R.: A finite-element model for the mechanical analysis of skeletal muscles. J. Theor. Biol. 206(1), 131–149 (2000)
Kojic, M., Mijailovic, S., Zdravkovic, N.: Modelling of muscle behaviour by the finite element method using Hill’s three-element model. Int. J. Numer. Methods Eng. 43(5), 941–953 (1998)
Jenkyn, T.R., Koopman, B., Huijing, P., Lieber, R.L., Kaufman, K.R.: Finite element model of intramuscular pressure during isometric contraction of skeletal muscle. Phys. Med. Biol. 47, 4043 (2002)
US National Library of medicine. The visible human project. http://www.nlm.nih.gov/research/visible/
Dong, F., Clapworthy, G.J., Krokos, M.A., Yao, J.: An anatomy-based approach to human muscle modeling and deformation. IEEE Trans. Vis. Comput. Graph. 8(2), 154–170 (2002)
Shinar, T., Schroeder, C., Fedkiw, R.: Two-way coupling of rigid and deformable bodies. In: James, D., Gross, M. (eds.) ACM SIGGRAPH/Eurographics Symposium on Computer Animation (SCA), pp. 95–103 (2008)
Kim, J., Pollard, N.S.: Fast simulation of skeleton-driven deformable body characters. ACM Trans. Graph. 30(5), 1–19 (2011)
Stavness, I., Lloyd, J.E., Payan, Y., Fels, S.: Coupled hard–soft tissue simulation with contact and constraints applied to jaw–tongue–hyoid dynamics. Int. J. Numer. Methods Biomed. Eng. 27(3), 367–390 (2011)
Sethian, J.A.: A fast marching level set method for monotonically advancing fronts. Proc. Natl. Acad. Sci. USA 93(4), 1591–1595 (1996)
Osher, S., Fedkiw, R.P.: Level Set Methods and Dynamic Implicit Surfaces, vol. 153. Springer, Berlin (2003)
Blemker, S.S., Delp, S.L.: Three-dimensional representation of complex muscle architectures and geometries. Ann. Biomed. Eng. 33(5), 661–673 (2005)
Blemker, S.S., Delp, S.L.: Rectus femoris and vastus intermedius fiber excursions predicted by three-dimensional muscle models. J. Biomech. 39(8), 1383–1391 (2006)
Schmid, J., Magnenat-Thalmann, N.: MRI bone segmentation using deformable models and shape priors. In: MICCAI. LNCS, vol. 5241, pp. 119–126 (2008)
Gilles, B., Moccozet, L., Magnenat-Thalmann, N.: Anatomical modeling of the musculoskeletal system from MRI. In: Medical Image Computing and Computer-Assisted Intervention (MICCAI), pp. 289–296 (2006)
Taubin, G.: Curve and surface smoothing without shrinkage. In: The Fifth International Conference on Computer Vision, pp. 852–857 (1995)
Baraff, D., Witkin, A., Kass, M.: Untangling cloth. ACM Trans. Graph. 22(3), 862–870 (2003)
Jung, W., Shin, H., Choi, B.K.: Self-intersection removal in triangular mesh offsetting. Comput-Aided Des. Appl. 1(1–4), 477–484 (2004)
Carve, constructive solid geometry library. http://code.google.com/p/carve
CGAL, computational geometry algorithms library. http://www.cgal.org
Rineau, L., Tayeb, S., Yvinec, M.: 3D mesh generation. In: CGAL User and Reference Manual (2009)
Oudot, S., Rineau, L., Yvinec, M.: Meshing volumes bounded by smooth surfaces. In: Proceedings of the 14th International Meshing Roundtable, pp. 203–219 (2005)
Hert, S., Schirra, S.: 3D convex hulls. In: CGAL User and Reference Manual (2009)
FEBio, finite elements for biomechanics. http://mrl.sci.utah.edu/software.php
Maas, S.A., Ellis, B.J., Rawlins, D.S., Weiss, J.A.: A comparison of FEBio, ABAQUS, and NIKE3D results for a suite of verification problems (2009)
Pronost, N., Sandholm, A., Thalmann, D.: A visualization framework for the analysis of neuromuscular simulations. Vis. Comput. 27, 109–119 (2011)
Bentley, J.L.: Multidimensional binary search trees used for associative searching. Commun. ACM 18(9), 509–517 (1975)
Au, O.K.C., Tai, C.L., Chu, H.K., Cohen-Or, D., Lee, T.Y.: Skeleton extraction by mesh contraction. ACM Trans. Graph. 27(3), 1–10 (2008)
Acknowledgements
This work was initiated by the European Marie Curie Program under the 3D ANATOMICAL HUMAN project (MRTN-CT-2006-035763). The authors would like to acknowledge Jerome Schmid, Anders Sandholm, Nadia Magnegnat-Thalmann, Daniel Thalmann and Arjan Egges for their assistance in this work.
Author information
Authors and Affiliations
Corresponding author
Appendices
Appendix A
1.1 A.1 Push-based method
During this research, we tried several methods of approaching the overlap problem. We first developed a method where two objects would push each other away. The reason for using a push-based method is that the topology of the object remains intact, and the attachment and tendon information are transformed together with the surface. The surfaces that have smaller volumes have a higher priority, meaning they will be the last to be deformed, because their changes will most likely have the most impact on the shape of the object. The bones will have the highest priority since they have the best segmentation quality. First we apply an iterative smoothing algorithm on the pushed surface to represent the general trend that the surface has. We then use this information to determine the direction whereto each overlapping vertex should move when pushed away by the other surface. As we also want to take into account the geometry of the pushing surface, this direction is combined with the average vertex normal of the closest vertices in the pushing surface. This lookup is done using a kd-tree, for which the implementation from the CGAL library is used [26, 33]. We take the 10 closest vertices, calculate the vertex normals of those and average them. This gives us a second pushing direction vector which is combined to the smoothed direction with an equal weight. A vertex is pushed away in that direction until it does not lie inside the other surface anymore. Unfortunately, this method fails if a surface lies too far inside another one, because pushing directions cannot be accurately determined anymore. Furthermore, the convergence of this kind of technique will be difficult to ensure when the data set is made of many objects e.g. with all muscles, fat-tissue and skin layers.
1.2 A.2 Shrink-based method
We also looked at methods that can make two surfaces push each other away by both moving vertices to a shrunk copy of the surface. For this, we need an algorithm that can give for a surface S a shrunk version S′. Shrinking an object iteratively gives a sequence of shrunk surfaces S 1,…,S n. Similarly, each vertex v i ∈V, has a sequence of shrunk positions \(v_{i}^{1}, \ldots, v_{i}^{n}\). By applying the shrinking algorithm iteratively on the overlapping surfaces, they will naturally move apart. We tried the following two shrinking algorithms.
Shrinking by smoothing
We used a shrinking algorithm based on standard Laplacian smoothing [22]. Each vertex is moved in the average direction of its neighbors.
Here λ is the scaling factor of the displacement done at each shrinking step. This method produces smooth shrinking, and can be done in arbitrarily small steps. The problem of this method is that globally the surface will shrink, but locally the surface can expand. Specifically, concave parts of the surface will expand, and convex parts will shrink.
Shrinking to skeleton
The second shrinking algorithm we developed moves the vertices of the surface to a precalculated ‘skeleton,’ which represents the global minimal structure of an object. We determine this skeleton using the method of Au et al. [34]. The algorithm takes a surface S={V,F} and produces a curve-skeleton K=(U,E) with skeleton nodes U and edges E, where \(U = \{ u_{1}, u_{2}, \ldots, u_{n_{U}} \}\) are the node positions. The algorithm also produces a mapping coll(v i )=u k from vertices to skeletal nodes, which gives for each vertex v i the node u k to which it was collapsed in the skeleton. The shrinking algorithm we developed moves the vertices towards an attraction point on the skeleton. The attraction points are dynamically determined by the mapping coll(v i ), where the influence of the parent node of each vertex increases as the vertex moves closer to the skeleton. The smoothness of the shrinking could be improved by a different strategy of moving towards the skeleton. Unfortunately, the algorithm has a bigger defect: the algorithm produces for some muscles a skeleton that lies outside of the surface shape, which is not tolerable for our application, since the vertices can never go outside of the original shape.
Appendix B
Static MRI scans of the whole lower limb have been performed. The subject was lying in a resting pose. In close collaboration with radiologists, adequate protocols for the imaging of soft and bony tissues was defined. The following protocol was used: 1.5T Philips Medical Systems machine, axial 2D T1 Turbo Spin Echo, TR/TE=578/18 ms, FOV/FA=40 cm/90∘, matrix/resolution=512×512/0.78×0.78 mm, thickness: from 2 mm (near joints) to 10 mm (long bones).
Not all algorithms in the pipeline can be used without configuration. We describe hereafter the most significant parameters used in the pipeline. The smoothing algorithm (Sect. 3.3) has three parameters: λ factor, μ factor and number N. The surfaces in our data set are smoothed with the values λ=0.33, μ=−0.331 and N=1000 iterations.
In the tendon generation step (Sect. 3.4), we add regularly spaced vertices to fill the gap between the end of the tendon and the start of the muscle. The space between these rows of vertices is set to 2 mm.
The degenerate triangle method (Sect. 3.5) needs two ϵ values, ϵ e and ϵ α , that respectively indicate the minimal edge length and minimal angle. In the experiment, we used ϵ e =0.5 mm and ϵ α =0.01 degrees.
The overlap solving algorithm (Sect. 3.6) creates a raw-offset of the surface that will be subtracted. The parameter λ indicating the distance of the offset is set to λ=1 mm.
The volume mesh generation step has several parameters determining the final density and accuracy of the output mesh. Table 1 lists the parameters used on our data set. For both muscle and bone objects, we choose the same values for angular bound and radius-edge bound. This is because these values do not influence the amount of elements created in the output mesh, but only influence the runtime of the mesh generation. Facet angular bound is set to 30 degrees because the CGAL algorithm will guarantee a solution for this bound. The radius-edge ratio is set to 1.25, because we want to avoid unbalanced tetrahedra. For the radius bounds, we choose for the muscle a lower value since it will deform during the simulation and therefore needs a higher resolution. The bones are not going to deform so the size of the tetrahedra inside of the bones is not important, hence the high value.
Rights and permissions
About this article
Cite this article
Peeters, P., Pronost, N. A practical framework for generating volumetric meshes of subject-specific soft tissue. Vis Comput 30, 127–137 (2014). https://doi.org/10.1007/s00371-013-0788-2
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00371-013-0788-2