Code Monkey home page Code Monkey logo

Comments (17)

stnava avatar stnava commented on August 25, 2024

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 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 (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: 3122730

 Moving 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 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 (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: 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)
Segmentation fault (core dumped)

Am I missing something?

Best
Stefan


Reply to this email directly or view it on GitHub
#17.

from antsr.

zarquon42b avatar zarquon42b commented on August 25, 2024

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.

ntustison avatar ntustison commented on August 25, 2024

Can you share those images? I'm not able to reproduce the error with my own test images.

from antsr.

stnava avatar stnava commented on August 25, 2024

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.

stnava avatar stnava commented on August 25, 2024

@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.

zarquon42b avatar zarquon42b commented on August 25, 2024

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.

zarquon42b avatar zarquon42b commented on August 25, 2024

Is there a way, I can send you the data privately?

from antsr.

stnava avatar stnava commented on August 25, 2024

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.

zarquon42b avatar zarquon42b commented on August 25, 2024

I already sent an email to the addresses (yours and ntustison's) in your commit logs.

Best
Stefan

from antsr.

ntustison avatar ntustison commented on August 25, 2024

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.

stnava avatar stnava commented on August 25, 2024

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.

zarquon42b avatar zarquon42b commented on August 25, 2024

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.

stnava avatar stnava commented on August 25, 2024

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 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.


Reply to this email directly or view it on GitHub
#17 (comment).

from antsr.

ntustison avatar ntustison commented on August 25, 2024

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.

ntustison avatar ntustison commented on August 25, 2024

Okay, this is fixed in ANTs. Brian, can we update ANTsR with this or do we wait?

from antsr.

stnava avatar stnava commented on August 25, 2024

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.

ntustison avatar ntustison commented on August 25, 2024

Okay, done.

from antsr.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.