[ITK-users] 3D/2D registration with itkRayCastInterpolateImageFunction
Charles GARRAUD
Charles.GARRAUD at b-com.com
Fri Aug 21 12:01:32 EDT 2015
Hi,
Thanks for your answer. My coworker tried a few experiments and here are the results.
1- Identity test
We first generated a DRR with no motion (./GenerateProjection -t -0 0 0 /data/BrainWeb/brainweb165a10f17.mha projection.mhd).
Then we tested the registration script against the generated projection (./IntensityBased2D3DRegistration -t 0 0 0 /data/BrainWeb/brainweb165a10f17.mha projection.mhd).
Final transform is not Identity...
Iteration: 0
Similarity: 131072
Position: [2.153758987711231, -2.2185832563517227, 0.13470062489014054, -0.66118
02734569167, -2.4462025457148213, -0.0002246616408056843]
Iteration: 1
Similarity: 122450
Position: [2.4187300917467964, -3.773162111555794, -0.9755229703094714, -2.07458
8877483574, -0.537315819701732, -2.5768321309606987]
Iteration: 2
Similarity: 119478
Position: [2.470584982717309, -5.832612304775175, -2.348307788159638, -4.0557547
39210535, 1.4910774048756184, -1.2233031986406182]
Iteration: 3
Similarity: 89670.6
Position: [0.5294851105555496, -7.488726388306614, -4.4764177747675395, -5.03037
4241557845, 3.3801762897017995, -0.5584817620767086]
Iteration: 4
Similarity: 117654
Position: [0.8070122506477464, -6.806625924939558, -4.184289615511856, -5.001986
557143484, 3.568233605537047, 1.2680470135769937]
Iteration: 5
Similarity: 120137
Position: [0.8986014091035406, -7.370639324747829, -4.600946472732313, -4.991937
760754552, 4.252209504897678, 1.4468579892082352]
Iteration: 6
Similarity: 121092
Position: [1.0389929549096333, -7.269481426616463, -4.5893416922553545, -4.80836
5473207177, 4.620462234241913, 2.341628219578606]
Result =
Translation X = 1.03899
Translation Y = -7.26948
Translation Z = -4.58934
Rotation X = -4.80837
Rotation Y = 4.62046
Rotation Z = 2.34163
Iterations = 8
Metric value = 122604
2- Metric test
Since the registration pipeline involved an Euler3DTransform transformation but our results were not converging even for translations only, I made a simple test case :
First of all, I have generated a DRR projection with a (-100, -100, -100) translation with this command line :
./GenerateProjection -t -100 -100 -100 brainweb165a10f17.mha projection.mhd
After that, I have generated translated DRR projections, from 5 to 20 with a step of 5 along the X axis and the Y axis one at a time.
The aim was to check if, by plotting the metric value for a range of displacements all around the translated projection, the best similarity value would be obtained for the exact displacement we used to generate this translated projection.
For instance, for the translated projection obtained by this command line :
./GenerateProjection -t -105 -100 -100 brainweb165a10f17.mha projectionx5.mhd
The best similarity value between projection.mhd and projectionx5.mhd would be obtained for a (5, 0) displacement.
The result of this experiment can be observed on the following table :
x0 y0 x5 y0 x10 y0 x15 y0 x20 y0 x0 y5 x0 y10 x0 y15 x0 y20
Best (x, y) (0, 0) (9, 0) (18, 0) (26, 0) (34, 0) (0, 9) (0, 17) (0, 26) (0, 34)
Similarity 131072 112939 100953 94482 90848 113021 101068 95829 92632
We can observe that, even for translations only, our results do not converge to the right value, which can lead us to imagine that the metric is not appropriate for the purpose of registrating the example data...
Is this test case relevant ? It seems to indicate that, even for simple cases, the registration is not reliable and could be the source of the wrong results I have.
Thanks for your help!
Charles
Garraud
{P}
Software Engineer
E-health
{T}
+33 (0) 2 56 35 88 25
{W}
www.b-com.com
-----Message d'origine-----
De : Insight-users [mailto:insight-users-bounces at itk.org] De la part de Siavash Khallaghi
Envoyé : lundi 17 août 2015 21:51
À : insight-users at itk.org
Objet : Re: [ITK-users] 3D/2D registration with itkRayCastInterpolateImageFunction
Hi Charles,
For the record, I do not think that you have a software bug per say. I think your problem is a bit more fundamental, i.e. the combination of optimizer/metric might not have sufficient capture range to guide the registration to the true solution.
In order to investigate this, I would suggest trying the following:
1. If you generate your projection from identity (which I assume is the true solution), and start your registration from identity, would the registration converge to identity as well? This tells you how stable your metric is.
2. At this point, I would definitely start plotting the metric value against transformation parameters. See /Section 3.10.1 Mean Squares Metric:
Exploring a Metric/ of the Software Guide <http://se.csie.dyu.edu.tw/canseco/PDF/InsightSoftwareGuide-Book2-4.6.0.pdf>
. Since your registration does not converge to the correct solution for rotations, I suspect that it is getting stuck in a local minima for these parameters.
Siavash
--
View this message in context: http://itk-users.7.n7.nabble.com/ITK-users-3D-2D-registration-with-itkRayCastInterpolateImageFunction-tp35970p36020.html
Sent from the ITK - Users mailing list archive at Nabble.com.
_____________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.php
Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/insight-users
More information about the Insight-users
mailing list