位置: IT常识 - 正文

手把手教你用UNet做医学图像分割系统(手把手教你用Excel制作考勤表)

编辑:rootadmin
手把手教你用UNet做医学图像分割系统

推荐整理分享手把手教你用UNet做医学图像分割系统(手把手教你用Excel制作考勤表),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:手把手教你用气焊视频,手把手教你用气焊视频,手把手教你用电脑上网络,手把手教你用电脑写文章,手把手教你用u盘安装系统,手把手教你用u盘安装系统,手把手教你用气焊视频,手把手教你用砖砌橱柜,内容如对您有帮助,希望把文章链接给更多的朋友!

兄弟们好呀,这里是肆十二,这转眼间寒假就要过完了,相信大家的毕设也要准备动手了吧,作为一名大作业区的UP主,也该蹭波热度了,之前关于图像分类和目标检测我们都出了相应的教程,所以这期内容我们搞波新的,我们用Unet来做医学图像分割。我们将会以皮肤病的数据作为示范,训练一个皮肤病分割的模型出来,用户输入图像,模型可以自动分割去皮肤病的区域和正常的区域。

B站讲解视频:手把手教你用UNet做医学图像分割系统_哔哩哔哩_bilibili

CSDN博客:手把手教你用Unet做自己的医学图像分割系统_dejahu的博客-CSDN博客

代码地址:unet_42: 基于Unet的医学影像分割系统 (gitee.com)

处理好的数据集和训练好的模型:皮肤病语义分割数据集+代码+模型2000张标注好的数据+教学视频-深度学习文档类资源-CSDN文库

更多相关的数据集:语义分割数据集清单-附赠Unet模型训练和使用教程_dejahu的博客-CSDN博客

废话不多说,先上效果,左侧展示是原始图片,右侧是分割结果。

考虑到同学们的论文需要,我这里还做了一些指标图,大家可以放在文章里增加篇幅

需要远程调试的小伙伴直接加我好友(qq: 3045834499)即可,没有三连的小伙伴99元,三连的小伙伴只需66元,你就可以获取环境配置、标注好的数据集、训练好的模型以及远程在线答疑全套服务。

算法原理介绍

论文地址:https://arxiv.org/pdf/1505.04597.pdf

算法解析:U-Net原理分析与代码解读 - 知乎 (zhihu.com)

Unet 发表于 2015 年,属于 FCN 的一种变体。Unet 的初衷是为了解决生物医学图像方面的问题,由于效果确实很好后来也被广泛的应用在语义分割的各个方向,比如卫星图像分割,工业瑕疵检测等。

Unet 跟 FCN 都是 Encoder-Decoder 结构,结构简单但很有效。Encoder 负责特征提取,你可以将自己熟悉的各种特征提取网络放在这个位置。由于在医学方面,样本收集较为困难,作者为了解决这个问题,应用了图像增强的方法,在数据集有限的情况下获得了不错的精度。

如上图,Unet 网络结构是对称的,形似英文字母 U 所以被称为 Unet,在一些类别较少的数据集上,一般使用unet来做语义分割,尤其是在一些二分类的任务上,不仅仅模型比较小,而且在精度上也比较高。

更加详细的原理介绍大家可以参考原文以及大佬们在知乎和csdn上的解答,我在这里就不多做赘述了。

下载代码

老规矩,代码放在码云上,地址是:unet_42: 基于Unet的医学影像分割系统 (gitee.com)

大家下载之后放在本地就行

注:请大家使用chrome浏览器或者windows本地自带的edge浏览器下载,否则可能会出现压缩包损坏的bug,而且解压强烈安利大家使用bandzip。

配置环境

不熟悉pycharm的anaconda的小伙伴请先看这篇csdn博客,了解pycharm和anaconda的基本操作

如何在pycharm中配置anaconda的虚拟环境_dejahu的博客-CSDN博客_如何在pycharm中配置anaconda

