当前位置: 首页 > 软件库 > 神经网络/人工智能 > >

CNN-DICOM-Segmentation

DICOM Image Segmentation with CNNs in Tensorflow
授权协议 Readme
开发语言 Python
所属分类 神经网络/人工智能
软件类型 开源软件
地区 不详
投 递 者 牧业
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

HealthCare

Project : Image Segmentation of Dicom Images to remove headrest label from head CT scans

Please give a if you like my work. ��

Description

  • Programming Language - Python2.7, Jupyter, Tensorflow
  • Task: Remove Headrest from all the scans of patient given in dicom format using Convolutional Neural Networks by Image Segmentation

Data Preprocessing

  • Reading Dicom Images from pydicom package and store image in numpy arrays.
  • Converting raw grayscaled images stored in Hounsfield Units into meaningful numpy arrays for CNNs by rescaling them using slope and threshold taken from dicom image header. Below is the example of Hounsfield units histogram representation before scaling of a dicom image.

    Here is the Hounsfield units histogram representation after scaling and threshold correction for the same dicom image.

  • Creating Ground truth labels by segmenting images using K-Means clustering and finding non-connected components in a clustered image to identify headrest label.This works with 95%+ accuracy as only few examples are there where headrest is connected directly to head in a CT scan image. Below is one of the example where our method fails and this will be solved by using CNNs:

    Segmenting them by calculating mean and standard deviation of HU units for each label created in previous step, this is done because more often some small noisy components of head may also get labelled as headrest which are not connected to head in a CT scan image. Then, we give headrest label pixels as 1 in the image and rest all label pixels as 0 in the image.
  • Storing these labels as segmented labels for training input images.

Building CNNs

  • Input Image of 512 * 512 greyscaled images of head CT scans.
  • Output - Segmented label for Headrest
  • Built different models:
    • 3 Layer - 2 Convolutional/Deconvolutional in each layer - 2 Max pooling - "VALID" padding (size not same of output)
    • 7 Layer - 2 Convolutional/Deconvolutional (First 3 layers), 4 (Next 3 layers), 8(Last layer) - 6 pooling and upsampling layers - "SAME" padding (Final model used for predicting images.) Here is the architecture of convolutional neural network model:

  • Performing much better than thresholding methods

Results & Visualization

  • Achieved accuracy above 99% in Image segmentation of 500 dicom images. Here is one example of one test image.

  • Since model was trained on only head CT scan images, here is the segmented image of chest CT scan image when feeded to the model.

  • There is an awesome visualization of how model improves and predicts a batch of 10 images per epoch in a video format. Here is the link for the video or you can also download it from /images/Epoc_video.mp4

Special credit to Joel Akeret for beautiful implementation of Image Segmentation of Tensorflow. Please visit his repo for detailed code.

 相关资料
  • DICOM 是一个用Ruby语言开发的类库用来处理 DICOM 文件,无须第三方库支持。 医疗数位影像传输协定(DICOM)是Digital Imaging and Communications in Medicine的简称,是一组通用的标准协定,在对于医学影像的处理、储存、打印、传输上。它包含了档案格式的定义及网络通信协定。DICOM是以TCP/IP为基础的应用协定,并以TCP/IP联系各个系统

  • 我试图创建一个简单的WinForms查看器来显示NOVARAD pacs系统中生成的DICOM文件。我正在使用他们GitHub页面中的以下代码: 当我运行代码时,我得到以下错误: DICOM.Imaging.codec.DICOMcodecException:“不支持使用传输语法解码数据集:JPEG 2000图像压缩(仅无损)。” 我假设我需要从JPEG2000解压。fi-dicom不能做到这一点

  • Object recognition and categorization using TensorFlow required a basic understanding of convolutions (for CNNs), common layers (non-linearity, pooling, fc), image loading, image manipulation and colo

  • 参考这里. Common Layers For a neural network architecture to be considered a CNN, it requires at least one convolution layer (tf.nn.conv2d). There are practical uses for a single layer CNN (edge detection

  • CNN 的基本特征 稀疏交互和参数共享 动机 局部特征——卷积的核心思想 平移等变性 意义 提高统计效率 当处理一张图像时,输入的图像可能包含成千上万个像素点,但是我们可以通过只占用几十到上百个像素点的核来检测一些局部但有意义的特征,例如图像的边缘。 减少参数数量 减少存储需求 加速计算 卷积的内部实现 Theano 中的实现 Convolution as a matrix operation 先

  • Faster R-CNN 可以简单地看做是 R-CNN 和 Fast R-CNN 的升级版,或者可以看成是“区域生成网络+Fast R-CNN”的系统,用区域生成网络代替 Fast R-CNN 中的 Selective Search 方法。 R-CNN 系列方法对比: Faster R-CNN(其中 R 对应于“Region(区域)” )是基于深度学习 R-CNN 系列目标检测最好的方法。使用 V