Is it possible to predict the age from Cardiac CT Images?

Eser İşler
2 min readFeb 17, 2021

As I’m working a lot with cardiac computed tomography images, I wondered if it would be possible to train a deep learning model to predict the age information from the CT images. We already know that it is possible to guess the age information from retinal images as stated in this nature article. But is it possible to predict it from the images of the heart and surrounding tissues?

For that I used our research database and collected about 1000 cardiac CT images with the age information. The images all had different sizes, so first I resized the images to the same size. After that, I split the dataset into training and validation sets. Then, I developed a 2D convolutional neural network which takes the third dimension as the channel size. Channel size began as 216 and together with dimensions (216,216) gradually decreased to 1 number output, which was the predicted age. I used Mean Squared Error as a loss function, as this is a commonly used loss method for regression problems. I also applied some methods to avoid overfitting such as L2 regularization and batch normalization. To calculate the accuracy, I accepted the ages that are in the 10 year vicinity of the actual age and increased the correct value whenever it predicts right,dividing it by the total predictions.

First training was actually bad and it only reached about 30 % accuracy on the training set. Here I should mention that the dataset is not homogenous and there are just too many samples from age 50–70 and too little from other ages, which makes the program just predict between 50 and 70 and be right some of the time. I wanted to change the model a bit and asked a data scientist friend of mine, who suggested that I increase the channel size first to 512, and then decrease gradually. He also added, that dropout could be useful to add.

Applying these changes and training again, I was surprised when the accuracy indeed increased up to 75 %! Was it actually working or was it overfitting?

Unfortunately, it was overfitting because when it moved to the validation dataset, it only reached about 30 % accuracy. So it wasn’t that successful at all.

My next goal is to try a 3D convolutional neural network and see if it performs better, or just will be too slow and need a better computer.

Do you have any suggestions? Please let me know how I can improve the model. I’m sharing the git repository for the curious people.

I’m happy to see your comments!

--

--