Skip to content

CheckLabelShaped to check and correct label shapes#5606

Merged
wyli merged 14 commits intoProject-MONAI:devfrom
myron:analyzer
Dec 1, 2022
Merged

CheckLabelShaped to check and correct label shapes#5606
wyli merged 14 commits intoProject-MONAI:devfrom
myron:analyzer

Conversation

@myron
Copy link
Copy Markdown
Collaborator

@myron myron commented Nov 29, 2022

adds CheckLabelShaped transform under monai.apps.auto3dseg:

  • to check if image shape and label shape are the same. Currently, we usually don't check for it, which results in potentially a non-descriptive crash later, when computing loss or metric.
  • to correct label shape if it is very similar to image shape. Unfortunately some datasets, such as Hecktor22, has some labels (masks) with a slightly different shapes (difference in only 1 voxel). And because of that a user will have to either re-save the whole dataset, or account for it during the training loop (which is inconvenient). this utility auto corrects it.

We also already have this auto-correction in DataAnalyzer, and with this transform, DataAnalyzer logic is simplified.

@myron myron requested a review from mingxin-zheng November 29, 2022 17:59
@mingxin-zheng
Copy link
Copy Markdown
Contributor

Hi @myron thank you for the PR and having me to review it.

I have a question for the other metadata in the image, such as the affine and spacing. Since there is an interpolation, I feel we need to adjust those accordingly. Otherwise the datastats results of these metadata are incorrect in subsequent steps.

@myron
Copy link
Copy Markdown
Collaborator Author

myron commented Nov 30, 2022

he other metadata in the image, such as the affine and spacing. Since there is an interp

it's designed to correct a tiny shape mismatch, due to some datasets are incorrectly saved. The correction is just a view voxels, I don't think we need to update affine or spacing.

@mingxin-zheng I've updated the branch, please check

@myron
Copy link
Copy Markdown
Collaborator Author

myron commented Nov 30, 2022

May I ask why it should be done quietly?
@mingxin-zheng it's designed to correct a tiny shape mismatches. now, I've updated to show a user warning.

@myron
Copy link
Copy Markdown
Collaborator Author

myron commented Dec 1, 2022

EDIT: test has passed after the rerun, all good!

the windows test fails (due to some unrelated reason), @wyli can you take a look plz

C:\hostedtoolcache\windows\Python\3.8.10\x64\lib\site-packages\torch\include\pybind11\detail/common.h(152): warning C4005: 'HAVE_SNPRINTF': macro redefinition C:\hostedtoolcache\windows\Python\3.8.10\x64\include\pyerrors.h(315): note: see previous definition of 'HAVE_SNPRINTF' creating D:\a\MONAI\MONAI\build\lib.win-amd64-3.8 creating D:\a\MONAI\MONAI\build\lib.win-amd64-3.8\monai C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\hostedtoolcache\windows\Python\3.8.10\x64\lib\site-packages\torch\lib /LIBPATH:C:\hostedtoolcache\windows\Python\3.8.10\x64\libs /LIBPATH:C:\hostedtoolcache\windows\Python\3.8.10\x64\PCbuild\amd64 "/LIBPATH:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\ATLMFC\lib\x64" "/LIBPATH:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.34.31933\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\\lib\10.0.22621.0\\um\x64" c10.lib torch.lib torch_cpu.lib torch_python.lib /EXPORT:PyInit__C D:\a\MONAI\MONAI\build\temp.win-amd64-3.8\Release\a\MONAI\MONAI\monai\csrc\ext.obj D:\a\MONAI\MONAI\build\temp.win-amd64-3.8\Release\a\MONAI\MONAI\monai\csrc\filtering\bilateral\bilateral.obj D:\a\MONAI\MONAI\build\temp.win-amd64-3.8\Release\a\MONAI\MONAI\monai\csrc\filtering\bilateral\bilateralfilter_cpu.obj D:\a\MONAI\MONAI\build\temp.win-amd64-3.8\Release\a\MONAI\MONAI\monai\csrc\filtering\bilateral\bilateralfilter_cpu_phl.obj D:\a\MONAI\MONAI\build\temp.win-amd64-3.8\Release\a\MONAI\MONAI\monai\csrc\filtering\permutohedral\permutohedral.obj D:\a\MONAI\MONAI\build\temp.win-amd64-3.8\Release\a\MONAI\MONAI\monai\csrc\filtering\permutohedral\permutohedral_cpu.obj D:\a\MONAI\MONAI\build\temp.win-amd64-3.8\Release\a\MONAI\MONAI\monai\csrc\lltm\lltm_cpu.obj D:\a\MONAI\MONAI\build\temp.win-amd64-3.8\Release\a\MONAI\MONAI\monai\csrc\resample\pushpull_cpu.obj /OUT:build\lib.win-amd64-3.8\monai\_C.pyd /IMPLIB:D:\a\MONAI\MONAI\build\temp.win-amd64-3.8\Release\a\MONAI\MONAI\monai\csrc\_C.lib /openmp LINK : warning LNK4044: unrecognized option '/openmp'; ignored Creating library D:\a\MONAI\MONAI\build\temp.win-amd64-3.8\Release\a\MONAI\MONAI\monai\csrc\_C.lib and object D:\a\MONAI\MONAI\build\temp.win-amd64-3.8\Release\a\MONAI\MONAI\monai\csrc\_C.exp ext.obj : error LNK2001: unresolved external symbol __imp___tls_offset_?init@?1??lazy_init_num_threads@internal@at@@YAXXZ@4_NA ext.obj : error LNK2001: unresolved external symbol __imp___tls_index_?init@?1??lazy_init_num_threads@internal@at@@YAXXZ@4_NA build\lib.win-amd64-3.8\monai\_C.pyd : fatal error LNK1120: 2 unresolved externals error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Tools\\MSVC\\14.34.31933\\bin\\HostX86\\x64\\link.exe' failed with exit status 1120 Error: Process completed with exit code 1.

@mingxin-zheng
Copy link
Copy Markdown
Contributor

Hi @myron , can you also update the docstring in DataAnalyzer about the shape check? Since the difference is hardcoded to be 5 now, I think the users need to be informed about this too.

@myron
Copy link
Copy Markdown
Collaborator Author

myron commented Dec 1, 2022

Hi @myron , can you also update the docstring in DataAnalyzer about the shape check? Since the difference is hardcoded to be 5 now, I think the users need to be informed about this too.

ok, I added more doc strings, and made it an options for a user to change @mingxin-zheng plz check

@wyli
Copy link
Copy Markdown
Contributor

wyli commented Dec 1, 2022

/build

@wyli wyli enabled auto-merge (squash) December 1, 2022 11:12
@wyli wyli disabled auto-merge December 1, 2022 11:12
@wyli wyli enabled auto-merge (squash) December 1, 2022 11:12
@wyli wyli mentioned this pull request Dec 1, 2022
@wyli wyli disabled auto-merge December 1, 2022 11:59
wyli added 2 commits December 1, 2022 12:03
Signed-off-by: Wenqi Li <[email protected]>
Signed-off-by: Wenqi Li <[email protected]>
@wyli
Copy link
Copy Markdown
Contributor

wyli commented Dec 1, 2022

/build

@wyli wyli enabled auto-merge (squash) December 1, 2022 12:10
@wyli wyli merged commit e15da1c into Project-MONAI:dev Dec 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants