SlideShare a Scribd company logo
1 of 80
Download to read offline
Automated Organ Localisation
in Fetal Magnetic Resonance Imaging
K. Keraudren1, B. Kainz1, O. Oktay1, M. Kuklisova-Murgasova2,
V. Kyriakopoulou2, C. Malamateniou2, M. Rutherford2,
J. V. Hajnal2 and D. Rueckert1
1 Biomedical Image Analysis Group, Imperial College London
2 Department Biomedical Engineering, Kingā€™s College London
PyData London 2015
1) Background:
Fetal Magnetic Resonance Imaging
Python for medical imaging
2) Localising the brain of the fetus
3) Localising the body of the fetus
Introduction
Magnetic Resonance Imaging (MRI)
MRI scanner
Source: Wikimedia Commons
Huge magnet (1.5T)
Safe: no ionising radiations
High quality images
Slow acquisition process
4
Challenges in fetal MRI
1 Fetal motion
2 Arbitrary orientation of the fetus
3 Variability due to fetal growth
5
Fast MRI acquisition methods
MRI data is acquired as stacks of 2D slices
that freeze in-plane motion
but form an incoherent 3D volume.
6
Retrospective motion correction
Orthogonal stacks of
misaligned 2D slices
3D volume
Localising fetal organs can be used to initialise motion correction.
B. Kainz et al., ā€œFast Volume Reconstruction from Motion Corrupted Stacks of 2D Slices,ā€
in IEEE Transactions on Medical Imaging, 2015.
7
Retrospective motion correction
Orthogonal stacks of
misaligned 2D slices
3D volume
Localising fetal organs can be used to initialise motion correction.
B. Kainz et al., ā€œFast Volume Reconstruction from Motion Corrupted Stacks of 2D Slices,ā€
in IEEE Transactions on Medical Imaging, 2015.
8
Python for medical imaging
scikit
machine learning in Python
Interfacing IRTK through Cython
What is a medical image?
4D volume of voxel data (X, Y, Z, T)
Spatial information: ImageToWorld and WorldToImage
Why the Image Registration Toolkit (IRTK)?
Same backend as my colleagues:
same conventions
same features & bugs
State-of-the-art algorithms for aligning images
github.com/BioMedIA/IRTK 11
Interfacing IRTK through Cython
Solution:
Subclass numpy arrays
Dictionary attribute holding:
dimension, orientation, origin and pixel size
Access IRTK through cython
Additional beneļ¬ts:
__getitem__ overloaded to update coordinates when
cropping/slicing
Coordinates preserved when resampling/aligning images
conda install -c kevin-keraudren python-irtk
github.com/BioMedIA/python-irtk 12
Interfacing IRTK through Cython
template <class dtype>
void irtk2py( irtkGenericImage<dtype>& irtk_image,
dtype* img,
double* pixelSize,
double* xAxis,
double* yAxis,
double* zAxis,
double* origin,
int* dim );
13
Machine learning for organ localisation
Machine learning approach to organ localisation
Learning from annotated examples
Generalise from training database to new subjects
Implicitly model variability:
age
pose (articulated body)
maternal tissues
Small dataset limits capacity to model all age categories:
Infer size from gestational age
15
Training data: fetal brain
59 healthy fetuses, 450 stacks
Annotated boxes for the brain
github.com/kevin-keraudren/crop-boxes-3D 16
Training data: full body
30 healthy & 25 IUGR fetuses
Manual segmentations: brain, heart, lungs, liver and kidneys
M. Damodaram et al., ā€œFoetal Volumetry using Magnetic Resonance Imaging in Intrauterine Growth
Restriction,ā€ in Early Human Development, 2012.
17
Localising the fetal brain
19
20
For every slice
21
Detect MSER regions
Classify using SIFT features
22
Filter by size
Classify using SVM & histograms of SIFT features
23
Fit a box with RANSAC
24
Size constraints for brain detection
OFDOFD
BPDBPD
14 19 24 29 34 39
Gestational Age
20
40
60
80
100
120
140
mm
Occipitofrontal diameter
median
5th/95th centile
14 19 24 29 34 39
Gestational Age
0
20
40
60
80
100
120
140
mm
Biparietal diameter
median
5th/95th centile
25
Localisation results for the fetal brain
>70%
Ground truth
Detection
Median error: 5.7 mm
>70% of the brain: 100%
Complete brain: 85%
Size inferred from gestational age
Runtime: <1min (desktop PC)
26
Localisation results for the fetal brain
>70%
Ground truth
Detection
Median error: 5.7 mm
>70% of the brain: 100%
Complete brain: 85%
Size inferred from gestational age
Runtime: <1min (desktop PC)
27
Localising the body of the fetus
29
30
Localising the body of the fetus
Brain largest organ, ellipsoidal shape
Lungs & liver irregular shape
Motivates 3D approach despite motion corruption
(only coarse localisation)
31
Localising the body of the fetus
1) Size normalisation based on gestational age
2) Sequential localisation of fetal organs
3) Image features steered by the fetal anatomy
32
Size normalisation
24 weeks 30 weeks 38 weeks
20 25 30 35 40
Gestational age
0
20
40
60
80
100
120
140
Heart-braindistanceinmm
Scanner coordinates
Healthy
IUGR
R1, R2
A single model can be trained across all gestational ages.
33
Size normalisation
24 weeks 30 weeks 38 weeks
20 25 30 35 40
Gestational age
0
20
40
60
80
100
120
140
Heart-braindistanceinvoxels
Image grid
Healthy
IUGR
R1, R2
A single model can be trained across all gestational ages.
33
Size normalisation
The crown-rump length (CRL), estimated from the gestational age,
is used to normalise the size of the fetus.
CRLCRL
12 17 22 27 32 37 42
Gestational age
50
100
150
200
250
300
350
400
450
mm
Crown-rump length
median
5th
/ 95th
centile
Resampling factor: CRLga/CRL30
34
Sequential search
R1R1
R2R2
The heart lies between two spheres of radii R1 and R2 centered on the brain.
The lungs and liver lie inside a sphere of radius R3 centered on the heart.
R1, R2 and R3 are independent of gestational age thanks to size normalisation.
35
Sequential search
R
3
R
3
The heart lies between two spheres of radii R1 and R2 centered on the brain.
The lungs and liver lie inside a sphere of radius R3 centered on the heart.
R1, R2 and R3 are independent of gestational age thanks to size normalisation.
35
Sequential search
R1R1
R2R2
R
3
R
3
The heart lies between two spheres of radius R1 and R2 centered on the brain.
The lungs and liver lie inside a sphere of radius R3 centered on the heart.
R1, R2 and R3 are independent of gestational age thanks to size normalisation.
35
Image descriptor built from rectangle features
BB
AA
if Āµ(IA) > Āµ(IB) then 1 else 0
1
36
Image descriptor built from rectangle features
BB
AA
if Āµ(IA) > Āµ(IB) then 1 else 0
1
1
36
Image descriptor built from rectangle features
BB
AA
if Āµ(IA) > Āµ(IB) then 1 else 0
1
1
0
36
Image descriptor built from rectangle features
BBAA
if Āµ(IA) > Āµ(IB) then 1 else 0
1
1
0
1
36
Image descriptor built from rectangle features
BB
AA
if Āµ(IA) > Āµ(IB) then 1 else 0
1
1
0
1
0
...
36
Integral image for axis-aligned cube features
ii(x,y) = āˆ‘
x ā‰¤x,y ā‰¤y
I(x ,y )
i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0)
1 2
3 4
A B
C D
1 = A
2 = A+B
3 = A+C
4 = A+B+C +D
D = 4āˆ’3āˆ’2+1
Compute the sum of pixels over an image patch
independently of the patch size:
In 2D, 4 table lookups
In 3D, 8 table lookups
37
Integral image for axis-aligned cube features
ii(x,y) = āˆ‘
x ā‰¤x,y ā‰¤y
I(x ,y )
i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0)
1 2
3 4
A B
C D
1 = A
2 = A+B
3 = A+C
4 = A+B+C +D
D = 4āˆ’3āˆ’2+1
Compute the sum of pixels over an image patch
independently of the patch size:
In 2D, 4 table lookups
In 3D, 8 table lookups
37
Integral image for axis-aligned cube features
ii(x,y) = āˆ‘
x ā‰¤x,y ā‰¤y
I(x ,y )
i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0)
1 2
3 4
A B
C D
1 = A
2 = A+B
3 = A+C
4 = A+B+C +D
D = 4āˆ’3āˆ’2+1
Compute the sum of pixels over an image patch
independently of the patch size:
In 2D, 4 table lookups
In 3D, 8 table lookups
37
Integral image for axis-aligned cube features
ii(x,y) = āˆ‘
x ā‰¤x,y ā‰¤y
I(x ,y )
i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0)
1 2
3 4
A B
C D
1 = A
2 = A+B
3 = A+C
4 = A+B+C +D
D = 4āˆ’3āˆ’2+1
Compute the sum of pixels over an image patch
independently of the patch size:
In 2D, 4 table lookups
In 3D, 8 table lookups
37
Integral image for axis-aligned cube features
ii(x,y) = āˆ‘
x ā‰¤x,y ā‰¤y
I(x ,y )
i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0)
1 2
3 4
A B
C D
1 = A
2 = A+B
3 = A+C
4 = A+B+C +D
D = 4āˆ’3āˆ’2+1
Compute the sum of pixels over an image patch
independently of the patch size:
In 2D, 4 table lookups
In 3D, 8 table lookups
37
Integral image for axis-aligned cube features
ii(x,y) = āˆ‘
x ā‰¤x,y ā‰¤y
I(x ,y )
i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0)
1 2
3 4
A B
C D
1 = A
2 = A+B
3 = A+C
4 = A+B+C +D
D = 4āˆ’3āˆ’2+1
Compute the sum of pixels over an image patch
independently of the patch size:
In 2D, 4 table lookups
In 3D, 8 table lookups
37
Integral image for axis-aligned cube features
ii(x,y) = āˆ‘
x ā‰¤x,y ā‰¤y
I(x ,y )
i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0)
1 2
3 4
A B
C D
1 = A
2 = A+B
3 = A+C
4 = A+B+C +D
D = 4āˆ’3āˆ’2+1
Compute the sum of pixels over an image patch
independently of the patch size:
In 2D, 4 table lookups
In 3D, 8 table lookups
37
Integral image for axis-aligned cube features
ii(x,y) = āˆ‘
x ā‰¤x,y ā‰¤y
I(x ,y )
i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0)
1 2
3 4
A B
C D
1 = A
2 = A+B
3 = A+C
4 = A+B+C +D
D = 4āˆ’3āˆ’2+1
Compute the sum of pixels over an image patch
independently of the patch size:
In 2D, 4 table lookups
In 3D, 8 table lookups
37
Steerable features
At training time, 3D features are extracted in a coordinate system
aligned with the fetal anatomy.
38
u0u0v0v0
Steerable features
At test time, 3D features are extracted in a rotated coordinate system:
the brain ļ¬xes a point
Pu randomly
oriented
while the heart ļ¬xes an axis.
39
uu
vv
Steerable features
At test time, 3D features are extracted in a rotated coordinate system:
the brain ļ¬xes a point
Pu randomly
oriented
while the heart ļ¬xes an axis.
40
uu
vv
Classiļ¬cation then regression: heart
Classiļ¬cationClassiļ¬cation
J. Gall and V. Lempitsky, ā€œClass-speciļ¬c Hough Forests for Object Detection,ā€ in CVPR, 2009.
41
Classiļ¬cation then regression: heart
RegressionRegression
J. Gall and V. Lempitsky, ā€œClass-speciļ¬c Hough Forests for Object Detection,ā€ in CVPR, 2009.
42
Classiļ¬cation then regression: heart
RegressionRegression
J. Gall and V. Lempitsky, ā€œClass-speciļ¬c Hough Forests for Object Detection,ā€ in CVPR, 2009.
43
Classiļ¬cation then regression: lungs & liver
Classiļ¬cationClassiļ¬cation
J. Gall and V. Lempitsky, ā€œClass-speciļ¬c Hough Forests for Object Detection,ā€ in CVPR, 2009.
44
Classiļ¬cation then regression: lungs & liver
RegressionRegression
J. Gall and V. Lempitsky, ā€œClass-speciļ¬c Hough Forests for Object Detection,ā€ in CVPR, 2009.
45
Spatial optimization of candidate organs
brainbrain
heartheart
Sagittal plane
liverliver
Coronal plane
left lungleft lung
rightright
lunglung
Transverse plane
For each candidate location for the heart, hypotheses are
formulated for the position of the lungs & liver.
The ļ¬nal detection is obtained by maximizing:
the regression votes p(xl)
the relative positions of organs, modeled as Gaussian distributions
(ĀÆxl,Ī£l).
āˆ‘
lāˆˆL
Ī»p(xl)+(1āˆ’Ī»)eāˆ’1
2 (xlāˆ’ĀÆxl) Ī£āˆ’1
l (xlāˆ’ĀÆxl)
l āˆˆ L = { heart, left lung, right lung, liver }
46
Implementation: training
# predefined set of cube features
offsets = np.random.randint( -o_size, o_size+1, size=(n_tests,3) )
sizes = np.random.randint( 0, d_size+1, size=(n_tests,1) )
X = []
Y = []
for l in range(nb_labels):
pixels = np.argwhere(np.logical_and(narrow_band>0,seg==l))
pixels = pixels[np.random.randint( 0,
pixels.shape[0],
n_samples)]
u,v,w = get_orientation_training( pixels, organ_centers )
x = extract_features( pixels, w, v, u )
y = seg[pixels[:,0],
pixels[:,1],
pixels[:,2]]
X.extend(x)
Y.extend(y)
clf = RandomForestClassifier(n_estimators=100) # scikit-learn
clf.fit(X,Y)
47
Implementation: training
# predefined set of cube features
offsets = np.random.randint( -o_size, o_size+1, size=(n_tests,3) )
sizes = np.random.randint( 0, d_size+1, size=(n_tests,1) )
X = []
Y = []
for l in range(nb_labels):
pixels = np.argwhere(np.logical_and(narrow_band>0,seg==l))
pixels = pixels[np.random.randint( 0,
pixels.shape[0],
n_samples)]
u,v,w = get_orientation_training( pixels, organ_centers )
x = extract_features( pixels, w, v, u )
y = seg[pixels[:,0],
pixels[:,1],
pixels[:,2]]
X.extend(x)
Y.extend(y)
clf = RandomForestClassifier(n_estimators=100) # scikit-learn
clf.fit(X,Y)
47
Implementation: training
# predefined set of cube features
offsets = np.random.randint( -o_size, o_size+1, size=(n_tests,3) )
sizes = np.random.randint( 0, d_size+1, size=(n_tests,1) )
X = []
Y = []
for l in range(nb_labels):
pixels = np.argwhere(np.logical_and(narrow_band>0,seg==l))
pixels = pixels[np.random.randint( 0,
pixels.shape[0],
n_samples)]
u,v,w = get_orientation_training( pixels, organ_centers )
x = extract_features( pixels, w, v, u )
y = seg[pixels[:,0],
pixels[:,1],
pixels[:,2]]
X.extend(x)
Y.extend(y)
clf = RandomForestClassifier(n_estimators=100) # scikit-learn
clf.fit(X,Y)
47
Implementation: training
# predefined set of cube features
offsets = np.random.randint( -o_size, o_size+1, size=(n_tests,3) )
sizes = np.random.randint( 0, d_size+1, size=(n_tests,1) )
X = []
Y = []
for l in range(nb_labels):
pixels = np.argwhere(np.logical_and(narrow_band>0,seg==l))
pixels = pixels[np.random.randint( 0,
pixels.shape[0],
n_samples)]
u,v,w = get_orientation_training( pixels, organ_centers )
x = extract_features( pixels, w, v, u )
y = seg[pixels[:,0],
pixels[:,1],
pixels[:,2]]
X.extend(x)
Y.extend(y)
clf = RandomForestClassifier(n_estimators=100) # scikit-learn
clf.fit(X,Y)
47
Implementation: testing
def get_orientation( brain, pixels ):
u = brain - pixels
u /= np.linalg.norm( u, axis=1 )[...,np.newaxis]
# np.random.rand() returns random floats in the interval [0;1[
v = 2*np.random.rand( pixels.shape[0], 3 ) - 1
v -= (v*u).sum(axis=1)[...,np.newaxis]*u
v /= np.linalg.norm( v,
axis=1 )[...,np.newaxis]
w = np.cross( u, v )
# u and v are perpendicular unit vectors
# so ||w|| = 1
return u, v, w
Brain
Pixel
u
v
w
48
Implementation: testing
def get_orientation( brain, pixels ):
u = brain - pixels
u /= np.linalg.norm( u, axis=1 )[...,np.newaxis]
# np.random.rand() returns random floats in the interval [0;1[
v = 2*np.random.rand( pixels.shape[0], 3 ) - 1
v -= (v*u).sum(axis=1)[...,np.newaxis]*u
v /= np.linalg.norm( v,
axis=1 )[...,np.newaxis]
w = np.cross( u, v )
# u and v are perpendicular unit vectors
# so ||w|| = 1
return u, v, w
Brain
Pixel
u
v
w
48
Implementation: testing
def get_orientation( brain, pixels ):
u = brain - pixels
u /= np.linalg.norm( u, axis=1 )[...,np.newaxis]
# np.random.rand() returns random floats in the interval [0;1[
v = 2*np.random.rand( pixels.shape[0], 3 ) - 1
v -= (v*u).sum(axis=1)[...,np.newaxis]*u
v /= np.linalg.norm( v,
axis=1 )[...,np.newaxis]
w = np.cross( u, v )
# u and v are perpendicular unit vectors
# so ||w|| = 1
return u, v, w
Brain
Pixel
u
v
w
48
Implementation: testing
def get_orientation( brain, pixels ):
u = brain - pixels
u /= np.linalg.norm( u, axis=1 )[...,np.newaxis]
# np.random.rand() returns random floats in the interval [0;1[
v = 2*np.random.rand( pixels.shape[0], 3 ) - 1
v -= (v*u).sum(axis=1)[...,np.newaxis]*u
v /= np.linalg.norm( v,
axis=1 )[...,np.newaxis]
w = np.cross( u, v )
# u and v are perpendicular unit vectors
# so ||w|| = 1
return u, v, w
Brain
Pixel
u
v
w
48
Implementation: testing
def get_orientation( brain, pixels ):
u = brain - pixels
u /= np.linalg.norm( u, axis=1 )[...,np.newaxis]
# np.random.rand() returns random floats in the interval [0;1[
v = 2*np.random.rand( pixels.shape[0], 3 ) - 1
v -= (v*u).sum(axis=1)[...,np.newaxis]*u
v /= np.linalg.norm( v,
axis=1 )[...,np.newaxis]
w = np.cross( u, v )
# u and v are perpendicular unit vectors
# so ||w|| = 1
return u, v, w
Brain
Pixel
u
v
w
48
Implementation: testing
def get_orientation( brain, pixels ):
u = brain - pixels
u /= np.linalg.norm( u, axis=1 )[...,np.newaxis]
# np.random.rand() returns random floats in the interval [0;1[
v = 2*np.random.rand( pixels.shape[0], 3 ) - 1
v -= (v*u).sum(axis=1)[...,np.newaxis]*u
v /= np.linalg.norm( v,
axis=1 )[...,np.newaxis]
w = np.cross( u, v )
# u and v are perpendicular unit vectors
# so ||w|| = 1
return u, v, w
Brain
Pixel
u
v
w
48
Implementation: testing
def get_orientation( brain, pixels ):
u = brain - pixels
u /= np.linalg.norm( u, axis=1 )[...,np.newaxis]
# np.random.rand() returns random floats in the interval [0;1[
v = 2*np.random.rand( pixels.shape[0], 3 ) - 1
v -= (v*u).sum(axis=1)[...,np.newaxis]*u
v /= np.linalg.norm( v,
axis=1 )[...,np.newaxis]
w = np.cross( u, v )
# u and v are perpendicular unit vectors
# so ||w|| = 1
return u, v, w
Brain
Pixel
u
v
w
48
Implementation: testing
img = irtk.imread(...) # Python interface to IRTK
proba = irtk.zeros(img.get_header(),dtype=ā€™float32ā€™)
...
pixels = np.argwhere(narrow_band>0)
u,v,w = get_orientation(brain_center,pixels)
# img is 3D so all features cannot fit in memory at once:
# use chunks
for i in xrange(0,pixels.shape[0],chunk_size):
j = min(i+chunk_size,pixels.shape[0])
x = extract_features( pixels[i:j],w[i:j],v[i:j],u[i:j])
pr = clf_heart.predict_proba(x)
for dim in xrange(nb_labels):
proba[dim,
pixels[i:j,0],
pixels[i:j,1],
pixels[i:j,2]] = pr[:,dim]
49
Implementation: testing
img = irtk.imread(...) # Python interface to IRTK
proba = irtk.zeros(img.get_header(),dtype=ā€™float32ā€™)
...
pixels = np.argwhere(narrow_band>0)
u,v,w = get_orientation(brain_center,pixels)
# img is 3D so all features cannot fit in memory at once:
# use chunks
for i in xrange(0,pixels.shape[0],chunk_size):
j = min(i+chunk_size,pixels.shape[0])
x = extract_features( pixels[i:j],w[i:j],v[i:j],u[i:j])
pr = clf_heart.predict_proba(x)
for dim in xrange(nb_labels):
proba[dim,
pixels[i:j,0],
pixels[i:j,1],
pixels[i:j,2]] = pr[:,dim]
49
Localisation results for the fetal organs
1st dataset: 30 healthy & 25 IUGR fetuses, no motion, uterus scan
2nd dataset: 64 healthy fetuses, motion artefacts, brain scan
Heart Left lung Right lung Liver
1st dataset: healthy 90% 97% 97% 90%
1st dataset: IUGR 92% 60% 80% 76%
2nd dataset 83% 78% 83% 67%
Runtime: 15min (24 cores, 128GB RAM)
50
How to reduce the runtime?
tweak parameters: #trees, #features, evaluate every two pixels, ...
Use a Random Forest implementation for sliding windows
struct SlidingWindow {
pixeltype* img;
int shape0, shape1, shape2;
int x,y,z;
void set ( int _x, int _y, int _z );
pixeltype mean( int cx, int cy, int cz,
int dx, int dy, int dz );
}
template <class PointType, class TestType>
class RandomForest;
51
Example localisation results
Conclusion
Conclusion
Automated localisation of fetal organs in MRI using Python:
Brain, heart, lungs & liver
Training one model across all ages and orientations
MSER & SIFT from OpenCV
Image processing from scikit-image & scipy.ndimage
SVM and Random Forest from scikit-learn
And Cython for interfacing with C++
55
Thanks!
For more information and source code:
www.doc.ic.ac.uk/~kpk09/
github.com/kevin-keraudren