anaconda安装完成之后请切换到国内的源来提高下载速度 ,命令如下:

conda config --remove-key channelsconda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/conda config --set show_channel_urls yespip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

首先创建python3.8的虚拟环境,请在命令行中执行下列操作:

conda create -n unet python==3.8.5conda activate unetpytorch安装(gpu版本和cpu版本的安装)

实际测试情况是unet在CPU和GPU的情况下均可使用,不过在CPU的条件下训练那个速度会令人发指,所以有条件的小伙伴一定要安装GPU版本的Pytorch,没有条件的小伙伴最好是租服务器来使用。

GPU版本安装的具体步骤可以参考这篇文章:2021年Windows下安装GPU版本的Tensorflow和Pytorch_dejahu的博客-CSDN博客

需要注意以下几点:

安装之前一定要先更新你的显卡驱动,去官网下载对应型号的驱动安装30系显卡只能使用cuda11的版本一定要创建虚拟环境,这样的话各个深度学习框架之间不发生冲突

我这里创建的是python3.8的环境,安装的Pytorch的版本是1.8.0,命令如下:

conda install pytorch==1.8.0 torchvision torchaudio cudatoolkit=10.2 # 注意这条命令指定Pytorch的版本和cuda的版本conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cpuonly # CPU的小伙伴直接执行这条命令即可

安装完毕之后,我们来测试一下GPU是否

安装unet程序所需的其他包

程序其他所需要的包我写在了requirements.txt文件中,大家只需要在项目目录下打开cmd,然后执行下列命令安装即可,安装之前请确保你已经激活了虚拟环境

pip install -r requirements.txt

到这里我们的环境基本已经配置完成了,你已经成功了一大半了,下面只需要按照教程完成剩下的步骤即可。

数据处理

数据处理部分,医学影像这块我们一般使用公开的数据集,如果没有合适的数据集大家也可以选择自己进行标注,分割相对于检测而言标注起来比较麻烦,所以能找到公开的数据集最好使用公开的数据集,这里是本期我们要用到的数据集。

处理好的数据集和训练好的模型:皮肤病语义分割数据集+代码+模型2000张标注好的数据+教学视频-深度学习文档类资源-CSDN文库

以下面的皮肤病数据集为例,其中左侧是原始图片,右侧是标注之后的标签,因为标签有两种像素值,背景为0,皮肤病区域为1,所以我们肉眼上看到的标签图片是全黑,但是实际上这些标签文件中的值是不一样的。

记住这里数据集的位置,后面在训练和测试的时候在代码中替换为自己本地的数据集位置。

注:下面的内容是关于数据集的标注,如果大家已经找到合适的数据集,请自行跳过这部分的内容

1.LabelMe的安装

用户在采集完用于训练、评估和预测的图片之后,需使用数据标注工具LabelMe完成数据标注。LabelMe支持在Windows/macOS/Linux三个系统上使用,且三个系统下的标注格式是一样。

安装的过程非常简单,大家只需要在激活虚拟环境的前提下,执行下列之类即可

pip install labelme

安装完成之后,直接在命令行中输入labelme即可启动

2.LabelMe的使用

打开终端输入labelme会出现LableMe的交互界面,可以先预览LabelMe给出的已标注好的图片,再开始标注自定义数据集。

图1 LableMe交互界面的示意图

预览已标注图片

终端输入labelme会出现LableMe的交互界面,点击OpenDir打开<path/to/labelme>/examples/semantic_segmentation/data_annotated,其中<path/to/labelme>为克隆下来的labelme的路径,打开后示意的是语义分割的真值标注。

图2 已标注图片的示意图

开始标注

请按照下述步骤标注数据集:

手把手教你用UNet做医学图像分割系统(手把手教你用Excel制作考勤表)

