Inspiration
This project was inspired by a passion for neuroscience and a desire to improve the lives of patients. I specifically wanted to design a program that could potentially help physicians in managing patients with a devastating disease like a brain tumor. I hope that my program can serve as a basis for more complex programs that can be applied in the healthcare setting.
What it does
This program analyzes histology slides of healthy brain tissue and brain tissue that has been affected by a brain tumor called a glioma. It works by using a deep-learning algorithm called Convolutional Neural Network (CNN) to analyze the slides. The algorithm runs through several epochs, or iterations, to analyze all the 15 histology slides of healthy brain tissue and the 4 histology slides of diseased brain tissue (19 in total), and the data is augmented to increase the data size for the program to analyze. Once the data analysis is complete, it generates graphs showing the validation and training losses and a performance table.
How we built it
The program was built by first importing the necessary modules. The data was then prepared and preprocessed by cropping the images to include only the relevant information. The data was then loaded, and the sample histology slides were then plotted. Data was then split for training, validation, and testing, and the CNN model was set up. Once the model was ready, the model was trained by running it through several epochs, and the loss and accuracy were plotted on two graphs. The results are then interpreted and provided in a tabular format.
Challenges we ran into
Some challenges I ran into included importing the data and getting the results produced. I also faced challenges with getting the CNN to iterate through the images, and getting the results graphed and recording them on the performance table. One more I faced was passing the dataset to the program.
Accomplishments that we're proud of
The main accomplishment I am proud of is getting the program to work. More specifically, I am proud that I was able to integrate a CNN model into the program. I also am proud that the results were able to be successfully produced and interpreted. I also am proud that I was able to learn a lot about deep learning and neural networks from this experience.
What we learned
One major topic I learned about was that of CNNs. I learned that CNNs are commonly used to analyze images and that they have convolution, pooling, and fully-connected layers. I also learned that tools like Jupyter can be used to run deep learning code. I also learned about the code life cycle and the process of storing them in source code repositories like GitHub. Finally, I learned that machine learning is incredibly capable and that it can be used in preventive care by training models using datasets from patients.
What's next for Brain Tumor Histology Algorithm
For one, more data needs to be added to the algorithm since it only works for gliomas. By adding more data, the Brain Tumor Histology Algorithm can work for several different types of brain tumors. Additionally, once this data is added, the code will need to be adjusted as needed. This adjustment may include changing the amount of iterations the program does and creating more parameters that allow for the new data. Finally, once the code is finalized, it can be integrated into microscope hardware to be used in clinical laboratories.
How it can be accessed and used
In order to access this program, first click on the "ngrok" URL in the "'Try it out' links" section to access the program hosted on Jupyter. Next, enter the password "science$58" (without quotation marks). Then click "Brain Tumor Detection.ipynb" in Jupyter. Once you have clicked on this and accessed the program, click "Run" as the cursor moves through each section, and keep clicking until the cursor goes past "Hooray!" at the very end. Finally, scroll up to see the epochs, graphs, and performance table at the bottom.
Built With
- anaconda
- github
- jupyter
- machine-learning
- python
- tensorflow
- vscode
Log in or sign up for Devpost to join the conversation.