精子头部形态识别方法、装置及设备转让专利

申请号 : CN202011215590.1

文献号 : CN112036384B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘畅李福平侯苇贾烨琳余林吴应碧钟正华廖露赵阳玫

申请人 : 成都朴华科技有限公司

摘要 :

本发明属于医学图像处理领域,实施例具体公开一种精子头部形态识别方法、装置及设备。本申请提供的精子头部形态识别方法包括获取精子染色显微图像,通过神经网络模型对精子头部进行检测,再对检测到的精子头部通过图像处理方法分辨其形态获得精子头部形态识别结果,本申请还提供与识别方法对应的精子头部形态识别装置及设备,整套识别方法、装置及设备操作简单,识别结果可靠。

权利要求 :

1.一种精子头部形态识别方法,其特征在于,包括:

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

S12:将精子染色显微图像通过精子头部检测模型,获得精子头部图像和精子头部在图像中的位置信息;

S13:根据精子头部图像和精子头部在图像中的位置信息对精子头部进行形态分析,获得精子头部形态识别结果;

所述S13的方法包括:

S131:对精子头部图像进行处理,包括:二值化处理、亮度处理、Otsu找到精子轮廓、K-means聚类获取核区、开操作获取精子头部、头部及核区膨胀找到顶体、开操作获取顶体、椭圆拟合;

S132:根据处理后的精子头部图像提取出精子头部形态参数,获得的精子头部形态参数包括头部面积、头部周长、头部高度、头部宽度、长宽比、顶体面积、核区面积、顶体比率、面积CV值、椭圆拟合度、对称度;

S133:根据获得的精子头部形态参数和预设的精子标准值,输出精子头部形态类型,精子头部形态类型分为正常精子、梨形精子、不定形精子、锥形精子、小头精子、大头精子、顶体异常精子和圆形精子;

所述S131的方法包括:

S1311:二值化处理:通过OpenCV二值化函数将精子头部图像二值化处理,得到黑白化的精子头部图像,其中二值化公式为: 其中F(x)为返回的像素值,x为原先的像素值,threshold为阈值;

S1312:亮度处理:将黑白化的精子头部图像亮度调到均匀值,得到亮度均匀的精子头部图像;

S1313:Otsu找到精子轮廓:根据OpenCV查找轮廓函数中的Otsu算法找到精子头部轮廓,得到精子头部轮廓图像,其中Otsu公式为:g=w0(u0-u)×(u0-u)+w1(u1-u)×(u1-u),其中g为目标函数,w0为前景点所占的比例,w1=1-w0为背景像素点所占总像素点的比例,u0为前景灰度均值,u1为背景灰度均值,u=w0×u0+w1×u1为全局灰度均值;

S1314:K-means聚类获取精子核区:使用具有2个类别的K-means聚类算法对精子头部像素进行聚类,粗略的将精子头部分为核区部分、顶体和中段部分,其中K-means聚类损失函数公式为:其中J为K-means聚类的损失函数,

ui为第k个类的重心位置,x(j)为第j个样本,c={c1,c2,…ck}为簇划分;

S1315:开操作获取精子头部:选择顶体和中段部分,进行Opencv开操作,先腐蚀后膨胀后得到只包含核区和顶体的精子头部;

S1316:精子头部及核区膨胀找到精子顶体:分别对精子头部和核区进行膨胀操作,比较膨胀后的核区和头部,并丢弃位于头部区域之外的核区像素,从而得到新的核区,然后通过精子头部减去精子核区找到精子顶体区域;

S1317:开操作获取精子顶体:对精子顶体区域进行腐蚀操作,得到新的顶体区域,然后对处理后的顶体区域进行膨胀操作,比较膨胀操作后的精子顶体区域和头部,并丢弃位于头部区域之外的顶体像素,从而得到新的顶体区域;

S1318:椭圆拟合:通过OpenCV椭圆拟合函数对精子进行椭圆拟合。

2.根据权利要求1所述的精子头部形态识别方法,其特征在于,还包括S10:生成精子头部检测模型;所述S10的方法包括:S101:筛选出大样本的精子染色显微图像;

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

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

3.根据权利要求2所述的精子头部形态识别方法,其特征在于,所述S103的方法包括:S1031:使用训练图像集预训练YOLOv3网络模型的前20个卷积层和1个平均池化层和1个全连接层,其中,将训练图像分辨率放缩到224×224大小以下;

S1032:用预训练得到的前20个卷积层网络参数来初始化YOLOv3网络模型前20个卷积层的网络参数;

S1033:用训练图像集进行YOLOv3网络模型训练,将输入训练图像分辨率从224×224放缩到448×448,训练时bbox的真实框设置成相同的,其中,输出层使用卷积层替代YOLOv3的全连接层,位置预测公式为:x=(tx+wa)+xa,y=(ty+ha)+ya,其中x,v是预测边框的中心,xa,ya是先验框的中心坐标,wa,ha是先验框的宽和高,tx,ty是学习的参数。

4.根据权利要求1所述的精子头部形态识别方法,其特征在于,所述S132的方法包括:通过OpenCV轮廓面积函数求取精子头部面积;通过OpenCV周长函数求取精子头部周长;通过拟合的椭圆获取精子头部高度和头部宽度;通过将精子头部高度除以头部宽度得到精子长宽比;通过分割后的顶体求出精子顶体面积;通过将精子头部面积减去顶体面积求出精子核区面积;通过将精子顶体面积除以精子头部面积求出精子顶体比率;通过将原有精子头部面积除以椭圆拟合面积求出精子面积CV值;通过计算精子头部轮廓拟合成椭圆的相似度得到精子椭圆拟合度;通过计算精子头部以长轴和短轴为对称轴的对称程度求出精子的对称度。

5.一种精子头部形态识别装置,其特征在于,包括:

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

精子头部检测模块,用于将精子染色显微图像通过精子头部检测模型,获得精子头部图像和精子头部在图像中的位置信息;

头部形态识别模块,用于根据精子头部图像和精子头部在图像中的位置信息对精子头部进行形态分析,获得精子头部形态识别结果;

所述头部形态识别模块包括:

头部图像处理单元,用于对精子头部图像进行处理,包括:二值化处理、亮度处理、Otsu找到精子轮廓、K-means聚类获取核区、开操作获取精子头部、头部及核区膨胀找到顶体、开操作获取顶体、椭圆拟合;

形态参数提取单元,用于根据处理后的精子头部图像提取出精子头部形态参数,获得的精子头部形态参数包括头部面积、头部周长、头部高度、头部宽度、长宽比、顶体面积、核区面积、顶体比率、面积CV值、椭圆拟合度、对称度;

头部形态识别单元,用于根据获得的精子头部形态参数和预设的精子标准值,输出精子头部形态类型,精子头部形态类型分为正常精子、梨形精子、不定形精子、锥形精子、小头精子、大头精子、顶体异常精子和圆形精子;

所述头部图像处理单元的工作方法包括:

二值化处理:通过OpenCV二值化函数将精子头部图像二值化处理,得到黑白化的精子头部图像,其中二值化公式为: 其中F(x)为返回的像素值,x为原先的像素值,threshold为阈值;

亮度处理:将黑白化的精子头部图像亮度调到均匀值,得到亮度均匀的精子头部图像;

Otsu找到精子轮廓:根据OpenCV查找轮廓函数中的Otsu算法找到精子头部轮廓,得到精子头部轮廓图像,其中Otsu公式为:g=w0(u0-u)×(u0-u)+w1(u1-u)×(u1-u),其中g为目标函数,w0为前景点所占的比例,w1=1-w0为背景像素点所占总像素点的比例,u0为前景灰度均值,u1为背景灰度均值,u=w0×u0+w1×u1为全局灰度均值;

K-means聚类获取精子核区:使用具有2个类别的K-means聚类算法对精子头部像素进行聚类,粗略的将精子头部分为核区部分、顶体和中段部分,其中K-means聚类损失函数公式为:其中J为K-means聚类的损失函数,ui为第k个类的重心

位置,x(j)为第j个样本,c={c1,c2,…ck}为簇划分;

开操作获取精子头部:选择顶体和中段部分,进行Opencv开操作,先腐蚀后膨胀后得到只包含核区和顶体的精子头部;

精子头部及核区膨胀找到精子顶体:分别对精子头部和核区进行膨胀操作,比较膨胀后的核区和头部,并丢弃位于头部区域之外的核区像素,从而得到新的核区,然后通过精子头部减去精子核区找到精子顶体区域;

