Comments (17)
sounds more like an ANTs issue - but either way we need to know more about
your platform, compiler, etc.
brian
On Tue, Mar 10, 2015 at 10:47 AM, Stefan Schlager [email protected]
wrote:
I installed the latest ANTsR version from github and noticed that
selecting any affine transform causes a segfault. I checked using the
command line tool built in src/antb against an older version from
2014-09-29 that works:
old version (runs fine):~/GIT/DEV/ANTSbuild/bin/antsRegistration -d 3 -m mattes[skull1.mha,skull2.mha,1,32,Regular,0.1] -t rigid[ 1.0 ] -c [1000x100x10,1e-8,20] -s 4x2x1vox -f 3x2x1 -u 1 -o [skull1.mha_fixed_skull1.mha_moving_custom,skull1.mha_fixed_skull1.mha_moving_custom_diff.nii.gz,skull1.mha_fixed_skull1.mha_moving_custom_inv.nii.gz]
new version:
~/GIT/DEV/ANTsR/src/antb/bin/antsRegistration -d 3 -m mattes[skull1.mha,skull2.mha,1,32,Regular,0.1] -t rigid[ 1.0 ] -c [1000x100x10,1e-8,20] -s 4x2x1vox -f 3x2x1 -u 1 -o [skull1.mha_fixed_skull1.mha_moving_custom,skull1.mha_fixed_skull1.mha_moving_custom_diff.nii.gz,skull1.mha_fixed_skull1.mha_moving_custom_inv.nii.gz]
fails with
All_Command_lines_OK
Using double precision for computations.
number of levels = 3
fixed image: skull1.mha
moving image: skull2.mha
Dimension = 3
Number of stages = 1
Use Histogram Matching true
Winsorize image intensities false
Lower quantile = 0
Upper quantile = 1
Stage 1 State
Image metric = Mattes
Fixed image = Image (0x3c44700)
RTTI typeinfo: itk::Image<double, 3u>
Reference Count: 2
Modified Time: 639
Debug: Off
Object Name:
Observers:
none
Source: (none)
Source output name: (none)
Release Data: Off
Data Released: False
Global Release Data: Off
PipelineMTime: 0
UpdateMTime: 448
RealTimeStamp: 0 seconds
LargestPossibleRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [117, 157, 170]
BufferedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [117, 157, 170]
RequestedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [117, 157, 170]
Spacing: [1.5, 1.5, 1.5]
Origin: [-88.5114, -114.68, -157.958]
Direction:
1 0 0
0 1 0
0 0 1IndexToPointMatrix:
1.5 0 0
0 1.5 0
0 0 1.5PointToIndexMatrix:
0.666667 0 0
0 0.666667 0
0 0 0.666667Inverse Direction:
1 0 0
0 1 0
0 0 1PixelContainer:
ImportImageContainer (0x3c449c0)
RTTI typeinfo: itk::ImportImageContainer<unsigned long, double>
Reference Count: 1
Modified Time: 445
Debug: Off
Object Name:
Observers:
none
Pointer: 0x7f131f95b010
Container manages memory: true
Size: 3122730
Capacity: 3122730Moving image = Image (0x3c48710)
RTTI typeinfo: itk::Image<double, 3u>
Reference Count: 2
Modified Time: 640
Debug: Off
Object Name:
Observers:
none
Source: (none)
Source output name: (none)
Release Data: Off
Data Released: False
Global Release Data: Off
PipelineMTime: 0
UpdateMTime: 637
RealTimeStamp: 0 seconds
LargestPossibleRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [121, 148, 155]
BufferedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [121, 148, 155]
RequestedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [121, 148, 155]
Spacing: [1.5, 1.5, 1.5]
Origin: [-85.1487, -103.461, -145.826]
Direction:
1 0 0
0 1 0
0 0 1IndexToPointMatrix:
1.5 0 0
0 1.5 0
0 0 1.5PointToIndexMatrix:
0.666667 0 0
0 0.666667 0
0 0 0.666667Inverse Direction:
1 0 0
0 1 0
0 0 1PixelContainer:
ImportImageContainer (0x3c49c30)
RTTI typeinfo: itk::ImportImageContainer<unsigned long, double>
Reference Count: 1
Modified Time: 634
Debug: Off
Object Name:
Observers:
none
Pointer: 0x7f131e42d010
Container manages memory: true
Size: 2775740
Capacity: 2775740Weighting = 1 Sampling strategy = regular Number of bins = 32 Radius = 4 Sampling percentage = 0.1
Transform = Rigid
Gradient step = 1
Update field sigma (voxel space) = 0
Total field sigma (voxel space) = 0
Update field time sigma = 0
Total field time sigma = 0
Number of time indices = 0
Number of time point samples = 0
Registration using 1 total stages.Stage 0
iterations = 1000x100x10
convergence threshold = 1e-08
convergence window size = 20
number of levels = 3
using the Mattes MI metric (number of bins = 32, weight = 1)
preprocessing: histogram matching the images
Shrink factors (level 1 out of 3): [3, 3, 3]
Shrink factors (level 2 out of 3): [2, 2, 2]
Shrink factors (level 3 out of 3): [1, 1, 1]
smoothing sigmas per level: [4, 2, 1]
regular sampling (percentage = 0.1)
Segmentation fault (core dumped)Am I missing something?
Best
Stefan—
Reply to this email directly or view it on GitHub
#17.
from antsr.
Hi Brian
sorry, for my negligance.
Ubuntu 14.04 64 bit
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
What else do you need?
The thing was, that I realized that my old code (from last October) did not run anymore after installing a new version of ANTsR. As I still had an old version of ANTs but not ANTsR, I tried to compare the results when using the same arguments with the command line. I
BTW: SyN registration without preceding affine registrations works fine.
Best
Stefan
from antsr.
Can you share those images? I'm not able to reproduce the error with my own test images.
from antsr.
ok - will look into it - first pass adding a test call to travis ants
brian
On Tue, Mar 10, 2015 at 12:28 PM, Stefan Schlager [email protected]
wrote:
Hi Brian
sorry, for my negligance.Ubuntu 14.04 64 bit
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)What else do you need?
The thing was, that I realized that my old code (from last October) did
not run anymore after installing a new version of ANTsR. As I still had an
old version of ANTs but not ANTsR, I tried to compare the results when
using the same arguments with the command line. I
BTW: SyN registration without preceding affine registrations works fine.Best
Stefan—
Reply to this email directly or view it on GitHub
#17 (comment).
from antsr.
@ntustison may be right in that the issue may be specific to these images ... travis testing looks ok: https://s3.amazonaws.com/archive.travis-ci.org/jobs/53831111/log.txt
from antsr.
I will run more tests tomorrow, and if I don't find any errors on my parts, I will provide sample data and scripts.
Best
Stefan
from antsr.
Is there a way, I can send you the data privately?
from antsr.
depends on how you define "privately" (recalling snowden etc) but
wetransfer.com lets you send data to select individuals and the data link
is only active for a week or so
brian
On Tue, Mar 10, 2015 at 2:35 PM, Stefan Schlager [email protected]
wrote:
Is there a way, I can send you the data privately?
—
Reply to this email directly or view it on GitHub
#17 (comment).
from antsr.
I already sent an email to the addresses (yours and ntustison's) in your commit logs.
Best
Stefan
from antsr.
Hmmm, for some reason it's seg faulting without a transform initialization. Try adding this to see if it works on your end
-r [ skull1.mha , skull2.mha , 1]
from antsr.
ahh - yes ... that would do it ... i've noticed the same thing recently.
brian
On Tue, Mar 10, 2015 at 3:44 PM, Nick Tustison [email protected]
wrote:
Hmmm, for some reason it's seg faulting without a transform
initialization. Try adding this to see if it works on your end-r [ skull1.mha , skull2.mha , 1]
—
Reply to this email directly or view it on GitHub
#17 (comment).
from antsr.
Hi this
gives no segfault but
All_Command_lines_OK
Using double precision for computations.
=============================================================================
The composite transform comprises the following transforms (in order):
1. Center of mass alignment using fixed image: skull1.mha and moving image: skull2.mha (type = Euler3DTransform)
=============================================================================
number of levels = 3
fixed image: skull1.mha
moving image: skull2.mha
Dimension = 3
Number of stages = 1
Use Histogram Matching true
Winsorize image intensities false
Lower quantile = 0
Upper quantile = 1
Stage 1 State
Image metric = Mattes
Fixed image = Image (0x44a68d0)
RTTI typeinfo: itk::Image<double, 3u>
Reference Count: 2
Modified Time: 1683
Debug: Off
Object Name:
Observers:
none
Source: (none)
Source output name: (none)
Release Data: Off
Data Released: False
Global Release Data: Off
PipelineMTime: 0
UpdateMTime: 1492
RealTimeStamp: 0 seconds
LargestPossibleRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [117, 157, 170]
BufferedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [117, 157, 170]
RequestedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [117, 157, 170]
Spacing: [1.5, 1.5, 1.5]
Origin: [-88.5114, -114.68, -157.958]
Direction:
1 0 0
0 1 0
0 0 1
IndexToPointMatrix:
1.5 0 0
0 1.5 0
0 0 1.5
PointToIndexMatrix:
0.666667 0 0
0 0.666667 0
0 0 0.666667
Inverse Direction:
1 0 0
0 1 0
0 0 1
PixelContainer:
ImportImageContainer (0x44ba230)
RTTI typeinfo: itk::ImportImageContainer<unsigned long, double>
Reference Count: 1
Modified Time: 1489
Debug: Off
Object Name:
Observers:
none
Pointer: 0x45fd080
Container manages memory: true
Size: 3122730
Capacity: 3122730
Moving image = Image (0x44c1e00)
RTTI typeinfo: itk::Image<double, 3u>
Reference Count: 2
Modified Time: 1684
Debug: Off
Object Name:
Observers:
none
Source: (none)
Source output name: (none)
Release Data: Off
Data Released: False
Global Release Data: Off
PipelineMTime: 0
UpdateMTime: 1681
RealTimeStamp: 0 seconds
LargestPossibleRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [121, 148, 155]
BufferedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [121, 148, 155]
RequestedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [121, 148, 155]
Spacing: [1.5, 1.5, 1.5]
Origin: [-85.1487, -103.461, -145.826]
Direction:
1 0 0
0 1 0
0 0 1
IndexToPointMatrix:
1.5 0 0
0 1.5 0
0 0 1.5
PointToIndexMatrix:
0.666667 0 0
0 0.666667 0
0 0 0.666667
Inverse Direction:
1 0 0
0 1 0
0 0 1
PixelContainer:
ImportImageContainer (0x44af720)
RTTI typeinfo: itk::ImportImageContainer<unsigned long, double>
Reference Count: 1
Modified Time: 1678
Debug: Off
Object Name:
Observers:
none
Pointer: 0x5dd8310
Container manages memory: true
Size: 2775740
Capacity: 2775740
Weighting = 1
Sampling strategy = regular
Number of bins = 32
Radius = 4
Sampling percentage = 0.1
Transform = Rigid
Gradient step = 1
Update field sigma (voxel space) = 0
Total field sigma (voxel space) = 0
Update field time sigma = 0
Total field time sigma = 0
Number of time indices = 0
Number of time point samples = 0
Registration using 1 total stages.
Stage 0
iterations = 1000x100x10
convergence threshold = 1e-08
convergence window size = 20
number of levels = 3
using the Mattes MI metric (number of bins = 32, weight = 1)
preprocessing: histogram matching the images
Shrink factors (level 1 out of 3): [3, 3, 3]
Shrink factors (level 2 out of 3): [2, 2, 2]
Shrink factors (level 3 out of 3): [1, 1, 1]
smoothing sigmas per level: [4, 2, 1]
regular sampling (percentage = 0.1)
*** Running Euler3DTransform registration ***
DIAGNOSTIC,Iteration,metricValue,convergenceValue,ITERATION_TIME_INDEX,SINCE_LAST
2DIAGNOSTIC, 1, -3.720398661092e-01, 1.797693134862e+308, 7.0343e-01, 7.0343e-01,
.
.
.
2DIAGNOSTIC, 9, -1.522124430969e-01, 1.797693134862e+308, 7.5271e+00, 3.0540e-01,
2DIAGNOSTIC, 10, -1.523563157790e-01, 1.797693134862e+308, 7.8510e+00, 3.2386e-01,
Elapsed time (stage 0): 7.9909e+00
Total elapsed time: 7.9939e+00
But the rigid transform is skipped.
If I combine multiple non-elastic transformations it runs the Euler3DTransform multiple times.
But: I arbitrarily checked out an earlier version of ANTS in ANTsR/src/ANTS/ANTS-build :
(commit 002cc39f524c52f5970fbdd74dac4bc5f7035a09
Author: stnava <[email protected]>
Date: Mon Jan 5 13:12:27 2015 -0600
and recompiled (using R CMD INSTALL), now everything works again. First runnint the Euler3D and then the rigid transformation.
from antsr.
yes - i've also noticed this ... not sure if it's the reporting that's
wrong or if it's the actual transformation. do you happen to know?
brian
On Tue, Mar 10, 2015 at 4:18 PM, Stefan Schlager [email protected]
wrote:
Hi this
gives no segfault butAll_Command_lines_OK
Using double precision for computations.
The composite transform comprises the following transforms (in order):
1. Center of mass alignment using fixed image: skull1.mha and moving image: skull2.mha (type = Euler3DTransform)
number of levels = 3
fixed image: skull1.mha
moving image: skull2.mha
Dimension = 3
Number of stages = 1
Use Histogram Matching true
Winsorize image intensities false
Lower quantile = 0
Upper quantile = 1
Stage 1 State
Image metric = Mattes
Fixed image = Image (0x44a68d0)
RTTI typeinfo: itk::Image<double, 3u>
Reference Count: 2
Modified Time: 1683
Debug: Off
Object Name:
Observers:
none
Source: (none)
Source output name: (none)
Release Data: Off
Data Released: False
Global Release Data: Off
PipelineMTime: 0
UpdateMTime: 1492
RealTimeStamp: 0 seconds
LargestPossibleRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [117, 157, 170]
BufferedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [117, 157, 170]
RequestedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [117, 157, 170]
Spacing: [1.5, 1.5, 1.5]
Origin: [-88.5114, -114.68, -157.958]
Direction:
1 0 0
0 1 0
0 0 1IndexToPointMatrix:
1.5 0 0
0 1.5 0
0 0 1.5PointToIndexMatrix:
0.666667 0 0
0 0.666667 0
0 0 0.666667Inverse Direction:
1 0 0
0 1 0
0 0 1PixelContainer:
ImportImageContainer (0x44ba230)
RTTI typeinfo: itk::ImportImageContainer<unsigned long, double>
Reference Count: 1
Modified Time: 1489
Debug: Off
Object Name:
Observers:
none
Pointer: 0x45fd080
Container manages memory: true
Size: 3122730
Capacity: 3122730Moving image = Image (0x44c1e00)
RTTI typeinfo: itk::Image<double, 3u>
Reference Count: 2
Modified Time: 1684
Debug: Off
Object Name:
Observers:
none
Source: (none)
Source output name: (none)
Release Data: Off
Data Released: False
Global Release Data: Off
PipelineMTime: 0
UpdateMTime: 1681
RealTimeStamp: 0 seconds
LargestPossibleRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [121, 148, 155]
BufferedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [121, 148, 155]
RequestedRegion:
Dimension: 3
Index: [0, 0, 0]
Size: [121, 148, 155]
Spacing: [1.5, 1.5, 1.5]
Origin: [-85.1487, -103.461, -145.826]
Direction:
1 0 0
0 1 0
0 0 1IndexToPointMatrix:
1.5 0 0
0 1.5 0
0 0 1.5PointToIndexMatrix:
0.666667 0 0
0 0.666667 0
0 0 0.666667Inverse Direction:
1 0 0
0 1 0
0 0 1PixelContainer:
ImportImageContainer (0x44af720)
RTTI typeinfo: itk::ImportImageContainer<unsigned long, double>
Reference Count: 1
Modified Time: 1678
Debug: Off
Object Name:
Observers:
none
Pointer: 0x5dd8310
Container manages memory: true
Size: 2775740
Capacity: 2775740Weighting = 1 Sampling strategy = regular Number of bins = 32 Radius = 4 Sampling percentage = 0.1
Transform = Rigid
Gradient step = 1
Update field sigma (voxel space) = 0
Total field sigma (voxel space) = 0
Update field time sigma = 0
Total field time sigma = 0
Number of time indices = 0
Number of time point samples = 0
Registration using 1 total stages.Stage 0
iterations = 1000x100x10
convergence threshold = 1e-08
convergence window size = 20
number of levels = 3
using the Mattes MI metric (number of bins = 32, weight = 1)
preprocessing: histogram matching the images
Shrink factors (level 1 out of 3): [3, 3, 3]
Shrink factors (level 2 out of 3): [2, 2, 2]
Shrink factors (level 3 out of 3): [1, 1, 1]
smoothing sigmas per level: [4, 2, 1]
regular sampling (percentage = 0.1)*** Running Euler3DTransform registration ***
DIAGNOSTIC,Iteration,metricValue,convergenceValue,ITERATION_TIME_INDEX,SINCE_LAST
2DIAGNOSTIC, 1, -3.720398661092e-01, 1.797693134862e+308, 7.0343e-01, 7.0343e-01,
.
.
.
2DIAGNOSTIC, 9, -1.522124430969e-01, 1.797693134862e+308, 7.5271e+00, 3.0540e-01,
2DIAGNOSTIC, 10, -1.523563157790e-01, 1.797693134862e+308, 7.8510e+00, 3.2386e-01,
Elapsed time (stage 0): 7.9909e+00Total elapsed time: 7.9939e+00
But the rigid transform is skipped.
If I combine multiple non-elastic transformations it runs the
Euler3DTransform multiple times.But: I arbitrarily checked out an earlier version of ANTS in
ANTsR/src/ANTS/ANTS-build :(commit 002cc39f524c52f5970fbdd74dac4bc5f7035a09
Author: stnava [email protected]
Date: Mon Jan 5 13:12:27 2015 -0600and recompiled (using R CMD INSTALL), now everything works again. First
runnint the Euler3D and then the rigid transformation.—
Reply to this email directly or view it on GitHub
#17 (comment).
from antsr.
The Euler3DTransform is the rigid transform being employed, i.e. it's not being skipped. This was part of the code clean-up I performed a little bit ago. I'll figure out why it's seg-faulting but, for now, just be sure to use the initialization.
from antsr.
Okay, this is fixed in ANTs. Brian, can we update ANTsR with this or do we wait?
from antsr.
Yes. All one needs to do is change antstag in configure.
On Mar 10, 2015 9:07 PM, "Nick Tustison" [email protected] wrote:
Okay, this is fixed in ANTs. Brian, can we update ANTsR with this or do we
wait?—
Reply to this email directly or view it on GitHub
#17 (comment).
from antsr.
Okay, done.
from antsr.
Related Issues (20)
- Error
- antsMotionCalculation Error HOT 1
- colorbar key for antsrSurf HOT 6
- Installation fail with devtools HOT 5
- details about mnib HOT 1
- Failing on ITK when running LINDA HOT 6
- Proper similarity metric for Affine registration HOT 3
- MVPA using ANTsR?
- ITK bug in createJacobianDeterminantImage after upgrade HOT 14
- aslPerfusion HOT 11
- Installation error on Mac OS 12.6.3 with devtools HOT 11
- R version issues HOT 3
- ITK_GLOBAL_NUMBER_OF_THREADS is ignored HOT 2
- How to pass command line arguments to antsRegistration? HOT 4
- Guidance on Extracting Numeric Values of Gaussian Curvature from Image Class HOT 1
- Resampling an image to source image geometry HOT 2
- Failing on antsRegistration HOT 1
- Python 2.7 Error HOT 1
- multiChannelPCA is failing in R 4.3.1 HOT 2
- Diffusion tensor registration
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from antsr.