如何用mask

阅读: 评论:0

如何用mask

如何用mask

mask-R-CNN论文问世好久了,但可用的代码好像也不多,至少我是没找到几个。归根结底还是这个算法比较难以实现,要满足论文里面提及的要求还是不太容易的。目前最好的公开代码应该是这个:

论文地址:
=f26173dc2304c9132e5f26fd81484c1a&site=xueshu_se

这篇博客主要是用来记录如何使用自制的数据集在这个代码上测试。我的目的只是用来分割,并不用来分类
根据github文件中的 README.md的指引,用来指导我们利用自制数据集测试的方法在以下几个文件中

那么这里我以train_shape.ipynb文件里面的代码为讲解示范。首先来讲解以下数据集的数据结构。
首先我们要知道mask-r-cnn是用来干嘛的。它是用来做分割,分类的。所以我们的数据集要具备分割和分类两种信息。分割就是mask,分类就是ids。下面分开讲,看看两种信息需要在我们的数据集中如何提现。
分割
分割功能是在faster-r-cnn上增加的分支,用过mask实现。mask的原理也比较简单,这里我就不多说了,主要说明我们的数据集需要怎么准备。我以细胞核分割为例。

左边的是病理图(512512),灰色的黑斑是细胞核,之所以是灰度图,是因为图片经过染色分离处理,提取出了CD3染色(具体查找染色分离算法),右边是0和255的mask(512512)
首先,mask-r-cnn代码中默认使用的是三维的彩色图,所以当我们输入灰度图时,会转化成彩色图。

这个代码在mrcnn/utils.py里面。
因为这个代码本来是要实现分类的,所以必须把图片中的每个对象都创建一个mask。以我的细胞分割来说。上面的mask图中,每个白斑都代表一个细胞,那么就是一共有多少个白斑,我们就需要多少个mask,所以,右边的mask图要转化成下面这种形式

保持原来的尺寸不变,每个白斑独立一张mask

上面是用matlab代码实现的,mask一张变成多张。
数据集的制作就完成了,下面是数据结构。
数据结构
我们要注意的是class_ids这个变量。这个是描述每一个mask的类别的。前面说了mask要把一张完整的,弄成多张独立的,大小不变,只保留一个对象。那么这个class就是用来标记每个独立的mask是什么类别的。比如说,细胞图中有肿瘤细胞,免疫细胞两种,那么就是1和2

比如说一个完整的mask只有这两个细胞,第一个是肿瘤细胞,第二个是免疫细胞,那么我们的class_ids返回就应该是[1,2],具体的代码实现

因为我不做分类,那么我的label就全部都是1
好了,下面是具体的代码修改了
我们在train_shape.ipynb上面直接修改

我们首先要修改分类个数,原本是1+3,我改成了1+1.1+3表示,一个背景,加3中类别(原先的代码中是矩形,三角形和原型),我不需要分类,所以我的类别就是1.

我们要改写原本的load_shape函数,图中画红线的应该保留,我们同时记下image_path(图片路径)和mask_path(mask路径),方便后面的数据加载。


同时我们要改写load_image和load_mask函数。load_image函数其实不用怎么改,主要的是load_image函数。在train_shape.ipynb中的load_mask函数是用来画图的,可以直接不用,在mrcnn/untils.py中的load_mask函数坐着留给我们自己写。上面是我自己写的load_mask函数,就是要把跟image对应的所有单独的mask都打包起来,然后还要返回长度和mask数量一致的class_ids如果你需要分类class_ids就不能像我一样全部设置成1,每个类别对应自己的ids。
好了,我们的数据集准备就完成了,我用了120张256256的训练集和40个256256的验证集训练,epoch发现设置在15的时候效果不错

我说的效果不错仅仅是在这么多epoch中效果不错,跟我想要的效果还是相差甚远。分割的准确度远远低于unet。
这就是我的一个小测试,欢迎指正。

本文发布于:2024-02-02 02:11:47,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170681436940726.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:如何用   mask
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23