Lung Cancer Detection Using CT Image Based on 3D Convolutional Neural Network

Early detection of lung nodule is of great importance for the successful diagnosis and treatment of lung cancer. Many researchers have tried with diverse methods, such as thresholding, computer-aided diagnosis system, pattern recognition technique, backpropagation algorithm, etc. Recently, convolutional neural network (CNN) finds promising applications in many areas. In this research, we investigated 3D CNN to detect early lung cancer using LUNA 16 dataset. At first, we preprocessed raw image using thresholding technique. Then we used Vanilla 3D CNN classifier to determine whether the image is cancerous or non-cancerous. The experimental results show that the proposed method can achieve a detection accuracy of about 80% and it is a satisfactory performance compared to the existing technique.


Introduction
Lung cancer is one of the most-fatal diseases all over the world today. About 1.8 million people have been suffering from lung cancer in the whole world [1]. In the United States, only 17% of people diagnosed with lung cancer and they survived for five years after the diagnosis. But the survival rate is lower in developing countries [2]. The growth of uncontrolled cell can spread beyond the lung by the process of metastasis into nearby tissue or other parts of the body [3]. The cancer is localized to the lungs at the first two stages and is spread out different organs in the latter stages. The diagnostic methods are CT scans (Computerized Tomography), chest radiography (X-ray), MRI scan (Magnetic Resonance Im-aging) and biopsies etc. However, it is difficult to detect lung cancer in the early stage. In this research, we have collected CT scan images of 1500 patients. But we have worked on the CT images of 100 patients where each of them contains more than 120 DICOM 3D images. Among these, 80 patients' images are used here for training purpose and 20 patients' images are used for testing purpose. Our system is robust as well as effective for the early detection of lung cancer.
This research contributes to the following: 1) A literature survey is performed on the existing state-of-the-art techniques for the detection of lung cancer.
2) A comprehensive study is performed with standard dataset using deep convolutional neural network architectures for lung cancer detection in the early stage.
In the next section, we have discussed existing literature. Section 3 describes the methodology of our proposed system including CNN architecture, dataset and software tools. Section 4 presents our experimental results. Finally, we conclude our paper in Section 5 along with future research directions.

Literature Review
Artificial Neural Network (ANN) plays a fascinating and vital role to solve various health problems. Suzuki [4], Ashwin [5] and Almas [6]  Kaur et al. [9] designed an automatic CAD system using a backpropagation network for lung tumor detection. They worked on 547 CT images from 10 patients and used the optimal thresholding technique to segment the lung regions.
However, they used only three features.
Prajwal Rao et al. [10] designed a CNN on CT scans images for lung cancer detection and achieved 76% of testing accuracy.
Kayalibay [11] used a CNN-based method with three-dimensional filters on hand and brain MRI. Usually, medical image segmentation focuses on soft tissue and the major organs, but they show that their work is validated on data both from the central nervous system as well as the bones of the hand.
In [12], Tan used CNN for detecting only the juxtapleural lung nodules. They have given a comparative study on the effect of false positive reduction in deep learning-based lung cancer detection system. However, in this work, our target is to use CNN with standard dataset for Journal of Computer and Communications comprehensive study. Figure 1 shows the basic 3D CNN architecture, which consists of input, convolutional, pooling and fully-connected layer.

1) Convolutional layer
This layer is where images are translated into feature-map data by convolutional kernels or filters. In a 3D CNN, the kernels move through three dimensions of data (height, length, and depth) and produce 3D maps. A 3D CNN is necessary for analyzing data where temporal or volumetric context is important.
2) Pooling layer Pooling, or down-sampling, is done on the convolutional output. During pooling, a filter moves across the convolutional output to take either the average or the weighted average or the maximum value. The goal of pooling layer is to progressively reduce the spatial size of the matrix to reduce the number of parameters and to control over fitting.
3) Fully-connected layer The fundamental goal of a fully connected layer is to take the results of the convolution and pooling processes and use them to classify the image into a label. In this layer, a softmax function is used to get probabilities as it pushes the values between 0 and 1. Batch normalization is used to improve the training speed and to reduce over fitting.

