行业解决方案:扬奇智能社区|智能审核系统中的敏感人像识别算法
优采云 发布时间: 2022-10-02 21:15行业解决方案:扬奇智能社区|智能审核系统中的敏感人像识别算法
嘉宾分享|楼康,58同城信息安全部安全情报部高级算法工程师
组织和制作 | 扬旗智慧社区
导读
在58同城生活服务平台上,用户每天都会发布大量图片。这些图片通过审核后,才允许在平台上展示。我们构建了智能审核系统,通过人工智能与人工相结合,提高审核效率。在智能审查系统中,敏感的图像审查是一项关键能力。AI算法模型会先对图片进行识别,如果是疑似敏感图片,则交给人工审核,如果是正常图片,则直接通过。在这样的场景下,AI算法模型既要保证高召回率以减少“漏鱼”,又要保证准确率以节省审计人力。本专题将重点介绍敏感图像中敏感人像图像的识别,
嘉宾介绍:楼康,58同城信息安全部安全情报部高级算法工程师。2018年4月硕士毕业后,学校招聘加入58同城,一直从事计算机视觉的研发工作。目前主要负责人脸识别、人脸质量判断、活体检测等人脸算法的研发。
目录介绍 智能审核系统 敏感人像识别方案 设计方案 技术选型与优化 总结思路
01 智能审计系统介绍
58是国内覆盖面广、用户群大的大型生活服务平台。每天,用户都会在平台上上传各种多媒体内容。平台不允许非法内容出现,但每天的多媒体流量非常大,单个图像方向的流量高达数亿。仅依靠人工审核的成本很高。因此,迫切需要一种自动化的智能审核机制来保障内容安全。
上图是典型的图像方向违规场景。左半边是不允许出现的违规,是内容安全的类别。右边的房地产经营违法和广告违法是业务条线内不允许的*敏*感*词*,属于业务内容安全范围。而今天讨论的敏感人识别,也就是Z相关人的识别,属于内容安全的范畴。
上图是图像方向的内容安全风险控制结构。所有上传的图片都会进入风控系统并通过内容安全能力。比如人脸识别能力、暴力K识别能力、色Q识别能力等等,这些能力会形成一个策略,直接在图片上“通过”、“拦截”或者“手动推检”,从而大大降低评价。数量。
02 敏感人像识别方案设计
在介绍敏感人脸识别的方案设计之前,我们先来看看目前的人脸能力,主要包括人脸检测、人脸比对、人脸质量、活体检测等能力,这些能力已经应用到集团的很多业务线,比如如候选人身份验证、门禁打卡、名人人脸识别等。其实敏感人像识别与名人人脸识别类似,都是典型的人脸识别问题,主要基于人脸比对技术。人脸比对技术是一系列人脸算法的综合。
上图是人脸比对技术的大致流程,分为三个模块:一个是人脸采集模块,一个是人脸预处理模块,一个是人脸识别模块。人脸采集模块是对采集接收到的人脸进行人脸检测和质量判断,但敏感人像的识别图片来自各个业务线。因为资源丰富,所以是无拘无束的。人脸识别,因此无需进行质量判断。人脸预处理模块是指人脸检测后检测人脸的人脸关键点,根据关键点进行仿射变换,对齐人脸,统一缩放到指定大小。这一步也称为归一化操作。人脸预处理完成后,我们对人脸进行特征提取,提取的特征与人脸特征库的特征进行相似度计算,最终输出结果。在人脸比对过程中,主要有三种核心算法,一种是人脸检测算法,另一种是人脸关键点检测,特征提取。
获取一张图片,对图片进行人脸检测,裁剪出人脸,然后进行关键点检测,将检测到的关键点与标准人脸进行仿射变换,对齐人脸,对齐人脸。进行特征提取,与人脸特征库的特征进行比较,最终计算得分,输出结果。
03 方案技术选择与优化
上图是目前人脸检测面临的挑战,以及评价数据集和评价指标。敏感人像的识别和召回属于无约束人脸识别。因为图源丰富,难免会有干扰因素,比如人脸姿势过大或者画面模糊,分辨率比较低,遮挡严重,光线太暗或者太亮,等,这就要求人脸检测算法具有更好的鲁棒性。而且由于每天的业务流量很大,对速度也有要求。
在人脸检测方向,我们常用的评价数据集是FDDB数据集,然后常用的评价指标除了检测速度外还包括召回率和误报数。一般来说,FDDB数据集上会固定一个误报数,比如误报。检查次数为1000时,比较各个算法的召回率,召回率越高越好。人脸检测常用的训练集是更宽的人脸数据集。
人脸检测不直接使用一般的目标检测。通用目标检测有几个经典系列,如 Faster-RCNN 系列、SSD 系列和 YOLO 系列。Faster-RCNN 性能更高,但速度较慢,无法满足人脸检测的极高速度要求。SSD系列速度更快,但缺点是对密集小目标的检测较差,人脸检测中的人脸只是密集小目标。近年来,一些经典且易于使用的人脸检测方法都是基于对通用目标检测序列的优化。CNNCascade、FaceCraft、MTCNN等变形属于级联CNN系列,SSH、S3FD、FaceBoxes是SSD系列的优化变体。
选取上述经典常用的人脸检测算法,在FDDB数据集上对比召回率和检测速度。上图显示FaceBoxes在CPU上可以达到20fps,速度很快,召回率也不低。综合速度和性能最终选择FaceBoxes作为人脸检测方法。
FaceBoxes网络主要由两个模块组成:一个是RDCL模块,也称为快速尺寸缩减层,可以缩小特征图的尺寸,为检测速度提供保障;另一个是 MSCL 模块,也称为多尺度卷积层,它使用多个尺度特征图的预测解决了多尺度问题,并使用锚点致密化策略来提高小人脸的召回率。
人脸关键点的检测是一个典型的坐标回归问题,我们不直接使用L2损失函数作为关键点损失函数,因为它有一个缺点:它对异常值比较敏感,当预测值之一时当预测值与真实值的偏差较大时,整体会受到异常值的影响。为了解决这个问题,后来出现了Wingloss方法,它采用了分割策略来避免这个问题。翼损的关键是两个参数 w 和 ε 的选择。关键点检测的评价指标采用归一化均方误差,误差越小越好。
面部特征提取是该方案中最重要的步骤。人脸特征提取和人脸检测面对的是相同的人脸质量问题,比如姿势、模糊、光线的遮挡等。另外,比如人脸的外貌随着年龄的变化或者妆容的变化等。这些干扰因素需要将面部特征提取为有效特征。特征提取越有效,识别准确率越高。
用于面部特征提取的评估数据集是 LFW 数据集,它来源于无约束的日常场景。训练集使用开源的VGGface和MS1M等数据集。近年来,人脸特征提取的方法研究一般集中在两个方向:网络结构的设计和损失函数的设计。网络结构为骨架,具有非线性变换能力,保证特征表达的判别性;损失函数是一个约束条件,可以保证网络在正确的方向上被训练。近年来,人脸特征提取的研究创新很大程度上是损失函数的创新。
上图展示了人脸特征提取中几种流行的损失函数,都是对Softmax损失函数的改进。人脸特征提取本质上是一个多分类问题,更类似于细粒度分类。类内距离越小越好,类间距离越大越好。Softmax 本身的局限性在于它只考虑了特征的可分离性,没有考虑特征的可区分性。于是在2016年提出了L-Softmax,将Softmax中权重向量和特征向量的点积转化为对应的模乘,再乘以对应的余弦值,结果就是特征向量和权重。边角露出来,乘以 M 得到更严格的分类标准,M 越大,类间距越大。提出L-Softmax损失函数的作者后来专门针对人脸识别问题提出了A-Softmax损失函数。权重直接在 L-Softmax 损失函数上归一化,特征向量与样本权重的距离仅取决于它们之间的夹角,与权重模长度无关。2018年出现了AM-Softmax损失函数,去掉了M,引入了缩放系数S。作者认为缩放系数S可以弥补权重归一化带来的损失。到 2019 年,出现了众所周知的 Arcface 方法。在 cosface 的基础上,将 M 从角空间外移回角空间,
上图展示了在二分类的情况下作为分类边界函数的损失函数。观察左下角的图表,发现Arcface性能最好,分类边界最大化。上图右上表是实验数据,使用相同的训练集,相同的基础网络使用Resnet50。LFW数据集上的准确率,Arcface最高,达到99.53%。上图中的右表显示了不同的损失函数和不同的网络结构。在 Arcface 加 Resnet100 之后,LFW 的准确率可以达到 99.83%,这也是损失函数中最高的。在确定特征提取时选择 Arcface 损失函数。
上图左上角的数据中,当损失函数都是Arcface时,Mobilefacenet的准确率最高,速度最快。Mobilefacenet 是对 Mobilenetv2 的改进。左下角是Mobilenetv2的网络结构。上图右侧是Mobilefacenet的网络结构。它最大的创新是用全局深度卷积层代替了全局平均池化层。
人脸检测方法采用faceboxes方法,关键点采用Wingloss方法,人脸特征提取采用Mobilefacenet和Arcface。特征提取后,使用余弦距离指标计算得分相似度。余弦距离越接近 1,面越接近。该解决方案已在业务线提供的数据上进行了初步测试。在业务线提供的831政要测试集上,召回率可以达到96.1%,基本满足业务线的要求。
业务线接通后,会发现网上偶尔会出现一些假来电。我们主要从两个方面考虑优化:一是优化人脸检测,减少误检;二是优化人脸识别,优化特征表达。
为了减少错误检测,我们改进了 MSCL 模块,添加了 inception 模块以增加网络的深度,并将 inception 模块添加到多尺度特征。结果,在 2800 多个自制的政治相关场景数据集上,召回准确率从 82% 提高到 87.6%,耗时略有增加。虽然召回准确率得到了一定程度的提升,但是当业务线的数据流量非常大时,不足以降低误检程度。
所以重点转移到了RDCL模块。RDCL模块由两个卷积层和两个池化层组成,两个池化层通常不是2个。两个池化层的下采样操作会丢失很多信息,所以考虑用两个卷积层替换两个池化层长度小于2。人脸图像的大小也减小了,但是保留了更多的人脸信息,耗时增加了8毫秒。为了降低复杂度,将5×5的第二个卷积层的Conv2改为3×3的Conv2。,并将第一个卷积层的内核数量减少到12个。这一步的操作时间减少了13毫秒,整体时间从35毫秒减少到30毫秒,并且在超过2800个测试集上,
对于人脸特征提取的优化,使用Mobilefacenet网络进行特征提取。人脸特征如果要保证特征提取的有效性,就希望能捕捉到更细粒度的信息,提高抽象表达能力。从这两个角度,我们通过大量的实验找到了最优的filters和blocks数量。左下角和右上角是被选为更好的两个网络。考虑到性能和速度,选择了右上角的网络。
我们对原来使用的开源MS1M、VGGFace、CelebA进行了算法+人工清洗,考虑到应用线上的场景图片大部分是亚洲人脸,我们添加了GlintAisa亚洲人脸数据集和58个自制数据. 设置为微调。在对 8000 多对标准测试集进行测试后,准确率从 98.8% 提高到 99.9%。当对照误检率在10000级时,通过率也从92.5%提高到94.5%。
此外,我们在人脸特征提取中添加了注意力机制。现在有更多的attention机制,如SENet、CBAM、ECA等,当基础网络为ResNet50时,上述attention机制在ImageNet上Top5中准确率最高,CBAM最高。CBAM有两个独立的模块,一个是空间注意力机制,一个是通道注意力机制。在网络中的block模块中加入CBAM后,进行了对比测试。在 8000 对标准测试集上,当误检率达到 10000 水平时,通过率进一步提高。我们还做了20000对的标准测试集,准确率和通过率也有提升。
业务线反馈在线图片不一定是正面的,所以考虑在整体流程中加入多角度机制。人脸检测模型经过微调。当人脸检测可以从多个角度检测人脸时,判断人脸的角度。如果人脸有角度,则旋转人脸,然后进行特征提取。
04 总结思考
随着优化,可以看到召回率和召回准确率在测试集上逐渐提高。上图右表是自研能力与第三方的对比。样品逐项对比,可见自主研发能力。已达到同行业水平。目前,敏感人像识别算法已应用于140多个业务场景,峰值调用量可高达2亿次。
本次分享主要讲方案设计后人脸检测和人脸特征提取的优化。人脸检测优化通过减少RDCL模块的图像丢失来减少误检测。人脸特征提取,一个是清洗数据加自制数据,还有优化网络结构,加入注意力机制等。针对敏感人像识别方向的规划,将建立非法图片黑库。如果图像质量较差,难以提取有效特征进行人脸识别,则将其放入黑库,对在线图片进行过滤。.
解决方案:整合出集合类文章的好方法
集合类文章是指美女图集、马云商语大全文章等同标签事物的集合。制作集合类文章最重要的就是确定热门标签和标签相关内容的采集方式。以下是有关如何操作的说明?
如何确定流行的主题标签?
所谓热标签,就是常说的热点、热点人物、热点事件、热搜词。新闻头条主题文章中的描述对象一般比较热,然后使用百度搜索热点查找相关热搜词或使用关键词查询工具。
有几种方法可以采集与流行标签相关的内容(材料子集):
1.去百度搜索相关文章:把每一个文章的精华,整合成一个文章,比如百度知道“里面有哪些业务”旅游区”,您可以从中阅读更多的答案 筛选出可行的业务并将它们整合在一起,这样您的“旅游业务百科全书”一定会更加全面和精彩。
<p>2.致相关网站集合:相关网站提供的内容往往经过精心编辑,但通常是单个对象而不是集合,所以如果标记了网站与单一精品汇集在一起,做一个大集合一定很精彩。比如最近发现了一个网站,主题是“偏商”,介绍了很多不错的偏商,而“偏商大全”是百度的热搜词,那么如果这个