Code for 3D Inceotion Convolutional Neural Networks for Lung Nodule Detection.
- Python
- Numpy
- Tensorflow
- Opencv-Python
- Tqdm
- Selective Search
- Scipy
- Itk-iamge
- Scikit-Learn
Resample Lung Image and make each voxel represents 1 mm^3 in real world. Use -320 HU to segment lung parenchyma and get the mask of lung parenchyma binary images.
Use selective search algorithm to make ROI in 2D images and use filters to choose some suspicous nodules.
The proposed regions are 2D images and we want to train a 3D-CNN. So we use the center point of 2D regions and slice index as the original point in 3D volume, and crop the 484848 volume from lung scans with the original point. This makes the candidate nodule is in the center of the volume. Finally we remove the volume coincide with positive samples and randomly down sample the negative samples with the ratio of 0.2.
We adopted Adam Optimizer to train our neural networks. The lose function we use least square function to metric the true labels and predict labels. All the code was implemented with the most popular deep learning library TensorFlow 1.0.0. The batch size was set according to the GPU memory: for MODEL-Ⅰ, the batch size is 30; for MODEL-Ⅱ, the batch size is 15. Each model runs 20 epochs with the speed of 2 epochs per hour for MODEL-Ⅰ and 1 epoch per hour for MODEL-Ⅱ on a single Nvidia GTX 1080.