Skip to content
This repository has been archived by the owner on Apr 4, 2023. It is now read-only.

Questions about ‘Jacc score’ and ‘Jacobian determinant’ #53

Open
CGC1031 opened this issue May 8, 2021 · 9 comments
Open

Questions about ‘Jacc score’ and ‘Jacobian determinant’ #53

CGC1031 opened this issue May 8, 2021 · 9 comments

Comments

@CGC1031
Copy link

CGC1031 commented May 8, 2021

Hello, may I ask that ‘Jacobian determinant’ should stand for Jacobian determinant, which is used to evaluate the folding situation of the deformation field. So what does ’Jacc score‘ stand for? What does it mean physically in registration?
Looking forward to your reply!
image
image
image

@CGC1031
Copy link
Author

CGC1031 commented May 10, 2021

Some papers evaluate the regularity of the deformation field by calculating the non-positive volume number or proportion of the Jacobian determinant. So it should be as low as possible.
However, I found that in our project, the higher the number of VTN cascades, the higher the DICE, but also the higher the value of the Jacobian determinant. I wonder how we compute the Jacobian in our project? Why are the values getting higher and higher?
Your answers will be very helpful to me and I am looking forward to your reply.

@zsyzzsoft
Copy link
Collaborator

Jacc score is a similar metric as the Dice score. "Jacobian determinant" is actually the standard deviation of Jacobian determinant, which is used in this paper as a measurement of non-smoothness. You are right that a large number of cascades can make the deformation field less smooth.

@CGC1031
Copy link
Author

CGC1031 commented May 10, 2021

Thank you for your reply.
Q1: So we still want the standard deviation of the Jacobian to be as low as possible, right?
Q2: Based on your valuable suggestions, I have been able to realize the visualization of many images, such as moving images and fixed images and flow fields. Could you tell me how to extract the following Grid and Warped graph? I think your drawing is very clear. Could you give me some more suggestions?
grid

@zsyzzsoft
Copy link
Collaborator

Q1: Yes.
Q2: I uploaded the visualization code written in jupyter notebook here, which can be a reference though a bit messy.

@CGC1031
Copy link
Author

CGC1031 commented May 21, 2021

Hello, I observed that in the article of ICCV2019, you used DICE as the evaluation metric, and in the article VTN, you used IoU as the evaluation metric. Since I do not understand the significance of IoU as a metric, I have read your VTN article again. You have this sentence in the article.
"The Segmentation IoU is computed for the volume and not the sections. It might well be the case that the overlap is not so satisfactory when viewed from those planes yet is better when viewed as a volume."

Q1:Why did you use different metrics in the two papers instead of both Dice and IoU?Is there any meaningful difference between the two metrics?

Q2:Could you give me more explanation about the difference between "Volume "and" section " in the first sentence?

Q3:Is the Segmentation IoU computed for the sections? And IoU is computed for the volumes?

The problem I face is that I don't know which metric to use in my paper, and I still don't know the meaning of IoU.
Looking forward to your reply. Thank you.
paper
pic

@zsyzzsoft
Copy link
Collaborator

Both Jacc score and Dice score are a measurement of segmentation IoU, and they are largely correlated. They are both computed for the volumes. We used Dice score in the ICCV article only because we found some other papers using Dice score so we thought that it may be more easily acceptable.

@CGC1031
Copy link
Author

CGC1031 commented May 23, 2021

Thank you for sharing your Jupyter code. It is very helpful for me. I can successfully draw the flow_filed. Since I can draw flows, I assume that it is the same true for grids. But the grid graph has some problems. I hope you can take a look at it. Thank you!
Fig.1 is my flow_filed, it is right.
real_flow_1
Fig.2
results[key][0] shape is :(128-128-128-3)
results[key][0][:, :, 64] shape is :(128-128-3)
1
Fig.3 Call your jupter code and we do the "Debug" operation. As is shown in the Fig.4, we find the value of the inv_flow between(-0.89,0.89). It's too small and the grid is blank. So we multiply x times 64. Then we find the value of the inv_flow1 between(-57.0,57.5).
Fig.3
2
After the multiply operation, we can get a grid graph as Fig.4. But we find that the gird graph is not total. So we alter the code in line 47:plt.axis((-256, 256, 256, -256)). At last, we obtain the gird graph in Fig.6. However, it's so strange.
I think this figure is wrong, the figure is seriously distorted, but the flow field is correct. Could you please give me some suggestions? I watched it for a long time, and I didn't want to give up when I got to this point.Looking forward to your reply!
Fig.4
3
Fig.5
4
Fig.6
5

@zsyzzsoft
Copy link
Collaborator

How did you compute the inverse field?

@CGC1031
Copy link
Author

CGC1031 commented Jun 1, 2021

You are reminding me that I saw the inverse code you wrote, but I notice that you didn't call it. Could you tell me where should I call it?
QQ图片20210601112000
inverse

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants