基于斑点检测的皮肤疹点提取方法与流程

文档序号:16075061发布日期:2018-11-27 20:57阅读:1456来源:国知局

本发明涉及人工智能的图像识别领域,特别涉及一种基于斑点检测的在皮肤图像中提取疹点目标的方法。



背景技术:

随着计算机视觉技术的不断发展,图像处理技术被人们用于各种领域中。计算机诊病就是其中重要的应用案例之一,由于具有自动、快捷等特点,能大幅提高诊病效率,被视为未来医学诊病的发展方向。考虑到皮肤病诊断主要通过观察皮肤表面症状,可以通过计算机视觉技术实现皮肤病的自动诊断过程。如何将皮肤图像中的病变区域准确提取出来是实现计算机皮肤病诊断的重要过程,有助于分析疹点数量、分布、形态大小等。本发明中认为的疹点状皮肤病包括,皮疹、荨麻疹、湿疹、水痘、痤疮等呈斑点状分布的皮肤病,可以使用同样的方法提取。由于皮肤病情况复杂,故考虑疹点的形态特征及颜色特征来实现提取过程。

计算机视觉库OpenCV(Open Source Computer Vision Library)提供了斑点检测方法类SimpleBlobDetector,该算法可由多个参数控制,算法步骤简单,运算速度快。SimpleBlobDetector提供的多个限定参数如面积、偏心率、凸度等可以从斑点检测结果中筛选出更准确的目标。但由于SimpleBlobDetector算法对于参数的敏感性较高,无法在误检率和漏检率之间达到平衡,单独使用此方法效果并不理想。肤色检测算法在人脸检测等研究中被广泛研究,能较为准确的识别皮肤区域,主要有基于RGB、Ycbcr、HIS、Lab等色彩空间的使用普通阈值、Otsu阈值等方法的肤色检测算法。若直接使用肤色检测算法排除皮肤区域、剩余部分也并不是准确的疹点区域。因为疹点类皮肤病常常会造成疹点周围正常皮肤区域泛红,对肤色检测会产生极大的干扰,并且部分疹点颜色较浅,与肤色接近难以区分,除此之外还有光照等干扰因素,所以只通过颜色特征难以准确提取出疹点。



技术实现要素:

本发明的目的是提供一种可以快速准确提取皮肤疹点的方法。技术方案如下:

一种基于斑点检测的皮肤疹点提取方法,包括下列步骤:

1)对输入皮肤图像进行预处理,检测图像中的肤色区域和非肤色区域;

2)统计皮肤图像中肤色区域在RGB空间的三个分量值各自的颜色均值μS(k),k=1,2,3;

3)检测输入皮肤图像中的斑点;

4)对所有斑点计算RGB颜色阈值,将斑点分为接近肤色的斑点和与肤色差距较大的斑点;

5)对于接近肤色的斑点计算RGB分量颜色均值μQ(k),k=1,2,3,并与步骤2)中的皮肤RGB分布域融合为新的皮肤颜色均值μT(k),k=1,2,3,μT(k)=αμS(k)+βμQ(k)

其中α、β为权重值;

6)对于4)中与肤色差距较大的斑点计算颜色均值μB(k),k=1,2,3,视为典型疹点RGB颜色均值;

7)结合5)和6)中的典型疹点RGB颜色均值和新的皮肤颜色均值生成加权色彩空间距离函数,用于判别疹点/皮肤,该公式如下:

其中xi(k),k=1,2,3分别为斑点检测检测结果每个点的R、G、B分量值;δk,k=1,2,3分别为三个分量的权重,若计算得到H>0则该斑点判定为疹点,否则该斑点判定为皮肤。

其中,对输入图像可采用OpenCV中的SimpleBlobDetector算法检测图像中的斑点。

本发明公开的基于斑点检测的皮肤疹点提取方法,利用肤色检测算法计算肤色分布,结合斑点检测结果生成基于RBG色彩空间的疹点/皮肤判别函数,从斑点检测结果中提取出疹点目标,具有运行速度快,误检率和漏检率低的特点。

附图说明

图1为本发明流程框图。

图2为本发明具体实施示例用图。

图3为斑点检测结果示例图。

图4为斑点分类结果示例图。

图5为疹点提取结果输出示例图像。

具体实施方式

为了进一步说明本发明,下面结合附图1的流程框图和附图2的实施示例用图给出一个具体实例。

图2所示为一张典型的带疹点的皮肤图像。干扰疹点提取的因素有部分疹点周围的泛红皮肤区域,以及光照阴影和皮肤自然凸起等。

参考框图1所示流程,本发明具体的皮肤疹点提取过程描述如下:

步骤一:对图2所示的输入图像进行去噪预处理。使用基于RGB色彩空间的肤色检测算法检测图像中的肤色区域和非肤色区域。肤色检测判别公式如下:

[yj(1)>95&&yj(2)>40&&yj(3)>20&&yj(1)-yj(3)>15&&yj(1)-yj(2)>15]

||[yj(1)>200&&yj(2)>210&&yj(1)>170&&abs(yj(1)-yj(3)]

<=[15&&yj(1)>yj(3)&&yj(2)>yj(3)]

其中yj(1),yj(2),yj(3)分别为每个图像像素的R、G、B颜色分量值。符合上述判别式的像素点判定为皮肤区域,否则为非皮肤区域。

步骤二:统计单幅图像中皮肤区域在RGB空间的三个分量值各自的颜色均值μS(k),k=1,2,3即其中pt(k),k=1,2,3为步骤一中得到的皮肤区域每个点的R、G、B分量值,M为所有皮肤点的数量。

步骤三:对输入图像采用OpenCV中的SimpleBlobDetector算法检测图像中的斑点。输入的参数有值阈值步长thresholdStep=2,最小圆度minCircularity=0.7,最小凸度minConvexity=0.75,最小惯性率minInertiaRatio=0.35,最小重复次数minRepeatability=3,其他为默认参数。图3所示为斑点检测结果图,黑色圆圈标注区域为检测到的斑点。

步骤四:对所有斑点区域计算内部所有像素的平均R、G、B值作为该斑点的R、G、B值,统计所有斑点以公式0.5R+0.3G+0.2B计算得到RGB颜色分布直方图,使用Otsu法计算直方图阈值,将斑点分为两部分。同样以上式计算步骤二中得到的皮肤颜色均值并同以上Otsu阈值比较,将两部分斑点中分为接近肤色的斑点和与肤色差距较大的斑点。

步骤五:对于接近肤色的斑点计算RGB分量颜色均值μQ(k),k=1,2,3,计算方法见步骤二,并与步骤二中的皮肤RGB颜色均值融合为新的皮肤颜色均值μT(k),k=1,2,3。

μT(k)=αμS(k)+βμQ(k)

其中α、β为权重值。

步骤六:对于步骤四中与肤色差距较大的点视为典型疹点,提取颜色均值μB(k),k=1,2,3,计算方法见步骤二。

步骤七:结合步骤五和步骤六中的疹点和皮肤的颜色均值生成加权色彩空间距离函数,用于判别疹点/皮肤,该公式如下:

其中xi(k),k=1,2,3分别为斑点检测检测结果每个点的R、G、B分量值。δk,k=1,2,3分别为三个分量的权重。若计算得到H&gt;0则该斑点判定为疹点,否则该斑点判定为皮肤。

步骤八:将步骤三中的斑点检测结果用步骤七中的疹点/皮肤判别函数判别出属于疹点的斑点和非疹点的斑点。图4所示为斑点分类结果图,原图为彩色图,黑色圆圈标注的区域为疹点,蓝色标注为非疹点斑点,此图为灰度图。

步骤九:去掉非疹点斑点,保留疹点斑点。图5所示为疹点提取结果输出图像,疹点在图像中用黑色圆圈标记。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1