More Related Content

What's hot

Segmentation problems in medical images
Segmentation problems in medical imagesSegmentation problems in medical images
Segmentation problems in medical imagesJimin Lee
Ā 
3D isocenters quality assurance in radiation treatment room using a motion c...
3D isocenters quality assurance in radiation treatment room  using a motion c...3D isocenters quality assurance in radiation treatment room  using a motion c...
3D isocenters quality assurance in radiation treatment room using a motion c...WonjoongCheon
Ā 
Image Compression based on DCT and BPSO for MRI and Standard Images
Image Compression based on DCT and BPSO for MRI and Standard ImagesImage Compression based on DCT and BPSO for MRI and Standard Images
Image Compression based on DCT and BPSO for MRI and Standard ImagesIJERA Editor
Ā 
Robust Adaptive Threshold Algorithm based on Kernel Fuzzy Clustering on Image...
Robust Adaptive Threshold Algorithm based on Kernel Fuzzy Clustering on Image...Robust Adaptive Threshold Algorithm based on Kernel Fuzzy Clustering on Image...
Robust Adaptive Threshold Algorithm based on Kernel Fuzzy Clustering on Image...cscpconf
Ā 
bayesImageS: an R package for Bayesian image analysis
bayesImageS: an R package for Bayesian image analysisbayesImageS: an R package for Bayesian image analysis
bayesImageS: an R package for Bayesian image analysisMatt Moores
Ā 
PERFORMANCE ANALYSIS OF TEXTURE IMAGE RETRIEVAL FOR CURVELET, CONTOURLET TRAN...
PERFORMANCE ANALYSIS OF TEXTURE IMAGE RETRIEVAL FOR CURVELET, CONTOURLET TRAN...PERFORMANCE ANALYSIS OF TEXTURE IMAGE RETRIEVAL FOR CURVELET, CONTOURLET TRAN...
PERFORMANCE ANALYSIS OF TEXTURE IMAGE RETRIEVAL FOR CURVELET, CONTOURLET TRAN...ijfcstjournal
Ā 
An Efficient System for Cancer Detection using Digital Mammograms
An Efficient System for Cancer Detection using Digital MammogramsAn Efficient System for Cancer Detection using Digital Mammograms
An Efficient System for Cancer Detection using Digital MammogramsIOSRjournaljce
Ā 
Performance Analysis of CRT for Image Encryption
Performance Analysis of CRT for Image Encryption Performance Analysis of CRT for Image Encryption
Performance Analysis of CRT for Image Encryption ijcisjournal
Ā 
Copy Move Forgery Detection Using GLCM Based Statistical Features
Copy Move Forgery Detection Using GLCM Based Statistical Features Copy Move Forgery Detection Using GLCM Based Statistical Features
Copy Move Forgery Detection Using GLCM Based Statistical Features ijcisjournal
Ā 
Paper id 25201433
Paper id 25201433Paper id 25201433
Paper id 25201433IJRAT
Ā 
Ensemble Classifications of Wavelets based GLCM Texture Feature from MR Human...
Ensemble Classifications of Wavelets based GLCM Texture Feature from MR Human...Ensemble Classifications of Wavelets based GLCM Texture Feature from MR Human...
Ensemble Classifications of Wavelets based GLCM Texture Feature from MR Human...rahulmonikasharma
Ā 
Tissue Segmentation Methods Using 2D Histogram Matching in a Sequence of MR B...
Tissue Segmentation Methods Using 2D Histogram Matching in a Sequence of MR B...Tissue Segmentation Methods Using 2D Histogram Matching in a Sequence of MR B...
Tissue Segmentation Methods Using 2D Histogram Matching in a Sequence of MR B...Vladimir Kanchev
Ā 
Human detection in hours of
Human detection in hours ofHuman detection in hours of
Human detection in hours ofijistjournal
Ā 
VR / AR for Medical Application (ź°€ģƒķ˜„ģ‹¤ / ģ¦ź°•ķ˜„ģ‹¤ģ˜ ģ˜ė£Œ ģ‘ģš©)
VR / AR for Medical Application (ź°€ģƒķ˜„ģ‹¤ / ģ¦ź°•ķ˜„ģ‹¤ģ˜ ģ˜ė£Œ ģ‘ģš©)VR / AR for Medical Application (ź°€ģƒķ˜„ģ‹¤ / ģ¦ź°•ķ˜„ģ‹¤ģ˜ ģ˜ė£Œ ģ‘ģš©)
VR / AR for Medical Application (ź°€ģƒķ˜„ģ‹¤ / ģ¦ź°•ķ˜„ģ‹¤ģ˜ ģ˜ė£Œ ģ‘ģš©)Youngjun Kim
Ā 
Create lecture part 1 contours and texture
Create lecture part 1   contours and textureCreate lecture part 1   contours and texture
Create lecture part 1 contours and texturevisionresearchyork
Ā 

