江门网站建设哪家快建设单位适合去哪个网站看资料
江门网站建设哪家快,建设单位适合去哪个网站看资料,软件外包公司哪个好,wordpress更换中文1. 项目文件介绍
本章为二值图像的分割任务做统一实现#xff0c;下面是项目的实现目录 项目和文章绑定了#xff0c;之前没用过#xff0c;不知道行不行 data 文件夹下负责摆放数据的训练集测试集inference 负责放待推理的图片(支持多张图片预测分割)run_results 是网络训…1. 项目文件介绍
本章为二值图像的分割任务做统一实现下面是项目的实现目录 项目和文章绑定了之前没用过不知道行不行 data 文件夹下负责摆放数据的训练集测试集inference 负责放待推理的图片(支持多张图片预测分割)run_results 是网络训练过程的日志文件python 代码介绍
compute_mean_std计算训练集图像灰度的均值和方差像素分布(-1,1)之间可以让网络更好的收敛confuse_matrix混淆矩阵通过分类任务的混淆矩阵计算不同像素的ioudataset数据集的加载代码根据数据集在data文件下的摆放加载数据model模型这里采用vgg为骨干网络resnet比vgg有更好的提取特征能力这个后续介绍predict推理代码train模型的训练代码transforms对图像预处理的重构不同于分类任务图像的缩放相应的标签也要进行缩放utils关于训练过程的工具函数 2. 使用代码 README 文件有详细介绍 1. 环境搭建
搭建好项目需要的环境后下载 requirements.txt 需要的库文件即可 2. 数据集的摆放
按照指定位置摆放文件夹的名称不可更改否则需要重新编写dataset文件 3. 关于超参数的设定
因为transforms 对图像进行缩放后中心裁剪所以训练train 文件前根据训练图片的大小进行更改。训练过程的超参数文件也可以在这里更改 例如这里的训练图片是96*96的空间分辨率所以设定的中心裁剪为96
至于base_size 是图像进行缩放的比例如下图在120的 0.5到1.5倍数之间随机缩放。有部分疑问后面聊 4. 开始训练
运行train 文件即可会在train文件生成下面四个文件 下面是细胞分割的训练展示
loss iou 曲线 学习率衰减曲线这里使用的cos自适应衰减 训练日志左侧的一列是背影0的指标右侧是1的指标可以参考之前的介绍混淆矩阵、语义分割的指标 5. 如何预测
因为训练的预处理mean和std是计算得到的所以预测之前需要重新填写如下
只需要将train得到的填入下方就行了 3. 有些问题
因为本人在训练过程有几点困惑所以写在这方便大佬解答... 1. transform 的缩放设定
因为图像分割最终的目的都是将前景图像从背景中抠出来这就涉及到图像的尺寸问题。
例如标准的unet 输入是固定的例如460*460或者512*512但大部分的图片这个尺寸。虽说图像处理可以进行缩放解决但将label缩放插值方法总觉得差点意思这会导致原本的前景被改变。而且就算将训练集统一缩放了预测新的图片呢也需要缩放吗 于是本章利用了随机缩放图像大小的方法这样随机输入的图像本身就是不固定的相当于多尺度输入吧这样随机预测新图片的时候输入的图像大小也就无所谓了 min_size int(0.5 * base_size)max_size int(1.5 * base_size) 2. 为什么用 vgg 不用 resnet
vgg 的效果确实不如 resnet 提取特征强作者本人网上找了很多换成resnet的代码但都用一个问题不能任意输入大小 本人在resnet的代码上更改了很久没有实现太菜了... 这样就产生了第一个问题最后权衡一二使用了本章vgg为骨干的unet模型。这里的unet添加了代码可以支持任何尺度的输入
当然如果不介意输入尺寸的问题可以利用自带库直接调用
参考Unet 基于TCGA颅脑肿瘤MRI分割(高阶API分割模型) 3. 关于 dataset 部分
对应于固定的分割任务dataset都是需要自己重构的为了尽量代码复用所以数据集的摆放必须遵循固定的顺序 有些训练图片和标签图像名字不是严格对应的比如后缀啊或者文件名啊。可以利用python 批处理进行更改或者在dataset 里面重构 对于label 不是标准的二值图像(看起来黑白其实中间包含了其他像素值)通过阈值进行处理。 需要注意的是qq截图可以显示灰度值但不是准确的。将图片放到最大可能就是二值图片因为图像缩放分辨器显示的问题。(作者之前在这吃过不少亏...) 二值化还一个好处将灰度值映射成120的话可以观察train过程的预处理图像长啥样
将train 部分的代码打开即可 好像不需要更改也行plot 自动调色了.... # # 可视化数据二值化中将 dataset的标签映射改成 120会看的更清楚# # 可以查看具体的训练图像被预处理成啥样# dataloader next(iter(trainLoader))# plot(data_loaderdataloader,meantrain_mean,stdtrain_std)# return 还有别的问题可以在评论区在交流....
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88673.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!