Radiographic Image Analysis

Radiographic Image Analysis

Over the years, AI and Machine Learning has been able to make tremendous impact particularly in the health care domain. Universities and organizations like Nvidia, Microsoft, Intel are working with Medical institutes and healthcare centers to provide open source medical datasets, including image datasets and working on creating AI driven automated solutions in the healthcare domain for the greater good of humanity. The  CheXpert dataset, is one such publicly available dataset provided by the Stanford University ML group and it was collected from the chest radiographic examinations from Stanford Hospital. So, in this series of articles, I am going to talk about various concepts around such a radiographic image dataset and how these techniques can actually be applied to provide an AI driven Radiographic image analysis solutions.

Chapters :

  1. Deep Hybrid Learning for Radiographic Image Analysis
  2. Model Evaluation Metrics for Deep Learning based Radiographic Image Classification model

Tags: , ,

25 Responses

  1. Renu says:

    hey! thanks for this explanation. Can i get complete code.
    If you could provide then it will be very helpful to me.
    Thanks

    • Aditya says:

      Hello Renu,

      I think in the article snippets of code are already mentioned. You would just have to put everything together and run your own analysis. There is a similar work for which the code is well documented. Please feel free to refer this: https://github.com/adib0073/NUMODRIL

      Best Regards,
      Aditya

      • sumeia says:

        Hi,
        Thank you for your explanation. I am trying to use your code with my data (OCT images) for regression, I put all code together. I saved the images in the list as you have done (train_image).
        when I split the data and call the extract_features function, I think there are missing steps!!
        if you could explain that then it will be very helpful for me.
        much appreciated.
        Thanks.

        • Aditya says:

          Hi Sumeia,

          Thanks for reaching out. Can you help understand your problem in little more depth. You have mentioned about using this approach your regression, so I am not sure how that will be helpful. But if you can share your code or notebook through email or LinkedIn, I can take a look and try helping you solve the problem that you are facing.

          Thanks,
          Aditya

  2. Vishal Savade says:

    Hey, Aditya I am working on multi-disease classification using chest X-ray using NIH dataset but as the dataset is largely imbalanced our model have some issue with accuracy so I was exploring some balancing technique which landed me here. So I just wanted to know how can I apply SMOTE on mutli class dataset whether I should apply on dataset first and create my balanced dataset and then apply to our model. or any other way. It would be really helpful to me.
    Inshort how will I balance mutliple classes using smote

  3. Akash Ravi Prame says:

    Hi,

    I’m working on a similar problem, but with thermal images instead of X-Ray. Although, I have a major doubt about this approach. You use the images from the training set to train the CNN and then you use the same images to extract features. Is this considered good practice? Also, do you think it’s also possible to combine handcrafted features with the CNN features? Thanks in advance.

    Regards,
    Akash

    • Aditya says:

      Hi Akash,

      Thanks for reaching out. To answer your question, initially you would need to train your model on your training dataset and then use the trained model to extract features from your test or validation dataset. For the feature extraction, there can be multiple ways. Either you can cut end FC layers from a conventional DNN model and train only the encoder part. Or you can train a full model, and just cut out the FC layers to get the feature results. You can also refer this code: https://github.com/adib0073/NUMODRIL/blob/main/Code%20Snippets/DHL.py and observe how the feature extraction is done differently, and can be done for training, testing and validation datasets. For your second question, yes it is absolutely possible. Usually the CNN extracted featured are flattened and can be appended with other external features or handcrafted features.

  4. Sharath Manjunath says:

    Can I get a complete code of this implementation.

  5. Sharath Manjunath says:

    Can I get a complete code for this implementation? and want to know how you have applied SMOTE and other imbalance technique

  6. Saar Eliad says:

    Hi Aditya,
    Are you aware of additional use-cases of this hybrid approach, which is used in production?

    Best,
    Saar

    • Aditya says:

      Hi Saar,

      Thanks for the question. In short any problem that can be solved using Deep Learning can also be solved using Deep Hybrid Learning. Using I have seen better results for supervised learning problems. But unsupervised problems like image based search system is also another good example where DHP is a go to approach.

      Thanks,
      Aditya

  7. bayan says:

    Thank you for this very useful article, and I would like to ask you, do you think this method will be effective in the case of multi-class classification ??

    and, is it possible to apply a realistic example of a multi-class classification using this method,

    Thank you very much…

    • Aditya says:

      Yes absolutely! But it might also depend on the dynamics of your dataset. Another approach that worked for me for multi class classification is the Focal Loss approach. You may try that as well.

  8. Priyanka Sahu says:

    Hi Aditya,

    I understood X_train, y_train but what are xTrain, yTrain…in….. ?
    train_features, train_labels = extract_features(xTrain, yTrain, xTrain.shape[0]).
    Please explain am just badly confused.
    Thanks in advance.

  9. PRIYANKA says:

    Hi Aditya,

    I understood X_train, y_train but what are xTrain, yTrain…in….. ?
    train_features, train_labels = extract_features(xTrain, yTrain, xTrain.shape[0]).
    Please explain am just badly confused.
    Thanks in advance.

    • Aditya says:

      Hi Priyanka,

      Thanks for your question. So, xTrain/yTrain is equivalent to X_train, its just that I had applied SMOTE to upsample the minority classes and after applying SMOTE I had stored x_train values under new variable name xTrain.

      • PRIYANKA says:

        OK…Thank you so much, Aditya.

      • PRIYANKA says:

        Hi Aditya,

        I came across with another error while extracting features:

        ValueError Traceback (most recent call last)
        in ()
        —-> 1 train_features, train_labels = extract_features(x_train, y_train, x_train.shape[0])

        in extract_features(x_train, y_train, sample_count)
        23
        24 features[i * batch_size : (i + 1) * batch_size] = features_batch
        —> 25 labels[i * batch_size : (i + 1) * batch_size] = labels_batch
        26 i += 1
        27 if i * batch_size >= sample_count:

        ValueError: could not broadcast input array from shape (32,1) into shape (32)

        I am trying for the last 15 days but could not able to solve it. Kindly help me out. Thanks in advance.

  10. ashwini says:

    Hi sir thank you very much for the video it was very help full and the explanation was very good…
    sir can u suggest me any latest de-noising algorithms to de noise medical images like x ray images?

    • Aditya says:

      Hi Ashwini,

      Thank you for your question. For image de-noising I did come across certain encoder decoder based architectures and certain unsupervised and semi supervised methods used for denoising.

  11. siva krishna says:

    Dear Aditya Sir,

    i am doing text classification on tweeter data. i am very new to research. Now I am applying a deep hybrid model to text classification.

    Could be please share your email id so that I will communicate my problem which help me

  12. Wow, awesome blog layout! How long have you been blogging for?
    you make blogging look easy. The overall look of your website is fantastic,
    as well as the content!

Leave a Reply

Your email address will not be published. Required fields are marked *