​ (1) 点击OpenDir打开待标注图片所在目录,点击Create Polygons,沿着目标的边缘画多边形,完成后输入目标的类别。在标注过程中,如果某个点画错了,可以按撤销快捷键可撤销该点。Mac下的撤销快捷键为command+Z。

图3 标注单个目标的示意图

​ (2) 右击选择Edit Polygons可以整体移动多边形的位置,也可以移动某个点的位置;右击选择Edit Label可以修改每个目标的类别。请根据自己的需要执行这一步骤,若不需要修改,可跳过。

图4 修改标注的示意图

​ (3) 图片中所有目标的标注都完成后,点击Save保存json文件,请将json文件和图片放在同一个文件夹里,点击Next Image标注下一张图片。

LableMe产出的真值文件可参考我们给出的文件夹。

图5 LableMe产出的真值文件的示意图

Note:

对于中间有空洞的目标的标注方法:在标注完目标轮廓后,再沿空洞区域边缘画多边形,并将其指定为其他类别,如果是背景则指定为_background_。如下:

图6 带空洞目标的标注示意图

3.数据格式转换

最后用我们提供的数据转换脚本将上述标注工具产出的数据格式转换为模型训练时所需的数据格式。

经过数据格式转换后的数据集目录结构如下:my_dataset # 根目录|-- annotations # 数据集真值| |-- xxx.png # 像素级别的真值信息| |...|-- class_names.txt # 数据集的类别名称|-- xxx.jpg(png or other) # 数据集原图|-- ...|-- xxx.json # 标注json文件|-- ...

图7 格式转换后的数据集目录的结构示意图

4.运行以下代码,将标注后的数据转换成满足以上格式的数据集: python labelme2seg.py <PATH/TO/LABEL_JSON_FILE>

其中,<PATH/TO/LABEL_JSON_FILE>为图片以及LabelMe产出的json文件所在文件夹的目录,同时也是转换后的标注集所在文件夹的目录。

我们已内置了一个标注的示例,可运行以下代码进行体验:

python labelme2seg.py docs/annotation/labelme_demo/

转换得到的数据集可参考我们给出的文件夹。其中,文件class_names.txt是数据集中所有标注类别的名称,包含背景类;文件夹annotations保存的是各图片的像素级别的真值信息,背景类_background_对应为0,其它目标类别从1开始递增,至多为255。

图8 格式转换后的数据集各目录的内容示意图

模型训练

现在来到模型训练的环境,首先请大家把自己的图片和标签按照下面的文件夹命名放在对应的位置。

比如我这里的数据集位置在F:/xxxxxxxxxx/xianyu/data/skin

然后大家找到项目的train目录,修改数据集的位置即可

修改之后,直接右键run运行train.py即可,训练过程中将会有个进度条来显示你训练的速度,如果是GPU的话速度会很快

模型将会保存在本地目录下:

模型验证

模型训练结束之后,我们可以使用一些指标来测试模型的性能,语义分割常用的测试指标是miou,定义如下:

这部分代码在test.py文件中,和刚才的train.py一样,大家只需要更改模型和数据集的位置即可

首先需要大家在22行修改需要测试的图片路径,测试结果保存的路径,和测试标签的路径

然后再代码的第59行修改为对应的模型名称即可。

修改完成之后直接右键run开始运行,运行的结果将会保存在项目目录的results文件夹下:

大家可以在论文中用自己的语言阐述这三个指标,然后放对应的图上去,这样你的毕设就显得有血有肉了。

图形化界面

最后就是我们这个语义分割的系统了,系统本身很复杂,但是只是毕设,所以这里的系统简单理解就是用Pyqt5给我们的代码加个壳子这样,系统的代码在ui.py,大家只需要在代码的第46行修改为自己的模型文件即可。

运行的结果如下:

找到我

需要远程的调试的小伙伴直接扫码加我好友(qq: 3045834499)即可,没有三连的小伙伴99元,三连的小伙伴只需66元,你就可以获取环境配置、标注好的数据集、训练好的模型以及远程在线答疑全套服务。

