b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

基于贝叶斯决策的彩像皮肤区域检测算法的研究与实现

电脑杂谈  发布时间:2020-07-06 10:22:21  来源:网络整理

图像识别算法研究_基于压缩感知的单幅图像超分辨率重建算法研究 刘娟_图像颜色识别

I. 背景介绍

皮肤检测广泛用于许多计算机应用领域,例如面部识别和跟踪,手势识别,图像检索和分类. 上述研究课题必须解决一个基本问题,即将图像准确地分为皮肤和背景两个区域. 分割的准确性直接影响后续工作的准确性和性能,因此皮肤检测已逐渐成为上述任务的第一步和技术基础.

有许多相关的皮肤检测算法,典型的算法包括: 直方图统计方法,高斯混合模型方法,基于颜色的皮肤检测,基于纹理的皮肤检测,多特征皮肤检测,基于小波的皮肤检测,差分基于皮肤的检测以及诸如使用空间扩散方法的方法. 其中,M.J. Jones和J.M. Rehg提出的基于皮肤像素颜色的直方图统计模型方法[1]具有良好的检测性能,也是本实验中使用的算法.

本实验中使用的训练数据包括约1.6亿像素,所有像素都是从Internet收集的. 利用这些数据,我构建了一个颜色直方图统计模型来区分皮肤像素和非皮肤像素. 最终的实验结果证明了该方法的有效性.

第二,直方图模型的构建

颜色空间的选择是皮肤检测的重要部分,但是在特定的皮肤分布模型下进行皮肤检测中不同颜色空间性能的比较,并且不存在一般的最佳空间. 为了区分肤色和非肤色,RGB是最佳空间,本实验也使用了该空间.

除了色彩空间外,直方图模型大小的选择也值得考虑. 如果像素使用24位三维颜色值,则R,G和B的每个分量值都对应于二进制8位值. 在构造的RGB直方图模型中,每个维度都分为2 ^ 8 = 256个单位值,直方图模型将总共具有256 ^ 3个句柄. 此尺寸可最大程度地利用像素颜色值的信息,从而确保区分其差异,因此可以带来较高的分辨率.

但是,使用此方法将占用大量存储空间,并且实验数据集可能难以达到所需的基本数量限制,因为实验数据集可以提供相对于256 ^ 3句柄的像素. 会议相对稀疏,影响了实验结果. 另一方面,使用较少的量化级别可以减少存储成本,而不会显着降低分辨率. 根据以前的经验,在256、128、64、32、16个量化级别中,级别32是一个相对较好的折衷点. 为了验证各种直方图模型大小对实验结果的影响,本实验首先采用256作为量化级别,然后选择其他量化级别进行比较.

在此实验中建立颜色直方图模型所需的图像数据集主要来自随机捕获的网页图像. 整个图像数据集分为两类-包含人类皮肤的图像类别和根本不包含任何皮肤的图像类别. 这两种类型的数据集分别由大约500张图像组成. 图像采集完成后,还必须使用相关的图像处理软件删除这些图像中包含的标签和水印,以过滤出符合预期要求的数据集.

为了确保数据样本的通用性和公正性,实验数据集涵盖了各个年龄段的男性,女性,和年轻人,以及各种场景和背景的图像. 最终数据集包括500个具有人类皮肤区域的皮肤图像类别和500个无皮肤区域的非皮肤图像类别.

数据收集完成后,模型训练开始. 基于便利性考虑,此实验对训练数据集的图像进行了统一的尺寸调整: 将皮肤图像统一处理为240 * 320(像素)的大小,将非皮肤图像统一处理为600 *的大小是400(像素).

以下图像是皮肤类型图像处理的示例,正​​面是处理之前的图像,背面是人为提取皮肤像素并填充处理后的图像:

统一图像大小并提取皮肤像素区域后,接下来将构建皮肤和非皮肤直方图模型. 在这两种类型的数据集中分别进行直方图模型的构建. 对于皮肤类别直方图模型,对于每个处理的皮肤类别图像图像识别算法研究,逐列读出每个像素的R,G和B值信息. 其中的每个像素对应一组(R,G,B)三维颜色值. 依次读取图像的所有像素后,可以获得图像中所有皮肤像素的颜色值信息.

计算完所有图像中与像素对应的颜色值后,便构建了皮肤颜色直方图模型. 在256级模型中,有256 ^ 3个控制柄,每个控制柄存储与该控制柄相对应的颜色值出现在上面所有皮肤图像中的次数. 这是通过之前的计数过程来实现的.

图像颜色识别_基于压缩感知的单幅图像超分辨率重建算法研究 刘娟_图像识别算法研究

对于非皮肤模型,构造方法完全相似.

三,使用直方图模型进行皮肤检测

在构建两种类型的直方图模型之后,下一步是使用构建的模型进行皮肤检测. 检测过程分为两个步骤: 1.概率计算; 2.使用贝叶斯决策来区分皮肤像素.

从“计数”到“概率”:

在建立两个模型之后,对于任何给定的像素,可以从其颜色值中计算出相关概率. 对于任何指定像素,如果将P(rgb | skin)指定为与皮肤直方图中出现的像素对应的颜色值的概率,而将P(rgb | nonskin)指定为与非直方图中的像素对应的颜色值-可以很容易地计算出皮肤直方图中出现的概率:

P(rgb | skin)= s [rgb] / Ts;

P(rgb | nonskin)= n [rgb] / Tn;

其中,s [rgb]是与皮肤状直方图模型中对应颜色单元句柄中存储的像素相对应的颜色值的计数和,n [rgb]与对应于皮肤直方图模型中的像素的颜色值相对应非皮肤直方图样模型中存储在相应颜色单元句柄中的计数总和,Ts和Tn分别是皮肤型直方图模型和非皮肤型直方图模型中包含的像素总数.

通过上述公式,可以得出与任意像素对应的颜色值出现在两种颜色直方图模型中的概率,即完成了从计数到概率的转换.

贝叶斯决策:

皮肤检测的核心步骤是在给定任何像素后计算其属于皮肤像素的概率. 该过程通过颜色值的相对概率判别来实现. 此实验使用贝叶斯决策进行区分.

在贝叶斯决策判别中,对于任何给定像素,必须指定其属于皮肤类P(skin)的“先验”概率和属于非皮肤类P(nonskin)的“先验”概率). 由于两者之和为1,因此只需指定其中之一即可. 对于先有皮肤类别的概率,一个更合理的选择是将其设置为直方图中所有皮肤像素总数与像素总数之比,​​因为非皮肤直方图模型不包含“皮肤”像素,但在皮肤类直方图模型中只有皮肤像素,因此我们可以使用以下公式进行计算:

P(皮肤)= Ts /(Ts + Tn)

P(非皮肤)= 1-P(皮肤)

Ts和Tn的含义如上所述,分别是皮肤直方图模型和非皮肤直方图模型中包含的像素总数. 指定先验概率后,我们可以根据贝叶斯决策,通过以下公式计算给定像素的颜色值属于皮肤类别的概率:

图像识别算法研究_基于压缩感知的单幅图像超分辨率重建算法研究 刘娟_图像颜色识别

P(皮肤| rgb)= P(rgb |皮肤)P(皮肤)/ [P(rgb |皮肤)P(皮肤)+ P(rgb |非皮肤)P(非皮肤)]

在获得任何指定像素属于皮肤类别的概率的大小后,要确定它是否属于皮肤类别,可以使用以下方法:

1. 设置阈值x,计算出的概率大于x,则判断为皮肤像素,否则分类为非皮肤像素;

2. 计算任何像素颜色值属于非皮肤类别的概率:

P(nonskin | rgb)= P(rgb | nonskin)P(nonskin)/ [P(rgb | skin)P(skin)+ P(rgb | nonskin)P(nonskin)]

如果指定像素具有: P(skin | rgb)> P(nonskin | rgb),则将其判断为皮肤像素,否则将其判断为非皮肤像素.

在以下实验中,将对上述两种判别方法进行测试和比较,并通过比较两者的阳性检出率和错误检出率来判断阳性率和阴性率. 对于第一种方法,将通过更改阈值x的大小进行一系列比较,以观察阈值更改对实验结果的影响. 检测指标还基于测试数据集的阳性检测率和错误检测率.

四项实验结果和比较分析

一些实验结果表明:

测试标准

图像识别算法研究_图像颜色识别_基于压缩感知的单幅图像超分辨率重建算法研究 刘娟

对于皮肤测试,测试其性能的最佳方法是测试其阳性和错误检测率. 所谓的阳性检测率是指正确分类为皮肤像素的像素数除以原始图像中的皮肤像素数. 错误检测率是指最终归类为皮肤像素而不是实际皮肤像素的像素数除以原始图像本身中非皮肤像素的数量. 在直方图幅值为256时,训练数据集为原始数据集,并且使用决策计划1,并且阈值x = 0.5. 最终的实验结果如下表所示:

