Inspiration

We found this problem very interesting, because it requires creativity just to train a network on such small amount of data. And to be fair, we also found the idea of diagnosing somebody with a specific diesase just by classifying teardrop crystals very intriguing.

What it does

Currently, the whole Pipeline is packed inside a user-friendly GUI that encapsulates all the models required for inference. You basically upload data in RAW format from microscope, we then read that specific data format, normalize, transform it and send it to combined inference of two models: Fine-tuned Resnet18 neural network and a Random Forest ML algorithm, which then evaluate the sent data.

How we built it

The GUI app is written in Python. All the models are fine-tuned by ourselves (using a custom training loop in Pytorch) and have a corresponding runtime script that enables seamless integration into the main GUI app. The system supports CUDA acceleration. We mainly aim for self-hosted locally deployable AI.

Challenges we ran into

Dataset was really small and also had some discrepancies (different scales in different samples). There was also a need to write own read script that would be able to read pure RAW data and also a preprocessing library that would do some interesting transformations to make input data more plausible for neural nets.

Accomplishments that we're proud of

We are not using any cloud service, every model is locally inferred. After setting up all the training and testing pipelines + GUI we decided to independently build 4 different models (one ML/DL algorithm per team-member) - 2 differently Fine-Tuned ResNet18, Custom built CNN and one RandomForest algorithm. All algorithms scored validation F1 score >= 0.75 and two of them got near the score 0.97 (RandomForest and one Fine-Tuned ResNet18 - which are then later used in inference).

What we learned

A lot of AI stuff, especially how to train own Neural network in like 24 hours? :D.

What's next for Oezys

Finishing this project, reworking the algorithms to make them more robust and finally possibly releasing it to the public :).

Built With

Share this project:

Updates