tljxyys / Perspective-Unet

[MICCAI2024] This repo holds the official code for work "Perspective+ Unet: Enhancing Segmentation with Bi-Path Fusion and Efficient Non-Local Attention for Superior Receptive Fields"
17 stars 1 forks source link

A problem confusing #2

Closed just12321 closed 2 months ago

just12321 commented 2 months ago

I am confused by the following: Given that π‘žβˆ—=π‘žπœ‘π‘‡ and π‘˜βˆ—=π‘˜πœ‘T , then: π‘ž*(π‘˜βˆ—)T=(π‘žπœ‘T)(π‘˜πœ‘π‘‡)T=π‘žπœ‘π‘‡(πœ‘π‘˜π‘‡). Since Ο† is an orthogonal matrix, we have πœ‘Tπœ‘=𝐼. Therefore: π‘žβˆ—(π‘˜βˆ—)𝑇=π‘žπ‘˜π‘‡.

What is the issue here? Or the πœ‘ just servers for 1/C(x) (namely the D_inv in the code)? Could someone please help to clarify!

tljxyys commented 2 months ago

πœ‘ is not a mathematically orthogonal matrix, and it is not even a square matrix, so πœ‘Tπœ‘ = 𝐼 is not valid in this situation.

tljxyys commented 2 months ago

The β€œfinal_matrix” in the code is generated using multiple orthogonal matrix blocks (i.e., each block is an orthogonal matrix), but the fact that the final_matrix is stitched together and scaled does not guarantee that the entire final_matrix is still orthogonal.

just12321 commented 2 months ago

The β€œfinal_matrix” in the code is generated using multiple orthogonal matrix blocks (i.e., each block is an orthogonal matrix), but the fact that the final_matrix is stitched together and scaled does not guarantee that the entire final_matrix is still orthogonal.

Oh, I see, I review the code and notice that I've mistakenly thought nb_column and nb_row are H and W(=H) of the feature, thanks! 😘