基于深度学习分析暗场显微镜中纳米探针捕获病毒的方法
文献发布时间:2023-06-19 10:27:30
技术领域
本发明涉及生物影像分析与计算机视觉技术领域,特别涉及基于深度学习分析暗场显微镜中纳米探针捕获病毒的方法。
背景技术
以不同纳米颗粒为双信号探针,暗场显微镜为平台,构建针对微生物和各分子靶标的生物检测方法之文章层出不穷。但在最终的计数环节中,大都挑选视野内杂质较少,颗粒较清晰的图片;或借助图像分析软件去过度处理以达到刻意去除杂质和美化结果的目的;或是利用高端仪器去测散射光谱。这些方法避轻就重,耗时耗费。结合我们之前的研究分析,造成最终成像结果并不如理想状态那么完美的原因有三。(1)利用暗场显微镜对目标分子的检测大都直接在普通载玻片上进行,由于常规清洗(100%无水乙醇浸泡后超声)和滴加样品的过程中,易受周围复杂环境中颗粒性杂质的干扰。所以,难免在最终视野内出现星星点点的杂质颗粒。(2)未与靶标分子结合的纳米颗粒在洗脱过程中也难以被全部去除,造成最终视野内出现过量的纳米颗粒,导致以散射光谱定量的方法并不是很具说服力。(3)由于纳米颗粒的各向异性所导致对光源的散射角度不同,从而使不同纳米颗粒在暗场显微镜下的成像结果有些许色差。
OpenCV是计算机视觉处理库,包含很多模块化的图像处理算法,使用者可以自由便捷地通过计算机编程语言Python导入后对目标图片进行处理。近些年来,由于基于深度学习的计算机视觉技术的飞速发展,致使其在极其复杂的医学影像判读中成绩斐然,在医疗诊断和病情分析中表现卓越,并在其他领域也展现出非凡的应用潜力。卷积神经网络(Convolutional Neural Networks,CNN)是深度学习的代表算法之一,其被广泛应用于图像处理中。传统的CNN模型随着卷积层的叠加(Stacked Layers),由于非线性激活函数的存在,使每次信息在卷积层之间传播都存在损失,导致深层传递的低维数据坍塌(Collapse)和此处神经元“死亡”。ResNet模型提出残差学习的思想,一定程度上解决了梯度消失的问题,保护了信息的完整性。在处理复杂图像时,需要更深层的网络来提取图像特征时,ResNet模型便脱颖而出。
发明内容
发明目的:本发明目的是提供一种可以避免背景干扰和由于纳米探针自身各向异性所致的散射色差带来的计数困难的基于深度学习分析暗场显微镜中纳米探针捕获病毒的方法,提高了计数和分析的精确度。同时,本发明的方法也可以为暗场显微镜成像分析提供新的思路,具有很强的泛化能力和实际价值。
技术方案:本发明提供一种基于深度学习分析暗场显微镜中纳米探针捕获病毒的方法,包括如下步骤:
(1)基于Opencv的金纳米颗粒提取和去噪的模型设计;
(2)基于ResNet50作为纳米颗粒夹心结构判定的模型设计;
(3)使用训练好的基于ResNet50的夹心结构分辨模型和基于Opencv的金纳米颗粒提取去噪模型对暗场显微镜成像原图进行实时分析和判断。
进一步地,所述步骤(1)的模型设计方法如下:
a、获取暗场显微镜成像原图;
b、将原图由RGB三通道转换为HSV三通道;
c、确定金纳米颗粒红色特征HSV上下界,创建掩膜;
d、将步骤c中创建的掩膜与原图进行“与”操作;
e、利用膨胀算法将步骤d图像中单个金纳米探针分散色块中间的空隙填充,使其变为贴合纳米探针的饱满色块;
f、利用连通组件算法获取每个饱满色块(即金纳米探针)的二维空间坐标。
g、自定义函数提取每个金纳米探针保存在指定文件夹中,创建供深度神经网络训练的数据集。
h、自定义函数提取每个金纳米探针保存在指定文件夹中。
i、根据g中所提取的金纳米探针,计算每一张提取图中Hue值落在红色范围内的像素点个数,得到金银纳米探针和病毒夹心结构、金纳米探针、有红色特征的杂质Hue值分布规律,从而做二次筛选。
i、将步骤h中反应的Hue值分布规律作为判断项,补充在基于Opencv的金纳米探针提取和去噪模型中。
k、将其他拍摄的暗场图像批量送入模型,导出的是金银纳米探针夹心结构、单金纳米探针和极少数带有红色特征的颗粒,将其手工标注为bind和nobind两大类。作为深度学习模型的训练数据集。
进一步地,所述步骤(2)的模型设计方法如下:
a、手工标注数据集内的金纳米探针,分为Bind和Unbind两类;
b、构建ResNet50深度神经网络模型,模型输入为归一化且带分类标签的图像;
c、根据ResNet50的模型结构,基于Keras框架定义卷积模块和恒等模块后进行叠加;
d、设置训练参数,利用步骤(1)中的步骤g所得到的数据集进行模型训练;
e、将训练好的模型应用于实际暗场显微镜成像图像进行测试。
进一步地,所述步骤c中的ResNet50的模型结构包括四个卷积模块和十二个恒等模块。
进一步地,每个卷积模块包括神经网络堆叠主干和带卷积层的侧枝,每条主干包括三个卷积层,每条侧枝包括一个卷积层。每个恒等模块包括神经网络堆叠主干和不带卷积层的侧枝,每条主干包括三个卷积层。
本发明方法的的原理如下:
金纳米颗粒的散射光在暗场显微镜的成像具有稳定的色域信息,虽然由于纳米探针的各向异性所致每个金纳米颗粒成像中有些许色差,但其仍保留突出的红色特征。基于此,利用Opencv计算机视觉处理库,将原图从RGB通道转至HSV通道,并创建掩膜(Mask)提取红色特征区间,此步骤完成了金颗粒特征的初步提取,过滤了成像原图中大部分杂质的成像噪声。为了解决色差导致的红色特征在单个金探针上分布不均,利用Opencv的膨胀算法,在二值化后的颜色提取图中利用较小的核(Kernal)对单颗粒分散色块之间的空间进行填充,使得单个金颗粒的色域信息更加饱满。随后,借助连通组件算法对之前的所提取和经膨胀处理后的二值化图进行坐标定位和单个颗粒图像提取,结果包括了金银探针夹心结构和单独金探针结构。最后,利用自定义函数将单个颗粒图像提取保存。但是,由于基于HSV色彩特征的提取方法,在实际应用中,由于某些杂质在成像视野中也带有红色特征,且最终与银纳米探针成也成夹心结构。为了避免最终深度学习模型判别失效的风险,我们将标准夹心结构(金银纳米探针夹心病毒),单个金纳米探针和带有红色特征的杂质颗粒三种物质在Hue值上进行分析,从而初步发现统计规律,在提取模型中加入限定条件,从而将带有红色特征的杂质颗粒排除在外,减小了对模型的干扰。ResNet50模型基于Keras深度学习框架,参考了官方源代码,定义了恒等模块和卷积模块后依据ResNet50的模型架构进行叠加。为了更好地实现交互式操作,借助Python的argparse模块使参数和代码分离,并可以直接在各平台的Shell上直接训练模型和分析图像。本专利的方法在实际的科研课题,以金银纳米探针夹心病毒检测策略中表现很好。出色地解决了不可避免的背景干扰和由于纳米颗粒自身各向异性所致的散射色差带来的计数困难。并且利用计算机视觉图像处理技术和深度学习模型去分析暗场显微镜成像图也具有极强的普适性,对以暗场显微镜为平台的检测策略之后期的计数和分析有较大的指导意义。
有益效果:本发明创新性地提出了一种基于深度学习分析暗场显微镜中纳米探针捕获病毒的方法。基于OpenCV的金纳米探针提取模型有效地去除背景的干扰,基于深度神经网络的ResNet50的夹心结构判定模型加强了以金银纳米双探针夹心检测病毒策略在计数环节的效率和科学性,使以纳米颗粒为信号探针,以暗场显微镜为平台的靶标分子和微生物检测得以具备真正的实践价值。
同时,本发明的方法也可以为暗场显微镜成像分析提供新的思路,具有很强的泛化能力和实际价值。
附图说明
图1为本发明方法流程图;
图2为金纳米颗粒提取和去噪流程图;
图3为原图进行金颗粒标注;
图4为金银纳米探针和病毒夹心结构、金纳米探针、有红色特征的杂质Hue值分布规律(y轴刻度0-700);
图5为金银纳米探针和病毒夹心结构、金纳米探针、有红色特征的杂质Hue值分布规律(y轴刻度0-300);
图6为单金颗粒提取和智能判别图像图像;
图7为ResNet50模型结构图和卷积模块恒等模块结构图。
具体实施方式
本实施例本发明基于Opencv和ResNet50的暗场显微镜成像分析,流程如图1,具体包括以下两个模型:
模型一:基于Opencv的金纳米颗粒提取和去噪模型,处理流程如图1所示,具体包括以下步骤:
a、用移液器吸取修饰了病毒抗体的银颗粒于玻片上,常温封闭孵化15分钟。后加病毒原样和修饰有抗体的金颗粒,每次各常温封闭孵化15分钟。
b、将载玻片固定于STL-P1600CMOS3暗场显微镜的载物台,以50倍的物镜观测。
c、利用STL-IMCS暗场视野采集软件采集视野内的暗场成像图片,并未经处理直接拍下,保存在指定文件夹中。
d、以Opencv中规定的HSV格式设置单个金纳米探针成像颜色特征(红色)的阙值范围,并通过Inrange函数遍历整张图片每一个像素,将阙值内的色素设置为255(白),将阙值外的色素设置为0(黑)。
lower_red=numpy.array(156,43,45),upper_red=numpy.array(180,255,255)
本步骤完成类似二值化的过程,但初步提取了单个金纳米颗粒中特征色块(类红),对散布在整个视野内的金颗粒有大致的定位,并去除了背景噪声(包括空气中的未知杂颗粒和过量的银纳米颗粒)。
e、创建一个Kernel,通过Opencv的Dilate函数对d中输出的成像信息进行膨胀操作。numpy.ones((8,8),np.uint8)
本步骤中所创建的Kernel大小决定膨胀操作后的特征色块能否充分表征原图中的金纳米颗粒,同时也关乎最终单个金纳米颗粒提取时的范围,通过实践来看,以8x8的矩阵对原图进行膨胀操作时,表征和提取效果最好。
f、通过Opencv的ConnectedComponentsWithStats函数,对e输出的图片进行连通组件操作。获取每一经膨胀操作后的特征色块的位置信息。
centroids=cv2.connectedComponentsWithStats(image,connectivity=8)
本步骤中所用到的连通组件算法是图像分析中最常用的算法之一,本质是扫描二值图像的每一个像素点,合并像素点相同并相互连通的像素点为一组,最终导出每一组的实际位置坐标。由实践操作来看,连通域(connectivity参数)为8时,提取效果最好。
g、通过Rectangle函数由f中所获取的坐标信息,并在原图中进切片操作。
本步骤中对原图中金颗粒进行直接标注如3所示。
h、通过自定义函数,提取单个金纳米探针图像
i、计算每一张提取图中Hue值落在红色范围内的像素点个数,得到金银纳米探针和病毒夹心结构、金纳米探针、有红色特征的杂质Hue值分布规律,从而做二次筛选。(如图4和图5所示)
j、将步骤i中反应的Hue值分布规律作为逻辑判断项,补充在基于Opencv的金纳米探针提取和去噪模型中。
k、批次读取指定文件夹的暗场显微镜成像原图,导出结果为单个金纳米探针、金银纳米探针夹心和极少数的带红色特征的杂质。(经过步骤i的筛选,仅有极少数带有红色特征的杂质被选出)
本步骤中单个金颗粒的提取图像如图3所示。
o、人为将步骤k中所提取的1500张图像进行二分类处理,判定图像是金银探针夹心结构还是单一的金纳米探针,在文件夹A中创建两个子文件夹,命名为Bind和Unbind,两个文件夹分别放700张图片。
模型二:基于ResNet50的纳米颗粒夹心判定模型,具体包括以下步骤:
a、选择以ResNet50作为纳米颗粒夹心判定模型。
本步骤选择以ResNet50作为判别模型,理由如下:由于我们是对暗场显微镜下的原图进行直接处理,暗场显微镜成像中杂质情况较为复杂,双纳米探针和病毒之间的夹心结构并不是简单的几何重叠,还需考虑到散射光对成像结构的影响。我们早期选择了较“深”的传统卷积神经网络,但后期发现当实际应用时,其分辨夹心结构的效果并如预期那么好。这是由于随着层数深度地增加,深度网络出现退化,故我们最终选择了ResNet50作为深度神经网络模型。其在深层网络训练时仍保持着优异的性能。
b、根据ResNet50的模型结构,基于Keras框架定义卷积模块和恒等模块后进行叠加。
本步骤所搭建的ResNet50模型结构共53个卷积层,其中每一个卷积模块包括4个卷积层,每一个恒等模块包括3个卷积层,卷积模块和恒等模块的结构如图7所示。
c、设置训练参数,利用模型一中所得到的数据集进行模型训练。
d、将训练好的模型应用于实际暗场显微镜成像图像进行测试。测试结果如图6所示。
- 基于深度学习分析暗场显微镜中纳米探针捕获病毒的方法
- 基于深度学习分析暗场显微镜中纳米探针捕获病毒的方法