Detecting Eye Disease using Deep Learning | Kaggle Top 1% Solution, No Ensemble

Поделиться
HTML-код
  • Опубликовано: 25 окт 2024

Комментарии • 74

  • @AladdinPersson
    @AladdinPersson  3 года назад +13

    Discussion post on Kaggle with brief summary of what I did in the video: www.kaggle.com/c/diabetic-retinopathy-detection/discussion/242755
    Timestamps:
    0:00 - Introduction
    2:45 - Overview of DR and how to detect
    9:11 - A look at the data
    12:15 - Creating a baseline solution
    24:22 - Result from baseline
    26:25 - Idea #1: Preprocessing
    34:07 - Result #1
    35:19 - Idea #2: Loss Function
    39:03 - Result #2
    39:59 - Idea #3: Balanced Loader (skipped)
    41:30 - Idea #4: Augmentation
    42:52 - Result #4
    43:44 - Idea #5: Using left and right information
    51:03 - Result #5
    51:50 - Idea #6: Increase image resolution
    55:00 - Result #6 from various resolutions
    55:10 - Final Result and Ending

    • @teddybest02
      @teddybest02 3 года назад

      Thank you for the great ideas you gave us, I have an extra idea here. Can you show us how we can use Ben Graham(Competition winner) pre-processing method (specially color version) and train the model from different transfer learning models? I think this way the result will be improved more.

  • @saravanans9895
    @saravanans9895 3 года назад +30

    I legit learn more things from a single video of yours than any other source, Please keep making content like this bro.

  • @mikhaeldito
    @mikhaeldito 3 года назад +11

    More videos like this, please!

  • @mrdbourke
    @mrdbourke 3 года назад +2

    Outstanding video Aladdin! Love the code explanations. Did you record the voice/code at the same time? I enjoyed the multiple lines of code reveal at a time.

    • @AladdinPersson
      @AladdinPersson  3 года назад +2

      I really appreciate you saying that, means a lot coming from you! Yeah maybe it looked fancy but I just removed the lines and pressed "u" for undo a bunch of times and tried to do some code commentary:)

    • @Amilakasun1
      @Amilakasun1 3 года назад

      LOL you type the same code thousands of times.

  • @notimportant9018
    @notimportant9018 3 года назад +7

    Hi Aladdin, great video. Just had a doubt. Do you have videos where in you take us step by step through the code of these config, util, train, dataset files as in explaining how we could write such codes? If yes please do let me know that would be great. Thanks!

  • @DiogoSanti
    @DiogoSanti 3 года назад +5

    Hey Aladdin, i liked the approach in this video... Take a problem and dissecting it...Good job!

    • @DiogoSanti
      @DiogoSanti 3 года назад +2

      Would be great to make more content in this format...

  • @gurushreyaass9458
    @gurushreyaass9458 3 года назад +2

    Excellent video hope this inspire many amateurs in this field .Thanks. Do post more videos.

  • @arunavamaulik19
    @arunavamaulik19 3 года назад +8

    Absolute brilliant series...more of this please!

  • @yanononopon
    @yanononopon 3 года назад +3

    Hey Aladdin, great video ! It's a subject that's quite dear to my heart since my grandpa is slowly becoming blind from diabetes. Anyways, love your content :)

  • @Msalaho1
    @Msalaho1 2 года назад +5

    hello, dealing with such large datasets, do i have to download this whole data? i mean did you downloaded > 80 GB of data to build your model ?

  • @JuanGabrielOyolaCardona
    @JuanGabrielOyolaCardona Месяц назад

    Thanks for sharing 😀👍 greetings from Colombia.

  • @saketkattuboina6693
    @saketkattuboina6693 3 года назад +6

    Can you also make a video on how to ensemble deep learning models??

  • @chjayakrishnajk
    @chjayakrishnajk Год назад +1

    Please continue this series, it is soo good

  • @duongkstn
    @duongkstn 8 месяцев назад

    hey, instead of import sys and sys.extit(), you can type : "exit(0)" for short

  • @chainonsmanquants1630
    @chainonsmanquants1630 3 года назад +1

    12:15
    Baseline easy solution to implement: a 2d convolutional layer in sequential mode with like 5 successive layers and kernels of size between 3x3 and 10x10 to account for the small size of the target. End the convolutional layer with flatten and dense with 5 units for 5 categories.
    How to do better... Well I'm not really sure

  • @teddybest02
    @teddybest02 3 года назад +4

    @Aladdin Persson Thank you for the great ideas you gave us, I have an extra idea here. Can you show us how we can use Ben Graham(Competition winner) pre-processing method (specially color version) and train the model from different transfer learning models? I think this way the result will be improved more.

  • @_arnav_chaudhuri
    @_arnav_chaudhuri 7 месяцев назад +1

    Great video sir ,Can you tell me where can i download the dataset of the images from ?

  • @Draculasius
    @Draculasius 2 года назад +1

    @13:32 How are you doing this command showing line by line? Is this a special feature? Because I think it is good for presentations.

  • @dishantdeshmukh5330
    @dishantdeshmukh5330 3 года назад +1

    Showing subclassing model class you should implement call method in unet how and were to implement call function in unet

  • @Gamma3
    @Gamma3 3 года назад +1

    Amazing video! Thanks

  • @inhibited44
    @inhibited44 3 месяца назад

    interesting. I am working with a data set that I resized to (32, 32) from (150, 150) because I saw someone do that in another video. I get a fit of .44 for very few images. I might try increasing resolution too and see what happens for the fit

  • @danobdon3881
    @danobdon3881 2 года назад

    nice explanation... how can prepare this data for few shot learning? Any idea? would be very helpful.

  • @chainonsmanquants1630
    @chainonsmanquants1630 3 года назад

    Really instructive thank you !

  • @ashwinjayaprakash7991
    @ashwinjayaprakash7991 3 года назад +1

    This is golden!
    Looking at Aladdins solution:
    > He used Albumentations for transforms
    > Single dataset class for botht training and validation
    > used argmax as loss function
    > Using efficientnet
    > batch size 64, num epochs 100
    > makes a baseline with 120 by 120 images, notes all validation values
    > tried preprocessing the image to trim the images
    > created modification to loss function
    > Getting a balnced dataloader > didnt work for him
    > heavy data augmentation
    > left and right image augmentation by blending - didnt understand.
    > image resolution increase
    Thing he didnt try:
    > training validation data
    > larger model
    > larger image resolution
    > Ensemble of CNN models
    > Tweaking loss values

    • @AladdinPersson
      @AladdinPersson  3 года назад +2

      Awesome summary. Regarding the usage of left and eye information, so each patient has left eye and right eye image, if we send information of both maybe the model can utilize this extra information. So I pretrained efficientnet using only single eye, then extract features from left and right conatenate those features and train a separate fc network on top of those.

  • @iducater9882
    @iducater9882 3 месяца назад

    How many epochs did you run the train_blend? My score tends to be significantly lower than without combining left and right blending.

  • @Ayayron1998
    @Ayayron1998 3 года назад

    Great subject choice!

  • @arunavamaulik19
    @arunavamaulik19 3 года назад +2

    #Suggestion When you talk about something that you have described in another video, can you put a link to it in the description? Thanks!

  • @truonggianga2tk42
    @truonggianga2tk42 3 года назад

    Thank you and wait your other Kaggle Video.

  • @abdelrahmanragab6044
    @abdelrahmanragab6044 3 года назад

    Nice video
    Please mention to me where are you found the dataset that you used

  • @pankajchand6761
    @pankajchand6761 2 года назад

    Which deep learning framework do you feel is better for medical imaging applications like this? TF or PyTorch?

  • @MuhammadHussain-ws1xs
    @MuhammadHussain-ws1xs 3 года назад +1

    Can you please do a similar video but for object detection with multiple objects in a single image (custom dataset), I can't seem to find any tutorial on custom object detection in pytorch

  • @nikhilthapa9300
    @nikhilthapa9300 Год назад

    Could you do a tutorial on multiple instance learning too please?

  • @odysseashlap
    @odysseashlap 3 года назад +2

    Another idea: create synthesized ("fake") data created by a GAN-Unet architecture (similar to pix2pix) so as to increase the amount of training data

  • @chainonsmanquants1630
    @chainonsmanquants1630 3 года назад

    I think you could have had better results if you fusionned the images of left and right directly to train the model on. The result image would be showing the two eyes next to one another.

  • @theeFaris
    @theeFaris 3 года назад

    For augmentation, i think you should've skipped blur

  • @jeetshah4699
    @jeetshah4699 3 года назад

    any reason as to why you haven't used transfer learning, like resent and then just changed the classifier???

  • @frankrobert6867
    @frankrobert6867 2 года назад

    Thumb up your tutorials.

  • @xin2516
    @xin2516 2 года назад

    If I understand it corrently, the input sizes for the efficientnet variants are fixed, like 224x224 for B0. So, I am confused about how can you increase the resolution for the imgs? Thx

  • @nova2577
    @nova2577 3 года назад

    With my admiration!

  • @charlesnasamu1173
    @charlesnasamu1173 2 года назад

    I have a quick question; After preprocessing the images and the size of each images changed, so why did you not compute the mean and std for the train transforms? @

  • @apurbasarkar6918
    @apurbasarkar6918 3 года назад

    you solved that like a boss

  • @sayedathar2507
    @sayedathar2507 3 года назад

    Lots of Love ❤️ Your videos are saviour ❤️❤️😍

  • @alanjohnstone8766
    @alanjohnstone8766 3 года назад

    How/why did you choose to use Efficientnet as opposed to other architectures?

    • @AladdinPersson
      @AladdinPersson  3 года назад +1

      No particular reason really, it's performed well from my understanding on many benchmarks (imagenet) and I've coded it from scratch a while ago which makes me feel like I have a decent understanding of what's going on in the architecture

  • @Murmur1131
    @Murmur1131 3 года назад

    Thanks!

  • @fasolya99
    @fasolya99 3 года назад

    How long did the whole process took from you? beside the recording.
    Also worth to mention that I'm enjoying your videos and find them very helpful ♥️🌹

  • @erwanerwan6196
    @erwanerwan6196 2 года назад

    HI is it possible o do with TENSOR FLOW ??

  • @indianengineer5802
    @indianengineer5802 Год назад

    you used full 88.29 GB data for trainning ???

  • @pareshkamble7888
    @pareshkamble7888 3 года назад +1

    Hi Aladdin,
    We also tried similar approach for DR classification.
    However, instead of directly resizing the images to 650x650, we identified and cropped the smallest square that encircle the circular DR image and resized to same size.
    Thereby, we were able to retain the aspect ratio.
    What do you suggest, do retaining aspect ratio have some advantage over regular resizing?

  • @teddybest02
    @teddybest02 3 года назад

    Keep it up!!!

  • @DaffaAmanu
    @DaffaAmanu 3 года назад

    Amazing video! Though I have a problem when I tried running the dataset code on jupyter notebook, which is that it doesn't recognize the config.val_transforms attribute. Any solution to this?

  • @ArpitYadav-ws5xe
    @ArpitYadav-ws5xe 2 года назад

    Excellent

  • @nguyenvietdung7588
    @nguyenvietdung7588 2 года назад

    where can I get the test_label.csv

  • @joaobarreira5221
    @joaobarreira5221 Год назад

    in a similar situation, I trie to use JointsMSE Loss, I change MSE to RMSE and the model converged better and faster.

  • @sumanmahapatra8881
    @sumanmahapatra8881 3 года назад

    Nice content 👍 Can you please elaborate how can we use Kaggle GPU for deploying Deep learning models?

  • @019_nishantrajsingh9
    @019_nishantrajsingh9 10 месяцев назад

    can anyone please tell me how to get the validation data i.e. valLabels

    • @jeremymunroe
      @jeremymunroe 9 месяцев назад

      You can make your own😅

  • @virgilioespina
    @virgilioespina 3 года назад

    Idol! What's up?

  • @ccuuttww
    @ccuuttww 3 года назад

    It's all about the quality of data the images look terrible
    and they just mix the left eye and right eye together

  • @dome8116
    @dome8116 3 года назад +1

    May I ask how old you are sir?

    • @AladdinPersson
      @AladdinPersson  3 года назад +1

      yea I'm 23

    • @SUGATORAY
      @SUGATORAY 3 года назад

      Great video. Btw, how did you make the video to show line numbers as you developed (while also speeding up for some lines and pausing or running at 1x speed at times when necessary)?
      Am curious!
      These videos take an incredible amount of time to plan and make. Thank you, very much for the great presentation and the work you put behind these videos. 👏👏⭐️

  • @odysseashlap
    @odysseashlap 3 года назад

    Lets goooo

  • @bajrangchapola6748
    @bajrangchapola6748 3 года назад

    👍👍

  • @Dr_Shafi
    @Dr_Shafi Год назад

    please stop don't waste others time, a humble request