Quantification of atlas registration performance

Register two images to atlas, then find overlap of their cartilage

(transport cartilage from image A to atlas then to image B, compute in image B coordinates, so directly comparable to registering image A to image B)

Performance of unmodified ICON registering both images to atlas: 67.4

Performance of unmodified ICON registering images to each other directly (ICON paper) 68.3

Adaptation of ICON to atlas registration

new network wrapper "Atlas Wrapper:"

class AtlasRegistrationNet(torch.nn.Module):
     def __init__(self, net, atlas):
         super(AtlasRegistrationNet, self).__init__()
         self.net = net
         self.register_buffer("atlas", atlas)
         
     def forward(self, x, y):
         # Tag for optimization. Must be set at the beginning of forward because it is not preserved by .cuda()
         self.identityMap.isIdentity = True 
         phi = self.net(x, self.atlas)
         psi = self.net(self.atlas, y)
         
         ret = lambda

concept: The two image to atlas registrations cannot communicate, so for the composition to be inverse consistent, each one must individually be inverse consistent

Currently training on OAI dataset. performance only 39 DICE, but this is to be expected so early in training.

Work on oaianalysis2

Merged mesh pull request, now massaging structure, putting tests together- will have all three pieces working together shortly

Roland thoughts

cluster images by registration

do zhipeng's thing

chain along longitudinal data

register to 100 random knees, use mse losses as a feature vector

Back to Reports
subdavis.com forrestli.com