荧光染色切片病理分析算法(深度学习+机器学习)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、三个染色通道融合及拆分
- 二、细胞分割及计数(Mask-RCNN)
- 三、阳性信号定位(基于Kmeans)
- 1.绿色通道阳性定位
- 2.红色通道阳性定位
- 四、细胞分割及阳性定位结果整合
- 总结
前言
在生物科研或病理领域,有一类片子叫荧光染色(免疫荧光),通过对不同的组织进行不同的光学处理,使得最终的片子中,不同的光色对应不同的组织。本帖是作者经手的一个项目,分析免疫荧光的基础数据,如细胞个数、阳性面积等作为生物或者病理研究的基础数据。
一般免疫荧光有四个通道的图片,分别为红、绿、粉、蓝。红绿粉的部分分别对应三种阳性信号,蓝色显示的是细胞核。图下图,这里只展示红绿蓝三个通道。
红色和蓝色代表的是不同的阳性区域,蓝色的是细胞核,右下角的图片是红绿蓝三色通道合成的图片。
一、三个染色通道融合及拆分
通过光线衰减与色域及灰度的相关原理,我们设计了一套独特的通道融合及拆分算法,支持红绿蓝三通道合成一张图,也支持一张红绿蓝三通道合成图拆分成三张图。效果如下。
左图为三通道合成图,右边三张为拆分后的图,逆过程同样可实现。
二、细胞分割及计数(Mask-RCNN)
细胞分割计数针对的是蓝色通道的图像,我们的数据部门对蓝色通道约几百张图片准备了数据标签分别尝试了Mask-RCNN和solov2,后来发现在我们这种小而密集的场景下还是mask-rcnn比较稳定,实际应用中我们用到了更小的放大倍率下,所以细胞更小更密集,所以模型的top_k比较大。效果如下所示:
这只是最原始的细胞分割结果,实际上在最终的应用中,我们需要圈出细胞的包核和包浆,也就是一个细胞需要两个圈圈。同时所有的细胞检测结果需要半透明叠加,以确保所有细胞的分割结果都能看清。全阴性的细胞分割结果如下。
每个细胞的内圈为包核,外圈为包浆,这里所有的包核胞浆都是蓝色,也就是阴性,因为我们还没有结合红色和绿色通道的阳性检测结果。后面会讲到。
三、阳性信号定位(基于Kmeans)
1.绿色通道阳性定位
由于阳性信号的定位没有明确的规则,很多时候会由于生物科研者或者医生的不同而导致不同的结果,所以具有很强的主观成分。我们结合病理部门同事的理解和意见完全按照主观理解设计了一款阳性识别的算法,用到了一些图像处理技术以及K-means聚类,对不同的图像做三分类,基于图像的灰度分布来决定是取最亮的center作为阳性center还是取最亮的两个centers作为阳性centers。
绿色区域的阳性识别效果如下图:
可以看到,图一中基本所有的绿色都是阳性,但是图二只有较亮的绿色菜作为阳性,图三里又是较亮和较暗的绿色都作为了阳性。我们的算法可以基于灰度分布等特征对取哪部分作为阳性作判断,以接近生物病理研究员的主观想法。
补充:在做阳性信号识别之前对图片进行了去底色处理,也就是把一些本该为黑色背景但是不够黑的区域拉成了绝对黑色。具体做法也是通过Kmean或者亮度,找出最暗的centers把接近这个center的像素点的像素值拉低,每个像素拉低的值略有不同,最终会把一些本该为背景的很暗的绿色区域拉成黑色。
2.红色通道阳性定位
原理和绿色阳性一样,结果如下:
四、细胞分割及阳性定位结果整合
分割出细胞定位出不同通道的阳性信号之后,我们把结果进行整合,可以定位出具有绿色阳性信号的细胞核、胞浆,具有红色阳性信号的细胞核、胞浆以及同时具有绿色和红色阳性信号的细胞核、 胞浆。
如下图所示,左侧是绿蓝双通道融合图,中间是绿色单通道阳性菌检测结果,右侧是绿色阳性和细胞分割结合的结果,胞核阳性和胞浆阳性的细胞分别都用绿色标记,阴性胞核和包浆用蓝色标记。很多相邻的细胞核在扩张包浆的时候会有重叠,针对这一问题我们单独设计了一个扩张算法使得相邻细胞扩张包浆的时候不会重叠,会有鲜明的分界线。
下图中从左上到右下,第一张红色单通道阳性结果,第二章是绿色单通道阳性结果。第三张是红色和绿色通道融合后的阳性结果。第四张是具备红色阳性信号的细胞检测结果,阴性的胞核胞浆分别用蓝色覆盖,具备红色阳性信号的胞核胞浆分别用蓝色覆盖。第五张为具备绿色阳性信号的细胞检测结果。第六张是红色和绿色阳性红表达的结果,胞核或者包浆内同时具备红色和绿色阳性信号时该胞核或者包浆会被染为黄色。
总结
本帖展示了图像处理、机器学习、深度学习相结合在病理科研领域的一种应用。由于具有项目需求的唯一性,所以没有帖代码,有相关需求或者对其中某一技术好奇或有疑问的欢迎评论。
荧光染色切片病理分析算法(深度学习+机器学习)相关推荐
- Deep Learning Hierarchical Representations for Image Steganalysis【Ye-Net:图像隐写分析的深度学习层次表示】
Deep Learning Hierarchical Representations for Image Steganalysis [Ye-Net:图像隐写分析的深度学习层次表示] Abstract ...
- ECG分析:基于深度学习的ECG心律失常分类入门(3)
ECG分析:基于深度学习的ECG心律失常分类入门(3) 数据库的Python读取 本次读取数据,用的是一款专门读取MITAB数据的工具--WFDB-python,WFDB包下载 ,全称是 Python ...
- ECG分析:基于深度学习的ECG心律失常分类入门(1)
ECG分析:基于深度学习的ECG心律失常分类入门(1) 写作动机 由于受突发疫情的影响,开学时间推迟了(在此特向奋斗在前线的各行各业的工作者们致以崇高的敬意!).前天晚上刚好看到一篇新出的论文,跟自己 ...
- ECG分析:基于深度学习的ECG心律失常分类入门(5)
ECG分析:基于深度学习的ECG心律失常分类入门(5) 数据和模型完成了之后,就是训练和测试了,这里顺带提一下,MITAB的数据是48条记录的,而我们在做ECG分析的时候,都是去掉了四条记录(102, ...
- ECG分析:基于深度学习的ECG心律失常分类入门(4)
ECG分析:基于深度学习的ECG心律失常分类入门(4) 在搭建模型之前,讲一下本次任务需要区分的类别,MITAB根据心拍类型划分了14个小类: 也可以用wfdb查看: wfdb.show_ann_la ...
- ECG分析:基于深度学习的ECG心律失常分类入门(2)
ECG分析:基于深度学习的ECG心律失常分类入门(2) 数据来源:MIT-BIH Arrhythmia Database 数据库介绍和获取 前面已经对ECG信号有了简单的认识,那么现在来简单看看我们的 ...
- 关于情感分析的深度学习模型
企业最重要的目的之一就是与客户群保持联系.这些公司必须清楚地了解客户对新老产品.最近的举措以及客户服务的看法. 情感分析是完成上述任务的方法之一 情感分析是自然语言处理(NLP)中的一个领域,它建立模 ...
- 【智能算法】基于CNN算法深度学习车辆识别
目录 1.基于CNN算法深度学习车辆识别 2.文件准备 3.结果展示 1.基于CNN算法深度学习车辆识别 // The contents of this file are in the public ...
- 信号处理深度学习机器学习_机器学习和信号处理如何融合?
信号处理深度学习机器学习 As a design engineer, I am increasingly exposed to more complex engineering challenges ...
最新文章
- .net core 发起web请求_温故知新 .Net重定向深度分析
- prometheus之DCGM监控GPU
- 数据结构与算法--实现Singleton模式
- php数组转为js json,javascript-将数组php转换为JSON时出错
- Linux执行命令提示Password,linux expect远程自动登录以及执行命令
- 时延敏感业务低概率超时问题分析
- 服务器运行容器工具大盘点!
- python web开发基础_python web开发基本概念
- winserver2008/2008R2 AD域控/DNS环境搭建详细步骤
- ES6 中 class 和 extends 的es5实现
- 八大梦境提醒的你疾病所在 - 健康程序员,至尚生活!
- CSS3 过渡 transition
- 【运维】从实战掌握自动化运维工具Ansible
- 西门子plc cpu228 4路模拟量输入 2路模拟量输出
- 树莓派简单入门(基本小案例)
- 猴子偷桃(Java实现)
- 神经网络参数量和计算量,神经网络计算公式
- linux 拼图游戏,王牌拼图红包版
- 前端做一个简单的随机气泡(随机大小,随机颜色,随机方向,随机速度,透明度改变)的静态网页
- 定时发布微信文件和消息
热门文章
- sonar 使用常见问题总结
- xml数据处理--sax模块使用
- EfficientNet(ICML 2019)原理与代码解析
- 基于JAVA学生信息管理和新生报到系统(Springboot框架) 开题报告
- SQLserver 连接服务器样例
- 腾讯云服务器如何安装应用软件,腾讯云服务器Ubuntu环境下通过Apt-get安装软件...
- 最火的几个全网络预训练模型梳理整合(BERT、ALBERT、XLNet详解)
- 2021 年全国大学生物联网设计竞赛(华为杯)全国总决赛获奖名单
- android webview全屏显示html内容
- 使用数组快速填充Excel