What's hot (16)

Segmentation problems in medical images
Segmentation problems in medical imagesSegmentation problems in medical images
Segmentation problems in medical images
Ā 
3D isocenters quality assurance in radiation treatment room using a motion c...
3D isocenters quality assurance in radiation treatment room  using a motion c...3D isocenters quality assurance in radiation treatment room  using a motion c...
3D isocenters quality assurance in radiation treatment room using a motion c...
Ā 
Image Compression based on DCT and BPSO for MRI and Standard Images
Image Compression based on DCT and BPSO for MRI and Standard ImagesImage Compression based on DCT and BPSO for MRI and Standard Images
Image Compression based on DCT and BPSO for MRI and Standard Images
Ā 
Robust Adaptive Threshold Algorithm based on Kernel Fuzzy Clustering on Image...
Robust Adaptive Threshold Algorithm based on Kernel Fuzzy Clustering on Image...Robust Adaptive Threshold Algorithm based on Kernel Fuzzy Clustering on Image...
Robust Adaptive Threshold Algorithm based on Kernel Fuzzy Clustering on Image...
Ā 
bayesImageS: an R package for Bayesian image analysis
bayesImageS: an R package for Bayesian image analysisbayesImageS: an R package for Bayesian image analysis
bayesImageS: an R package for Bayesian image analysis
Ā 
PERFORMANCE ANALYSIS OF TEXTURE IMAGE RETRIEVAL FOR CURVELET, CONTOURLET TRAN...
PERFORMANCE ANALYSIS OF TEXTURE IMAGE RETRIEVAL FOR CURVELET, CONTOURLET TRAN...PERFORMANCE ANALYSIS OF TEXTURE IMAGE RETRIEVAL FOR CURVELET, CONTOURLET TRAN...
PERFORMANCE ANALYSIS OF TEXTURE IMAGE RETRIEVAL FOR CURVELET, CONTOURLET TRAN...
Ā 
An Efficient System for Cancer Detection using Digital Mammograms
An Efficient System for Cancer Detection using Digital MammogramsAn Efficient System for Cancer Detection using Digital Mammograms
An Efficient System for Cancer Detection using Digital Mammograms
Ā 
Performance Analysis of CRT for Image Encryption
Performance Analysis of CRT for Image Encryption Performance Analysis of CRT for Image Encryption
Performance Analysis of CRT for Image Encryption
Ā 
Copy Move Forgery Detection Using GLCM Based Statistical Features
Copy Move Forgery Detection Using GLCM Based Statistical Features Copy Move Forgery Detection Using GLCM Based Statistical Features
Copy Move Forgery Detection Using GLCM Based Statistical Features
Ā 
Paper id 25201433
Paper id 25201433Paper id 25201433
Paper id 25201433
Ā 
Ensemble Classifications of Wavelets based GLCM Texture Feature from MR Human...
Ensemble Classifications of Wavelets based GLCM Texture Feature from MR Human...Ensemble Classifications of Wavelets based GLCM Texture Feature from MR Human...
Ensemble Classifications of Wavelets based GLCM Texture Feature from MR Human...
Ā 
Tissue Segmentation Methods Using 2D Histogram Matching in a Sequence of MR B...
Tissue Segmentation Methods Using 2D Histogram Matching in a Sequence of MR B...Tissue Segmentation Methods Using 2D Histogram Matching in a Sequence of MR B...
Tissue Segmentation Methods Using 2D Histogram Matching in a Sequence of MR B...
Ā 
Human detection in hours of
Human detection in hours ofHuman detection in hours of
Human detection in hours of
Ā 
VR / AR for Medical Application (ź°€ģƒķ˜„ģ‹¤ / ģ¦ź°•ķ˜„ģ‹¤ģ˜ ģ˜ė£Œ ģ‘ģš©)
VR / AR for Medical Application (ź°€ģƒķ˜„ģ‹¤ / ģ¦ź°•ķ˜„ģ‹¤ģ˜ ģ˜ė£Œ ģ‘ģš©)VR / AR for Medical Application (ź°€ģƒķ˜„ģ‹¤ / ģ¦ź°•ķ˜„ģ‹¤ģ˜ ģ˜ė£Œ ģ‘ģš©)
VR / AR for Medical Application (ź°€ģƒķ˜„ģ‹¤ / ģ¦ź°•ķ˜„ģ‹¤ģ˜ ģ˜ė£Œ ģ‘ģš©)
Ā 
Create lecture part 1 contours and texture
Create lecture part 1   contours and textureCreate lecture part 1   contours and texture
Create lecture part 1 contours and texture
Ā 
Neeta tiwari paper
Neeta tiwari paperNeeta tiwari paper
Neeta tiwari paper
Ā 