开操作获取精子顶体:对精子顶体区域进行腐蚀操作,得到新的顶体区域,然后对处理后的顶体区域进行膨胀操作,比较膨胀操作后的精子顶体区域和头部,并丢弃位于头部区域之外的顶体像素,从而得到新的顶体区域;

椭圆拟合:通过OpenCV椭圆拟合函数对精子进行椭圆拟合。

6.根据权利要求5所述的精子头部形态识别装置,其特征在于,还包括:检测模型生成模块,用于生成精子头部检测模型;所述检测模型生成模块包括:样本数据筛选单元,用于筛选出大样本的精子染色显微图像;

样本数据标注单元,用于在精子染色显微图像上标注出精子头部,并将标注后的精子染色显微图像分为训练图像集和测试图像集;

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

7.一种精子头部形态识别设备,其特征在于,包括:

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

处理器,用于执行所述计算机程序以实现如权利要求1至4中任一项所述精子头部形态识别方法的步骤。

说明书 :

精子头部形态识别方法、装置及设备

技术领域

[0001] 本发明属于医学图像处理领域,具体涉及一种精子头部形态识别方法、装置及设备。

背景技术

[0002] 精子形态检测需要通过形态试剂(巴氏染色液)进行染色,然后在100倍显微镜下对精子形态进行分类判断(主要分为正常精子、异常精子,异常精子中分头部、中段、尾部异常,头部分为大头、小头、梨型、圆头、锥形头等)。
[0003] 传统的精子形态检测方法主要是将染色后的玻片放在显微镜100倍镜下拍照,然后将拍照所得图片通过传统目标检测算法(如Cascade + HOG/DPM + Haar/SVM)进行精子目标检测,然后通过传统分类算法对精子形态进行分类判定,但是由于传统算法需要手工设计特征,而精子形态图像多样性的变化会导致特征没有很好的鲁棒性,从而导致精子形态识别率和识别准确度不高,和临床医师判定结果有较大的差别。

发明内容

[0004] 有鉴于此,本申请提供一种基于神经网络算法的精子头部形态识别方法、装置及设备,能够解决或者至少部分解决上述存在的问题。
[0005] 为解决以上技术问题,本发明提供的技术方案是一种精子头部形态识别方法,包括:
[0006] S11:获取精子染色显微图像;
[0007] S12:将精子染色显微图像通过精子头部检测模型,获得精子头部图像和精子头部在图像中的位置信息;
[0008] S13:根据精子头部图像和精子头部在图像中的位置信息对精子头部进行形态分析,获得精子头部形态识别结果。
[0009] 优选的,精子头部形态识别方法还包括S10:生成精子头部检测模型;所述S10的方法包括:
[0010] S101:筛选出大样本的精子染色显微图像;
[0011] S102:在精子染色显微图像上标注出精子头部,并将标注后的精子染色显微图像分为训练图像集和测试图像集;
[0012] S103:在TensorFlow 框架下,采用YOLOv3网络模型对训练图像集进行训练,再通过测试图像集来验证并更新YOLOv3网络模型参数再进行训练,循环此过程直到获得最终的精子头部检测模型。
[0013] 优选的,所述S103的方法包括:
[0014] S1031:使用训练图像集预训练YOLOv3网络模型的前20个卷积层和1个平均池化层和1个全连接层,其中,将训练图像分辨率放缩到224×224大小以下;
[0015] S1032:用预训练得到的前20个卷积层网络参数来初始化YOLOv3网络模型前20个卷积层的网络参数;
[0016] S1033:用训练图像集进行YOLOv3网络模型训练,将输入训练图像分辨率从224×224 放缩到448×448,训练时bbox的真实框设置成相同的,其中,输出层使用卷积层替代YOLOv3的全连接层,位置预测公式为: ,
,其中x,y是预测边框的中心, , 是先验框
的中心坐标, , 是先验框的宽和高, , 是学习的参数。
[0017] 优选的,所述S13的方法包括:
[0018] S131:对精子头部图像进行处理,包括:二值化处理、亮度处理、Otsu找到精子轮廓、K-means聚类获取核区、开操作获取精子头部、头部及核区膨胀找到顶体、开操作获取顶体、椭圆拟合;
[0019] S132:根据处理后的精子头部图像提取出精子头部形态参数,获得的精子头部形态参数包括头部面积、头部周长、头部高度、头部宽度、长宽比、顶体面积、核区面积、顶体比率、面积CV值、椭圆拟合度、对称度;
[0020] S133:根据获得的精子头部形态参数和预设的精子标准值,输出精子头部形态类型,精子头部形态类型分为正常精子、梨形精子、不定形精子、锥形精子、小头精子、大头精子、顶体异常精子和圆形精子。
[0021] 优选的,所述S131的方法包括:
[0022] S1311:二值化处理:通过OpenCV二值化函数将精子头部图像二值化处理,得到黑白化的精子头部图像,其中二值化公式为:,其中F(x)为返回的像素值,x为原先的
像素值,threshold为阈值;
[0023] S1312:亮度处理:将黑白化的精子头部图像亮度调到均匀值,得到亮度均匀的精子头部图像;
[0024] S1313:Otsu找到精子轮廓:根据OpenCV查找轮廓函数中的Otsu算法找到精子头部轮廓,得到精子头部轮廓图像,其中Otsu公式为:,其中g为
目标函数, 为前景点所占的比例, 为背景像素点所占总像素
点的比例, 为前景灰度均值, 为背景灰度均值,
为全局灰度均值;
[0025] S1314:K-means聚类获取精子核区:使用具有2个类别的K-means聚类算法对精子头部像素进行聚类,粗略的将精子头部分为核区部分、顶体和中段部分,其中K-means聚类损失函数公式为: ,其中J为K-means聚类的损失函数, 为第k个类的重心位置, 为第j个样本,
为簇划分;
[0026] S1315:开操作获取精子头部:选择顶体和中段部分,进行Opencv开操作,先腐蚀后膨胀后得到只包含核区和顶体的精子头部;
[0027] S1316:精子头部及核区膨胀找到精子顶体:分别对精子头部和核区进行膨胀操作,比较膨胀后的核区和头部,并丢弃位于头部区域之外的核区像素,从而得到新的核区,然后通过精子头部减去精子核区找到精子顶体区域;
[0028] S1317:开操作获取精子顶体:对精子顶体区域进行腐蚀操作,得到新的顶体区域,然后对处理后的顶体区域进行膨胀操作,比较膨胀操作后的精子顶体区域和头部,并丢弃位于头部区域之外的顶体像素,从而得到新的顶体区域;
[0029] S1318:椭圆拟合:通过OpenCV椭圆拟合函数对精子进行椭圆拟合。
[0030] 优选的,所述S132的方法包括:通过OpenCV轮廓面积函数求取精子头部面积;通过OpenCV周长函数求取精子头部周长;通过拟合的椭圆获取精子头部高度和头部宽度;通过将精子头部高度除以头部宽度得到精子长宽比;通过分割后的顶体求出精子顶体面积;通过将精子头部面积减去顶体面积求出精子核区面积;通过将精子顶体面积除以精子头部面积求出精子顶体比率;通过将原有精子头部面积除以椭圆拟合面积求出精子面积CV值;通过计算精子头部轮廓拟合成椭圆的相似度得到精子椭圆拟合度;通过计算精子头部以长轴和短轴为对称轴的对称程度求出精子的对称度。
[0031] 本发明还提供一种精子头部形态识别装置,包括:
[0032] 精子图像获取模块,用于获取精子染色显微图像;
[0033] 精子头部检测模块,用于将精子染色显微图像通过精子头部检测模型,获得精子头部图像和精子头部在图像中的位置信息;
[0034] 头部形态识别模块,用于根据精子头部图像和精子头部在图像中的位置信息对精子头部进行形态分析,获得精子头部形态识别结果。
[0035] 优选的,精子头部形态识别装置还包括:检测模型生成模块,用于生成精子头部检测模型;所述检测模型生成模块包括:
[0036] 样本数据筛选单元,用于筛选出大样本的精子染色显微图像;
[0037] 样本数据标注单元,用于在精子染色显微图像上标注出精子头部,并将标注后的精子染色显微图像分为训练图像集和测试图像集;
[0038] 检测模型训练单元,用于在TensorFlow 框架下,采用YOLOv3网络模型对训练图像集进行训练,再通过测试图像集来验证并更新YOLOv3网络模型参数再进行训练,循环此过程直到获得最终的精子头部检测模型。
[0039] 优选的,所述头部形态识别模块包括:
[0040] 头部图像处理单元,用于对精子头部图像进行处理,包括:二值化处理、亮度处理、Otsu找到精子轮廓、K-means聚类获取核区、开操作获取精子头部、头部及核区膨胀找到顶体、开操作获取顶体、椭圆拟合;
[0041] 形态参数提取单元,用于根据处理后的精子头部图像提取出精子头部形态参数,获得的精子头部形态参数包括头部面积、头部周长、头部高度、头部宽度、长宽比、顶体面积、核区面积、顶体比率、面积CV值、椭圆拟合度、对称度;
[0042] 头部形态识别单元,用于根据获得的精子头部形态参数和预设的精子标准值,输出精子头部形态类型,精子头部形态类型分为正常精子、梨形精子、不定形精子、锥形精子、小头精子、大头精子、顶体异常精子和圆形精子。
[0043] 本发明还提供一种精子头部形态识别设备,包括:
[0044] 存储器,用于存储计算机程序;
[0045] 处理器,用于执行所述计算机程序以实现上述精子头部形态识别方法的步骤。
[0046] 本申请与现有技术相比,其有益效果详细说明如下:本申请提供的精子头部形态识别方法包括获取精子染色显微图像,通过神经网络模型对精子头部进行检测,再对检测到的精子头部通过图像处理方法分辨其形态获得精子头部形态识别结果,本申请还提供与识别方法相对应的装置及设备,整套识别方法、装置及设备操作简单,识别结果可靠。

附图说明

[0047] 为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0048] 图1为本发明实施例提供的一种精子头部形态识别方法的流程示意图;
[0049] 图2为本发明实施例提供的另一种精子头部形态识别方法的流程示意图;
[0050] 图3为本发明实施例提供的一种生成精子头部检测模型的方法流程示意图;
[0051] 图4为本发明实施例提供的一种对精子头部进行形态分析的方法流程示意图;
[0052] 图5为本发明实施例提供的一种精子头部形态识别装置的结构示意图。

具体实施方式

[0053] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
[0054] 为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
[0055] 如图1所示,本发明实施例提供一种精子头部形态识别方法,可以应用于精子头部形态识别系统,该方法包括:
[0056] S11:获取精子染色显微图像;
[0057] 具体的,首先通过形态试剂(巴氏染色液)对精子进行染色,然后将染色后的精子玻片放在显微镜100倍镜下拍照,获得精子染色显微图像,接下来将精子染色显微图像输入精子头部形态识别系统,即精子头部形态识别系统接收到或者获取到精子染色显微图像。
[0058] S12:将精子染色显微图像通过精子头部检测模型,获得精子头部图像和精子头部在图像中的位置信息;
[0059] 具体的,将精子染色显微图像通过精子头部形态识别系统中训练好的精子头部检测模型,精子头部检测模型将自动识别精子染色显微图像中的精子,并输出精子头部图像和精子头部在图像中的位置信息(左上角坐标+宽度+高度)。
[0060] S13:根据精子头部图像和精子头部在图像中的位置信息对精子头部进行形态分析,获得精子头部形态识别结果。
[0061] 具体的,在获得精子头部图像和精子头部在图像中的位置信息后,精子头部形态识别系统将自动对精子头部进行形态分析,输出精子头部形态识别结果。
[0062] 如图2所示,本发明实施例还提供另一种精子头部形态识别方法,在图1的实施例的基础上,增加了步骤S10:生成精子头部检测模型。
[0063] 具体的,如图3所示,S10生成精子头部检测模型的方法包括:
[0064] S101:筛选出大样本的精子染色显微图像;
[0065] 具体的,通过将染色后的精子玻片放在显微镜100倍镜下拍照,并整理拍摄的图像,挑选拍摄效果符合要求的图像来做图像数据集,通过采集大样本的精子染色显微图像使筛选的精子更加多样性、更加均衡。
[0066] S102:在精子染色显微图像上标注出精子头部,并将标注后的精子染色显微图像分为训练图像集和测试图像集;
[0067] 具体的,对图像数据集中图像上的精子头部进行标记,记录每个精子头部标记框左上角坐标和相应宽和高。由于这里只需要将精子头部检测出来,因此图像只分为一类,生成.json格式的图像数据文件。再将图像数据分为两块,即训练图像集和测试图像集;最终将标注好的图像文件生成.tfrecord格式图像数据,以方便进行训练。
[0068] S103:在TensorFlow 框架下,采用YOLOv3网络模型对训练图像集进行训练,再通过测试图像集来验证并更新YOLOv3网络模型参数再进行训练,循环此过程直到获得最终的精子头部检测模型。
[0069] 具体的,通过神经网络模型对精子头部进行目标检测,相对传统目标检测方法,网络结构更深,提取的特征更多,从而能得到更多的有用信息,提升对目标检测的准确度。目前用来做目标检测的神经网络结构有rcnn系列,ssd系列和YOLO系列。我们这里采用YOLO系列中YOLOv3网络在TensorFlow框架下来对精子进行训练。采用YOLOv3网络模型对训练图像集进行训练,是为了得到精子在图像中的位置,从而根据精子在图像中的位置,针对该处精子进行形态分析,分辨出精子的形态。其中采用YOLOv3网络来进行训练,是由于YOLOv3模型来做精子检测速度相对其他网络模型更快,能够更快的对图像中的精子进行检测,找到其位置,从而提高算法的效率。尤其是针对像精子一样的小目标,精准度相对其他一些网络有显著提升。
[0070] 具体的,YOLOv3的基本思想是:YOLOv3将输入的训练图像分成S×S个网络格子,若某个物体的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体。每个格子预测B个边框及其置信度,以及C个类别概率。边框信息(x,y,w,h)为物体的中心位置相对格子位置的偏移及宽度和高度,均被归一化。置信度反映是否包含物体以及包含物体情况下位置的准确性。
[0071] 需要说明的是,S103的方法包括:
[0072] S1031:使用训练图像集预训练YOLOv3网络模型的前20个卷积层和1个平均池化层和1个全连接层,其中,将训练图像分辨率放缩到224×224大小以下;
[0073] 具体的,首先进行预训练。即使用以上标注的训练图像集数据训练YOLOv3网络模型的前20个卷积层和1个平均池化层和1个全连接层。训练图像分辨率放缩到224×224大小下。
[0074] S1032:用预训练得到的前20个卷积层网络参数来初始化YOLOv3网络模型前20个卷积层的网络参数;
[0075] 具体的,接着用预训练得到的前20个卷积层网络参数来初始化YOLOv3网络模型前20个卷积层的网络参数。
[0076] S1033:用训练图像集进行YOLOv3网络模型训练,将输入训练图像分辨率从224×224 放缩到448×448,训练时bbox的真实框设置成相同的,其中,输出层使用卷积层替代YOLOv3的全连接层,位置预测公式为:  ,
,其中x,y是预测边框的中心, , 是先验框
的中心坐标, , 是先验框的宽和高, , 是学习的参数。
[0077] 具体的,用上面标注的测试图像集数据进行YOLOv3模型训练。检测通常需要有细密纹理的视觉信息,所以为提高图像精度,在训练检测模型时,将输入图像分辨率从224×224 放缩到448×448。训练时bbox的真实框设置成相同的。其中引入了faster-rcnn中先验框的思想,对网络结构的设计进行了改进,输出层使用卷积层替代YOLOv3的全连接层。相比其它识别种类,在精度、速度、和定位准确性等方面都有大大提升。位置预测公式为:
, ,其中x,y是预
测边框的中心, , 是先验框的中心坐标, , 是先验框的宽和高,
, 是学习的参数。所以根据上面的计算公式,约束边框位置使得模型更容易学习,且预测更为稳定。根据以上步骤可以得到关于精子的YOLOv3检测模型,从而对图像上的精子进行检测,找到其位置。
[0078] 如图4所示,S13根据精子头部图像和精子头部在图像中的位置信息对精子头部进行形态分析的方法包括:
[0079] S131:对精子头部图像进行处理,包括:二值化处理、亮度处理、Otsu找到精子轮廓、K-means聚类获取核区、开操作获取精子头部、头部及核区膨胀找到顶体、开操作获取顶体、椭圆拟合;
[0080] S132:根据处理后的精子头部图像提取出精子头部形态参数,获得的精子头部形态参数包括头部面积、头部周长、头部高度、头部宽度、长宽比、顶体面积、核区面积、顶体比率、面积CV值、椭圆拟合度、对称度;
[0081] S133:根据获得的精子头部形态参数和预设的精子标准值,输出精子头部形态类型,精子头部形态类型分为正常精子、梨形精子、不定形精子、锥形精子、小头精子、大头精子、顶体异常精子和圆形精子。
[0082] 需要说明的是,S131的方法包括:
[0083] S1311:二值化处理:通过OpenCV二值化函数将精子头部图像二值化处理,得到黑白化的精子头部图像,其中二值化公式为:,其中F(x)为返回的像素值,x为原先的
像素值,threshold为阈值;
[0084] 具体的,在图像中,threshold设置为30,当该位置像素值大于30时,将会被改变为255,当像素值小于等于30时,将会被设置为0。这是为了分析图像亮度,从而为下面图像亮度处理做准备。
[0085] S1312:亮度处理:将黑白化的精子头部图像亮度调到均匀值,得到亮度均匀的精子头部图像;
[0086] 具体的,由于对精子进行采集的时候,光照程度不一样,因此需要对其进行处理,使其精子图像都处于一个相对均衡的亮度范围内。保证精子在形态识别时的准确性。
[0087] S1313:Otsu找到精子轮廓:根据OpenCV查找轮廓函数中的Otsu算法找到精子头部轮廓,得到精子头部轮廓图像,其中Otsu公式为:,其中g为目
标函数, 为前景点所占的比例, 为背景像素点所占总像素点
的比例, 为前景灰度均值, 为背景灰度均值,
为全局灰度均值;
[0088] 具体的,通过以上公式对精子图像进行计算,将精子视为前景,精子以外区域视为背景,从而就可以将精子的轮廓计算出来。
[0089] S1314:K-means聚类获取精子核区:使用具有2个类别的K-means聚类算法对精子头部像素进行聚类,粗略的将精子头部分为核区部分、顶体和中段部分,其中K-means聚类损失函数公式为: ,其中J为K-means聚类的损失函数, 为第k个类的重心位置, 为第j个样本,
为簇划分,
[0090] 具体的,通过K-means聚类方法,可以将Otsu算法中分割出来的精子再进行计算,从而区分出精子的核取部分、顶体和中段部分。
[0091] S1315:开操作获取精子头部:选择顶体和中段部分,进行Opencv开操作,先腐蚀后膨胀后得到只包含核区和顶体的精子头部;
[0092] 具体的,腐蚀运算是消除物体的所有边界点的一种过程,其结果是使剩下的物体沿其周边比原物体小一个像素的面积。膨胀运算是将与某物体接触的所有背景点合并到该物体中的过程。过程的结果是使物体的面积增大了相应数量的点,如果物体是圆的,它的直径在每次膨胀后将增大两个像素。
[0093] S1316:精子头部及核区膨胀找到精子顶体:分别对精子头部和核区进行膨胀操作,比较膨胀后的核区和头部,并丢弃位于头部区域之外的核区像素,从而得到新的核区,然后通过精子头部减去精子核区找到精子顶体区域;
[0094] 具体的,根据上面的计算方法,就可以找到精子大致顶体区域,为下面更加精准的找到精子顶体区域做准备。
[0095] S1317:开操作获取精子顶体:对精子顶体区域进行腐蚀操作,得到新的顶体区域,然后对处理后的顶体区域进行膨胀操作,比较膨胀操作后的精子顶体区域和头部,并丢弃位于头部区域之外的顶体像素,从而得到新的顶体区域;
[0096] 具体的,通过以上开操作的处理方法,就可以得到新的精子顶体区域,也就是最终的精子顶体区域。
[0097] S1318:椭圆拟合:通过OpenCV椭圆拟合函数对精子进行椭圆拟合。
[0098] 具体的,根据精子图像Otsu找到的精子轮廓信息,对该信息进行椭圆拟合,从而可以得到拟合后的椭圆。根据拟合的椭圆对下面的一些相关信息进行计算,得出一些计算结果,从而识别出精子的形态。
[0099] 需要说明的是,S132的方法包括:通过OpenCV轮廓面积函数求取精子头部面积;通过OpenCV周长函数求取精子头部周长;通过拟合的椭圆获取精子头部高度和头部宽度;通过将精子头部高度除以头部宽度得到精子长宽比;通过分割后的顶体求出精子顶体面积;通过将精子头部面积减去顶体面积求出精子核区面积;通过将精子顶体面积除以精子头部面积求出精子顶体比率;通过将原有精子头部面积除以椭圆拟合面积求出精子面积CV值;
通过计算精子头部轮廓拟合成椭圆的相似度得到精子椭圆拟合度;通过计算精子头部以长轴和短轴为对称轴的对称程度求出精子的对称度。
[0100] 需要说明的是,S133的方法包括:结合WHO精子第五版精子标准生成预设的精子标准值,根据步骤S132的精子形态参数和预设的精子标准值判定精子形态类型。判定标准为:长度的中位数为 4.1μm,95% 可信限区间为 3.7~4.7;宽度的中位数为 2.8μm,95% 可信限区间为 2.5~3.2;长宽比的中位数为1.5,95% 可信限区间为 1.3~1.8。并且精子顶体区域在40%到70%之间,精子轮廓拟合成椭圆的拟合度。
[0101] 根据精子头部长度、精子头部宽度、精子头部长宽比、精子头部面积比例、精子头部椭圆拟合度、精子头部水平对称度、精子头部上下对称度这些判别条件,对精子的形态进行判断。精子形态类型分为正常精子、梨形精子、不定形精子、锥形精子、小头精子、大头精子、顶体异常精子(小顶体、大顶体、无顶体)、圆形精子等。其中梨形精子为上下区域不对称并且椭圆拟合度过低成梨形,锥形精子为宽度的中位数过小成锥形,不定性精子为其他异常形状的精子,小头精子和大头精子为精子的头部过小或头部过大,顶体异常精子为精子头部顶体比对过小、过大或者没有顶体情况,圆形精子为精子头部呈现圆形。
[0102] 本发明的发明原理:本发明是基于神经网络模型来对精子头部进行检测,并对检测到的精子头部通过图像处理方法分辨其形态,最终输出精子头部形态识别结果。具体的,首先将染色后的精子玻片放在显微镜100倍镜下拍照,再对拍摄图像中的精子头部进行标注,制作成训练需要的数据格式,接着通过神经网络模型来对标注的数据进行训练,得到最终的精子头部检测模型,通过精子头部检测模型检测到的精子头部采用图像处理方法进行处理后,再对精子的形态进行分辨识别,最终获得精子头部形态识别结果。相比现有技术的方法,本发明的整套识别方法操作简单,识别结果可靠。
[0103] 如图5所示,本发明实施例还提供一种精子头部形态识别装置,包括:
[0104] 精子图像获取模块21,用于获取精子染色显微图像;
[0105] 精子头部检测模块22,用于将精子染色显微图像通过精子头部检测模型,获得精子头部图像和精子头部在图像中的位置信息;
[0106] 头部形态识别模块23,用于根据精子头部图像和精子头部在图像中的位置信息对精子头部进行形态分析,获得精子头部形态识别结果。
[0107] 需要说明的是,精子头部形态识别装置还包括:检测模型生成模块,用于生成精子头部检测模型;具体的,检测模型生成模块包括:
[0108] 样本数据筛选单元,用于筛选出大样本的精子染色显微图像;
[0109] 样本数据标注单元,用于在精子染色显微图像上标注出精子头部,并将标注后的精子染色显微图像分为训练图像集和测试图像集;
[0110] 检测模型训练单元,用于在TensorFlow 框架下,采用YOLOv3网络模型对训练图像集进行训练,再通过测试图像集来验证并更新YOLOv3网络模型参数再进行训练,循环此过程直到获得最终的精子头部检测模型。
[0111] 需要说明的是,头部形态识别模块包括:
[0112] 头部图像处理单元,用于对精子头部图像进行处理,包括:二值化处理、亮度处理、Otsu找到精子轮廓、K-means聚类获取核区、开操作获取精子头部、头部及核区膨胀找到顶体、开操作获取顶体、椭圆拟合;
[0113] 形态参数提取单元,用于根据处理后的精子头部图像提取出精子头部形态参数,获得的精子头部形态参数包括头部面积、头部周长、头部高度、头部宽度、长宽比、顶体面积、核区面积、顶体比率、面积CV值、椭圆拟合度、对称度;
[0114] 头部形态识别单元,用于根据获得的精子头部形态参数和预设的精子标准值,输出精子头部形态类型,精子头部形态类型分为正常精子、梨形精子、不定形精子、锥形精子、小头精子、大头精子、顶体异常精子和圆形精子。
[0115] 本发明实施例还提供一种精子头部形态识别设备,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序以实现上述精子头部形态识别方法的步骤。
[0116] 图5所对应实施例中特征的说明可以参见图1-图4所对应实施例的相关说明,这里不再一一赘述。
[0117] 以上对本发明实施例所提供的一种精子头部形态识别方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
[0118] 专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0119] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。