基于图像识别的面瘫检测技术

本文涉及的产品
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,分割抠图1万点
简介: 图像识别是通过计算机对特定情况进行图像采集处理,分析匹配目标,提取特征,训练分类模型等步骤实现,在国内外科学家的努力下,实现了突飞猛进的变化,人们开始将这一技术应用于,医学,农业,安防,交通,车辆领域。在这一背景之下,许多先进的医疗手段都离不开图像识别技术的支持,小到日常的体检如胸片,心电图我们都可以通过自助取片获得计算机提供的初步诊断信息,之后再找医生问诊,大到一些微创手术,脑部ct技术,心脏病理分析,肺结核图像识别,糖尿病患者的视网膜图像技术


一 绪论

1.1选题的依据及意义

正确判断患者的面瘫程度和尽早采取医疗手段是至关重要的,是由于面部神经炎往往会极大困扰病人的生活和心理。很多时候,面瘫并不是一个突发疾病,是有一段恶化时间的,因为有些患者一开始只是偶尔出现脸部异常不舒服,却没有采取重视,经过一段时间的拖延病情恶化,才想到就医,然而已经错过了最容易治愈的时间。本文所描述搭建的系统对帮助患者尽早发现疾病,尽早采取治疗有极大的作用,但是由于国内外并没有统一公认的面瘫等级判断系统,所以不同医生所判断的等级不尽相同多取决于主管因素,在较短的治疗周期内,通过患者面部特征大夫很难精准判断医治效果,很大几率会造成误诊延误治疗。并且通过建立本系统,不仅有利于医生制定合理的治疗方案,而且可以将系统给患者自己在家使用,让患者也获取直观的病情分析,全程可以自己参与了解自己的病情而不是一味遵循大夫,半信半疑,也可以避免因为病人和医生主观判断的差异带来不必要的矛盾,还可以减轻医生的心理负担,通过电脑机械计算的数据为医生提供判断的理论依据,增加医生和病患之间的信任感,减少误会高效的交流病情,形成良性循环。

现在国内的很多医院的临床疾病判断都会使用由人脸识别相关技术搭建的系统,目前广泛应用的有,体型和内脏器官异常肥大症,遗传疾病,皮质醇增多症。现在还有学者在研究人脸识别技术在胚胎乙醇综合症(Fetal alcohol syndrome,简称FAS),肌痛性脑脊髓炎等其他疾病。这种技术作为辅助医生客观判断疾病情况和发展趋势,使用简单高效,是计算机行业和各行各业的完美结合的典范。

1.2国内外研究现状及发展趋势                            

图像识别是通过计算机对特定情况进行图像采集处理,分析匹配目标,提取特征,训练分类模型等步骤实现,在国内外科学家的努力下,实现了突飞猛进的变化,人们开始将这一技术应用于,医学,农业,安防,交通,车辆领域。在这一背景之下,许多先进的医疗手段都离不开图像识别技术的支持,小到日常的体检如胸片,心电图我们都可以通过自助取片获得计算机提供的初步诊断信息,之后再找医生问诊,大到一些微创手术,脑部ct技术,心脏病理分析,肺结核图像识别,糖尿病患者的视网膜图像技术[[i]]。

这些年医学界学者为了达到一个能获得大家共识的面瘫等级系统做了很多的设想与研究,目前可以查到的国外关于判断面瘫等级的论文提出二十多种方法,其中运用比较广泛的有:多伦多面部评分系统(TFGS),面神经功能指数(FNFI),HB系统等。国内于05年06年,中国中西医结合会以及中华医学会分别草拟了关于面瘫等级评定的标准,但是没有得到广泛应用。之后华山医院自行研发了一套面瘫等级判断系统(HFGS),经过测试该系统具有好的效率和可信度,包含了一切的面部神经分支,对每个分支分成若干小项目,有详细的检测方案,在华山医院得到初步的推广[[ii]]。

结合上面的分析,目前国内外有很多种面瘫等级评定系统,但是都是各有优劣,所以搭建一个高效,同意,精准的面瘫等级评定系统仍需要深入研究。

1.3本课题研究内容与技术路线

实现摄像头实时采集用户人脸照片;完成脸部鼻尖、眼角、嘴角、人中等几个关键位置的特征识别和动态标注;根据特征点的坐标位置,计算左右特征点相对中心线的对称性,给出对称性评价结果。完成算法和软硬件系统,实现不少于50人的测试报告。

二  面瘫等级划分

2.1认识面瘫