Similar to PyData London 2015 - Localising Organs of the Fetus in MRI Data Using Python

Iris Localization - a Biometric Approach Referring Daugman's Algorithm
Iris Localization - a Biometric Approach Referring Daugman's AlgorithmIris Localization - a Biometric Approach Referring Daugman's Algorithm
Iris Localization - a Biometric Approach Referring Daugman's AlgorithmEditor IJCATR
Ā 
Lec3: Pre-Processing Medical Images
Lec3: Pre-Processing Medical ImagesLec3: Pre-Processing Medical Images
Lec3: Pre-Processing Medical ImagesUlaş Bağcı
Ā 
2022 03 22_č””ē…’äæŠ_u-net_convolutional_networks_for_biomedical_image_segmentation
2022 03 22_č””ē…’äæŠ_u-net_convolutional_networks_for_biomedical_image_segmentation2022 03 22_č””ē…’äæŠ_u-net_convolutional_networks_for_biomedical_image_segmentation
2022 03 22_č””ē…’äæŠ_u-net_convolutional_networks_for_biomedical_image_segmentationKevinTsai67
Ā 
Lecture 8 (Stereo imaging) (Digital Image Processing)
Lecture 8 (Stereo imaging) (Digital Image Processing)Lecture 8 (Stereo imaging) (Digital Image Processing)
Lecture 8 (Stereo imaging) (Digital Image Processing)VARUN KUMAR
Ā 
A new method of gridding for spot detection in microarray images
A new method of gridding for spot detection in microarray imagesA new method of gridding for spot detection in microarray images
A new method of gridding for spot detection in microarray imagesAlexander Decker
Ā 
International Refereed Journal of Engineering and Science (IRJES)
International Refereed Journal of Engineering and Science (IRJES)International Refereed Journal of Engineering and Science (IRJES)
International Refereed Journal of Engineering and Science (IRJES)irjes
Ā 
TAO Fayan_X-Ray and MIP volume rendering
TAO Fayan_X-Ray and MIP volume renderingTAO Fayan_X-Ray and MIP volume rendering
TAO Fayan_X-Ray and MIP volume renderingFayan TAO
Ā 
Efficient Approach for Content Based Image Retrieval Using Multiple SVM in YA...
Efficient Approach for Content Based Image Retrieval Using Multiple SVM in YA...Efficient Approach for Content Based Image Retrieval Using Multiple SVM in YA...
Efficient Approach for Content Based Image Retrieval Using Multiple SVM in YA...csandit
Ā 
EFFICIENT APPROACH FOR CONTENT BASED IMAGE RETRIEVAL USING MULTIPLE SVM IN YA...
EFFICIENT APPROACH FOR CONTENT BASED IMAGE RETRIEVAL USING MULTIPLE SVM IN YA...EFFICIENT APPROACH FOR CONTENT BASED IMAGE RETRIEVAL USING MULTIPLE SVM IN YA...
EFFICIENT APPROACH FOR CONTENT BASED IMAGE RETRIEVAL USING MULTIPLE SVM IN YA...cscpconf
Ā 
8-13-2013LPPPresentation
8-13-2013LPPPresentation8-13-2013LPPPresentation
8-13-2013LPPPresentationZenaida Almodovar
Ā 
Brain Tumor Diagnosis using Image De Noising with Scale Invariant Feature Tra...
Brain Tumor Diagnosis using Image De Noising with Scale Invariant Feature Tra...Brain Tumor Diagnosis using Image De Noising with Scale Invariant Feature Tra...
Brain Tumor Diagnosis using Image De Noising with Scale Invariant Feature Tra...ijtsrd
Ā 
A Hybrid Technique for the Automated Segmentation of Corpus Callosum in Midsa...
A Hybrid Technique for the Automated Segmentation of Corpus Callosum in Midsa...A Hybrid Technique for the Automated Segmentation of Corpus Callosum in Midsa...
A Hybrid Technique for the Automated Segmentation of Corpus Callosum in Midsa...IJERA Editor
Ā 
RINKEL-ISOTDAQ2015.ppt
RINKEL-ISOTDAQ2015.pptRINKEL-ISOTDAQ2015.ppt
RINKEL-ISOTDAQ2015.pptvijaykumar382075
Ā 
fdocuments.in_image-texture-analysis.ppt
fdocuments.in_image-texture-analysis.pptfdocuments.in_image-texture-analysis.ppt
fdocuments.in_image-texture-analysis.pptsghorai
Ā 
SLIC Superpixel Based Self Organizing Maps Algorithm for Segmentation of Micr...
SLIC Superpixel Based Self Organizing Maps Algorithm for Segmentation of Micr...SLIC Superpixel Based Self Organizing Maps Algorithm for Segmentation of Micr...
SLIC Superpixel Based Self Organizing Maps Algorithm for Segmentation of Micr...IJAAS Team
Ā 
Enhanced Approach to Iris Normalization Using Circular Distribution for Iris ...
Enhanced Approach to Iris Normalization Using Circular Distribution for Iris ...Enhanced Approach to Iris Normalization Using Circular Distribution for Iris ...
Enhanced Approach to Iris Normalization Using Circular Distribution for Iris ...IJCSIS Research Publications
Ā 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)IJERD Editor
Ā 
Learning Object Detectors From Weakly Supervised Image Data
Learning Object Detectors From Weakly Supervised Image DataLearning Object Detectors From Weakly Supervised Image Data
Learning Object Detectors From Weakly Supervised Image DataYandex
Ā 
bayesImageS: Bayesian computation for medical Image Segmentation using a hidd...
bayesImageS: Bayesian computation for medical Image Segmentation using a hidd...bayesImageS: Bayesian computation for medical Image Segmentation using a hidd...
bayesImageS: Bayesian computation for medical Image Segmentation using a hidd...Matt Moores
Ā 

Similar to PyData London 2015 - Localising Organs of the Fetus in MRI Data Using Python (20)

Iris Localization - a Biometric Approach Referring Daugman's Algorithm
Iris Localization - a Biometric Approach Referring Daugman's AlgorithmIris Localization - a Biometric Approach Referring Daugman's Algorithm
Iris Localization - a Biometric Approach Referring Daugman's Algorithm
Ā 
Lec3: Pre-Processing Medical Images
Lec3: Pre-Processing Medical ImagesLec3: Pre-Processing Medical Images
Lec3: Pre-Processing Medical Images
Ā 
2022 03 22_č””ē…’äæŠ_u-net_convolutional_networks_for_biomedical_image_segmentation
2022 03 22_č””ē…’äæŠ_u-net_convolutional_networks_for_biomedical_image_segmentation2022 03 22_č””ē…’äæŠ_u-net_convolutional_networks_for_biomedical_image_segmentation
2022 03 22_č””ē…’äæŠ_u-net_convolutional_networks_for_biomedical_image_segmentation
Ā 
Lecture 8 (Stereo imaging) (Digital Image Processing)
Lecture 8 (Stereo imaging) (Digital Image Processing)Lecture 8 (Stereo imaging) (Digital Image Processing)
Lecture 8 (Stereo imaging) (Digital Image Processing)
Ā 
A new method of gridding for spot detection in microarray images
A new method of gridding for spot detection in microarray imagesA new method of gridding for spot detection in microarray images
A new method of gridding for spot detection in microarray images
Ā 
International Refereed Journal of Engineering and Science (IRJES)
International Refereed Journal of Engineering and Science (IRJES)International Refereed Journal of Engineering and Science (IRJES)
International Refereed Journal of Engineering and Science (IRJES)
Ā 
TAO Fayan_X-Ray and MIP volume rendering
TAO Fayan_X-Ray and MIP volume renderingTAO Fayan_X-Ray and MIP volume rendering
TAO Fayan_X-Ray and MIP volume rendering
Ā 
Efficient Approach for Content Based Image Retrieval Using Multiple SVM in YA...
Efficient Approach for Content Based Image Retrieval Using Multiple SVM in YA...Efficient Approach for Content Based Image Retrieval Using Multiple SVM in YA...
Efficient Approach for Content Based Image Retrieval Using Multiple SVM in YA...
Ā 
EFFICIENT APPROACH FOR CONTENT BASED IMAGE RETRIEVAL USING MULTIPLE SVM IN YA...
EFFICIENT APPROACH FOR CONTENT BASED IMAGE RETRIEVAL USING MULTIPLE SVM IN YA...EFFICIENT APPROACH FOR CONTENT BASED IMAGE RETRIEVAL USING MULTIPLE SVM IN YA...
EFFICIENT APPROACH FOR CONTENT BASED IMAGE RETRIEVAL USING MULTIPLE SVM IN YA...
Ā 
8-13-2013LPPPresentation
8-13-2013LPPPresentation8-13-2013LPPPresentation
8-13-2013LPPPresentation
Ā 
Brain Tumor Diagnosis using Image De Noising with Scale Invariant Feature Tra...
Brain Tumor Diagnosis using Image De Noising with Scale Invariant Feature Tra...Brain Tumor Diagnosis using Image De Noising with Scale Invariant Feature Tra...
Brain Tumor Diagnosis using Image De Noising with Scale Invariant Feature Tra...
Ā 
A Hybrid Technique for the Automated Segmentation of Corpus Callosum in Midsa...
A Hybrid Technique for the Automated Segmentation of Corpus Callosum in Midsa...A Hybrid Technique for the Automated Segmentation of Corpus Callosum in Midsa...
A Hybrid Technique for the Automated Segmentation of Corpus Callosum in Midsa...
Ā 
RINKEL-ISOTDAQ2015.ppt
RINKEL-ISOTDAQ2015.pptRINKEL-ISOTDAQ2015.ppt
RINKEL-ISOTDAQ2015.ppt
Ā 
fdocuments.in_image-texture-analysis.ppt
fdocuments.in_image-texture-analysis.pptfdocuments.in_image-texture-analysis.ppt
fdocuments.in_image-texture-analysis.ppt
Ā 
SLIC Superpixel Based Self Organizing Maps Algorithm for Segmentation of Micr...
SLIC Superpixel Based Self Organizing Maps Algorithm for Segmentation of Micr...SLIC Superpixel Based Self Organizing Maps Algorithm for Segmentation of Micr...
SLIC Superpixel Based Self Organizing Maps Algorithm for Segmentation of Micr...
Ā 
Enhanced Approach to Iris Normalization Using Circular Distribution for Iris ...
Enhanced Approach to Iris Normalization Using Circular Distribution for Iris ...Enhanced Approach to Iris Normalization Using Circular Distribution for Iris ...
Enhanced Approach to Iris Normalization Using Circular Distribution for Iris ...
Ā 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
Ā 
Learning Object Detectors From Weakly Supervised Image Data
Learning Object Detectors From Weakly Supervised Image DataLearning Object Detectors From Weakly Supervised Image Data
Learning Object Detectors From Weakly Supervised Image Data
Ā 
Computed Tomography Image Reconstruction in 3D VoxelSpace
Computed Tomography Image Reconstruction in 3D VoxelSpaceComputed Tomography Image Reconstruction in 3D VoxelSpace
Computed Tomography Image Reconstruction in 3D VoxelSpace
Ā 
bayesImageS: Bayesian computation for medical Image Segmentation using a hidd...
bayesImageS: Bayesian computation for medical Image Segmentation using a hidd...bayesImageS: Bayesian computation for medical Image Segmentation using a hidd...
bayesImageS: Bayesian computation for medical Image Segmentation using a hidd...
Ā 

