Unet实现细胞分割

目的:实现细胞分割
数据集:isbi挑战赛的数据,只有30张512x512的image和label
思路:

  1. 读取数据,将数据转换成 30x512x512x1格式;
  2. 由于数据太少,所以进行数据增强;(注意:对训练数据进行增强的时候image和label增强方式要一致)
  3. 搭建模型。这里直接调用segmentation-models模块的Unet;(提前pip install segmentation-models)
  4. 训练。推荐用Google的Colaboratory,免费GPU亲测真的好用;
  5. 保存模型;
  6. 预测。这里预测暂时5张图片看看效果;

数据处理+训练+保存模型 代码

#coding=utf-8
from segmentation_models import Unet
from keras.preprocessing.image import ImageDataGenerator
from PIL import Image
from keras.optimizers import *
import numpy as np
import os
import skimage.io as io
import skimage.transform as trans
import matplotlib.pyplot as plt
import random

#给定路径,起点和终点,进行图像增强,每次迭代返回一个batch_size的训练图片集和标签集 -> 这里的起点和终点对应下标都是包含在内的!
def train_image_generator(image_path,label_path,st,ed,batch_size,aug = None): 
    nowinx = st #设定初始图片
    while True:
        im_array = []
        lb_array = []
        for i in range(batch_size):
            im = Image.open(os.path.join(image_path,str(nowinx)+'.png'))
            tmp_im_array = np.array(im) #图片转numpy数组
            tmp_im_array = tmp_im_array / 255 #对数据进行归一化
            tmp_im_array = tmp_im_array[np.newaxis,:,:] #numpy数组添加一维,为了把二维图片转成三维图片集
            
            lb = Image.open(os.path.join(label_path,str(nowinx)+'.png'))
            tmp_lb_array = np.array(lb) #图片转numpy数组
            tmp_lb_array = tmp_lb_array / 255
            tmp_lb_array[tmp_lb_array > 
  • 14
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 34
    评论
U-Net模型是一种基于卷积神经网络的图像分割模型,其架构包含一个编码器和一个解码器,在其中使用了跳跃连接(skip connections)来捕捉不同尺度的特征,从而更好地定位目标。 U-Net模型在细胞分割中的应用,与传统的卷积神经网络相比,主要有以下几方面的优势: 1. 数据稀疏性:细胞图像通常具有少量和低对比度的目标,即数据稀疏性。U-Net使用了编码器-解码器架构和跳跃连接,确保在保留所有上下文信息的同时维持高分辨率图像的细节信息,从而更好地识别细胞。 2. 一些倾斜的物体:细胞通常具有很多不规则的形状,例如长且细的胞质、分支和聚集。但是CNN处理图像时会丢失空间分辨率,导致分割结果不准确。U-Net使用了**前向反馈分支**,这允许从编码阶段避免信息的损失。每个**反馈分支**都具有一个卷积层,它将当前张量与在编码器中"丢失"的信息连接,并在解码器中继续高分辨率建模。 3. 稳定性和鲁棒性:许多细胞图像可能存在光制备中的不均匀性、锐化等伪影,这可能导致错误的分割结果。U-Net采用了损失函数的结构,使用“交叉熵”损失函数,这有助于U-Net对于不均匀光照等伪影的鲁棒性。 4. 有效使用GPU:在数据量较大的情况下,使用成倍放大的Fully Connected layers会占据大量的 GPU 显存。U-Net可以充分利用GPU处理器加速运行,减少运行时间。 由上述优势可以看出,U-Net模型非常适合细胞分割任务,同时在其他的图像分割任务中也表现优异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值