
Introduction
Acute Lymphoblastic Leukemia (ALL), also known as acute lymphocytic leukemia, is a cancer that affects the lymphoid blood cell lineage. It is the most common leukemia in children, and it accounts for 10-20% of acute leukemias in adults. The prognosis for both adult and especially childhood ALL has improved substantially since the 1970s. The 5-year survival is approximately 95% in children. In adults, the 5-year survival varies between 25% and 75%, with more favorable results in younger than in older patients. Since 2018 I have worked on numerous projects exploring the use of AI for medical diagnostics, in particular, leukemia. In 2018 my grandfather was diagnosed as terminal with Acute Myeloid leukemia one month after an all clear blood test completely missed the disease. I was convinced that there must have been signs of the disease that were missed in the blood test, and began a research project with the goals of utilizing Artificial Intelligence to solve early detection of leukemia. The project grew to a non-profit association in Spain and is now a UK community interest company.Investigation
One of the objectives of our mission is to experiment with different types of AI, different frameworks/programming languages, and hardware. This project aims to show researchers the potential of the Edge Impulse platform and the NVIDIA Jetson Nano to quickly create and deploy prototypes for medical diagnosis research.Hardware
- NVIDIA Jetson Nano Buy
Platform
- Edge Impulse Visit
Software
Dataset
For this project we are going to use the Acute Lymphoblastic Leukemia (ALL) image dataset. Acute Lymphoblastic Leukemia can be either T-lineage, or B-lineage. This dataset includes 4 classes: Benign, Early Pre-B, Pre-B, and Pro-B Acute Lymphoblastic Leukemia. Pre-B Lymphoblastic Leukemia, or precursor B-Lymphoblastic leukemia, is a very aggressive type of leukemia where there are too many B-cell lymphoblasts in the bone marrow and blood. B-cell lymphoblasts are immature white blood cells that have not formed correctly. The expressions (“early pre-b”, “pre-b” and “pro-b”) are related to the differentiation of B-cells. We can distinguish the different phases based on different cell markers expression, although this is complex because the “normal profile” may be altered in malignant cells. We had quite a lot of issues with the early class, this will be due to the fact the features of the different classes are very similar, especially so with the early class and benign as the early class represents the cells at the earliest stage of growth and is very close to the benign class.Project Setup
Getting started is as simple as heading to Edge Impulse and create your account or login. Once logged in you will be taken to the project selection/creation page.Create New Project
From the project selection/creation page you can create a new project.
Create Edge Impulse project
Import Data
Now it is time to import your data. You should have already downloaded the dataset from Kaggle, if not you can do so now on this link.
Upload data

Uploading data

Uploaded data
Create Impulse

Created Impulse
Image
Parameters

Parameters
Generate Features

Generate Features
Training

Architecture

Training
Platform Testing
Let’s see how the model performs on unseen data. Head over to the Model testing tab where you will see all of the unseen test data available. Click on the Classify all and sit back as we test our model.
Test model results
Jetson Nano Setup
Now we are ready to set up our Jetson Nano project.Python SDK
To deploy our model on our NVIDIA Jetson Nano, we are going to use the Edge Impulse Linux SDK. On your Jetson Nano, run the following command and connect to the platform:Software
For this project you will needopencv-python>=4.5.1.48
. Make sure you have installed it on your Jetson Nano.
Clone The Repository
Now you can clone this project’s GitHub repository to your Jetson Nano. Navigate to the location you would like to clone the repo to and use the following commands:Move Your Model
Now move the model you downloaded earlier into themodel
directory of the cloned repo, modifying your path as required:
Add Your Data
Now it is time to add some test data to your device, ensuring that you are not using any data that has already been uploaded to the Edge Impulse platform. You can use additional images from the Kaggle dataset, or your own data. Place the images into thedata
folder of the cloned repo on your Jetson Nano.
Code
The code has been provided for you in theclassifier.py
file. To run the classifier use the following command: