掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及医学图像处理技术领域,具体涉及一种精子存活率检测方法及装置。

背景技术

精子存活率检测需要通过存活率试剂(伊红试剂)进行染色,然后在100倍显微镜下通过颜色判断精子正常、异常(红色为异常精子,无色为正常精子)。

传统的精子存活率检测方法主要是将染色后的玻片放在显微镜100倍镜下拍照,然后将拍照所得图像通过传统目标检测算法(如Cascade+HOG/DPM+Haar/SVM)对精子进行目标检测,然后通过传统分类算法对精子进行分类判定,但是由于传统算法需要手工设计特征,而精子存活率图像多样性的变化会导致特征没有很好的鲁棒性,从而导致精子存活率识别率和准确度不高,和临床医师判定结果有较大的差别。

发明内容

有鉴于此,本申请提供一种精子存活率检测方法及装置,能够解决或者至少部分解决上述存在的问题。

为解决以上技术问题,本发明提供的技术方案是一种精子存活率检测方法,包括:

S11:获取精子染色显微图像;

S12:将精子染色显微图像通过精子检测模型,获得精子图像、精子在图像中的位置信息、以及精子存活或者未存活的检测结果;

S13:根据精子存活数量和未存活数量计算出精子存活率。

优选的,精子存活率检测方法还包括S10:生成精子检测模型;所述S10的方法包括:

S101:筛选出大样本的精子染色显微图像;

S102:在精子染色显微图像上标注出精子存活或者未存活,并将标注后的精子染色显微图像分为训练图像集和测试图像集;

S103:在TensorFlow框架下,采用ResNet50-ssd网络模型对训练图像集进行训练,再通过测试图像集来验证并更新ResNet50-ssd网络模型参数再进行训练,循环此过程直到获得最终的精子检测模型。

优选的,所述S103中在TensorFlow框架下,采用ResNet50-ssd网络模型对训练图像集进行训练的方法包括:

调节ssd的网络结构,将基础网络替换为ResNet50网络,并调节相应的训练参数:学习率、训练图像数量、迭代次数、选择优化器和选择损失函数;

进行先验框匹配,对训练图像中每个真实目标,找到与其IOU最大的先验框与其匹配,其中IOU的公式为:

确定损失函数,损失函数为位置误差与置信度误差的加权和,公式为:

进行数据扩增,数据扩增采用水平翻转、随机裁剪加颜色扭曲和随机采集块域即获取小目标训练样本;

进行预训练,对于每个预测框,首先根据类别置信度确定其类别与置信度值,并过滤掉属于背景的预测框,然后根据置信度阈值过滤掉阈值较低的预测框,对于留下的预测框进行解码、修剪,根据先验框得到其真实的位置参数,解码之后需要根据置信度进行降序排列,然后仅保留最优k个预测框,最后就是进行NMS算法,过滤掉重叠度较大的预测框,最后剩余的预测框就是检测结果。

优选的,所述S13的方法包括:精子存活率=精子存活数量/(精子存活数量+精子未存活数量)。

本发明还提供一种精子存活率检测装置,包括:

精子图像获取模块,用于获取精子染色显微图像;

精子状态检测模块,用于将精子染色显微图像通过精子检测模型,获得精子图像、精子在图像中的位置信息、以及精子存活或者未存活的检测结果;

精子存活率计算模块,用于根据精子存活数量和未存活数量计算出精子存活率。

优选的,精子存活率检测装置还包括:检测模型生成模块,用于生成精子检测模型;所述检测模型生成模块包括:

样本数据筛选单元,用于筛选出大样本的精子染色显微图像;

样本数据标注单元,用于在精子染色显微图像上标注出精子存活或者未存活,并将标注后的精子染色显微图像分为训练图像集合测试图像集;

检测模型训练单元,用于在TensorFlow框架下,采用ResNet50-ssd网络模型对训练图像集进行训练,再通过测试图像集来验证并更新ResNet50-ssd网络模型参数再进行训练,循环此过程直到获得最终的精子检测模型。

优选的,所述检测模型训练单元在TensorFlow框架下,采用ResNet50-ssd网络模型对训练图像集进行训练的方法包括:

调节ssd的网络结构,将基础网络替换为ResNet50网络,并调节相应的训练参数:学习率、训练图像数量、迭代次数、选择优化器和选择损失函数;

进行先验框匹配,对训练图像中每个真实目标,找到与其IOU最大的先验框与其匹配,其中IOU的公式为:

确定损失函数,损失函数为位置误差与置信度误差的加权和,公式为:

进行数据扩增,数据扩增采用水平翻转、随机裁剪加颜色扭曲和随机采集块域即获取小目标训练样本;

进行预训练,对于每个预测框,首先根据类别置信度确定其类别与置信度值,并过滤掉属于背景的预测框,然后根据置信度阈值过滤掉阈值较低的预测框,对于留下的预测框进行解码、修剪,根据先验框得到其真实的位置参数,解码之后需要根据置信度进行降序排列,然后仅保留最优k个预测框,最后就是进行NMS算法,过滤掉重叠度较大的预测框,最后剩余的预测框就是检测结果。

优选的,所述精子存活率计算模块根据精子存活数量和未存活数量计算出精子存活率的方法包括:精子存活率=精子存活数量/(精子存活数量+精子未存活数量)。

本发明还提供一种精子存活率检测装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现上述精子存活率检测方法的步骤。

本申请与现有技术相比,其有益效果详细说明如下:本申请通过获取精子染色显微图像,将其通过精子检测模型,获得精子图像、精子在图像中的位置信息、以及精子存活或者未存活的检测结果,再根据精子存活数量和未存活数量计算出精子存活率,相对传统目标检测算法大大的提高了精子检测准确度,从而对精子存活率判断更加准确。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种精子存活率检测方法流程示意图;

图2为本发明实施例提供的另一种精子存活率检测方法流程示意图;

图3为本发明实施例提供的一种生成精子检测模型的流程示意图;

图4为本发明实施例提供的一种精子存活率检测装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。

如图1所示,本发明实施例提供一种精子存活率检测方法,可以应用于精子存活率检测系统,该方法包括:

S11:获取精子染色显微图像;

具体的,首先通过存活率试剂(伊红试剂)对精子进行染色,然后将染色后的精子玻片放在显微镜100倍镜下拍照,获得精子染色显微图像,接下来将精子染色显微图像输入精子存活率检测系统,即精子存活率检测系统接收到或者获取到精子染色显微图像。

S12:将精子染色显微图像通过精子检测模型,获得精子图像、精子在图像中的位置信息、以及精子存活或者未存活的检测结果;

具体的,将100倍镜下采集到的精子染色显微图像,通过ResNet-ssd训练得到的神经网络模型-精子检测模型来进行测试。精子检测模型通过相应代码会自动识别图像中的精子,并输出精子图像及精子在图像中的位置(左上角坐标+宽度+高度),并且根据其类别(红色为异常精子,无色为正常精子)自动对精子是否存活进行区分。

S13:根据精子存活数量和未存活数量计算出精子存活率。

需要说明的是,S13的方法包括:精子存活率=精子存活数量/(精子存活数量+精子未存活数量)。根据存活和没有存活的数量计算出存活率,假设检测到存活精子为a,没有存活精子为b,则存活率为a/(a+b)。

如图2所示,本发明还提供一种精子存活率检测方法,在图1实施例的基础上,增加了步骤S10:生成精子检测模型。

具体的,如图3所示,S10的方法包括:

S101:筛选出大样本的精子染色显微图像;

具体的,首先将通过染色后的精子玻片放在显微镜100倍镜下拍照,并整理拍摄的照片,挑选拍摄效果符合要求的精子照片来做数据集,使筛选的精子样本更加多样性、更加均衡。

S102:在精子染色显微图像上标注出精子存活或者未存活,并将标注后的精子染色显微图像分为训练图像集和测试图像集;

具体的,对数据集中图像上的精子进行标记,记录下来每个精子头部标记框左上角坐标和相应宽和高,由于正常精子呈现无色,异常精子呈现红色,因此可以将精子分为两类来进行标注,标注好的数据会生成.xml格式的数据文件,并将数据分为两类,即训练图像集和测试图像集;最终将标注好的文件生成.tfrecord格式数据,以方便进行训练。

S103:在TensorFlow框架下,采用ResNet50-ssd网络模型对训练图像集进行训练,再通过测试图像集来验证并更新ResNet50-ssd网络模型参数再进行训练,循环此过程直到获得最终的精子检测模型。

具体的,通过神经网络来进行目标检测,相对传统目标检测方法,网络结构更加深,提取的特征更多,从而能得到更多的有用信息,提升对目标检测的效果。目前用来做目标检测的神经网络结构有rcnn系列,ssd系列和YOLO系列。其中rcnn系列是两步的方法,ssd系列和YOLO系列是一步的方法。我们这里采用ssd系列中ResNet50-ssd网络在tensorflow框架下来对精子进行训练。

需要说明的是,ssd网络主要内容有以下3个方面,即ssd网络采用的对图像进行处理的方法包括:1)多尺度。SSD使用6个不同特征图检测不同尺度的目标。低层预测小目标,高层预测大目标,从而更能精准的对精子进行检测。2)设置了多种尺寸的感受野(anchor)。设置的宽高比为{1,2,3,1/2,1/3},从而对检测目标的尺寸能够更好的适应。影响方面有数据集、层的类型(下采样,扩张卷积,跳层连接,非线性激活函数)、卷积层参数初始化方式和卷积层个数。3)数据增强。(1)放大操作,能够生成更多的尺度较大的目标。(2)缩小操作。首先创建16倍原图大小的画布,然后将原图放置其中,然后随机剪切,能够生成更多尺度较小的目标。

需要说明的是,S103中在TensorFlow框架下,采用ResNet50-ssd网络模型对训练图像集进行训练的方法包括:

调节ssd的网络结构,将基础网络替换为ResNet50网络,并调节相应的训练参数:学习率、训练图像数量、迭代次数、选择优化器和选择损失函数;

