Deprecated: Creation of dynamic property cls_session::$session_data_table is deprecated in /www/sites/www.188bio.com/index/systems/cls_session.php on line 49
矩池云 | 新冠肺炎防控:肺炎CT检测 - 简书188bio精品生物—专注于实验室精品爆款的电商平台 - 蚂蚁淘旗下精选188款生物医学科研用品
您好,欢迎您进入188进口试剂采购网网站! 服务热线:4000-520-616
蚂蚁淘商城 | 现货促销 | 科研狗 | 生物在线

矩池云 | 新冠肺炎防控:肺炎CT检测 - 简书

矩池云 | 新冠肺炎防控:肺炎CT检测 - 简书登录注册写文章首页下载APPIT技术矩池云 | 新冠肺炎防控:肺炎CT检测矩池云关注赞赏支持矩池云 | 新冠肺炎防控:肺炎CT检测连日来,新型冠状病毒感染的肺炎疫情,牵动的不仅仅是全武汉、全湖北,更是全国人民的心,大家纷纷以自己独特的方式为武汉加油!我们相信坚持下去,终会春暖花开。今天让我们以简单实用的神经网络模型,来检测肺炎的CT影像。第一步:导入我们需要的库from keras.preprocessing.image import ImageDataGenerator, load_imgfrom keras.models import Sequentialfrom keras.layers import Dense, Dropout, Flatten, ZeroPadding2D, Conv2D, MaxPooling2D, Activationfrom keras.optimizers import Adam, SGD, RMSpropfrom keras.callbacks import EarlyStoppingfrom keras import backend as Kimport tensorflow as tfconfig = tf.ConfigProto()config.gpu_options.per_process_gpu_memory_fraction = 0.9K.tensorflow_backend.set_session(tf.Session(config=config))import osimport numpy as npimport pandas as npimport cv2from glob import globimport matplotlib.pyplot as plt%matplotlib inline第二步:数据查看2.1 先确认下我们数据的目录结构:在chest_xray文件夹中,我们将数据分成了训练病例数据(train), 测试病例数据(test), 验证病例数据(val);每个训练数据,测试数据,验证数据的文件夹中我们又分成了正常的病例数据(normal), 肺炎病例数据(pneumonia)。print(\"训练病例数据\")print(os.listdir(\"chest_xray\"))print(os.listdir(\"chest_xray/train\"))print(os.listdir(\"chest_xray/train/\"))训练病例数据[\'test\', \'train\', \'val\', \'.DS_Store\'][\'NORMAL\', \'.DS_Store\', \'PNEUMONIA\'][\'NORMAL\', \'.DS_Store\', \'PNEUMONIA\']print(\"测试病例数据\")print(os.listdir(\"chest_xray\"))print(os.listdir(\"chest_xray/test\"))print(os.listdir(\"chest_xray/test/\"))测试病例数据[\'test\', \'train\', \'val\', \'.DS_Store\'][\'NORMAL\', \'.DS_Store\', \'PNEUMONIA\'][\'NORMAL\', \'.DS_Store\', \'PNEUMONIA\']print(\"验证病例数据\")print(os.listdir(\"chest_xray\"))print(os.listdir(\"chest_xray/val\"))print(os.listdir(\"chest_xray/val/\"))验证病例数据[\'test\', \'train\', \'val\', \'.DS_Store\'][\'NORMAL\', \'.DS_Store\', \'PNEUMONIA\'][\'NORMAL\', \'.DS_Store\', \'PNEUMONIA\']2.2 用matpolt 来可视化我们的病例数据:2.2.1 没有肺炎的20个病例的CT图片:multipleImages = glob(\'chest_xray/train/NORMAL/**\')i_ = 0plt.rcParams[\'figure.figsize\'] = (10.0, 10.0)plt.subplots_adjust(wspace=0, hspace=0)for l in multipleImages[:25]: im = cv2.imread(l) im = cv2.resize(im, (128, 128)) plt.subplot(5, 5, i_+1) #.set_title(l) plt.imshow(cv2.cvtColor(im, cv2.COLOR_BGR2RGB)); plt.axis(\'off\') i_ += 1image2.2.2 有肺炎的20个病例的CT图片:multipleImages = glob(\'chest_xray/train/PNEUMONIA/**\')i_ = 0plt.rcParams[\'figure.figsize\'] = (10.0, 10.0)plt.subplots_adjust(wspace=0, hspace=0)for l in multipleImages[:25]: im = cv2.imread(l) im = cv2.resize(im, (128, 128)) plt.subplot(5, 5, i_+1) #.set_title(l) plt.imshow(cv2.cvtColor(im, cv2.COLOR_BGR2RGB)); plt.axis(\'off\') i_ += 1image第三步:数据预处理3.1 首先先定义一些我们需要使用到的变量# 图片尺寸image_width = 226image_height = 2263.2 处理下图片的通道数在输入数据中的格式问题if K.image_data_format() == \'channels_first\': input_shape = (3, image_width, image_height)else: input_shape = (image_width, image_height, 3)3.3 数据加载和增强这个案例,我们使用Keras的ImageDataGenerator来加载我们的数据,并且做数据增强跟处理。ImageDataGenerator是keras.preprocessing.image模块中的图片生成器,同时也可以在batch中对数据进行增强,扩充数据集大小,增强模型的泛化能力。比如进行旋转,变形,归一化等。3.3.1 定义训练数据的ImageDataGenerator训练数据的ImageDataGenerator我们做了如下几个处理:将像素值归一化 (rescale)剪切强度(逆时针方向的剪切变换角度),强度为0.2随机缩放的幅度, 当前为0.2水平翻转train_data_gen = ImageDataGenerator( rescale=1. / 255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True)3.3.2 定义测试数据的ImageDataGenerator测试数据我们只做了归一化处理test_data_gen = ImageDataGenerator(rescale=1. / 255)3.4 使用我们定义好的ImageDataGenerator从文件夹中读取数据, 其中target_size参数会把我们读入的原始数据缩放到我们想要的尺寸3.4.1 训练数据读取train_generator = train_data_gen.flow_from_directory( \'chest_xray/train\', target_size=(image_width, image_height), batch_size=16, class_mode=\'categorical\')Found 5216 images belonging to 2 classes.3.4.2 验证数据读取validation_generator = test_data_gen.flow_from_directory( \'chest_xray/val\', target_size=(image_width, image_height), batch_size=16, class_mode=\'categorical\')Found 16 images belonging to 2 classes.3.4.3 测试数据读取test_generator = test_data_gen.flow_from_directory( \'chest_xray/test\', target_size=(image_width, image_height), batch_size=16, class_mode=\'categorical\')Found 624 images belonging to 2 classes.第四步:模型构建4.1 定义我们的模型我们的模型层次采用VGG16 网络模型,原模型链接:https://gist.github.com/baraldilorenzo/07d7802847aaad0a35d34.1.1 VGGVGG是由Simonyan 和Zisserman在文献《Very Deep Convolutional Networks for Large Scale Image Recognition》中提出卷积神经网络模型,其名称来源于作者所在的牛津大学视觉几何组(Visual Geometry Group)的缩写。该模型参加2014年的 ImageNet图像分类与定位挑战赛,取得了优异成绩:在分类任务上排名第二,在定位任务上排名第一。VGG结构图:image4.1.2 VGG16VGG模型有一些变种,其中最受欢迎的当然是 VGG-16,这是一个拥有16层的模型。你可以看到它需要维度是 224x224x3 的输入数据。VGG16输入224x224x3的图片,经过的卷积核大小为3x3x3,stride=1,padding=1,pooling为采用2x2的Max Pooling方式:输入224x224x3的图片,经过64个卷积核的两次卷积后,采用一次Max Pooling再经过两次128的卷积核卷积之后,采用一次Max Pooling再经过三次256的卷积核的卷积之后,采用Max Pooling重复两次三个512的卷积核卷积之后再Max PoolingVGG 16结构图

新闻动态
行业前沿
技术文章
最新产品

188进口试剂采购网 www.188bio.cn -中国试剂网,试剂网,化学试剂网,国药试剂,抗体公司,试剂公司,试剂盒公司,苏州试剂公司,北京化学试剂公司,天津化学试剂,试剂商城,试剂代理,流式抗体 细胞库查询 sitemap