你可以通过这些方式来寻找我。

B站:肆十二-

CSDN:肆十二

知乎:肆十二

微博:肆十二-

现在关注以后就是老朋友喽!

本文链接地址:https://www.jiuchutong.com/zhishi/298814.html 转载请保留说明!

上一篇:关于node版本16+ 安装依赖会出现error的问题(node最新版本)

下一篇:前端练手项目合集40.0个,附源码,2022年最新(前端高手)

  • 你可以掌握的游戏试玩赚钱技巧(你能玩的游戏)

    你可以掌握的游戏试玩赚钱技巧(你能玩的游戏)

  • 腾讯视频会员登录闪退(腾讯视频会员登录一定要QQ或者微信吗)

    腾讯视频会员登录闪退(腾讯视频会员登录一定要QQ或者微信吗)

  • 手机无限重启怎么解决(手机无限重启怎么刷机)

    手机无限重启怎么解决(手机无限重启怎么刷机)

  • 芯片14nm是什么意思(14nm芯片量产了,意味着我们能生产)

    芯片14nm是什么意思(14nm芯片量产了,意味着我们能生产)

  • 苹果微信深色模式怎么设置(苹果微信深色模式怎么开)

    苹果微信深色模式怎么设置(苹果微信深色模式怎么开)

  • 为什么缓存的视频还要网络才能看(为什么缓存的视频还要缓冲)

    为什么缓存的视频还要网络才能看(为什么缓存的视频还要缓冲)

  • 苹果手机背景黑色怎么变白(苹果手机背景黑屏)

    苹果手机背景黑色怎么变白(苹果手机背景黑屏)

  • 小米手表开机键是哪个(小米手表开机键有问题)

    小米手表开机键是哪个(小米手表开机键有问题)

  • 主板短路保护怎么恢复(主板短路保护怎么恢复正常)

    主板短路保护怎么恢复(主板短路保护怎么恢复正常)

  • 微信对方已经删除账号是什么意思(微信对方已经删了我但我还可以发消息)

    微信对方已经删除账号是什么意思(微信对方已经删了我但我还可以发消息)

  • 微信语音聊天记录怎么转发(微信语音聊天记录怎么保存下来)

    微信语音聊天记录怎么转发(微信语音聊天记录怎么保存下来)

  • 电脑开网页慢什么原因(电脑打开网页很慢是怎么回事)

    电脑开网页慢什么原因(电脑打开网页很慢是怎么回事)

  • 爱奇艺pc端怎么开弹幕(爱奇艺PC端怎么看直播)

    爱奇艺pc端怎么开弹幕(爱奇艺PC端怎么看直播)

  • 戴尔的无线开关在哪(戴尔无线开关驱动程序)

    戴尔的无线开关在哪(戴尔无线开关驱动程序)

  • 内存条2400和3000区别(内存条2400和3000差别大吗)

    内存条2400和3000区别(内存条2400和3000差别大吗)

  • 金立s9怎么开个人热点(金立s9解锁方法)

    金立s9怎么开个人热点(金立s9解锁方法)

  • 怎样注册QQ不用手机号(怎样注册qq不用验证码)

    怎样注册QQ不用手机号(怎样注册qq不用验证码)

  • xr网速慢怎么办(xr网速特别慢)

    xr网速慢怎么办(xr网速特别慢)

  • 华为mate10拍照技巧(华为mate10拍照效果)

    华为mate10拍照技巧(华为mate10拍照效果)

  • 电脑上怎么下载ps软件(电脑上怎么下载歌曲到u盘)

    电脑上怎么下载ps软件(电脑上怎么下载歌曲到u盘)

  • Windows 10如何关闭剪贴板历史记录(windows10如何关闭病毒和威胁防护设置)

    Windows 10如何关闭剪贴板历史记录(windows10如何关闭病毒和威胁防护设置)

  • 鸿蒙系统字体怎么改?鸿蒙系统字体更改教程(鸿蒙系统字体不太好看)

    鸿蒙系统字体怎么改?鸿蒙系统字体更改教程(鸿蒙系统字体不太好看)

  • 从零开始学习JavaScript:轻松掌握编程语言的核心技能①(零基础java从入门到精通)

    从零开始学习JavaScript:轻松掌握编程语言的核心技能①(零基础java从入门到精通)

  • 第09章_异常处理(异常处理流程为哪几个部分)

    第09章_异常处理(异常处理流程为哪几个部分)

  • 利润表中的所得税
  • 土地出让金会涨价吗
  • 用人单位延迟给员工交社保怎么办
  • 季报现金流量表可以不填吗
  • 资产负债表中未交税金负数表示什么
  • 利润总额和净利润相同说明什么
  • 税后是含税还是不含税的意思
  • 季报申报之后还可以改吗?
  • 咨询服务费的印花税率
  • 企业降低存货成本的途径和方法
  • 固定收益款可以开增值税专票吗?
  • 服务业税收包括什么
  • 固定资产改变用途进项转出
  • 工资扣款的规定
  • 股权的溢价是什么意思
  • 购买股权支付的相关税费怎么处理
  • 个人独资企业所得税税率表最新
  • 公司车辆可以一年一检吗
  • 小规模纳税人增值税超过30万怎么纳税
  • 什么人可以领购房补贴怎么领取
  • 公司注销未缴纳社会保险费
  • 补缴的公积金可以取出来吗
  • 股东其他应付款可以转为实收资本文本格式
  • 教你怎么制作微信表情
  • win11windows安全中心打不开
  • 什么是保守型证券
  • 应用程序无法正常启动0xc000012d
  • 免单产品是什么意思
  • 新会计准则2020变化
  • 房贷每月利息如何算
  • ipad哪款最贵
  • 应退税款抵扣欠税款的账务处理
  • js监听hover
  • 固定资产清查盘点报告模板
  • 医院执行政府会计制度补充规定
  • php自动载入自定义函数文件
  • php连接mysql数据库步骤正确的是
  • 小满内容
  • 设备租赁费怎么入账
  • angular 初学者快速上手教程
  • 图像超分综述怎么做
  • 记一次调试YOLOv5+DeepSort车辆跟踪项目的经过
  • 收回已转销的应收账款是什么意思
  • python数据编程
  • 预缴税款为什么不能跨月申报
  • 应收账款占比高
  • phpcms使用教程
  • 应收账款收不回来做坏账处理分录
  • 进口关税的计算是以什么为基础
  • 应交企业所得税是什么科目
  • 购入固定资产印花税税目是什么
  • mysql导出用户和权限
  • 已出库的成品退货怎么办
  • 商品流通企业税费按征收对象可分为
  • 汇总记账凭证会计核算形式下总分类账账页格式一般采用
  • 个体工商营业执照注销需要缴费吗
  • 律师事务所账务处理例题
  • 融资租赁业务利润怎么算
  • 核算费用
  • 员工外出培训报告范文
  • 代开专票作废税已经交了如何做分录?
  • 在sql server中触发器不具有什么类型
  • sql2000卸载干净
  • centos 安装
  • debian10配置ipv6地址
  • 管理需要
  • 提高生殖能力
  • windows 8.1 with update (multiple editions)
  • windows7正版验证办法
  • linux swap和mem
  • 通知栏图标怎么变小
  • win10系统怎么一键返回桌面
  • linux的命令行怎么打开
  • Ubuntu 16.04 64位中搭建Node.js开发环境教程
  • python的日志
  • python的math模块只有pass
  • 怎么知道自己的城乡属性
  • 北京电子税务局实名认证
  • 国税局政审审考生什么
  • 个人所得税怎么扣除
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设