面神经麻痹(面瘫)是一种以面神经损伤引起的面神经功能障碍为特征的常见疾病,会导致患者面部表情功能障碍。 面瘫患者常见症状是嘴巴眼睛歪斜,当患者患病严重的时候会严重影响正常生活,丧失闭眼睛,挑眉毛,微笑等功能[[1]]。导致面神经麻痹的原因有很多,但是目前医学界还没查明具体的发病原因。  遗传理论、病毒起源理论、免疫学理论、风湿病学理论、血液输送理论、血管压迫理论等,是目前研究者所公认的几种致病理论[[2]]。面神经麻痹炎依据发病位置的区别可以分成中央性和周围性面瘫[[3]]。前者一般脸部不会出现表情功能障碍,只是有可能会嘴角歪向一边,后者会出现肌肉瘫痪,严重影响生活,挑眉无力,眼睛不能紧闭,嘴角一边歪斜,无法正常做出表情,做微笑表情时只有健康的一边能用力,长时间的患病会得病人带来生理和心理上的伤害,影响全身的血液循环系统,阻碍人的正常社交,无法和他人正常交流出现口吃含糊不清的病症。

2.2现有的面瘫等级的判断方法

    1. B面瘫等级判断系统在1984年得到面神经疾病委员会的认可,这个系统通过观察患者做出闭眼,咧嘴,鼓腮帮,皱鼻子,抬眉毛时候的五官肌肉牵连运动程度,将面瘫分为六个等级,但是级别之间的区分界限较为含糊, 可用性不高。仍需改进。Yanagihara面瘫评定系统(YFGS)[[4]]通过采集患者的十面部运动状态来打分,每一种表情四分总四十分,包括静止,挤眉毛,微笑,闭上嘴角,轻微闭眼等等。温度数据可视化判断面瘫等级方法[[5]]当人患上面瘫之后,脸部的肌肉丧失全部或者部分功能之后,会出现血流运输状态异常,脸部肌肉温度范围在红外光下呈现的脸部左右不对称,可以通过描绘某方向上的肌肉温度直方图,达到视觉观察面瘫严重程度的效果。华山医院面瘫等级判断(Huashan facialgrading system,HFGS)通过检测面部6个神经分支,其中的5个分支通过2-3个小的检查项目构成。并且研究者为每个检查项目提供了打分依据,如闭眼的打分标准就是:上下眼睑距离大于等于3毫米则5分,2到3毫米之间4分,0到2毫米3分。

    三 边缘检测

    3.1边缘检测基本原理

    通常生产生活中所要提取的边沿就是图片样本中的发生变化包括信息最多的地方。边沿提取检测的目标就是:找到具有阶跃变化或者屋顶变化的像素点的集合。

    因为边沿是像素灰度改变最激烈的部位,所以最直白的方式就是对该点求导数。针对图3-1所表达的信息:一阶导数的最大值处为边沿,二阶导数取值是零的点为边沿。针对图3-2展示的信息:一阶导数的取值为0的是边缘点,二阶导数取最大值处的点是边沿。

          image.gif编辑

    3-1 阶跃变化              3-2 屋顶变化

    边缘检测的一般步骤:

    1. 过滤,边缘检测算法主要基于图像强度的一重和第二重导数,但通常结果对噪声很敏感,所以过滤器必须被用来改善边缘检测器性能。如:噪声相关的检测器。所述公众常用的过滤方法主要包括高斯滤波,其实就是离散的高斯函数用于产生一组归一化的高斯核,然后使用Gaussian函数将图像的灰度矩阵的每个点被加权并求和。

    2. 增强,使边沿更加明显的办法就是计算出图片样本中所有点在它的附近区域内像素改变的激烈程度。该算法采取加强某些点的方法:在它的附近区域内灰度值出现剧烈变化的点。在实际使用时,它可以通过计算梯度改变量来确定。

    3. 检测,很多时候经过第二步操作的图像,通常有些点的附近区域有很多点的梯度改变量很大 ,但是某些场合此类点并不是真正的边缘点,因此我们必须采取一些方法来排除这些点,实际应用的时候经常采取高低阈值的策略来筛选。    

    3.2常见边缘检测算子

    3.2.1 一阶微分算子:Sobel

    Sobel算子是一个离散微分算子,其被用于计算图像的灰度级的大致梯度。索布尔算法功能集高斯平滑和求导数为一体,也被称为一阶微分算子,和导数算子。通过水平和垂直方向上获得图像X的方向和Y方向梯度图像。具体地理解索贝尔算法,要确定哪些是边缘:它是其中像素值跳跃的地方,是图像的显着特征之一,并且在图像特征提取,目标检测,模式识别等领域发挥重要的影响力。怎么获取图像边缘:给要获得边缘的区域做微分计算,Δf(x)越大,说明像素在X方向变化越大,边缘信号越强。因此sobel算法的计算方法是,在图像x方向和y方向上移动,采用三乘以三的模板,对应的提取同样大小样本内九个像素,并进行卷积计算,从而计算出该方向上边缘变化的最大值。但是求幅值有多种选择,一般地,水平和垂直方向,或其它角度,根据具体条件进行选择。

    Sobel算子检测方法对一些特殊的图片(如很多灰色梯度和噪声)有很好的效果。Sobel算子是不准确的边缘定位。在图像的边缘处的像素点(如图3-3)往往多于一个。当对提取边沿准确度需求不高的时候,sobel算子是一种比较常见的边缘检测方法。

    image.gif编辑image.gif编辑

    3-3 sobel边沿检测

    3.2.2 二阶微分算子:Laplance

    拉普拉斯算法很容易受到噪声的干扰,因此一般不用这个算法提取边缘,多用于推断区分图片的亮暗区。他是通过求二重导的方法提取信息,他相比别的算子的好处就是不具有方向性,不同朝向获取的边沿信息是同等重要的;失去任何朝向上的知识都会导致提取的边沿中断,但是此方法可以对所有方向的边沿检测做补偿操作使图像变得更加清晰边沿不容易受到中断的影响。

    3.2.3 非微分边缘检测算子:Canny算法

    该算法是一个特殊的手段。通过捕获来自于各式各样的图像的多方面有效的信息资讯,达到降低操作过程中需要额外处置计算的信息,加快算法速度,如今大面积的在各行各业图像处理流程中使用。它的发明者在实验中探索得出,不管在什么场合只要需要捕获边沿,需求基本都差不多,所以他总结了一些可以概括所有边沿捕获需求的准则,边缘检测的一般标准[[i]]包括:

    1. 算法要能最大努力地提取边沿,含义就是不能漏检或者误检任何边沿。

    2. 检测到的边缘应精确定位在真实边缘的中心。

    图像中给定的边缘应只被标记一次,并且在可能的情况下,图像的噪声不应产生假的边缘。

    Canny算法是如今频繁使用的边沿捕获算子,它是经过前人苛刻实验计算得出,能达到非常有效精准的边沿捕获效果。并且因为它能达到上文的三个准则,并且计算步骤容易耗时少,所以是现在时兴的算法之一。

    Canny边缘检测算法可以分为以下几个步骤:

      1. 通过运用Gaussian滤波器,达到模糊和消除噪声的作用。

      由于想要最大限度的降低噪声对边缘提取效率的干扰,因此要采取策略来降低或者排除噪声从而降低错误概率。所以我们采用Gaussian滤波器做卷积计算来达到模糊图像的作用,从而降低边缘检测器因为噪声产生错误的判断。Gaussian滤波器的滤波核一般是奇数*奇数(最小为3)。假如图像有一个区域B大小是三乘以三,要进行平滑操作的点是e,那么经过处理之后,e的像素值将变为:

      image.gif编辑

      上面的公式(1)需要深入探究的是,怎么取合适的卷积核,取值的大小会直接影响canny 算法的检测效果。取值越大,虽然受到的干扰越小,但是确定边缘位置的准确率也会下降,经过实验统计结果表明通常五乘以五是会得到比较好的结果。图3-4分别为滤波核为3*3和7*7的效果图。

      image.gif编辑image.gif编辑

      3-5 高斯滤波核3*37*7

      2. 可以从图像的所有方向提取边缘,所以Canny算子使用四个不同的方法在图像中选取检测水平,垂直和对角三个方向的边缘。返回在水平和纵方向一阶微分的值,通过这一步计算出图中某一点的梯度和方向。该测试中选择的是索贝尔算子来推导出梯度和方向。

      3. 应用非最大结果约束,来削弱因为边缘检测而伴随的无关影响。非最大约束是边缘稀疏技术,并且他是针对“薄”侧起效果的。如果只是依赖于对图像求梯度然后根据梯度的变化来提取边缘视觉效果还是很不清楚精确的。对于标准3:应该只具有对一条边缘的唯一精确反应这条要求并不是仅仅通过第二个步骤就可以达到的,通过本步骤能有效地把局部极大点出外的其他点的梯度值改成0。

      对图中所有的点采取这一步,具体步骤是:

      (1) 把目前计算的点的水平向左和水平向右方向梯度的2者像素作为参照。

      (2) 假设正在计算的点比参照点的像素梯度更大,那么此点划入边缘范畴,相反就把此点约束。很多时候会采取更加准确的方法:在俩个参照点中采取线性插入像素值获取真正作为基准的比较对象。

      (3) 施加双阈值检验如图3-5和3-6从而提取切实可靠并且隐藏的边沿。

      image.gif编辑         image.gif编辑

             

        3-6 canny算法低阈值        3-7 canny高阈值效果图

      4. 将非最大结果的像素点约束之后,剩余的点可更切实地呈现图像本质边沿。但是,依旧留有因为噪声和色彩改变导致的部分边沿像素。要达到处理这些零散反响的目的,不妨采纳选取高低界限的方法:假设边沿像素变化值比最高界限更小,除此之外比最小界面大,那么把他记录成Weak Edge,假设边沿像素变化量比最小的界限还要小,那么他会被约束去除。上下界限的设定依赖于索要检测图片的具体情况。但是他的阈值不具备自适应功能需要根据情况进行选择,因此后来很多人对canny算法做了许多改进[[ii]]。

      5. 经过上述步骤约束单独的弱边缘,可以明确的边缘是被认定成强边缘的像素点集,是由于它们是图像真实边缘的子集合。但是,弱边缘是否是我们所需要提取的边缘还有待考证,原因是他们的组成可能是确切 的边缘也可能是由于噪声变化或者颜色变化导致的。所以要提取确凿边缘,需要禁止出现因为噪声和颜色产生的边缘。一般地,因为噪声和颜色改变引起的边缘不会连接到真实边缘上。我们采取观察弱边缘和他周围八个相邻的像素值的方法来确定边缘的连接,但凡八个点中有一个点的像素是强边缘的,即可将其划入准确边的范畴。

      3.3本章小结

      综上分析,以及实验结果截图可得:sobel算法边缘提取精度不是很高,边缘有很多额外的像素点,然而他运用在噪声繁杂图片上功效很好。Laplance算子在噪声繁杂的图片上处理效果很差。但是提取的界线将明暗区划分的很好,最后尽管canny算子已经是得到效果比较好的检测算法了,但还是有其不足之处[[iii]]比如:

      (1) 在收集图像之后我们要进行预处理,进行高斯滤波的时候需要认为选择高斯滤波核大小的选择,选择不当时可能造成滤除噪声和边缘信息提取二者不能达到好的效果。

      (2) 因为canny算法选择的高斯滤波,不能去除椒盐噪声和 脉冲噪声等,所以边缘很多是噪声。

      (3) canny算法第四个步骤使用双阈值来确定精准边缘,在不同使用场合下,采集的图片受光照,亮度,对比度的影响,需要不断变化设置的阈值,不具备自适应功能,处理繁琐,不贴和实际应用,会获取伪边缘[[iv]]。

      四  改进边缘检测算法

      4.1自适应调节

      实验中发现在不同场合下采集的图片具有不同的亮度和对比度,这些都会影响边缘检测的效果(如图4.1光线强、4.2光线暗)当光线好,会检测出更多线条,当光较暗,提取的线条相对较少。也可以解释为光线不好的时候图片细节丢失严重,会导致提取边沿和特征点确定等方面的误差。

      4.1.1调节亮度对比度

      通常情况下,图片操作算子是一种函数:有一个或多个参数,即可以传进去一或者多张图片进行操作,最后产生经过变化的新图片。这里的变化包括很多种,此处介绍俩种:点变化,用于调整图片的对比度和亮度 ,领域变化,用于给图片做滤波等各种卷积运算。前者的常见操作有对图片中的每个像素点做算术运算:常用俩个变量和改变图片的亮度对比度,分别叫做增益和偏置。结果见图4-1。

      image.gif编辑image.gif编辑

      4-1 调整亮度对比度前后变化

      4.1.2空间滤波器

      正常的滤波器通常由领域和对其范围内像素操作变化构成。前者是因为一般的操作计算对象都是某一长方形范围内的像素,后者是因为滤波操作通常就是,对长方形区域内那些点进行一些特殊的变换步骤,将变换以后的像素值作为该点的新结果,输出完全不同的一张图片,一般来说,它的别名或者说简称是核,模板。依照那些变化的步骤,它可以被化成俩个类型:线性的,或者非线性的。依照不同的照片上的过滤器的最终效果,它通常又被区分成:平滑的或者锐化的,

      前者一般的作用就是使图片变得模糊,减少噪声干扰,后者则是为了让图片的边沿更加清楚增加灰度变化的位置。

      常见的最简单非线性的有Median Filter如图4-3 ,它的操作过程就把某点长方形区域内所有点的像素取出,其中处于中位数上的值作为该点的新的像素值。其目的一般是为了减少这一点的像素和灰度大小和它周围区域的点差距,以达到减少孤立噪声的目的,所以此方法可以高效地避免椒盐噪声干扰。除此之外,它不仅能用于避免噪声,还可以较高限度的帮助图片维护完整的边沿内容,而不像那种采用平均法的滤波器那样导致图片失真。但是它仍存在一些缺点,比如很容易因为操作矩形大小的选择不当产生不好的效果,当矩形选的相对小的时候,输出图片的细节还原度很高,然而不必要的噪声干扰也被保留下来了。但是,假设矩形区域设定的大一些,虽然能高效的避免噪声干扰可是输出的图片会出现不同程度的失真。而且,通过结合它的原理我们可以知道,假设,这个矩形区域之中的噪声数量比构成该区域图片的点的数量还多,那么它的最终操作功效 就不会那么令人满意。那么可以采取扩大进行滤波操作矩形区域的范围,尽管这个方法可以略微地改善噪声过多带来的影响,然而会导致图片的效果失真。一般情况下,依照过往前人的实验总结,只要噪点产生数量小于全图片像素点数量的0.2倍的时候,该滤波器的操作结果还是很适用的。然而,假设图片质量不行有非常多噪点,普通操作则没有用处了。

      因此结合上文的分析可以在进行噪声过滤的时候,依照具体操作区域的实际情况,随时调整核的大小,再进行噪点排除,假设按照规则此点是噪点,那么选取该区域所有点的像素的中位数作为替换结果。这种具有自调节功能的滤波器可以达到消灭椒盐,和除此之外的各种非脉冲噪声,并且因为可以随时调整窗口大小所以在收集信息方面更好提取出的边沿不会特别模糊或者很轻。

      4.1.3自适应中值滤波算法描述

      自调整过滤器不仅仅可以消灭出现次数很多的脉冲噪声,此外它在收集样本细小环节的知识方面能力更强,以上都是它独特的优势所在。它和普通过滤器的共同点就是必须有一个长方形的操作区域,即核,而二者区别在于,它的核在操作的时候会随着所滑动到的区域的具体情况而变化,正如3.2.3节所介绍的当高斯滤波选取不同的核大小效果是不一样的,此处也是一样的意义。

      详细介绍此算法应该使用以下几个标识:

      image.gif编辑:横坐标为x纵坐标为y的点的灰度大小

      :操作范围中的最小灰度

      :操作范围内的处于中位数的灰度

      :可以操作范围的最大面积

      :噪声过滤的操作范围,xy是该矩形区域正中位置的横坐标和纵坐标

      首先第一步的目标是判断所选操作范围内提取出的像素灰度是的点是不是噪点,假设符合的大小处于和之间,那么这个点就不是噪点。排除一些少见的可能,比如的大小和或的大小相等,那么这个点就是噪点,需要增加长方形操作区域的面积,在新的操作范围提取出一个不是噪点的点。如果经过俩步操作之后还是找不到不是噪点的,那么就把灰度为的点输出。

      下一步即鉴定坐标为(x,y)的点是不是噪点,鉴定方法和上述相同,就是把替换成然后进行计算。如果最终鉴定结果是噪点,则采用替换这一点的方法过滤,否则保留该点情况,最终结果如图4-5。

      image.gif编辑image.gif编辑

      4-2 加上椒盐噪声                     4-3 中值滤波

      image.gif编辑image.gif编辑

         4-4 高斯滤波                4-5 自适应中值滤波

      4.1.4直方图均衡化

       直方图均衡化又称直方图平坦化,它是把图片所有的像素点按照位置排放在横轴上,并作非线性拉伸,以达到使图片上任意灰度值所对应的出现次数大致相同,最终输出的图片的直方图相比之前,出现频率较多的像素值变成了很多出现次数均匀变化的一系列点。如图4-8所示。          

      图像直方图是指图像的所有像素值处于(0-255)中的灰度等级出现的次数进行累加的数量,并且相应地生成的直方图。直方图(图4-6)反映图像的灰度级的分布特性。而图4-7反映灰度大小和它在图片中出现次数的直接关系,x坐标轴代表的是灰度大小,y坐标轴代表对应灰度在图片中出现的数量(即像素的数量),其全部坐标系统描述了图像的灰度级的分布,从而使图像的灰度分布特性可以看到的,也就是说,如果大多数像素都集中在低灰度区中,图像被呈现。

      image.gif编辑

      image.gif编辑

      图4-8就是操作样本的直方图经过均衡化之后的结果,原来的结果是有明显的高峰和低谷而修改之后就变化成了一个平滑的没有特别明显突起的曲线,它的原理就是让图片经过变化之后不同灰度值出现的次数大致相同,因此有些点的灰度大小被放大,所以视觉上出现对比度增强的效果图4-9。

      image.gif编辑

      4.1.5图像融合

      基于上述的sobel和canny的结果图对比可发现二者均具有有平滑功[[i]],但又各具特色,在噪声方面canny去噪效果好sobel虽然对噪声敏感但是可以抑制,canny在提取边缘方面视觉上连接效果更好边缘很精确完整但是边缘很细没有强弱的对比,sobel提取的边缘具有明确的方向性而且有强弱之分但是视觉上不是很准确。基于二者的特色可以二者进行图像混合融合二者各自的优缺点。

      image.gif编辑

      4.2本章小结

      结合上述提到的若干种方法,我们均可在系统内看到直观的视觉效果:由图4-10和图4-11可确定的确在光线暗的时候图像细节丢失较多,而亮的时候图片细节又过多了,很多信息过于繁杂会导致最终的人脸识别效果下降。图4-12和图4-13是改变canny算法的参数阈值而达到的效果,虽然本章为了避免重复介绍canny算法的工作原理并未提及这一方法,但是结合图4-10和4-11,以及图3-5和3-6可知通过调整阈值可以显著的改变边沿对细节方面的描绘,阈值小保留的细节越多,因此在光线亮的时候增大阈值可以排除不必要的细节内容,光线暗的时候减小阈值,尽最大可能的保留细节信息也可以达到自适应的目标。如图4-13,很明显边缘丢失严重应该把阈值调整为20。接下来图4-14就是调整亮度对比度和进行直方图操作图4-15的结果,可以发现经过直方图均衡化之后一些比较强的线条被明显加粗了,但是一些比较轻的线条都被过滤了,因为结合该算法的工作原理可知该算法是直接通过修改图像的像素值使像素值出现次数分布均匀实现的,因此某些出现次数少的像素点会被削弱直接弱化,该方法能有效地对强边缘加强,代价是也会导致一些细节丢失,具有俩面性,但是可以通过调节canny算法的阈值弥补这一缺点。至于直接调整图片亮度从图4-14可见盲目的直接调整图片本身的亮度和对比度会真正的造成细节丢失,所以亮度对图片细节保留的影响指的并不是图片本身的亮度,而可能是外界光等其他因素造成的,

      image.gif编辑

      image.gif编辑

      五 人脸检测

      在经过上面步骤之后我们就获取到了一个尽可能精确的人脸边缘图像,接下来我们在进行关键点获取之前我们需要提取出图像的人脸部分。目前常用的方法有基于harr特征的级联分类器,基于lbp的级联分类器,使用dlib库等方法。

      5.1 Lbp或haar特征的级联分类器

      Lbp还被命名为局部二值模式,把中点像素值当成参照,它周围像素点大于取1小于取0,以二进制形式输出则得到了该中心像素点的局部二值特征,局部二值特征可以得到图像的点,线,边缘,角点,平坦区等特征,lbp具有尺度不变性,旋转不变性,

      Haar特征具有高类间变异性,即每个特征之间差别很大,低类间变异性,同样的特征检测出来结果基本是吻合的,局部强度差,空间光照旋转不变性,计算效率高。Haar特征检测人脸,可以在人脸上选定k个特征然后在n个区域内进行比对。其中haar特征是浮点数计算,lbp是整数计算,所以前者的速度慢几倍,但是相同样本数据下haar训练出的数据检测结果比lbp更准确,lbp要达到相同的效果需要更多的样本数据。

      image.gif编辑

      级联分类器的原理[[i]]:通过大量的正负图片样本数据训练分类器,具有训练慢,检测快的特点,每一个特征为一个弱分类器,多个弱分类器构成强分类器,弱分类器可以用决策树(如图5-1)来构造,将提取到的特征与分类器的特征进行逐个比较,从而确定该特征是不是归属为一个人的脸部。强分类其实就是第一步让每个弱分类表决,下一步把表决则通过依照不同分类器失误判断的可能性大小选取权重,按权重作求和操作,结尾,把不作权重求和的结果,即只采用求均值的结果作为参照,做出最后的判断。

      5.2 DLIB人脸检测

      虽然opencv自带的haar和lbp数据模型常用于人脸检测中而且效果更好,但是本系统采用dlib这个目前很常用的c++库包,含有许多关于机器学习的工具接口,在获取人脸关键点的方面上准确率高速度快,而且opencv在检测人脸的时候一旦获取的脸部图像是不是正对面获取的朝向不对就可能检测不出人脸,而dlib很少出现这种情况。因为这个方法采取了级联回归的策略,第一步收集大量经过特殊处理,尺寸大小一致背景一致的人的照片当作训练数据样本,下一步训练获得数据模型。在我们输入一张照片时,dlib会通过它库内的检测器,调用官方训练出来的数据模型,进行匹配,并且把提取到的人脸rets返回,并且调用库接口在返回值上操作面部重要68点标注,然后把68个点的位置信息存在一个参数内,用户可以直接通过此参数了解各个的坐标位置。通过shape即可获得68个特征点(图5.2)。

      image.gif编辑

      六 面瘫等级计算

      6.1获取图像数据

      本系统通过使用电脑摄像头采集照片,使用visual c++2015做开发工具,通过videocapture调用摄像头对患者进行实时采取图像,一定要在严格的环境下进行采集如:

      (1) 采集的照片必须是患者的全脸并且左右对称尽可能的清晰。

      (2) 采集不同表情的时候需要在同一光源下,光源最好自然均匀分布。目前面瘫等级的判断主要依靠医生的主观判断目前还没有一种公认的判断方法,但是根据面瘫的临床特征我们可以知道人在患上面瘫之后,不能完全闭上眼睛,不能正常的咧嘴微笑,鼓起腮帮子的时候无法闭上嘴巴,挑起眉毛的时候只能有一边抬起,甚至静止的时候就能看出脸部歪斜,基于这些特征,结合前一步提取的特征点我们可以做一些计算,区分面瘫等级。

      6.2垂直距离法(14点)

      根据上文提到的面瘫患者的外部表情特征,通过给五官进行68点的标注,获取人脸特征点坐标,我们先选取七对特征点,可以选区左右眼睛和眉毛的最高点的y坐标计算,正常人能同时以相同幅度挑起眉毛,所以y坐标差值是一样的,而患者左右眉眼y轴差值肯定不一致,并且差值越大患病越严重。针对患者不能同时咧开左右嘴角微笑,可以选区左右外嘴角点(左:48右:56),然后和不管做什么表情都不会变化的内眼角点的y坐标做差值。依据患者无法完全闭合患病一侧眼睛的特点,选取左右眼睛的上下眼睑特征点(左:38 42  右:44 45)做差值,相比另一侧能闭上的眼睛,患病测的一定更大。患者在做出撅嘴挤鼻子的表情的时候,由于患病侧由于肌肉无力,鼻子外侧无法有效抬起与眼睛内眼角的距离会更远,以此作比较。最后有些患病严重的病人,在静止状态下可能就会出现明显口角歪斜,通过网络收集图片可见,大部分严重患者会出现外嘴角的严重偏移,所以可以记录左右侧的外嘴角和一般都不会变化的内眼角的y轴坐标计算差值,进行比较。最后收集五组差值,根据医生临床经验选择每组差值在参与等级计算的时候所需要占的权重。本系统采用做均值计算。

      七 结论

      随着人们生活步伐的加快,人们的生活作息远不如过去健康,面瘫已经成为一种比较常见的疾病,面瘫的发病时间与人的年龄无关,无论儿童还是年长者,均会有发病案例。并且如今的中年人生活压力大,要处理的事务繁杂,长期处于较为辛苦的状态,因此尤其容易患病。特别是现在的青年人喜欢运动之后,或者同龄人之间聚餐暴饮暴食,大量饮酒之后对着风口或者空调极易导致发病。面瘫患者不受年龄限制,从小孩子到老年人,都有可能得病。现在青壮年工作较紧张,熬夜等不良生活习惯造成过度劳累,更增加了患面瘫的几率。大汗、喝酒后狂吹空调、风扇是年轻人夏季患面瘫的最大诱因。所以开发一个能方便快捷检测面瘫等级的系统是很有必要的,随着研究的深入使用者的回馈,该系统也会得到不断地完善。

      本课题采用基于opencv的人脸识别技术来建立面瘫识别系统,以面瘫患者的面部不对称程度为理论依据。人脸识别技术进行医学诊断的方案为: 拍摄受试者照片→自动或半自动设置标志点→提取面部特征 数 据 → 与已知模式比较并归类[7]。预期通过face_landmarks、opencv的函数库得到人脸特征点list,假设每个人脸是一个字典,包括nose_bridge、right_eyebrow、right_eye、chine、left_eyebrow、bottom_lip、nose_tip、top_lip、left_eye几个部分,每个部分包含若干个特征点(x,y),总共有68个特征点,从中截取至少五个特征点,使用基于对称轴的方法或者对称轴和距离差值的方法[1],来比较患者面部五官的不对称程度来对面瘫程度进行分析。

      本研究已初步被验证,用于面瘫等疾病的辅助诊断。通过提取患者脸部特定标志点的位置数据,分析患者脸部数据信息可以得出肉眼难以识别的发展趋势,对病情做及时的判断。人脸识别技术在医学诊断上的应用,可以减少疾病延迟诊断、医疗资源不足的问题,有望日后用于疾病的早期筛查、提高临床诊断效力,为临床工作者提供医学诊断的新视角。

      相关文章
      |
      8天前
      |
      机器学习/深度学习 算法 自动驾驶
      深度学习中的图像识别技术
      【10月更文挑战第37天】本文将深入探讨深度学习在图像识别领域的应用,通过解析神经网络模型的构建、训练和优化过程,揭示深度学习如何赋能计算机视觉。文章还将展示代码示例,帮助读者理解并实现自己的图像识别项目。
      |
      9天前
      |
      机器学习/深度学习 人工智能 自动驾驶
      深度学习中的图像识别技术及其应用
      【10月更文挑战第36天】在当今科技飞速发展的时代,深度学习已成为人工智能领域的一颗璀璨明珠。本文将深入探讨深度学习在图像识别方面的技术原理和应用实例,旨在为读者提供一个全面而深入的了解。我们将从基础理论出发,逐步揭示深度学习如何革新了我们对图像数据的处理和理解方式。
      |
      10天前
      |
      机器学习/深度学习 算法 TensorFlow
      深度学习中的图像识别技术
      【10月更文挑战第34天】本文将探讨深度学习在图像识别领域的应用,并介绍如何利用Python和TensorFlow库实现一个简单的图像分类模型。我们将从基本原理出发,逐步讲解数据准备、模型构建、训练过程以及结果评估等关键步骤。通过本文的学习,读者可以了解到深度学习在图像识别中的强大能力,并掌握如何使用现代工具和技术来解决实际问题。
      27 2
      |
      24天前
      |
      机器学习/深度学习 人工智能 算法
      利用AI技术进行图像识别的探索之旅
      【10月更文挑战第21天】本文主要介绍了如何运用人工智能技术进行图像识别。通过深入浅出的解释,让读者对AI图像识别有更深入的理解。同时,文章还提供了一些代码示例,帮助读者更好地理解和应用这些技术。
      |
      24天前
      |
      机器学习/深度学习 监控 自动驾驶
      深度学习中的图像识别技术及其应用
      【10月更文挑战第20天】本文将探讨深度学习在图像识别领域的应用,包括其原理、关键技术和实践案例。我们将从基础概念出发,逐步深入到模型构建、训练技巧以及性能评估等高级话题。通过实例分析,揭示深度学习如何革新传统图像处理流程,提升识别准确率和效率。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和实用的知识。
      |
      1月前
      |
      机器学习/深度学习 人工智能 自动驾驶
      深度学习中的图像识别技术
      【10月更文挑战第5天】在人工智能的浪潮中,深度学习技术以其卓越的性能和广泛的应用场景成为了科技领域的热点。本文将探讨深度学习在图像识别中的应用,通过实际代码示例,揭示其背后的原理和实现方式。我们将看到,从基础的卷积神经网络到复杂的模型架构,深度学习如何一步步提高图像处理的准确性和效率。
      |
      1月前
      |
      机器学习/深度学习 自动驾驶 算法
      深度学习中的图像识别技术及其在自动驾驶中的应用
      【10月更文挑战第4天】本文深入探讨了深度学习在图像识别领域的应用,并特别关注其在自动驾驶系统中的关键作用。文章首先介绍了深度学习的基本概念和工作原理,随后通过一个代码示例展示了如何利用深度学习进行图像分类。接着,文章详细讨论了图像识别技术在自动驾驶中的具体应用,包括物体检测、场景理解和决策制定等方面。最后,文章分析了当前自动驾驶技术面临的挑战和未来的发展趋势。
      40 4
      |
      1月前
      |
      机器学习/深度学习 人工智能 监控
      深度学习中的图像识别技术及其应用
      在人工智能的众多领域中,深度学习以其强大的数据处理能力脱颖而出。特别是在图像识别领域,深度学习模型如卷积神经网络(CNN)已经成为了研究和应用的热点。本文将通过浅显的语言和生动的比喻,带你了解深度学习如何“看”懂一张图片,并展示一些实用的代码片段来加深理解。
      |
      27天前
      |
      机器学习/深度学习 数据采集 人工智能
      数据驱动的AI技术:如何通过深度学习提升图像识别精度
      【10月更文挑战第18天】 数据驱动的AI技术:如何通过深度学习提升图像识别精度
      47 0
      |
      1月前
      |
      机器学习/深度学习 人工智能 自然语言处理
      深度学习中的正则化技术及其在图像识别中的应用
      【10月更文挑战第8天】本文深入浅出地探讨了深度学习中一项关键技术——正则化,并详细解释了其如何有效防止模型过拟合。通过引入正则化的基本概念,阐述其在深度学习中的重要性,并结合具体代码示例,展示如何在图像识别任务中应用正则化技术来提升模型性能。文章旨在为初学者提供一个清晰的正则化技术入门指南,同时为有一定基础的开发者提供深入理解和实践的机会。