I request you make a roadmap video for "Computer Vision in Healthcare". It will help us understand how much ML, DL, and programming knowledge is required to start work in the healthcare sector.
thank you it was very explanatory in depth can you please make a video on LV segmentation i am trying to prepare data set but still its confusing and my work is not progressing ..
Thank you for your great tutorial that was really helpful. Could you please make a tutorial about medical image synthesis using conditional GANs such as CycleGAN and PIX2PIX? Or do you have any recommended resources to explain plainly these architectures and how to apply them? Thanks a bunch
Actually both ways work, here are the two resources that we have: 1. In 3D Slicer: ruclips.net/video/M5b0y6R80a0/видео.htmlsi=zCP73mPYO2E1fhfy 2. By code: pycad.co/how-to-convert-a-dicom-series-into-one-nifti-file-python/
Thank you for the video. I have a question at 3:10:28 preprocessing part you already have 4 folders prepared where does that come from? i followed your step from the beginning but you never explain how to get it and apparently its different from preparing the data part at 1:51:19. Mind explaining?
Hi Those folders have been created manually, you need to have 2 sets (train/test). So after having your groups, take some of them for the testing and the rest for the training. Ps: you can do that even before creating the groups.
Thankyou for the amazing video. It was very helpful for me. I am stuck in the training part. There's an error saying sizes of tensors must match. Also, if you could make a video to show a way to concatenate dual modality volumes into a single volume. That would be really helpful. JazakAllah Khair brother!
This is a very useful tutorial for a basic understanding of medical imaging. Thank you so much!! Can you please suggest how to approach this if we have multi-class images and labels ?
Thank you for your feedback! MONAI have already a good example for multi-class segmentation, you can check it here: github.com/Project-MONAI/tutorials/blob/main/3d_segmentation/unetr_btcv_segmentation_3d.ipynb
The dataset that I used in the tutorial is open-source and already has the labels. Now for you if you have a raw dataset, you can use the annotation software such as 3D Slicer, ITK snap… to help you create the labels. We have some videos in the channel that can help you take an idea about using 3D Slicer and ITK snap.
If you do that then the code will delete some slices at the middle of the case which changes the position of the slices in the CT scan. But when you create groups and delete the empty groups this means you are deleting a group of slices and you can then delete the correcponding group of slices in the CT scan. I hope this was useful.
I used this process for brain tumor .I used the exact same process and got in_channels=4..i have train volume dimensions=(1,4,128,128,155) Test volume dimensions=(1,4,128,128,155) train label dimensions=(1,1,128,128,155) Test label dimensions=(1,1,128,128,155) I got error:error using forward pass.size of tensor must be match except in dimension 1.expected size 39 but got size 40 for tensor number 1 in the list
Thank you very much for this excellent course. I followed it step by step and I found it very useful. At the end, when to execute the train I got this error: TypeError: __init__() got an unexpected keyword argument 'dimensions' . Can you please help me with this error? Thank you very much!
first thanku very much for such amazing explanation , but i wanna ask a question the data i have some patients have 20 dicoms slices and aothers have 400 dicoms slices so i wanna divide into groubs like u did so i divide in which each group have 20 dicoms in it or 64 dicoms or what?? to convert each group into nifti file
It was 80/20, it has been done manually for some reason, so there is no code for that in my repo. You can use this: github.com/amine0110/pycad/blob/main/docs/datasets/data_splitter.md
Actually there multiple changes, in the preprocess you need to handle all the classes, in the model you need to change the number of channels and even in the training loop there are some changes. I recommend you to see a tutorial in monai's website, it is about multiclass segmentation. (Brats)
@@pycad There was a discussion MONAI/issues/415 and suggestion to use Spleen 3D Segmentation also for the multilabel, I am following this but getting a "RuntimeError: Sizes of tensors must match except in dimension 1. Expected size 7 but got size 8 for tensor number 1 in the list." , could you suggest what I am doing wrong? Thanks!
@@ratimshariar102 I have this course about Python for Medical Imaging : www.udemy.com/course/python-programming-for-medical-imaging/?referralCode=4EB87F3DE56679A11DA8 And also I have this link about Dicom Simplified: www.udemy.com/course/how-to-work-with-dicom-using-python/?referralCode=ECBFF2BA3DED3608BE91
Hello sir, while doing the code of pre-processing part, i have encountered an issue "FutureWarning: : Class `AddChannel` has been deprecated since version 0.8. please use MetaTensor data type and monai.transforms.EnsureChannelFirst instead. warn_deprecated(obj, msg, warning_category)" After this i have replaced the AddChanneld to EnsureChannelFirstd and also imported the library of MetaTensor. while executing above scripts, my kernel was dead and it doesn't reflecting any thing other than this. Even i dont know where i have to use the metatensor library. Kindly help me resolving this issue sir.
Hi, I spoke about different classes in course were it may cause you an error, this line needed to be changed: github.com/amine0110/Liver-Segmentation-Using-Monai-and-PyTorch/blob/f293356f46c9965bcaa2e709ef338d87b58cee8f/utilities.py#L53 In your case, instead of taking: label = label != 0 you need to take: label = label == the_index_of_the_wanted_label (1,2,3 or ...) Hope that this works
@@pycad Thank you for your response. When I ran the Find Empty I got 398/734 as empty labels, is that accurate, as its a very big number. @pycad Please let me know how can I get an in-depth understanding of the training code.
@@marwanabbas1144 I do not know a specific course/tutorial about object detection in medical imaging. But what you can do is to use monai for example to preprocess your data and then convert them into 2D images (jpg) then do a normal object detection. I recommand you to see these two courses: - A practical course: ruclips.net/video/yqkISICHH-U/видео.html - Explanation + practise course: aifee.teachable.com/p/deep-learning-for-object-detection-using-tensorflow-2 I hope that was helpful Good luck
I request you make a roadmap video for "Computer Vision in Healthcare". It will help us understand how much ML, DL, and programming knowledge is required to start work in the healthcare sector.
thank you it was very explanatory in depth can you please make a video on LV segmentation i am trying to prepare data set but still its confusing and my work is not progressing ..
Thank you for your great tutorial that was really helpful. Could you please make a tutorial about medical image synthesis using conditional GANs such as CycleGAN and PIX2PIX? Or do you have any recommended resources to explain plainly these architectures and how to apply them? Thanks a bunch
We can use something like "!rm -r {label} && rm -r {image}" inside the loop to remove the volumes which only have background class.
When the course is going to be available?
Which software do you recommend for dicom to nifti conversion? Or do you recommend writing custom Python code to do that?
Actually both ways work, here are the two resources that we have:
1. In 3D Slicer: ruclips.net/video/M5b0y6R80a0/видео.htmlsi=zCP73mPYO2E1fhfy
2. By code: pycad.co/how-to-convert-a-dicom-series-into-one-nifti-file-python/
Thank you for the video. I have a question at 3:10:28 preprocessing part you already have 4 folders prepared where does that come from? i followed your step from the beginning but you never explain how to get it and apparently its different from preparing the data part at 1:51:19. Mind explaining?
Hi
Those folders have been created manually, you need to have 2 sets (train/test).
So after having your groups, take some of them for the testing and the rest for the training.
Ps: you can do that even before creating the groups.
Thankyou for the amazing video. It was very helpful for me. I am stuck in the training part. There's an error saying sizes of tensors must match. Also, if you could make a video to show a way to concatenate dual modality volumes into a single volume. That would be really helpful. JazakAllah Khair brother!
This is a very useful tutorial for a basic understanding of medical imaging. Thank you so much!!
Can you please suggest how to approach this if we have multi-class images and labels
?
Thank you for your feedback!
MONAI have already a good example for multi-class segmentation, you can check it here: github.com/Project-MONAI/tutorials/blob/main/3d_segmentation/unetr_btcv_segmentation_3d.ipynb
thank you so much - is there a link for the repository?
My please, yes: github.com/amine0110/Liver-Segmentation-Using-Monai-and-PyTorch
In the training part, how do you set up the file dictionary? I only see one path, shouldn’t there be 2, one for image and one for label?
Hi
Yes both of them are in one line!
@@pycad ok, thank you so much sir
Good presentation.
How did you create the labels, could you please give information?I have a different unprocessed dicom dataset, how can I create labels for it?
The dataset that I used in the tutorial is open-source and already has the labels. Now for you if you have a raw dataset, you can use the annotation software such as 3D Slicer, ITK snap… to help you create the labels.
We have some videos in the channel that can help you take an idea about using 3D Slicer and ITK snap.
Thank you very much! very helpful to my study!
Great job and an excellent explanation
Thanks a lot for this great effort
My pleasure :)
Thanks for your video it is really helpful. But why we don't delete the empty slices before grouping?
If you do that then the code will delete some slices at the middle of the case which changes the position of the slices in the CT scan.
But when you create groups and delete the empty groups this means you are deleting a group of slices and you can then delete the correcponding group of slices in the CT scan.
I hope this was useful.
Thanks it is clear now :)
Thank you so much your videos helped me alot, I'm PhD student and I'm working in similar field Please can I get your contact to ask few question?
Hi,
Yes of course, you find all the information here
pycad.co/contact/
I used this process for brain tumor .I used the exact same process and got in_channels=4..i have train volume dimensions=(1,4,128,128,155)
Test volume dimensions=(1,4,128,128,155)
train label dimensions=(1,1,128,128,155)
Test label dimensions=(1,1,128,128,155)
I got error:error using forward pass.size of tensor must be match except in dimension 1.expected size 39 but got size 40 for tensor number 1 in the list
Thank you very much for this excellent course. I followed it step by step and I found it very useful. At the end, when to execute the train I got this error: TypeError: __init__() got an unexpected keyword argument 'dimensions' . Can you please help me with this error? Thank you very much!
Hi, I found the solution: it has to be replaced with spatial_dims=3 instead of dimenstions=3.
I am sorry for the late reply. Great that you found it :)
first thanku very much for such amazing explanation , but i wanna ask a question
the data i have some patients have 20 dicoms slices and aothers have 400 dicoms slices so i wanna divide into groubs like u did
so i divide in which each group have 20 dicoms in it or 64 dicoms or what??
to convert each group into nifti file
Hi
You can try with 20, but I do not thing that monai may accept that.
But try it out
Interesting Topic
Good Luck 🙏
thanks for the amazing video you help me a lot. I will always be grateful.
My pleasure :)
What is the ratio of train test split here? and where exactly its written
It was 80/20, it has been done manually for some reason, so there is no code for that in my repo.
You can use this: github.com/amine0110/pycad/blob/main/docs/datasets/data_splitter.md
Bonne chance🥰
What changes do one need to do if it is a multilabel segmentation problem? could you please tell me about that? Thanks!
Actually there multiple changes, in the preprocess you need to handle all the classes, in the model you need to change the number of channels and even in the training loop there are some changes.
I recommend you to see a tutorial in monai's website, it is about multiclass segmentation.
(Brats)
@@pycad There was a discussion MONAI/issues/415 and suggestion to use Spleen 3D Segmentation also for the multilabel, I am following this but getting a "RuntimeError: Sizes of tensors must match except in dimension 1. Expected size 7 but got size 8 for tensor number 1 in the list." , could you suggest what I am doing wrong? Thanks!
@@ankitabuntolia9572 i am getting the same error. have you resolved the issue?
Thank you very much
Is your website is down when i try to open the course it says This site can’t provide a secure connection
same error is happening with me
Hi
Yes the platform is closed for the moment, my course will remain here and there is the paid courses hosted on Udemy.
@@pycad can you give me link of your udemy course
@@ratimshariar102 I have this course about Python for Medical Imaging : www.udemy.com/course/python-programming-for-medical-imaging/?referralCode=4EB87F3DE56679A11DA8
And also I have this link about Dicom Simplified: www.udemy.com/course/how-to-work-with-dicom-using-python/?referralCode=ECBFF2BA3DED3608BE91
Hello sir, while doing the code of pre-processing part, i have encountered an issue "FutureWarning: : Class `AddChannel` has been deprecated since version 0.8. please use MetaTensor data type and monai.transforms.EnsureChannelFirst instead.
warn_deprecated(obj, msg, warning_category)"
After this i have replaced the AddChanneld to EnsureChannelFirstd and also imported the library of MetaTensor. while executing above scripts, my kernel was dead and it doesn't reflecting any thing other than this. Even i dont know where i have to use the metatensor library. Kindly help me resolving this issue sir.
I am using a dataset where it has many segmentation labels. How can I train the model on one label and exclude the others?
Hi,
I spoke about different classes in course were it may cause you an error, this line needed to be changed:
github.com/amine0110/Liver-Segmentation-Using-Monai-and-PyTorch/blob/f293356f46c9965bcaa2e709ef338d87b58cee8f/utilities.py#L53
In your case, instead of taking:
label = label != 0
you need to take:
label = label == the_index_of_the_wanted_label (1,2,3 or ...)
Hope that this works
@@pycad Thanks a lot 👍
Hi, the minumum number of slices I got is 74, should I still use 64?
Hi
Yes it is okay
@@pycad Thank you for your response. When I ran the Find Empty I got 398/734 as empty labels, is that accurate, as its a very big number. @pycad Please let me know how can I get an in-depth understanding of the training code.
Thanks!
Thank you for helping the channel!
Hello, how to install MONAI package in anaconda environment?
pip install monai
Are you considering doing a video about object detection in healthcare imaging ?
For now no :/
Sorry about that
@@pycad Do you now any good ressources to learn advanced object detection ?
@@marwanabbas1144 I do not know a specific course/tutorial about object detection in medical imaging.
But what you can do is to use monai for example to preprocess your data and then convert them into 2D images (jpg) then do a normal object detection.
I recommand you to see these two courses:
- A practical course:
ruclips.net/video/yqkISICHH-U/видео.html
- Explanation + practise course:
aifee.teachable.com/p/deep-learning-for-object-detection-using-tensorflow-2
I hope that was helpful
Good luck
the data are really huge, is there any solution for this like putting it on aws vm or web server? thanks
You mean for training?
@@pycad yep
@@ismailsalah1129 You can use Collab for example!
Or if it needs bigger GPUs, you can go with the paid ones such as Lambda, Google Cloud...
@@pycad Thank you, i'll try that
I know you very well