追番必备,动漫角色也可以用人脸识别了

追番必备,动漫角色也可以用人脸识别了机器之心报道作者:小舟用人脸识别找到你「老婆」。自七十年代以来,人脸识别已经成为了计算机视觉和生物识别领域研究最多的主题之一。近年来,传统的人脸识别方法已经被基于卷积神经网络(CNN)的…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

机器之心报道

作者:小舟

用人脸识别找到你「老婆」。

自七十年代以来,人脸识别已经成为了计算机视觉和生物识别领域研究最多的主题之一。近年来,传统的人脸识别方法已经被基于卷积神经网络(CNN)的深度学习方法代替。目前,人脸识别技术广泛应用于安防、商业、金融、智慧自助终端、娱乐等各个领域。而在行业应用强烈需求的推动下,动漫媒体越来越受到关注,动漫人物的人脸识别也成为一个新的研究领域。

动漫形象虽然相对具有标志性,但也不乏相似的动漫形象和场景,毕竟 B 站知名 up 主凉风「一眼识动漫」的技能不常有。

人工不可,那么将人脸识别用于动漫角色识别呢?

近日,来自爱奇艺的一项新研究提出了一个新的基准数据集,名为 iCartoonFace。该数据集由 5013 个动漫角色的 389678 张图像组成,并带有 ID、边界框、姿势和其他辅助属性。iCartoonFace 是目前图像识别领域规模最大的卡通媒体数据集,而且质量高、注释丰富、内容全面,其中包含相似图像、有遮挡的图像以及外观有变化的图像。

追番必备,动漫角色也可以用人脸识别了

论文地址:https://arxiv.org/pdf/1907.13394.pdf

借助半自动标记算法,研究者为动漫媒体提供了两种类型的注释,即面部识别和面部检测。为了进一步研究这个具有挑战性的数据集,研究者提出了一种多任务域适应方法,该方法将人类和动漫域知识与三种判别性正则化结合起来。此外,研究者还对提出的数据集进行了基准分析,并验证了提出的方法在动漫人物人脸识别任务中的优越性。

追番必备,动漫角色也可以用人脸识别了

图 1:iCartoonFace 嵌入示意图。

类似于人脸识别,动漫角色人脸识别中也有一些经典的问题需要处理。

如下图所示,利用 iCartoonFace 数据集可以将相似的动漫脸区分开,识别出是不同的动漫角色:

追番必备,动漫角色也可以用人脸识别了

同一动漫人物,不同视角,能够识别出是同一动漫角色:

追番必备,动漫角色也可以用人脸识别了

即使图片中存在重度遮挡,也能够识别出动漫角色:

追番必备,动漫角色也可以用人脸识别了

此外,两张图片亮度不同,也能够识别出是同一动漫角色:

追番必备,动漫角色也可以用人脸识别了

接下来我们就来看一下这项研究的方法细节。

数据集的构建与分析

半自动整合过程

为了减轻标签负担,研究者开发了一个半自动算法来收集 iCartoonFace 数据集并添加注释。该研究的框架能够分成三个阶段:

  • 分层数据收集

  • 数据过滤过程

  • Q/A 手动注释

1. 分层数据收集

iCartoonFace 数据集是通过分层的方式收集的(从动漫剧集名称到动漫人物名称,最后到动漫人物图像)。该研究首先形成一个面向排行榜的动漫剧集名单。然后根据该名单从互联网上获取主要角色,进而获得动漫人物和相应动漫剧集的列表。下一步从多媒体下载可公开获得的图像,包括图像、漫画书和视频源。研究者以这种方式获得了带有噪声标签的数百万个图像,用于后续的数据过滤过程。

2. 数据过滤

实际上,下载的图像中有大量不相关或重复的数据,这给选择有效数据带来巨大的挑战,尤其是在没有任何先验知识的情况下。因此,该研究借助手动标记的人脸,对无用的样本进行粗略的过滤。换句话说,借用两个已有的人类知识来帮助数据过滤过程,即面部检测过滤和面部识别过滤。

3.Q/A 手动注释

该研究开发了一个 Q/A 系统来手动注释动漫脸的身份信息。如图 2 所示,在注释页面中,一个部分显示参考图像,另一部分显示要标记的图像。注释者需要确定每个新图像是否与参考图像共享相同的标识。参考图像是专家基于动漫人物所属的动漫剧集名称和动漫人物名称提供的身份图片。在该数据集中,包含了 5013 张图片,这意味着每种身份都有一个 probe。

追番必备,动漫角色也可以用人脸识别了

数据集概况

1. 大规模

iCartoonFace 数据集包含了来自 1302 个动漫专辑的 5013 个动漫人物的 389678 张图像。这是目前规模最大的用于动漫人脸识别的手动注释图像数据集。如图 4(a) 所示,该数据集中的动漫人物包括来自日本、中国、欧洲和美国四个国家的动漫人物。

2. 图片数量不均

数据集是自然创建的。50% 的动漫人物只有不到 30 张图片,而有些动漫人物却有大约 500 张图片。

3. 高质量