不同的直方图幅值:

如前所述,直方图模型大小的选择是除了颜色空间之外还要考虑的另一个问题. 为了比较不同直方图幅值对皮肤检测性能的影响,我测试了与256、128、64、32、16五个直方图幅值相对应的阳性检出率和误检率,以反映实验结果和科学地设置变量我在五个实验中使用的测试数据集是同一集合,可以避免测试集的差异干扰实验结果. 同时,其余设置用于初始测试设置,即使用决策计划1并将其设置为阈值x = 0.5图像识别算法研究,最终实验结果如下表所示:

从实验结果可以看出: 对于阳性检测率,其最初随着直方图幅值的减小而增加,然后在量化级别为64时达到最大值,然后遵循持续减少和减少. 至于错误检测率,它最初随直方图幅值的减小而减小,当直方图幅值为16时达到最小值,然后在直方图幅值为8时急剧增加.

对上述实验数据的分析可以证实先前的相关结论: 除了存储成本之外,仅就检测性能而言,理论上,使用大小为256的直方图将带来最高的分辨率,因为它使用的是像素颜色值最大程度地确保了其区别的区别. 但是,在现实情况下,我们必须面对训练数据不足的问题: 如果训练数据足够大,那么256级直方图模型无疑是最佳选择. 但是如果训练数据不足,则与庞大的直方图空间相比,数据的稀疏分布显然会对实验结果产生不利影响. 实验结果清楚地反映了这一点,因此相比之下,受损的直方图的性能更好.

下面,我将给出对同一幅图像使用不同大小的直方图模型的检测结果,以便更直观地反映实验结果.

不同数量的训练数据:

除了直方图幅值对皮肤检测性能的影响外,训练数据量的变化还将带来检测结果的差异. 当训练数据量急剧减少或两种训练数据之间严重不平衡时,在相同直方图水平和相同测试集下,阳性检测率和错误检测率将发生变化. 通过使用决策方案2在256个直方图中获得的具体实验数据结果如下:

从实验结果中我们可以清楚地看到,训练数据量的变化对实验结果有巨大的影响. 随着皮肤训练图像的数量减少,阳性检测率也会降低,尤其是当皮肤和非皮肤图像数据严重失衡时,阳性检测率几乎会急剧下降. 这表明保持两种类型的训练数据的总体平衡非常重要,因为如果一种类型的数据明显多于另一种类型的数据,则该类型的识别的灵敏度自然会急剧下降,因为接受的少量培训中的1. 信息的存储量较少,很难达到培训目的.

该实验的结果表明,尽可能扩大训练数据的数量,并尽可能保持两种训练数据的平衡,对于改善皮肤检测性能起着重要作用.

基于压缩感知的单幅图像超分辨率重建算法研究 刘娟_图像颜色识别_图像识别算法研究

两种不同的决策方法:

如上所述,在计算了相应的概率之后,有几种不同的方法来确定像素是否属于皮肤类别:

1. 设置阈值x. 如果对应的RGB颜色值属于皮肤类别的概率大于x,则将其判断为皮肤像素,否则将其分类为非皮肤像素;

2. 使用比较方法,如果指定像素对应的颜色值为: P(skin | rgb)> P(nonskin | rgb),则将其判断为皮肤像素,否则将其判断为非皮肤像素.

为了验证谁在这两种决策方法中更有效,我们分别进行了实验验证. 对于决策方法1,我们为实验分析设置了不同的阈值x. 最终的实验结果数据如下表所示:

从实验数据结果可以看出,如果做出第一个决定,则正检测率和误检测率都会随着设置阈值的增加而急剧下降,这也符合预期. 因为较高的阈值意味着将某个像素判断为皮肤像素的较高阈值,所以增大阈值将减少错误检测率,并且还会降低正检测率. 换句话说,在提高阈值后,将大大减少被错误分类为皮肤的非皮肤像素;但是另一方面,由于阈值过高,最初属于皮肤类别的许多像素最终都会被误解. 非皮肤像素. 因此,在实际应用中,应根据实际需要进行权衡,并选择适当的阈值.

五,手形区域提取在彩色深度图像中的应用

实验结果如下图所示:

1. 原始图片:

2. 皮肤像素识别结果(以红色标记):

3. 结合深度信息以获得手部区域的结果:

4. 二值化过程的最终结果:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-270424-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...