前言:目前在做这个医学图像算法研究的项目,实际是项目,这里说成研究是指边做边学习这样的意思。毕竟也不容易,课程多,杂事多,还要做两个项目,真的想学会多重影分身术来帮我解决问题。话不多说,给大家看下基于这个数据集训练的效果吧。具体的代码目前还不支持公开,到时候做完了整个项目我再放出来,目前给大家看下测试的效果。
这个是kvasir v2胃病数据集,里面有8个类别,每个类别1000张图片,共8000张。本次测试将训练集:验证集:测试集=7:2:1进行测试
数据预处理及数据增强代码如下图所示
def get_torch_transforms(img_size=224):
data_transforms = {
'train': transforms.Compose([
# transforms.RandomResizedCrop(img_size),
transforms.Resize((img_size, img_size)),
transforms.RandomHorizontalFlip(p=0.2),
transforms.RandomRotation((-5, 5)),
transforms.RandomAutocontrast(p=0.2),
transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.2), # 增加的代码
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
]),
'val': transforms.Compose([
# transforms.Resize((img_size, img_size)),
# transforms.Resize(256),
# transforms.CenterCrop(img_size),
transforms.Resize((img_size, img_size)),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
]),
}
return data_transforms
# 训练集的预处理以及数据增强
def get_train_transforms(img_size=320):
return albumentations.Compose(
[
albumentations.Resize(img_size, img_size),
albumentations.HorizontalFlip(p=0.5),
albumentations.VerticalFlip(p=0.5),
albumentations.Rotate(limit=180, p=0.7),
# albumentations.RandomBrightnessContrast(),
albumentations.ShiftScaleRotate(
shift_limit=0.25, scale_limit=0.1, rotate_limit=0
),
albumentations.Blur(blur_limit=3, p=0.1), # 增加的代码
# albumentations.Random
albumentations.Normalize(
[0.485, 0.456, 0.406], [0.229, 0.224, 0.225],
max_pixel_value=255.0, always_apply=True
),
ToTensorV2(p=1.0),
]
)
# 验证集和测试集的预处理
def get_valid_transforms(img_size=224):
return albumentations.Compose(
[
albumentations.Resize(img_size, img_size),
albumentations.Normalize(
[0.485, 0.456, 0.406], [0.229, 0.224, 0.225],
max_pixel_value=255.0, always_apply=True
),
ToTensorV2(p=1.0)
]
)
下面是ResNet50的测试效果,超参数,训练图,测试图,以及测试准确率都在图中
下面是ResNet101的测试效果,超参数,训练图,测试图,以及测试准确率都在图中
下面是ResNext50的测试效果,超参数,训练图,测试图,以及测试准确率都在图中
下面是ResNext101的测试效果,超参数,训练图,测试图,以及测试准确率都在图中
下面是DenseNet121的测试效果,超参数,训练图,测试图,以及测试准确率都在图中
下面是Shufflenet v2的测试效果,超参数,训练图,测试图,以及测试准确率都在图中
总结