Project: Low Powered Models for disease detection and classification for Radiology Images

@r0bby I have a doubt. I had applied for the the project “Automatic Labelling of Radiology Images”. On the main GSoC website, my project title is the same. But here on the forums, it is " Low Powered Models for disease detection and classification for Radiology Images". You have mentioned this new title in this recent post too - Congratulations our accepted Students for GSoC 2020 .

Is this an error ? Or am I supposed to work under this project title using my original proposal? Or am I supposed to alter my proposal to fit this new project?

@aishwhereya, First of all Congratulations!!

There will be some modification in your projects, which falls into this category, so @r0bby has asked you to use this thread. I will let you know how to proceed on this soon.

Till then brush up your skills on Qunatization of models. :slightly_smiling_face:

1 Like

Ok got it. I will start reading about it.

@pri2si17 we need to set up a constant time per week for conversations regarding updates and queries. How do you propose to go about it? Would it be okay to use librehealth chat instead of the forum?

I will let you know how to proceed.

1 Like

While I prefer asynchronous communication as it can be seen by all, I allow the use of the Jitsi Meet room in the first post.

1 Like

Hello @pri2si17 @judywawira,

I realized that I have only interacted with @pri2si17 before and that too only regarding the project. So as a starter for the Community Bonding period, here is a short introduction about me - Google Summer of Code 2020 Student Meet and Greet

1 Like

You’re fine – thanks for doing that.

1 Like

Hello @pri2si17 @judywawira

It has been a week since the community bonding period has started and I think we are lacking communication about how to go ahead regarding this project. I think we can have more discussions about the contents of this project starting with the instructions that @pri2si17 was going to give me. I am going to have a lot of queries due to the change of title and will probably have to set up a new timeline too. I am sorry if I am being impatient. Till then, I have read about quantization as @pri2si17 had said. And I have also gone through this thread for understanding the basic requirements Project: Low Powered Models for disease detection and classification for Radiology Images

1 Like

Hi @aishwhereya

Yes it is delay on my part. Sorry for that. But please be rest assured, you will have complete plan before coding period begins. :slight_smile:

I am giving you brief overview, of the modifications, and will make a detailed outline in coming days. Please bear with me. The whole idea of this project is to develop models which can run on low powered machines like andriod, ios and even embedded ARM boards. So :

  • You will have to develop models for classification and detection as you were doing it earlier.
  • Apply optimisation techniques (quantization/prunning).
  • Qunatization to be applied : 16-bit/8-bit/4-bit/Integer/binary
  • Observe the power consumption (possibly you need to search for it), inference time, model size. (Will provide details for it)
  • Run it on emulators. (Qemu is there)

With quantization, we wanted to have a model whose accuracy is comparable to deep models, but much faster and light weight.

Tasks you can look for is :

One more point, explore student-teacher paradigm (https://arxiv.org/pdf/1804.06332.pdf) and see if you can replicate it.

Let me know in case of any issue. :slight_smile:

@judywawira Please see to it.

1 Like

Thank you @pri2si17

I will set up the environment and complete these tasks. I will get back to you after that. Also, is my project going to be integrated with lh-radiology ? Do I have to look into the code-base of any particular module apart from the one that you mentioned?

Nopes. Just this repository.

1 Like

Hello @pri2si17

I have completed the following tasks.

  • Forked the lh-radiology-mobile-modules repo

  • Built the docker image from the given Dockerfile and ran it successfully.

  • Emulated Raspberry Pi from Qemu on my local machine as well as inside a docker container. I have written the Dockerfile for the same. I have used the base image of Ubuntu-18.04 and emulated Rasbian-Stretch on the Pi.

I read the paper (https://arxiv.org/pdf/1804.06332.pdf) that you suggested to implement the student-teacher paradigm. They have not released the code for the mathematics that they have used. The only thing that they have mentioned is that they have used MXNet Library for implementation.

I am exploring techniques to evaluate models based on

  • Memory Usage (Model size can be found easily. Looking for methods to find number of parameters)

  • Computation Time (This is a simple piece of code)

  • Power Consumption (Looking for methods for this factor)

Waiting for more instructions from you.

PS : I have to update my project title and abstract on the main GSoC website. Any suggestions for the abstract? May I write the brief introduction that you gave me in the previous message?

I hope we can see some Ultrasound (US) or IVUS focused low-powered models through this project… and many of the use-cases probably have some kind of real-time detection from these. You know a lot of people call portable US the future stethoscopes.

1 Like

Hi @aishwhereya

@sunbiz @judywawira can you please clear this. Regarding abstract, yes you can put that.

Yes they haven’t provided the code, but I think you can take reference of knowledge distillation github repos.

Perfect! Can you raise a PR to my repo? I am assuming that you made changes to the same Dockerfile.

Hi @sunbiz

Can you please provide more details about it.

Sure I’ll do the needful this week.

This will need more research, but please have a look at the following research papers and the models used here:

@pri2si17 @judywawira

I have a few questions to ask.

  1. Should I apply model compression during training, after training or both? I will be using hybrid compression techniques post-training too.

  2. In the Dockerfile that you created, a lot of packages are not required. Eg - Anaconda, pytorch, django, sqlite3,etc. May I start with my own Dockerfile and add packages as and when required?

  3. For the architecture of the system, I will be creating a Flask application that will accept trained models and return compressed models. How do I integrate the Qemu emulator with this application? Or should I keep it separate just for testing purposes of the models? For running different models, different scripts need to be written as per the edge device. So should I keep the Flask application as the end product? I will add features to it to return the comparison between the original and compressed model.

Week 3 blog post and update - https://gsoc2020withlibrehealth.blogspot.com/2020/05/week-3-community-bonding-cont.html

@judywawira @pri2si17 @ATariq

Hello mentors,

I need to discuss a few project specifications with you and the roadmap for the summer. Asynchronous communication will take too long to receive replies. Please can you allot me some time for a video call meeting next week?