一种基于卷积神经网络的色情图像识别方法
技术领域
本发明涉及数据分析技术领域,具体涉及一种基于卷积神经网络的色情图像识别方法。
背景技术
随着网络的普及,色情图像充斥于网络资源中,对青少年的身心健康发展极为不利,所以,需要对该类图像进行识别并屏蔽。
现有色情图像识别方法主要包括以下几种方案:
(1)人体肤色检测法
将图像中的颜色区域转换到不同颜色空间,当满足某些约束时,则判定该区域为人体皮肤,再根据皮肤区域在图像中的占比或人体比例判断该图像是否为色情。
该方案存在的缺陷为:
不能很好地识别互联网上传播的色情图像。例如:经常将肤色相近的物体误检为色情图像,而漏检某些含有性暗示的色情图像,导致精确度较低。
(2)基于人体部位纹理的检测法
提取图像中人体区域的某些部位或动作特征,根据某种规则来判断图像是否为色情。
该方案存在的缺陷为:
检测效果严重依赖于特征选择,过程繁琐,导致效率较低。
(3)基于卷积神经网络法
使用卷积神经网络方法对图像中人体敏感部位进行查找并判别。
该方案存在的缺陷为:
不能识别没有人体敏感部位裸露的性暗示或隐含色情语义图像,导致性能较差。
发明内容
为解决现有技术的不足,本发明实施例提供了一种基于卷积神经网络的色情图像识别方法,该方法包括以下步骤:
将待识别的图像输入训练过的卷积神经网络,提取所述图像的特征,生成特征图像;
利用所述卷积神经网络的分类模型对所述特征图像进行识别,生成第一识别结果;
利用所述卷积神经网络的目标检测模型对所述特征图像进行识别,生成第二识别结果;
利用所述卷积神经网络的融合决策模型对所述第一识别结果及所述第二识别结果进行融合,得到最终的识别结果。
优选地,利用所述融合决策模型对所述第一识别结果及所述第二识别结果进行融合,得到最终的识别结果包括:
若所述第一识别结果及所述第二识别结果中有一个识别结果为判定所述图像为色情图像,则确定所述图像为色情图像。
优选地,利用所述融合决策模型对所述第一识别结果及所述第二识别结果进行融合,得到最终的识别结果包括:
若所述第一识别结果及所述第二识别结果均判定所述图像为正常图像,则对所述图像进行二次识别,得到最终的识别结果。
优选地,对所述图像进行二次识别并得到最终的识别结果包括:
利用所述分类模型计算所述图像属于色情图像的概率并判断所述概率是否大于设定的阈值,若是,则确定所述图像为色情图像。
优选地,所述卷积神经网络的训练过程包括:
构造图像数据集,其中,所述图像数据集包括多张携带标识的图像;
将所述图像数据集输入所述卷积神经网络,对所述卷积神经网络进行训练。
优选地,所述卷积神经网络的训练过程还包括:
选择YOLOv2模型为目标检测模型;
设置所述目标检测模型锚框Anchorbox的大小和数量;
设计分类模型的网络结构,减少共享网络层的深度,增加分支网络层的深度;
将所述目标检测模型的损失函数设置为:
其中,N指的是锚框anchor-box的数量,yl、yj代表具体的类别,pl、pj代表各个类别的概率值,M为色情图像的类别数量;
将所述分类模型的损失函数设置为:
其中,n代表分类类别总数,yi代表具体的类别,pi代表为各个类别的概率;
设置损失融合函数为Losst=αLossd+βLossc,其中,α与β分别为目标检测模型与分类模型的权重,α和β均大于等于1。
优选地,所述卷积神经网络的训练过程还包括:
将所述目标检测模型及所述分类模型合并为一个模型。
优选地,所述卷积神经网络的训练过程还包括:
设计融合决策模型并将所述融合决策模型***所述卷积神经网络。
本发明实施例提供的基于卷积神经网络的色情图像识别方法,具有以下有益效果:
通过将目标检测模型与分类模型合并为一个模型,改进目标检测模型与分类模型的损失函数,设计分类模型的网络结构,将的目标检测模型与分类模型的损失进行融合,使用融合决策层进行再次识别图像,提高了图像识别的精确度、效率及性能。
附图说明
图1为本发明实施例提供的基于卷积神经网络的色情图像识别方法流程示意图;
图2为本发明实施例提供的目标检测模型的网络结构示意图;
图3为本发明实施例提供的分类模型的网络结构示意图;
图4为本发明实施例提供的骨干网络模型的结构示意图。
具体实施方式
以下结合附图和具体实施例对本发明作具体的介绍。
如图1所示,本发明实施例提供的基于卷积神经网络的色情图像识别方法包括以下步骤:
S101,将待识别的图像输入训练过的卷积神经网络,提取图像的特征,生成特征图像。
作为一个具体的实施例,在深度学习框架darknet-19网络中***一个全局感知分类层,使其变为多任务检测模型。
S102,利用卷积神经网络的分类模型对特征图像进行识别,生成第一识别结果。
S103,利用卷积神经网络的目标检测模型对特征图像进行识别,生成第二识别结果。
其中,由于不需要进行锚框Anchor-box的范围调整与坐标回归,舍去其他损失条件,保留分类损失。
S104,利用卷积神经网络的融合决策模型对第一识别结果及第二识别结果进行融合,得到最终的识别结果。
可选地,利用融合决策模型对所述第一识别结果及所述第二识别结果进行融合,得到最终的识别结果包括:
若所述第一识别结果及第二识别结果中有一个识别结果为判定图像为色情图像,则确定所述图像为色情图像。
可选地,利用融合决策模型对第一识别结果及第二识别结果进行融合,得到最终的识别结果包括:
若第一识别结果及第二识别结果均判定图像为正常图像,则对图像进行二次识别,得到最终的识别结果。
可选地,对图像进行二次识别并得到最终的识别结果包括:
利用分类模型计算图像属于色情图像的概率并判断概率是否大于设定的阈值,若是,则确定图像为色情图像。
其中,由于色情图像危害巨大,需要本着“宁可错杀一千,绝不放过一个”的原则,再次慎重识别。即使是未被识别出的色情图像,亦比正常图像包含更多的色情特征,所以在执行分类任务时计算得到的属于色情类别的概率比正常图像高。
作为一个具体的实施例,设定色情类别概率阈值为0.02,即针对检测模型和分类模型均判定为正常的图像,当其类属概率大于0.02时,则判定该图像为色情类别,否则,判定该图像为正常类别。
可选地,卷积神经网络的训练过程包括:
构造图像数据集,其中,图像数据集包括多张携带标识的图像;
将图像数据集输入卷积神经网络,对卷积神经网络进行训练。
其中,色情图像的表现形式可以列举为:裸体、性器官、***、性姿势、性暗示、性动作等可以使观赏者产生兴奋的图像。于是将色情图像归为两类:一类为有隐私部位裸露的图像,包括性器官、女性胸部、性动作特写、屁股及女性裸体正面私处;另一类为无私密部位裸露的图像,包括含有性姿势、性暗示、性挑逗等不裸露私密部位但是会使人感到性奋的图像。
将第一类图像中出现的隐私部位标记为正样本进行标注,并生成xml文件。标注信息包含隐私部位的坐标信息,标记区域类别和图像名称。将第二类图像中的性暗示、性姿势等分类。其中,不同姿势及不同性暗示的图像为不同类别的图像。对于某些与性暗示图像相似的类别单独分类做区分(例如正常人脸图像与人脸上有***的图像)。在图像数据集中,共收集分类数据16000张,分为14个类别;标记隐私部位图像3500张,分为8个类别,其中一张图像可能包含多个隐私部位。在测试集中,共收集各形式色情图像10万张,正常图像10万张以及一套公开色情数据库。在图像数据集中,收集5000张色情图像和5000张正常图像,用来调整融合决策层的参数。
可选地,卷积神经网络的训练过程还包括:
选择YOLOv2模型为目标检测模型。
现有的目标检测模型分为one-stage和two-stage两类,two-stage类模型的优点是精度较one-stage高,缺点是速度较慢,one-stage优点是速度快,但是精度略差。由于互联网上传播的图像数量非常庞大,需要快速的进行筛选和检测。为此本发明实施例、采用速度较快的one-stage类模型,并加以改进。由于YOLOv2模型使用的图像像素为416pix×416pix,相较于其他模型输入像素224pix×224pix大一倍,可以更好的检测小目标物体。
设置所述目标检测模型锚框Anchorbox的大小和数量。
其中,通过卷积神经网络提取图像的抽象特征,并映射回原图,以特征图中心点为原心,构造出锚框Anchor-box并加以分类
作为一个具体的实施例,选择5种不同大小的锚框Anchor-box,比例分别为1.3221:1.73145;3.19275:4.00944;5.05587:8.09892;9.47112:4.84053;11.2364:10.0071。
设计分类模型的网络结构,减少共享网络层的深度,增加分支网络层的深度。
作为一个具体的实施例,设计分类模型的网络结构为2个最大池化层、6个卷积层、1个平均池化层及2个全连接层。其中各个卷积层包括卷积操作、BN归一化操作及relu激活函数操作。
多任务神经网络一大特点是,若共享网络层的深度较大且支任务的网络深度较小,则会发生任务参数进行迭代更新导致另一侧任务的识别变差。所以要尽量使共享网络层深度变少,分支网络的深度增大。经过试验,本发明实施例选取深度学习框架darknet-19网络第16层输出的图像为特征图像,并设计如图3所示的全局感知分类层的网络结构。全局感知分类网络采用了多个卷积核大小为3×3的卷积,可以更好的提取特征,并且相对于卷积核大小为7×7的卷积可以减少一半的参数量。
将目标检测模型的损失函数设置为:
其中,N指的是锚框anchor-box的数量,yl、yj代表具体的类别,pl、pj代表各个类别的概率值,M为色情图像的类别数量;
将分类模型的损失函数设置为:
其中,n代表分类类别总数,yi代表具体的类别,pi代表为各个类别的概率。
其中,优化一个模型,需要不断将预测值与真实值的差值缩小,使预测值越来越接近真实值,则需要进行反向传播,不断更新模型参数。
目标检测算法是为了对图像中局部敏感区域进行识别查找,但是并不需要输出检测框,所以不需要进行锚框anchor-box的坐标回归,只需分类损失进行反向传播即可。目标检测模型可以归纳为图像小区域的分类。
设置损失融合函数为Losst=αLossd+βLossc,其中,α与β分别为目标检测模型与分类模型的权重,α和β均大于等于1。
其中,若将多个任务的损失相加作为总损失,会导致当一个任务结果良好时,另一个任务结果很差,产生该现象是因为不同任务的损失量级不同,使得一个任务的损失主导了总损失,使得另一任务的结果失去作用。
可选地,卷积神经网络的训练过程还包括:
将目标检测模型及分类模型合并为一个模型。
可选地,卷积神经网络的训练过程还包括:
设计融合决策模型并将融合决策模型***卷积神经网络。
其中,对卷积神经网络训练的目的是为了得到通用的模型参数,使模型能够对色情图像进行有效识别。训练完毕后,图像通过卷积神经网络步骤如下:
(1)任意大小的图像被调整为416×416像素大小;
(2)调整后的图像经过骨干网络生成特征图像交给分类模型与目标检测模型进行处理;
(3)特征图像经过分类模型后生成一个1×n大小的向量,其中,n为分类的类数,向量中的数值为预测为每一类的得分,经由softmax函数计算后输出得分最大的类别,并判定该图像为该类,可知图像是否被分为色情类别;
(4)特征图像在局部敏感检测层经过继续提取特征后,映射回原图,生成设定好大小的锚框Anchor-box,并将生成好的Anhcor-box与标记的类别做分类,判断锚框Anchor-box中的区域是否为敏感部位。
效果测试:
本发明实施例收集了20万张图像,其中10万张为网络上正在流通的色情图像,10万张为正常图像,测试得到的查全率R为93.7%,查准率P为97%,准确率A为90%。证明本方法可以较好地对网络上色情图像识别。检测速度可达到每分钟200-300张。
其中,
TP为正样本被预测为正例的个数,FP为被预测为负例的个数记,TN为负样本被预测为负例的个数,FN为被预测为正例的个数。
本发明实施例提供的基于卷积神经网络的色情图像识别方法,通过将待识别的图像输入训练过的卷积神经网络,提取图像的特征,生成特征图像,利用卷积神经网络的分类模型对特征图像进行识别,生成第一识别结果,利用卷积神经网络的目标检测模型对特征图像进行识别,生成第二识别结果,利用卷积神经网络的融合决策模型对第一识别结果及第二识别结果进行融合,得到最终的识别结果,提高了图像识别的精确度、效率及性能。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
此外,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。