进行先验框匹配,对训练图像中每个真实目标,找到与其IOU最大的先验框与其匹配,其中IOU的公式为:

确定损失函数,损失函数为位置误差与置信度误差的加权和,公式为:

进行数据扩增,数据扩增采用水平翻转、随机裁剪加颜色扭曲和随机采集块域即获取小目标训练样本;

进行预训练,对于每个预测框,首先根据类别置信度确定其类别与置信度值,并过滤掉属于背景的预测框,然后根据置信度阈值过滤掉阈值较低的预测框,对于留下的预测框进行解码、修剪,根据先验框得到其真实的位置参数,解码之后需要根据置信度进行降序排列,然后仅保留最优k个预测框,最后就是进行NMS算法,过滤掉重叠度较大的预测框,最后剩余的预测框就是检测结果。

具体的,调节ssd的网络结构,将基础网络替换为ResNet50网络,并调节相应的训练参数,如学习率、训练图像数量、迭代次数、选择优化器和选择损失函数等。可以采用的学习率0.001,训练图像数量3000左右,其中精子样本10000多,迭代次数10万,优化器选择的SGD,损失函数softmax。其中,ssd网络对图像训练时的处理过程包括:(1)进行先验框匹配,在训练过程中,首先要确定训练图像中的真实目标与哪个先验框来进行匹配,与之匹配的先验框所对应的边界框将负责预测它。首先,对于图像中每个真实目标(真实目标是指我们对目标(精子)进行标注时的标注框为真实目标,即groundtruth),找到与其IOU(两个矩形交集和并集比值)最大的先验框,该先验框与其匹配,这样,可以保证每个真实目标一定与某个先验框匹配。之后,仔细考虑一下这种情况,如果某个真实目标所对应最大IOU小于阈值,并且所匹配的先验框却与另外一个真实目标的IOU大于阈值,那么该先验框应该匹配谁,答案则是前者,首先要确保某个真实目标一定有一个先验框与之匹配。其中IOU公式为:

本申请的发明原理是基于神经网络模型来对精子存活率进行检测,判断精子的存活状态。首先对伊红试剂进行染色后拍摄图像中精子进行标注,制作成训练需要的数据格式,接着通过神经网络模型来对标注的数据进行训练,得到最终的精子检测模型,最终通过精子检测模型对精子进行检测,通过检测结果来对精子存活率进行分析。相对传统目标检测算法大大的提高了精子检测准确度,从而对精子存活率判断更加准确。

如图4所示,本发明实施例还提供一种精子存活率检测装置,包括:

精子图像获取模块21,用于获取精子染色显微图像;

精子状态检测模块22,用于将精子染色显微图像通过精子检测模型,获得精子图像、精子在图像中的位置信息、以及精子存活或者未存活的检测结果;

精子存活率计算模块23,用于根据精子存活数量和未存活数量计算出精子存活率。

需要说明的是,精子存活率检测装置还包括:检测模型生成模块20,用于生成精子检测模型;检测模型生成模块20包括:

样本数据筛选单元,用于筛选出大样本的精子染色显微图像;

样本数据标注单元,用于在精子染色显微图像上标注出精子存活或者未存活,并将标注后的精子染色显微图像分为训练图像集合测试图像集;

检测模型训练单元,用于在TensorFlow框架下,采用ResNet50-ssd网络模型对训练图像集进行训练,再通过测试图像集来验证并更新ResNet50-ssd网络模型参数再进行训练,循环此过程直到获得最终的精子检测模型。

需要说明的是,检测模型训练单元在TensorFlow框架下,采用ResNet50-ssd网络模型对训练图像集进行训练的方法包括:

调节ssd的网络结构,将基础网络替换为ResNet50网络,并调节相应的训练参数:学习率、训练图像数量、迭代次数、选择优化器和选择损失函数;

进行先验框匹配,对训练图像中每个真实目标,找到与其IOU最大的先验框与其匹配,其中IOU的公式为:

确定损失函数,损失函数为位置误差与置信度误差的加权和,公式为:

进行数据扩增,数据扩增采用水平翻转、随机裁剪加颜色扭曲和随机采集块域即获取小目标训练样本;

进行预训练,对于每个预测框,首先根据类别置信度确定其类别与置信度值,并过滤掉属于背景的预测框,然后根据置信度阈值过滤掉阈值较低的预测框,对于留下的预测框进行解码、修剪,根据先验框得到其真实的位置参数,解码之后需要根据置信度进行降序排列,然后仅保留最优k个预测框,最后就是进行NMS算法,过滤掉重叠度较大的预测框,最后剩余的预测框就是检测结果。

需要说明的是,精子存活率计算模块根据精子存活数量和未存活数量计算出精子存活率的方法包括:精子存活率=精子存活数量/(精子存活数量+精子未存活数量)。

本发明实施例还提供一种精子存活率检测装置,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序以实现上述精子存活率检测方法的步骤。

图4所对应实施例中特征的说明可以参见图1-图3所对应实施例的相关说明,这里不再一一赘述。

以上对本发明实施例所提供的一种精子存活率检测方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

技术分类

06120112178873