Proposed Methodology
The proposed lung cancer detection system is mainly divided into two parts. In the first part, we are doing preprocessing before feeding the images into 3D CNNs. We then detected the nodule candidate that is used to train by 3D CNNs to ultimately classify the CT scans as positive or negative for lung cancer to achieve the result.

1) Preprocessing and Segmentation
For each patient, we first convert the pixel values in each image to Hounsfield units (HU), a measurement of radio-density, and we stack twenty 2D slices into a single 3D image. We divided the preprocessing stages into two parts: resizing and averaging. Our 3D DICOM image size was 512 × 512 × 512 and we resized it to 20 × 50 × 50. Then we performed averaging on all the 20 slices of the resized images for each patient. The raw images and the preprocessed images are shown in Figure 2(a) and Figure 2(b).
After preprocessing, we use segmentation to mask out the bone, outside air, and other substances that would make our data noisy, and leave only lung tissue  Table 1) mainly consists of the following layers: two convolution layers which follow two max-pooling layers and one fully-connected layer with two softmax units. As shown in Figure 1, the network begins with a convolution layer, in which the first convolution layer takes the image with input size of 50 × 50 pixels. The second convolution layer consists of 32 feature maps with the convolution kernel of 3 × 3. The kernel size for max pooling layers is 2 × 2 and the stride of 2 pixels, and the fully-connected layer generates an output of 1024 dimensions. These 10 outputs are then passed to another fully connected layer containing 2 softmax units, which represent the probability that the image is containing the lung cancer or not. Note that each convolution layer in our CNN model is followed by a rectified linear unit (Re-LU) layer to produce their outputs.
After applying these architectures, some images detected with cancerous nodules and some identified as non-cancerous. Sample experimented images of cancerous and non-cancerous are shown in Figure 3(a) and Figure 3(b). 3

) Datasets
We used LUNA16 (Lung Nodule Analysis) datasets (CT scans with labeled nodules). The LUNA 16 dataset has the location of the nodules in each CT scan.
Thus, it will be useful for training the classifier. The inputs are the image files that are in "DICOM" format. The format and configuration of the images are different since the images are captured at different time and from different types of camera. Actually, the images are of size (z × 512 × 512), where z is the number of slices in the CT scan and varies depending on the resolution of the scanner [13]. Such large images cannot be fed directly into convolutional neural network architecture because of the limit on the computation power. At first, we converted all the images into similar size and format. To reduce the size of the input data, we have segmented the image. Thus, we have to find the regions that are more probable of having cancer. We have reduced our search space by first segmenting the lungs and then removing the low intensity regions. We have used the pixel as input to the neural network. The total size of the input data was  15 GB. A small subset of data of size around 2 GB has used for various testing purposes.

4) Tools
For preprocessing of images, we used two popular python tools, i.e. "pydicom" and "OpenCV". Some other essential tools of python such as numpy, sklearn, pandas, etc. are also used. Another python supported deep learning library "Tensorflow" [14] has been used for implementing our deep neural network.

Experimental Results and Discussions
In this research, we have used the CT images from 100 patients. The images of

Conclusion and Future Work
In this research, we used a vanilla 3D CNN classifier to determine whether a CT image of lung is cancerous or non-cancerous. Before using the 3D CNN, we preprocessed the CT image through a thresholding technique. We have performed a thorough experiment using LUNA 16 dataset. Our obtained detection accuracy is 80%, which is better than existing methods. In future, we will perform the experiments on a large amount of data and apply more features such as nodule size, texture and position for further improvement. We will also try to apply the state-of-the-art deep CNN methods for higher accuracy and use our method on other types of cancer detection.