Final writeup/reflection

https://docs.google.com/document/d/1z8I5mTbN_rf59Qa7CuWD14eDDWPhmNxwZn1xlfTgAXg/edit?usp=sharing


Check-in #3 Write-up

Introduction:

The paper’s objective is to classify human bones from different body parts including Elbow, Hand, Wrist, Shoulder, Finger, Humorous and Forearm using a Convolutional Neural Network. We chose this paper because we thought it would be an interesting implementation of the CNN as a classification model. This is a classification problem.

Challenges:

The hardest part of the project was the preprocessing step. Since we have a dataset of 36808 images, it took a long time to load the data, which caused some problems when we were trying to debug our program. Another problem was with the naming of our folders and parsing the file names. Dealing with data types in tensors was also an issue. We needed to figure out the ordering of certain function calls because Tensorflow’s eager execution prevented us from getting the data from the Tensor at certain parts. Additionally, our paper did not completely provide the architecture. They had given us the output sizes and layers used but did not specify the image, filter, kernel, and other input sizes. This makes reimplementation of the paper difficult.

Insights:

Data loading is taking longer than expected, but preprocessing is done. We have not been able to run the model on the entire dataset yet to gauge performance.

Plan:

We are looking to find ways to make data loading fast for future iterations. Since the model architecture is pretty much laid out in the paper, and since we know that a small amount of data can be properly trained on with our current code, we will be mostly focusing on making sure we can load in and train on the entire dataset. We plan on adding a try and except block for loading in data to prevent further issues. Additionally, we have changed the architecture a bit to fill in blanks left by the paper.

Check-in #2 Write-up

Title: Summarizes the main idea of your project.

Bone-jour. Bone classification based on CNN

Who: Names and logins of all your group members.

Xiaohan Ye (xye23), Thu Luu (tluu6), Byron Butaney (bbutaney)

Introduction: What problem are you trying to solve and why?

The paper’s objective is to classify human bones from different body parts including Elbow, Hand, Wrist, Shoulder, Finger, Humorous and Forearm using a Convolutional Neural Network. We chose this paper because we thought it would be an interesting implementation of the CNN as a classification model. This is a classification problem.

Related Work: Are you aware of any, or is there any prior work that you drew on to do your project?

Related work: ​​https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8321195/

CNNs are also used to detect bone fractures, which has important implications in emergency rooms where decisions need to be made rapidly. This paper studies the use of transfer learning in musculoskeletal image classification.

Public implementations: https://stanfordmlgroup.github.io/competitions/mura/

Data: What data are you using (if any)?

We will be using the Musculoskeletal Radiographs (MURA) dataset from the Stanford Program for Artificial Intelligence in Medicine and Imaging (found here: https://stanfordmlgroup.github.io/competitions/mura). This dataset contains a total of 40,005 x-ray images of 14,052 patients, ultimately resulting in a training set of 36,808 images and a testing set of 3197 images.

Methodology: What is the architecture of your model?

We will follow the paper’s architecture. The paper uses an architecture of 4 convolutional layers, 4 pooling layers, 1 flattening layer, and 3 Dense layers with 2 dropout layers with rates of 0.2. The hardest part of implementing the model will be preprocessing the images from the MURA dataset to fit with our architecture.

Metrics: What constitutes “success?”

The paper achieved a best accuracy of 94.23% for the training set and an accuracy of 91.37% for the testing set. The authors also only used seven classes of bones (elbow, hand, wrist, shoulder, finger, humorous, and forearm). If we can achieve a similar accuracy through parameter fine tuning (around 85-90% on the test set), that would certainly be a success. Since this is a classification problem, the notion of accuracy definitely applies to our project. The authors were initially hoping to create a model that could accurately identify bones in order to aid in treatment suggestions. They quantified the results of their model through accuracy (both of training and testing sets). Our base goal is to achieve a model that can properly fit to the training data and achieve an accuracy of at least 70%. Our target goal would be to achieve an accuracy of around 80-85%, and a stretch goal would be to achieve an accuracy of 90% or higher. Running our model on the data as a classification task is the only “experiment” that we will run, but we will be testing out different parameters to see how they affect model accuracy, overfitting/underfitting, bias/variance, etc., which could also be considered as experiments.

Ethics: Choose 2 of the following bullet points to discuss; not all questions will be relevant to all projects so try to pick questions where there’s interesting engagement with your project. (Remember that there’s not necessarily an ethical/unethical binary; rather, we want to encourage you to think critically about your problem setup.)

What broader societal issues are relevant to your chosen problem space?

Though bone classification can quicken diagnosis within the healthcare industry, it doesn’t benefit those who are unable to access healthcare. This highlights the importance of making such programs accessible to the public and not hidden behind a paywall. Although, we will run into a different issue such as whether a patient will feel comfortable with receiving diagnosis from a computer rather than a person.

Why is Deep Learning a good approach to this problem?

Deeping learning is good for this issue because this classification task does not deal with heavy choices. Classification of bones is an intermediate task which means that a human will make the final decision based on the classification, rather than the program deciding on what will happen to the patient. In the field, a doctor should have the input (an x-ray image) that is then fed into the model. The model will give the doctor a prediction in which the doctor can determine if it is correct or not before making their verdict. The major stakeholders of this project are patients and physicians. Patients might be affected by both correct and incorrect diagnoses, whereas physicians have to trust our model enough to use it to aid them in their diagnoses. We are planning on quantifying our success through our accuracy on the testing set. The implications of this accuracy are the potentially detrimental effects that an incorrect diagnosis could have on both a patient and a physician’s reputation.

Division of labor: Briefly outline who will be responsible for which part(s) of the project.

We will work on preprocessing and building the architecture together and then fine tune the parameters separately to achieve the best performance.

Built With

Share this project:

Updates

Submission history