/
kevin-keraudren-localising-organs-of-the-fetus-in-mri-data-using-python.json
18 lines (18 loc) · 4.27 KB
/
kevin-keraudren-localising-organs-of-the-fetus-in-mri-data-using-python.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"description": "Imaging the developing fetus\n----------------------------\n\nThe main challenge when imaging the fetus using Magnetic Resonance\nImaging (MRI) is fetal movement. Acquiring MR images requires time,\nduring which the fetus is unlikely to stay still. To address this\nproblem, images are acquired as stacks of 2D slices that freeze in-plane\nmotion and motion that occurred between slices is corrected\nretrospectively. Several stacks of 2D slices acquired in orthogonal\ndirections are used to reconstruct a high resolution volume of the\nfetus. The automated detection of the fetal organs can help this problem\nby selecting a region of interest around parts of the fetal body that\nmove as a rigid body. In this talk, I will present the pipeline I\ndeveloped to localise the brain, heart, lungs and liver of the fetus in\nMR images, which can be used as pre-processing step for motion\ncorrection.\n\nLocalising the brain of the fetus\n---------------------------------\n\nThe brain is first detected in each 2D slice using a Bag-of-Words\napproach with SIFT features, before accumulating the detection results\nwith RANSAC in order to position a 3D bounding box around the brain.\nThis bounding box is later refined into a segmentation, which is used\nfor motion correction. The code, an example dataset and the associated\npublications can be found online [1].\n\nThe OpenCV Python wrapper is used for feature extraction, while an SVM\nfrom scikit-learn takes care of the machine learning aspect of the\nBag-of-Words. Scikit-learn's Random Forests, trained with patches from\nthe central region of the brain bounding box and patches outside the\nbounding box, are used to refine the box detection into a segmentation.\nMedical images combine voxel data with scanner coordinates, which are\nused to align successive scans to each other. In order to correctly\nhandle these coordinates throughout the Python code, as well as easily\naccess medical image processing functionalities, a wrapper for the IRTK\nlibrary [2] was developed using Cython. An image object is a subclass of\nnumpy arrays. In particular, the function ``__getitem__`` is overloaded\nin order to update the scanner coordinates each time the image is\ncropped or sliced.\n\nLocalising the heart, lungs and liver of the fetus\n--------------------------------------------------\n\nThe location of the brain can be used to guide the search for other\norgans of the fetus. The heart, lungs and liver are detected using a\ntwo-step Random Forest approach: a first classification step assigns\neach voxel to an organ, and during a subsequent regression step, voxels\nvote for the position of the organ center. Steerable cube features,\nwhich can be efficiently computed using integral images, are used as\ninput for the Random Forests. While all fetuses are aligned at training\ntime, at test time image features are extracted in a coordinate system\nestimated as organs are detected: first the brain, which fixes a point,\nthen the heart, which fixes an axis, and finally the liver and both\nlungs.\n\nScikit-learn's Random Forests are not designed for parsing images. They\ncan however be used in a research prototype by precomputing features for\nbatches of voxels. This approach allows the researcher to focus on the\ndetection pipeline and the feature extraction step. Example localisation\nresults are presented in an online video [3].\n\n| [1] https://github.com/kevin-keraudren/example-motion-correction\n| [2] https://github.com/BioMedIA/python-irtk\n| [3] http://www.doc.ic.ac.uk/~kpk09/MICCAI2015.mp4\n",
"duration": 2007,
"language": "eng",
"recorded": "2015-06-21",
"speakers": [
"Kevin Keraudren"
],
"summary": "What if medical scanners could localise organs in 3D data in the same\nway as your camera automatically detects faces? The task is even more\nchallenging for a fetus, whose orientation is arbitrary! In this\ntalk, I will present how scikit-learn's Random Forest and the Python\necosystem can be used to solve this problem, wrapping a medical\nimaging C++ library with Cython along the way.",
"thumbnail_url": "https://i.ytimg.com/vi/t1pIh_TOVLM/hqdefault.jpg",
"title": "Localising Organs of the Fetus in MRI Data Using Python",
"videos": [
{
"type": "youtube",
"url": "https://www.youtube.com/watch?v=t1pIh_TOVLM"
}
]
}