More from Kevin Keraudren

Automatic Localisation of the Brain in Fetal MRI (Miccai 2013 poster)
Automatic Localisation of the Brain in Fetal MRI (Miccai 2013 poster)Automatic Localisation of the Brain in Fetal MRI (Miccai 2013 poster)
Automatic Localisation of the Brain in Fetal MRI (Miccai 2013 poster)Kevin Keraudren
Ā 
Automated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction (...
Automated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction (...Automated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction (...
Automated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction (...Kevin Keraudren
Ā 
Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...
Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...
Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...Kevin Keraudren
Ā 
Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...
Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...
Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...Kevin Keraudren
Ā 
Automatic Localisation of the Brain in Fetal MRI (Miccai 2013)
Automatic Localisation of the Brain in Fetal MRI (Miccai 2013)Automatic Localisation of the Brain in Fetal MRI (Miccai 2013)
Automatic Localisation of the Brain in Fetal MRI (Miccai 2013)Kevin Keraudren
Ā 
Segmenting Epithelial Cells in High-Throughput RNAi Screens (Miaab 2011)
Segmenting Epithelial Cells in High-Throughput RNAi Screens (Miaab 2011)Segmenting Epithelial Cells in High-Throughput RNAi Screens (Miaab 2011)
Segmenting Epithelial Cells in High-Throughput RNAi Screens (Miaab 2011)Kevin Keraudren
Ā 
Keraudren-K-2015-PhD-Thesis
Keraudren-K-2015-PhD-ThesisKeraudren-K-2015-PhD-Thesis
Keraudren-K-2015-PhD-ThesisKevin Keraudren
Ā 
PhD viva - 11th November 2015
PhD viva - 11th November 2015PhD viva - 11th November 2015
PhD viva - 11th November 2015Kevin Keraudren
Ā 
Automated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction
Automated Fetal Brain Segmentation from 2D MRI Slices for Motion CorrectionAutomated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction
Automated Fetal Brain Segmentation from 2D MRI Slices for Motion CorrectionKevin Keraudren
Ā 
Sparsity Based Spectral Embedding: Application to Multi-Atlas Echocardiograph...
Sparsity Based Spectral Embedding: Application to Multi-Atlas Echocardiograph...Sparsity Based Spectral Embedding: Application to Multi-Atlas Echocardiograph...
Sparsity Based Spectral Embedding: Application to Multi-Atlas Echocardiograph...Kevin Keraudren
Ā 
Endocardial 3D Ultrasound Segmentation using Autocontext Random ForestsPresen...
Endocardial 3D Ultrasound Segmentation using Autocontext Random ForestsPresen...Endocardial 3D Ultrasound Segmentation using Autocontext Random ForestsPresen...
Endocardial 3D Ultrasound Segmentation using Autocontext Random ForestsPresen...Kevin Keraudren
Ā 
Faceccrumbs: Manifold Learning on 1M Face Images, MSc group project
Faceccrumbs: Manifold Learning on 1M Face Images, MSc group projectFaceccrumbs: Manifold Learning on 1M Face Images, MSc group project
Faceccrumbs: Manifold Learning on 1M Face Images, MSc group projectKevin Keraudren
Ā 
Slides on Photosynth.net, from my MSc at Imperial
Slides on Photosynth.net, from my MSc at ImperialSlides on Photosynth.net, from my MSc at Imperial
Slides on Photosynth.net, from my MSc at ImperialKevin Keraudren
Ā 
Slides presented at the Steiner Unit, Hammersmith Hospital, 08/06/2012
Slides presented at the Steiner Unit, Hammersmith Hospital, 08/06/2012Slides presented at the Steiner Unit, Hammersmith Hospital, 08/06/2012
Slides presented at the Steiner Unit, Hammersmith Hospital, 08/06/2012Kevin Keraudren
Ā 
Reading group - 22/05/2013
Reading group - 22/05/2013Reading group - 22/05/2013
Reading group - 22/05/2013Kevin Keraudren
Ā 
Introduction to cython: example of GCoptimization
Introduction to cython: example of GCoptimizationIntroduction to cython: example of GCoptimization
Introduction to cython: example of GCoptimizationKevin Keraudren
Ā 
Segmenting Epithelial Cells in High-Throughput RNAi Screens (MIAAB 2011)
Segmenting Epithelial Cells in High-Throughput RNAi Screens (MIAAB 2011)Segmenting Epithelial Cells in High-Throughput RNAi Screens (MIAAB 2011)
Segmenting Epithelial Cells in High-Throughput RNAi Screens (MIAAB 2011)Kevin Keraudren
Ā 

More from Kevin Keraudren (17)

Automatic Localisation of the Brain in Fetal MRI (Miccai 2013 poster)
Automatic Localisation of the Brain in Fetal MRI (Miccai 2013 poster)Automatic Localisation of the Brain in Fetal MRI (Miccai 2013 poster)
Automatic Localisation of the Brain in Fetal MRI (Miccai 2013 poster)
Ā 
Automated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction (...
Automated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction (...Automated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction (...
Automated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction (...
Ā 
Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...
Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...
Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...
Ā 
Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...
Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...
Automated Localization of Fetal Organs in MRI Using Random Forests with Steer...
Ā 
Automatic Localisation of the Brain in Fetal MRI (Miccai 2013)
Automatic Localisation of the Brain in Fetal MRI (Miccai 2013)Automatic Localisation of the Brain in Fetal MRI (Miccai 2013)
Automatic Localisation of the Brain in Fetal MRI (Miccai 2013)
Ā 
Segmenting Epithelial Cells in High-Throughput RNAi Screens (Miaab 2011)
Segmenting Epithelial Cells in High-Throughput RNAi Screens (Miaab 2011)Segmenting Epithelial Cells in High-Throughput RNAi Screens (Miaab 2011)
Segmenting Epithelial Cells in High-Throughput RNAi Screens (Miaab 2011)
Ā 
Keraudren-K-2015-PhD-Thesis
Keraudren-K-2015-PhD-ThesisKeraudren-K-2015-PhD-Thesis
Keraudren-K-2015-PhD-Thesis
Ā 
PhD viva - 11th November 2015
PhD viva - 11th November 2015PhD viva - 11th November 2015
PhD viva - 11th November 2015
Ā 
Automated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction
Automated Fetal Brain Segmentation from 2D MRI Slices for Motion CorrectionAutomated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction
Automated Fetal Brain Segmentation from 2D MRI Slices for Motion Correction
Ā 
Sparsity Based Spectral Embedding: Application to Multi-Atlas Echocardiograph...
Sparsity Based Spectral Embedding: Application to Multi-Atlas Echocardiograph...Sparsity Based Spectral Embedding: Application to Multi-Atlas Echocardiograph...
Sparsity Based Spectral Embedding: Application to Multi-Atlas Echocardiograph...
Ā 
Endocardial 3D Ultrasound Segmentation using Autocontext Random ForestsPresen...
Endocardial 3D Ultrasound Segmentation using Autocontext Random ForestsPresen...Endocardial 3D Ultrasound Segmentation using Autocontext Random ForestsPresen...
Endocardial 3D Ultrasound Segmentation using Autocontext Random ForestsPresen...
Ā 
Faceccrumbs: Manifold Learning on 1M Face Images, MSc group project
Faceccrumbs: Manifold Learning on 1M Face Images, MSc group projectFaceccrumbs: Manifold Learning on 1M Face Images, MSc group project
Faceccrumbs: Manifold Learning on 1M Face Images, MSc group project
Ā 
Slides on Photosynth.net, from my MSc at Imperial
Slides on Photosynth.net, from my MSc at ImperialSlides on Photosynth.net, from my MSc at Imperial
Slides on Photosynth.net, from my MSc at Imperial
Ā 
Slides presented at the Steiner Unit, Hammersmith Hospital, 08/06/2012
Slides presented at the Steiner Unit, Hammersmith Hospital, 08/06/2012Slides presented at the Steiner Unit, Hammersmith Hospital, 08/06/2012
Slides presented at the Steiner Unit, Hammersmith Hospital, 08/06/2012
Ā 
Reading group - 22/05/2013
Reading group - 22/05/2013Reading group - 22/05/2013
Reading group - 22/05/2013
Ā 
Introduction to cython: example of GCoptimization
Introduction to cython: example of GCoptimizationIntroduction to cython: example of GCoptimization
Introduction to cython: example of GCoptimization
Ā 
Segmenting Epithelial Cells in High-Throughput RNAi Screens (MIAAB 2011)
Segmenting Epithelial Cells in High-Throughput RNAi Screens (MIAAB 2011)Segmenting Epithelial Cells in High-Throughput RNAi Screens (MIAAB 2011)
Segmenting Epithelial Cells in High-Throughput RNAi Screens (MIAAB 2011)
Ā 

Recently uploaded

Citronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyayCitronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyayupadhyaymani499
Ā 
Davis plaque method.pptx recombinant DNA technology
Davis plaque method.pptx recombinant DNA technologyDavis plaque method.pptx recombinant DNA technology
Davis plaque method.pptx recombinant DNA technologycaarthichand2003
Ā 
Volatile Oils Pharmacognosy And Phytochemistry -I
Volatile Oils Pharmacognosy And Phytochemistry -IVolatile Oils Pharmacognosy And Phytochemistry -I
Volatile Oils Pharmacognosy And Phytochemistry -INandakishor Bhaurao Deshmukh
Ā 
User Guide: Magellan MXā„¢ Weather Station
User Guide: Magellan MXā„¢ Weather StationUser Guide: Magellan MXā„¢ Weather Station
User Guide: Magellan MXā„¢ Weather StationColumbia Weather Systems
Ā 
User Guide: Pulsarā„¢ Weather Station (Columbia Weather Systems)
User Guide: Pulsarā„¢ Weather Station (Columbia Weather Systems)User Guide: Pulsarā„¢ Weather Station (Columbia Weather Systems)
User Guide: Pulsarā„¢ Weather Station (Columbia Weather Systems)Columbia Weather Systems
Ā 
(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)
(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)
(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)riyaescorts54
Ā 
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdfPests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdfPirithiRaju
Ā 
STOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptx
STOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptxSTOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptx
STOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptxMurugaveni B
Ā 
Vision and reflection on Mining Software Repositories research in 2024
Vision and reflection on Mining Software Repositories research in 2024Vision and reflection on Mining Software Repositories research in 2024
Vision and reflection on Mining Software Repositories research in 2024AyushiRastogi48
Ā 
Transposable elements in prokaryotes.ppt
Transposable elements in prokaryotes.pptTransposable elements in prokaryotes.ppt
Transposable elements in prokaryotes.pptArshadWarsi13
Ā 
BIOETHICS IN RECOMBINANT DNA TECHNOLOGY.
BIOETHICS IN RECOMBINANT DNA TECHNOLOGY.BIOETHICS IN RECOMBINANT DNA TECHNOLOGY.
BIOETHICS IN RECOMBINANT DNA TECHNOLOGY.PraveenaKalaiselvan1
Ā 
Base editing, prime editing, Cas13 & RNA editing and organelle base editing
Base editing, prime editing, Cas13 & RNA editing and organelle base editingBase editing, prime editing, Cas13 & RNA editing and organelle base editing
Base editing, prime editing, Cas13 & RNA editing and organelle base editingNetHelix
Ā 
Best Call Girls In Sector 29 Gurgaonā¤ļø8860477959 EscorTs Service In 24/7 Delh...
Best Call Girls In Sector 29 Gurgaonā¤ļø8860477959 EscorTs Service In 24/7 Delh...Best Call Girls In Sector 29 Gurgaonā¤ļø8860477959 EscorTs Service In 24/7 Delh...
Best Call Girls In Sector 29 Gurgaonā¤ļø8860477959 EscorTs Service In 24/7 Delh...lizamodels9
Ā 
Functional group interconversions(oxidation reduction)
Functional group interconversions(oxidation reduction)Functional group interconversions(oxidation reduction)
Functional group interconversions(oxidation reduction)itwameryclare
Ā 
Behavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdfBehavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdfSELF-EXPLANATORY
Ā 
Pests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdfPests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdfPirithiRaju
Ā 
Call Girls In Nihal Vihar Delhi ā¤ļø8860477959 Looking Escorts In 24/7 Delhi NCR
Call Girls In Nihal Vihar Delhi ā¤ļø8860477959 Looking Escorts In 24/7 Delhi NCRCall Girls In Nihal Vihar Delhi ā¤ļø8860477959 Looking Escorts In 24/7 Delhi NCR
Call Girls In Nihal Vihar Delhi ā¤ļø8860477959 Looking Escorts In 24/7 Delhi NCRlizamodels9
Ā 
Pests of Bengal gram_Identification_Dr.UPR.pdf
Pests of Bengal gram_Identification_Dr.UPR.pdfPests of Bengal gram_Identification_Dr.UPR.pdf
Pests of Bengal gram_Identification_Dr.UPR.pdfPirithiRaju
Ā 
Good agricultural practices 3rd year bpharm. herbal drug technology .pptx
Good agricultural practices 3rd year bpharm. herbal drug technology .pptxGood agricultural practices 3rd year bpharm. herbal drug technology .pptx
Good agricultural practices 3rd year bpharm. herbal drug technology .pptxSimeonChristian
Ā 

Recently uploaded (20)

Citronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyayCitronella presentation SlideShare mani upadhyay
Citronella presentation SlideShare mani upadhyay
Ā 
Hot Sexy call girls in Moti Nagar,šŸ” 9953056974 šŸ” escort Service
Hot Sexy call girls in  Moti Nagar,šŸ” 9953056974 šŸ” escort ServiceHot Sexy call girls in  Moti Nagar,šŸ” 9953056974 šŸ” escort Service
Hot Sexy call girls in Moti Nagar,šŸ” 9953056974 šŸ” escort Service
Ā 
Davis plaque method.pptx recombinant DNA technology
Davis plaque method.pptx recombinant DNA technologyDavis plaque method.pptx recombinant DNA technology
Davis plaque method.pptx recombinant DNA technology
Ā 
Volatile Oils Pharmacognosy And Phytochemistry -I
Volatile Oils Pharmacognosy And Phytochemistry -IVolatile Oils Pharmacognosy And Phytochemistry -I
Volatile Oils Pharmacognosy And Phytochemistry -I
Ā 
User Guide: Magellan MXā„¢ Weather Station
User Guide: Magellan MXā„¢ Weather StationUser Guide: Magellan MXā„¢ Weather Station
User Guide: Magellan MXā„¢ Weather Station
Ā 
User Guide: Pulsarā„¢ Weather Station (Columbia Weather Systems)
User Guide: Pulsarā„¢ Weather Station (Columbia Weather Systems)User Guide: Pulsarā„¢ Weather Station (Columbia Weather Systems)
User Guide: Pulsarā„¢ Weather Station (Columbia Weather Systems)
Ā 
(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)
(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)
(9818099198) Call Girls In Noida Sector 14 (NOIDA ESCORTS)
Ā 
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdfPests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Pests of Blackgram, greengram, cowpea_Dr.UPR.pdf
Ā 
STOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptx
STOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptxSTOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptx
STOPPED FLOW METHOD & APPLICATION MURUGAVENI B.pptx
Ā 
Vision and reflection on Mining Software Repositories research in 2024
Vision and reflection on Mining Software Repositories research in 2024Vision and reflection on Mining Software Repositories research in 2024
Vision and reflection on Mining Software Repositories research in 2024
Ā 
Transposable elements in prokaryotes.ppt
Transposable elements in prokaryotes.pptTransposable elements in prokaryotes.ppt
Transposable elements in prokaryotes.ppt
Ā 
BIOETHICS IN RECOMBINANT DNA TECHNOLOGY.
BIOETHICS IN RECOMBINANT DNA TECHNOLOGY.BIOETHICS IN RECOMBINANT DNA TECHNOLOGY.
BIOETHICS IN RECOMBINANT DNA TECHNOLOGY.
Ā 
Base editing, prime editing, Cas13 & RNA editing and organelle base editing
Base editing, prime editing, Cas13 & RNA editing and organelle base editingBase editing, prime editing, Cas13 & RNA editing and organelle base editing
Base editing, prime editing, Cas13 & RNA editing and organelle base editing
Ā 
Best Call Girls In Sector 29 Gurgaonā¤ļø8860477959 EscorTs Service In 24/7 Delh...
Best Call Girls In Sector 29 Gurgaonā¤ļø8860477959 EscorTs Service In 24/7 Delh...Best Call Girls In Sector 29 Gurgaonā¤ļø8860477959 EscorTs Service In 24/7 Delh...
Best Call Girls In Sector 29 Gurgaonā¤ļø8860477959 EscorTs Service In 24/7 Delh...
Ā 
Functional group interconversions(oxidation reduction)
Functional group interconversions(oxidation reduction)Functional group interconversions(oxidation reduction)
Functional group interconversions(oxidation reduction)
Ā 
Behavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdfBehavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdf
Ā 
Pests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdfPests of jatropha_Bionomics_identification_Dr.UPR.pdf
Pests of jatropha_Bionomics_identification_Dr.UPR.pdf
Ā 
Call Girls In Nihal Vihar Delhi ā¤ļø8860477959 Looking Escorts In 24/7 Delhi NCR
Call Girls In Nihal Vihar Delhi ā¤ļø8860477959 Looking Escorts In 24/7 Delhi NCRCall Girls In Nihal Vihar Delhi ā¤ļø8860477959 Looking Escorts In 24/7 Delhi NCR
Call Girls In Nihal Vihar Delhi ā¤ļø8860477959 Looking Escorts In 24/7 Delhi NCR
Ā 
Pests of Bengal gram_Identification_Dr.UPR.pdf
Pests of Bengal gram_Identification_Dr.UPR.pdfPests of Bengal gram_Identification_Dr.UPR.pdf
Pests of Bengal gram_Identification_Dr.UPR.pdf
Ā 
Good agricultural practices 3rd year bpharm. herbal drug technology .pptx
Good agricultural practices 3rd year bpharm. herbal drug technology .pptxGood agricultural practices 3rd year bpharm. herbal drug technology .pptx
Good agricultural practices 3rd year bpharm. herbal drug technology .pptx
Ā 

PyData London 2015 - Localising Organs of the Fetus in MRI Data Using Python

  • 1. Automated Organ Localisation in Fetal Magnetic Resonance Imaging K. Keraudren1, B. Kainz1, O. Oktay1, M. Kuklisova-Murgasova2, V. Kyriakopoulou2, C. Malamateniou2, M. Rutherford2, J. V. Hajnal2 and D. Rueckert1 1 Biomedical Image Analysis Group, Imperial College London 2 Department Biomedical Engineering, Kingā€™s College London PyData London 2015
  • 2. 1) Background: Fetal Magnetic Resonance Imaging Python for medical imaging 2) Localising the brain of the fetus 3) Localising the body of the fetus
  • 4. Magnetic Resonance Imaging (MRI) MRI scanner Source: Wikimedia Commons Huge magnet (1.5T) Safe: no ionising radiations High quality images Slow acquisition process 4
  • 5. Challenges in fetal MRI 1 Fetal motion 2 Arbitrary orientation of the fetus 3 Variability due to fetal growth 5
  • 6. Fast MRI acquisition methods MRI data is acquired as stacks of 2D slices that freeze in-plane motion but form an incoherent 3D volume. 6
  • 7. Retrospective motion correction Orthogonal stacks of misaligned 2D slices 3D volume Localising fetal organs can be used to initialise motion correction. B. Kainz et al., ā€œFast Volume Reconstruction from Motion Corrupted Stacks of 2D Slices,ā€ in IEEE Transactions on Medical Imaging, 2015. 7
  • 8. Retrospective motion correction Orthogonal stacks of misaligned 2D slices 3D volume Localising fetal organs can be used to initialise motion correction. B. Kainz et al., ā€œFast Volume Reconstruction from Motion Corrupted Stacks of 2D Slices,ā€ in IEEE Transactions on Medical Imaging, 2015. 8
  • 11. Interfacing IRTK through Cython What is a medical image? 4D volume of voxel data (X, Y, Z, T) Spatial information: ImageToWorld and WorldToImage Why the Image Registration Toolkit (IRTK)? Same backend as my colleagues: same conventions same features & bugs State-of-the-art algorithms for aligning images github.com/BioMedIA/IRTK 11
  • 12. Interfacing IRTK through Cython Solution: Subclass numpy arrays Dictionary attribute holding: dimension, orientation, origin and pixel size Access IRTK through cython Additional beneļ¬ts: __getitem__ overloaded to update coordinates when cropping/slicing Coordinates preserved when resampling/aligning images conda install -c kevin-keraudren python-irtk github.com/BioMedIA/python-irtk 12
  • 13. Interfacing IRTK through Cython template <class dtype> void irtk2py( irtkGenericImage<dtype>& irtk_image, dtype* img, double* pixelSize, double* xAxis, double* yAxis, double* zAxis, double* origin, int* dim ); 13
  • 14. Machine learning for organ localisation
  • 15. Machine learning approach to organ localisation Learning from annotated examples Generalise from training database to new subjects Implicitly model variability: age pose (articulated body) maternal tissues Small dataset limits capacity to model all age categories: Infer size from gestational age 15
  • 16. Training data: fetal brain 59 healthy fetuses, 450 stacks Annotated boxes for the brain github.com/kevin-keraudren/crop-boxes-3D 16
  • 17. Training data: full body 30 healthy & 25 IUGR fetuses Manual segmentations: brain, heart, lungs, liver and kidneys M. Damodaram et al., ā€œFoetal Volumetry using Magnetic Resonance Imaging in Intrauterine Growth Restriction,ā€ in Early Human Development, 2012. 17
  • 19. 19
  • 20. 20
  • 22. Detect MSER regions Classify using SIFT features 22
  • 23. Filter by size Classify using SVM & histograms of SIFT features 23
  • 24. Fit a box with RANSAC 24
  • 25. Size constraints for brain detection OFDOFD BPDBPD 14 19 24 29 34 39 Gestational Age 20 40 60 80 100 120 140 mm Occipitofrontal diameter median 5th/95th centile 14 19 24 29 34 39 Gestational Age 0 20 40 60 80 100 120 140 mm Biparietal diameter median 5th/95th centile 25
  • 26. Localisation results for the fetal brain >70% Ground truth Detection Median error: 5.7 mm >70% of the brain: 100% Complete brain: 85% Size inferred from gestational age Runtime: <1min (desktop PC) 26
  • 27. Localisation results for the fetal brain >70% Ground truth Detection Median error: 5.7 mm >70% of the brain: 100% Complete brain: 85% Size inferred from gestational age Runtime: <1min (desktop PC) 27
  • 28. Localising the body of the fetus
  • 29. 29
  • 30. 30
  • 31. Localising the body of the fetus Brain largest organ, ellipsoidal shape Lungs & liver irregular shape Motivates 3D approach despite motion corruption (only coarse localisation) 31
  • 32. Localising the body of the fetus 1) Size normalisation based on gestational age 2) Sequential localisation of fetal organs 3) Image features steered by the fetal anatomy 32
  • 33. Size normalisation 24 weeks 30 weeks 38 weeks 20 25 30 35 40 Gestational age 0 20 40 60 80 100 120 140 Heart-braindistanceinmm Scanner coordinates Healthy IUGR R1, R2 A single model can be trained across all gestational ages. 33
  • 34. Size normalisation 24 weeks 30 weeks 38 weeks 20 25 30 35 40 Gestational age 0 20 40 60 80 100 120 140 Heart-braindistanceinvoxels Image grid Healthy IUGR R1, R2 A single model can be trained across all gestational ages. 33
  • 35. Size normalisation The crown-rump length (CRL), estimated from the gestational age, is used to normalise the size of the fetus. CRLCRL 12 17 22 27 32 37 42 Gestational age 50 100 150 200 250 300 350 400 450 mm Crown-rump length median 5th / 95th centile Resampling factor: CRLga/CRL30 34
  • 36. Sequential search R1R1 R2R2 The heart lies between two spheres of radii R1 and R2 centered on the brain. The lungs and liver lie inside a sphere of radius R3 centered on the heart. R1, R2 and R3 are independent of gestational age thanks to size normalisation. 35
  • 37. Sequential search R 3 R 3 The heart lies between two spheres of radii R1 and R2 centered on the brain. The lungs and liver lie inside a sphere of radius R3 centered on the heart. R1, R2 and R3 are independent of gestational age thanks to size normalisation. 35
  • 38. Sequential search R1R1 R2R2 R 3 R 3 The heart lies between two spheres of radius R1 and R2 centered on the brain. The lungs and liver lie inside a sphere of radius R3 centered on the heart. R1, R2 and R3 are independent of gestational age thanks to size normalisation. 35
  • 39. Image descriptor built from rectangle features BB AA if Āµ(IA) > Āµ(IB) then 1 else 0 1 36
  • 40. Image descriptor built from rectangle features BB AA if Āµ(IA) > Āµ(IB) then 1 else 0 1 1 36
  • 41. Image descriptor built from rectangle features BB AA if Āµ(IA) > Āµ(IB) then 1 else 0 1 1 0 36
  • 42. Image descriptor built from rectangle features BBAA if Āµ(IA) > Āµ(IB) then 1 else 0 1 1 0 1 36
  • 43. Image descriptor built from rectangle features BB AA if Āµ(IA) > Āµ(IB) then 1 else 0 1 1 0 1 0 ... 36
  • 44. Integral image for axis-aligned cube features ii(x,y) = āˆ‘ x ā‰¤x,y ā‰¤y I(x ,y ) i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0) 1 2 3 4 A B C D 1 = A 2 = A+B 3 = A+C 4 = A+B+C +D D = 4āˆ’3āˆ’2+1 Compute the sum of pixels over an image patch independently of the patch size: In 2D, 4 table lookups In 3D, 8 table lookups 37
  • 45. Integral image for axis-aligned cube features ii(x,y) = āˆ‘ x ā‰¤x,y ā‰¤y I(x ,y ) i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0) 1 2 3 4 A B C D 1 = A 2 = A+B 3 = A+C 4 = A+B+C +D D = 4āˆ’3āˆ’2+1 Compute the sum of pixels over an image patch independently of the patch size: In 2D, 4 table lookups In 3D, 8 table lookups 37
  • 46. Integral image for axis-aligned cube features ii(x,y) = āˆ‘ x ā‰¤x,y ā‰¤y I(x ,y ) i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0) 1 2 3 4 A B C D 1 = A 2 = A+B 3 = A+C 4 = A+B+C +D D = 4āˆ’3āˆ’2+1 Compute the sum of pixels over an image patch independently of the patch size: In 2D, 4 table lookups In 3D, 8 table lookups 37
  • 47. Integral image for axis-aligned cube features ii(x,y) = āˆ‘ x ā‰¤x,y ā‰¤y I(x ,y ) i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0) 1 2 3 4 A B C D 1 = A 2 = A+B 3 = A+C 4 = A+B+C +D D = 4āˆ’3āˆ’2+1 Compute the sum of pixels over an image patch independently of the patch size: In 2D, 4 table lookups In 3D, 8 table lookups 37
  • 48. Integral image for axis-aligned cube features ii(x,y) = āˆ‘ x ā‰¤x,y ā‰¤y I(x ,y ) i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0) 1 2 3 4 A B C D 1 = A 2 = A+B 3 = A+C 4 = A+B+C +D D = 4āˆ’3āˆ’2+1 Compute the sum of pixels over an image patch independently of the patch size: In 2D, 4 table lookups In 3D, 8 table lookups 37
  • 49. Integral image for axis-aligned cube features ii(x,y) = āˆ‘ x ā‰¤x,y ā‰¤y I(x ,y ) i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0) 1 2 3 4 A B C D 1 = A 2 = A+B 3 = A+C 4 = A+B+C +D D = 4āˆ’3āˆ’2+1 Compute the sum of pixels over an image patch independently of the patch size: In 2D, 4 table lookups In 3D, 8 table lookups 37
  • 50. Integral image for axis-aligned cube features ii(x,y) = āˆ‘ x ā‰¤x,y ā‰¤y I(x ,y ) i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0) 1 2 3 4 A B C D 1 = A 2 = A+B 3 = A+C 4 = A+B+C +D D = 4āˆ’3āˆ’2+1 Compute the sum of pixels over an image patch independently of the patch size: In 2D, 4 table lookups In 3D, 8 table lookups 37
  • 51. Integral image for axis-aligned cube features ii(x,y) = āˆ‘ x ā‰¤x,y ā‰¤y I(x ,y ) i_img = np.cumsum(np.cumsum(np.cumsum(img,2),1),0) 1 2 3 4 A B C D 1 = A 2 = A+B 3 = A+C 4 = A+B+C +D D = 4āˆ’3āˆ’2+1 Compute the sum of pixels over an image patch independently of the patch size: In 2D, 4 table lookups In 3D, 8 table lookups 37
  • 52. Steerable features At training time, 3D features are extracted in a coordinate system aligned with the fetal anatomy. 38 u0u0v0v0
  • 53. Steerable features At test time, 3D features are extracted in a rotated coordinate system: the brain ļ¬xes a point Pu randomly oriented while the heart ļ¬xes an axis. 39 uu vv
  • 54. Steerable features At test time, 3D features are extracted in a rotated coordinate system: the brain ļ¬xes a point Pu randomly oriented while the heart ļ¬xes an axis. 40 uu vv
  • 55. Classiļ¬cation then regression: heart Classiļ¬cationClassiļ¬cation J. Gall and V. Lempitsky, ā€œClass-speciļ¬c Hough Forests for Object Detection,ā€ in CVPR, 2009. 41
  • 56. Classiļ¬cation then regression: heart RegressionRegression J. Gall and V. Lempitsky, ā€œClass-speciļ¬c Hough Forests for Object Detection,ā€ in CVPR, 2009. 42
  • 57. Classiļ¬cation then regression: heart RegressionRegression J. Gall and V. Lempitsky, ā€œClass-speciļ¬c Hough Forests for Object Detection,ā€ in CVPR, 2009. 43
  • 58. Classiļ¬cation then regression: lungs & liver Classiļ¬cationClassiļ¬cation J. Gall and V. Lempitsky, ā€œClass-speciļ¬c Hough Forests for Object Detection,ā€ in CVPR, 2009. 44
  • 59. Classiļ¬cation then regression: lungs & liver RegressionRegression J. Gall and V. Lempitsky, ā€œClass-speciļ¬c Hough Forests for Object Detection,ā€ in CVPR, 2009. 45
  • 60. Spatial optimization of candidate organs brainbrain heartheart Sagittal plane liverliver Coronal plane left lungleft lung rightright lunglung Transverse plane For each candidate location for the heart, hypotheses are formulated for the position of the lungs & liver. The ļ¬nal detection is obtained by maximizing: the regression votes p(xl) the relative positions of organs, modeled as Gaussian distributions (ĀÆxl,Ī£l). āˆ‘ lāˆˆL Ī»p(xl)+(1āˆ’Ī»)eāˆ’1 2 (xlāˆ’ĀÆxl) Ī£āˆ’1 l (xlāˆ’ĀÆxl) l āˆˆ L = { heart, left lung, right lung, liver } 46
  • 61. Implementation: training # predefined set of cube features offsets = np.random.randint( -o_size, o_size+1, size=(n_tests,3) ) sizes = np.random.randint( 0, d_size+1, size=(n_tests,1) ) X = [] Y = [] for l in range(nb_labels): pixels = np.argwhere(np.logical_and(narrow_band>0,seg==l)) pixels = pixels[np.random.randint( 0, pixels.shape[0], n_samples)] u,v,w = get_orientation_training( pixels, organ_centers ) x = extract_features( pixels, w, v, u ) y = seg[pixels[:,0], pixels[:,1], pixels[:,2]] X.extend(x) Y.extend(y) clf = RandomForestClassifier(n_estimators=100) # scikit-learn clf.fit(X,Y) 47
  • 62. Implementation: training # predefined set of cube features offsets = np.random.randint( -o_size, o_size+1, size=(n_tests,3) ) sizes = np.random.randint( 0, d_size+1, size=(n_tests,1) ) X = [] Y = [] for l in range(nb_labels): pixels = np.argwhere(np.logical_and(narrow_band>0,seg==l)) pixels = pixels[np.random.randint( 0, pixels.shape[0], n_samples)] u,v,w = get_orientation_training( pixels, organ_centers ) x = extract_features( pixels, w, v, u ) y = seg[pixels[:,0], pixels[:,1], pixels[:,2]] X.extend(x) Y.extend(y) clf = RandomForestClassifier(n_estimators=100) # scikit-learn clf.fit(X,Y) 47
  • 63. Implementation: training # predefined set of cube features offsets = np.random.randint( -o_size, o_size+1, size=(n_tests,3) ) sizes = np.random.randint( 0, d_size+1, size=(n_tests,1) ) X = [] Y = [] for l in range(nb_labels): pixels = np.argwhere(np.logical_and(narrow_band>0,seg==l)) pixels = pixels[np.random.randint( 0, pixels.shape[0], n_samples)] u,v,w = get_orientation_training( pixels, organ_centers ) x = extract_features( pixels, w, v, u ) y = seg[pixels[:,0], pixels[:,1], pixels[:,2]] X.extend(x) Y.extend(y) clf = RandomForestClassifier(n_estimators=100) # scikit-learn clf.fit(X,Y) 47
  • 64. Implementation: training # predefined set of cube features offsets = np.random.randint( -o_size, o_size+1, size=(n_tests,3) ) sizes = np.random.randint( 0, d_size+1, size=(n_tests,1) ) X = [] Y = [] for l in range(nb_labels): pixels = np.argwhere(np.logical_and(narrow_band>0,seg==l)) pixels = pixels[np.random.randint( 0, pixels.shape[0], n_samples)] u,v,w = get_orientation_training( pixels, organ_centers ) x = extract_features( pixels, w, v, u ) y = seg[pixels[:,0], pixels[:,1], pixels[:,2]] X.extend(x) Y.extend(y) clf = RandomForestClassifier(n_estimators=100) # scikit-learn clf.fit(X,Y) 47
  • 65. Implementation: testing def get_orientation( brain, pixels ): u = brain - pixels u /= np.linalg.norm( u, axis=1 )[...,np.newaxis] # np.random.rand() returns random floats in the interval [0;1[ v = 2*np.random.rand( pixels.shape[0], 3 ) - 1 v -= (v*u).sum(axis=1)[...,np.newaxis]*u v /= np.linalg.norm( v, axis=1 )[...,np.newaxis] w = np.cross( u, v ) # u and v are perpendicular unit vectors # so ||w|| = 1 return u, v, w Brain Pixel u v w 48
  • 66. Implementation: testing def get_orientation( brain, pixels ): u = brain - pixels u /= np.linalg.norm( u, axis=1 )[...,np.newaxis] # np.random.rand() returns random floats in the interval [0;1[ v = 2*np.random.rand( pixels.shape[0], 3 ) - 1 v -= (v*u).sum(axis=1)[...,np.newaxis]*u v /= np.linalg.norm( v, axis=1 )[...,np.newaxis] w = np.cross( u, v ) # u and v are perpendicular unit vectors # so ||w|| = 1 return u, v, w Brain Pixel u v w 48
  • 67. Implementation: testing def get_orientation( brain, pixels ): u = brain - pixels u /= np.linalg.norm( u, axis=1 )[...,np.newaxis] # np.random.rand() returns random floats in the interval [0;1[ v = 2*np.random.rand( pixels.shape[0], 3 ) - 1 v -= (v*u).sum(axis=1)[...,np.newaxis]*u v /= np.linalg.norm( v, axis=1 )[...,np.newaxis] w = np.cross( u, v ) # u and v are perpendicular unit vectors # so ||w|| = 1 return u, v, w Brain Pixel u v w 48
  • 68. Implementation: testing def get_orientation( brain, pixels ): u = brain - pixels u /= np.linalg.norm( u, axis=1 )[...,np.newaxis] # np.random.rand() returns random floats in the interval [0;1[ v = 2*np.random.rand( pixels.shape[0], 3 ) - 1 v -= (v*u).sum(axis=1)[...,np.newaxis]*u v /= np.linalg.norm( v, axis=1 )[...,np.newaxis] w = np.cross( u, v ) # u and v are perpendicular unit vectors # so ||w|| = 1 return u, v, w Brain Pixel u v w 48
  • 69. Implementation: testing def get_orientation( brain, pixels ): u = brain - pixels u /= np.linalg.norm( u, axis=1 )[...,np.newaxis] # np.random.rand() returns random floats in the interval [0;1[ v = 2*np.random.rand( pixels.shape[0], 3 ) - 1 v -= (v*u).sum(axis=1)[...,np.newaxis]*u v /= np.linalg.norm( v, axis=1 )[...,np.newaxis] w = np.cross( u, v ) # u and v are perpendicular unit vectors # so ||w|| = 1 return u, v, w Brain Pixel u v w 48
  • 70. Implementation: testing def get_orientation( brain, pixels ): u = brain - pixels u /= np.linalg.norm( u, axis=1 )[...,np.newaxis] # np.random.rand() returns random floats in the interval [0;1[ v = 2*np.random.rand( pixels.shape[0], 3 ) - 1 v -= (v*u).sum(axis=1)[...,np.newaxis]*u v /= np.linalg.norm( v, axis=1 )[...,np.newaxis] w = np.cross( u, v ) # u and v are perpendicular unit vectors # so ||w|| = 1 return u, v, w Brain Pixel u v w 48
  • 71. Implementation: testing def get_orientation( brain, pixels ): u = brain - pixels u /= np.linalg.norm( u, axis=1 )[...,np.newaxis] # np.random.rand() returns random floats in the interval [0;1[ v = 2*np.random.rand( pixels.shape[0], 3 ) - 1 v -= (v*u).sum(axis=1)[...,np.newaxis]*u v /= np.linalg.norm( v, axis=1 )[...,np.newaxis] w = np.cross( u, v ) # u and v are perpendicular unit vectors # so ||w|| = 1 return u, v, w Brain Pixel u v w 48
  • 72. Implementation: testing img = irtk.imread(...) # Python interface to IRTK proba = irtk.zeros(img.get_header(),dtype=ā€™float32ā€™) ... pixels = np.argwhere(narrow_band>0) u,v,w = get_orientation(brain_center,pixels) # img is 3D so all features cannot fit in memory at once: # use chunks for i in xrange(0,pixels.shape[0],chunk_size): j = min(i+chunk_size,pixels.shape[0]) x = extract_features( pixels[i:j],w[i:j],v[i:j],u[i:j]) pr = clf_heart.predict_proba(x) for dim in xrange(nb_labels): proba[dim, pixels[i:j,0], pixels[i:j,1], pixels[i:j,2]] = pr[:,dim] 49
  • 73. Implementation: testing img = irtk.imread(...) # Python interface to IRTK proba = irtk.zeros(img.get_header(),dtype=ā€™float32ā€™) ... pixels = np.argwhere(narrow_band>0) u,v,w = get_orientation(brain_center,pixels) # img is 3D so all features cannot fit in memory at once: # use chunks for i in xrange(0,pixels.shape[0],chunk_size): j = min(i+chunk_size,pixels.shape[0]) x = extract_features( pixels[i:j],w[i:j],v[i:j],u[i:j]) pr = clf_heart.predict_proba(x) for dim in xrange(nb_labels): proba[dim, pixels[i:j,0], pixels[i:j,1], pixels[i:j,2]] = pr[:,dim] 49
  • 74. Localisation results for the fetal organs 1st dataset: 30 healthy & 25 IUGR fetuses, no motion, uterus scan 2nd dataset: 64 healthy fetuses, motion artefacts, brain scan Heart Left lung Right lung Liver 1st dataset: healthy 90% 97% 97% 90% 1st dataset: IUGR 92% 60% 80% 76% 2nd dataset 83% 78% 83% 67% Runtime: 15min (24 cores, 128GB RAM) 50
  • 75. How to reduce the runtime? tweak parameters: #trees, #features, evaluate every two pixels, ... Use a Random Forest implementation for sliding windows struct SlidingWindow { pixeltype* img; int shape0, shape1, shape2; int x,y,z; void set ( int _x, int _y, int _z ); pixeltype mean( int cx, int cy, int cz, int dx, int dy, int dz ); } template <class PointType, class TestType> class RandomForest; 51
  • 77.
  • 79. Conclusion Automated localisation of fetal organs in MRI using Python: Brain, heart, lungs & liver Training one model across all ages and orientations MSER & SIFT from OpenCV Image processing from scikit-image & scipy.ndimage SVM and Random Forest from scikit-learn And Cython for interfacing with C++ 55
  • 80. Thanks! For more information and source code: www.doc.ic.ac.uk/~kpk09/ github.com/kevin-keraudren