Labview大作业——一种基于labview与深度学习的新冠肺炎X光胸片检测系统
一、概述
由于2020年初新冠状病毒的肆虐,深刻威胁着全国人民的健康,并且由于患者较多,给医护人员带来了巨大的考验。本系统致力于使用深度学习的方法,使用计算机视觉分析X光胸片,给医护人员提供治疗建议,减轻医护人员的负担。
二、深度学习介绍
深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。
深度学习是机器学习的一种,而机器学习是实现人工智能的必经路径。深度学习的概念源于人工神经网络的研究,含多个隐藏层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。研究深度学习的动机在于建立模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本等。(来自百度百科)
三、程序分析
首先,我们需要取得需要用于训练的数据集,并且将数据集的70%划分为训练集,30%划分为测试集。数据集的获取可以在kaggle官网获取(kaggle)。
我们为了能将数据集中的图片喂入神经网络模型中,我们需要读取数据集并且预处理,在工程目录下面新建文件dataset.py,并写入以下内容。
import torch
from torch.utils.data import Dataset
from torchvision import transforms
from PIL import Image
class MyDataset(Dataset):
def __init__(self, txt_path, transform = None, target_transform = None):
fh = open(txt_path, 'r')
imgs = []
for line in fh:
line = line.rstrip()
words = line.split()
imgs.append((words[0], int(words[1])))
self.imgs = imgs
self.transform = transform
self.target_transform = target_transform
def __getitem__(self, index):
fn, label = self.imgs[index]
img = Image.open(fn).convert('RGB')
if self.transform is not None:
img = self.transform(img)
return img, label
def __len__(self):
return len(self.imgs)
def transform():
'''
处理原始数据
'''
tra = transforms.Compose([
transforms.Resize(size=(200,200)),
transforms.RandomRotation(90),#旋转,增加训练样本数量
transforms.RandomHorizontalFlip(0.5),#水平翻转,增加训练样本数量
transforms.RandomAffine(degrees=5, translate=(0.05, 0.05)