数据集经过手动标记之后,执行交叉检查方法,二次检查的错误率确保低于 5%。图 4(c) 显示图像的分辨率大于 100 × 100,其中 65% 的图像分辨率超过了 200 × 200。图像的清晰度是通过拉普拉斯度量标准计算的。大多数样本的值如图 4(e) 所示,为了确保图像边界的清晰度和锐度,需要大于 100。

4. 丰富的属性

每个图像都提供了人脸边界框、身份、区域、姿势和性别之类的信息。关于姿势和性别的统计信息如图 4(b) 和图 4(d) 所示。选择随机的 10000 个样本,并用 3D 姿态信息注释。

追番必备,动漫角色也可以用人脸识别了

基于动漫和真人的多人物训练框架

图 5 展示了该研究团队提出的基于动漫和真人的多人物训练框架。该框架主要包括:分类损失、未知身份拒绝损失和域迁移损失。

追番必备,动漫角色也可以用人脸识别了

其中,为了获得分类特征提取器,研究者采用分类损失正则化动漫脸和真人脸分类器,对动漫脸和真人脸进行分类。未知身份拒绝损失旨在找到在不同域之间具有无监督正则化的特征重投影。域适应损失则是为了减小动漫人脸和真人脸之间的域间隙。

实验

在实验部分,研究者提出了 3 个问题并对其进行了解答。

1. 对于动漫脸来说,那种算法是最佳的?

研究者对几种常用算法进行了评估,包括 softmax、SphereFace、CosFace、ArcFace 和 Focal loss,并在下图中可视化了相应的 CMC 曲线。可以看到,ArcFace+FL 在 5 种算法中表现最优。

追番必备,动漫角色也可以用人脸识别了

5 种算法的 CMC 曲线图。

2. 上下文对于动漫脸识别有用吗?

动漫脸是识别动漫角色的主要部分。那如果「脸盲」怎么办?在有些情况下,仅仅依靠动漫角色的人脸不足以区分不同的动漫人物。研究者在动漫脸的基础上进行了不同比例的扩充,下图表明,含有更多的上下文信息能够实现更好的性能。

追番必备,动漫角色也可以用人脸识别了

3. 将人脸识别的知识迁移至动漫脸识别是否有所增益?

第一个经过训练的动漫脸模型的准确率是 91.0%,如下图所示,加入人脸识别的数据后,性能提升至 92.4%,并且对注释过程有所帮助。

追番必备,动漫角色也可以用人脸识别了

追番必备,动漫角色也可以用人脸识别了

欢迎关注我们,看通俗干货

追番必备,动漫角色也可以用人脸识别了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172288.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月23日 下午2:46
下一篇 2022年8月23日 下午2:46


相关推荐

  • Cursor高级技巧与最佳实践

    Cursor高级技巧与最佳实践

    2026年3月16日
    4
  • python csv文件数据写入和读取(适用于超大数据量)

    python csv文件数据写入和读取(适用于超大数据量)文章目录pythoncsv文件数据写入和读取(适用于超大数据量)pythoncsv文件数据写入和读取(适用于超大数据量)一般情况下由于我们使用的数据量比较小,因此可以将数据一次性整体读入或者写入,而且可以一次性对数据进行加工和处理。但是当数据量比较大,比如有5G的数据量,这个时候想要一次性对所有数据进行操作就比较困难了。所以需要逐条将数据进行处理。importcsv#在最开始创…

    2022年7月20日
    56
  • Spring Batch JpaPagingItemReader

    Spring Batch JpaPagingItemReaderSpringBatch示例中是读取本地文件sample-data.csv,然后存储到数据库people表中https://github.com/spring-guides/gs-batch-processingreader@BeanpublicFlatFileItemReaderreader(){FlatFileItemReader

    2022年5月28日
    32
  • 在c语言里0和1表示什么_’0’是什么意思c语言

    在c语言里0和1表示什么_’0’是什么意思c语言C语言中常见~Number,怎么计算?计算一个数字的~number比如说现在有A=60那么A的8位二进制数就是00111100那首先要计算~A即~60,那么先取反即11000011。因为负数的补码是取反+1。所以此处逆向操作需要-1取反即11000011-1==11000010(第一步逆向操作)11000010=>取反=>00111101=>十进制的61最后结果A==60,~A=-61C

    2026年2月2日
    5
  • jwt解析网站_jwt工作原理

    jwt解析网站_jwt工作原理1.Token与Session优缺点概述1.1Session的由来在登录一个网站进行访问时由于HTTP协议是无状态的就是说一次HTTP请求后他就会被销毁,比如我在www.a.com/login里面登录了,然后你就要访问别的了比如要访问www.a.com/index但是你访问这个网站你就得再发一次HTTP请求,至于说之前的请求跟现在没关,不会有任何记忆,这次访问会失败,因为无法验证你的身份。所以你登录完之后每次在请求上都得带上账号密码等验证身份的信息,但是你天天这么带,那太麻烦了。那还可以这样,把我第一

    2022年10月17日
    7
  • Python暴力激活成功教程密码

    Python暴力激活成功教程密码一、导入包此处我们需要用到itertools和zipfile两个包importitertoolsimportzipfile我们先来简单认识一下itertools包的简单用法digital_list=list(itertools.permutations([‘0′,’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9’],3))d_list=[”.join(x)forxindigital_list]print(digital_list)print(d_

    2022年8月22日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号