百万级别二次元角色识别数据集

上一篇文章里,我们做了一个效果不错的动漫头像检测模型。这个模型本身并不复杂,但它可以帮助批量化处理数据,从而为更多彩的应用奠定基础。一个自然的问题就是,我们有没有可能做一个类似Amazon XRay的东西,你给我一张ACG图片,我告诉你这是哪部番里面的哪个角色?这样的模型本身并不复杂,现成的face detection - alignment - recognition的框架可以轻松搞定。但关键是训练数据很难找。这篇文章主要就是解决了这个问题,开源了一个百万级别的二次元角色识别数据集,方便各位丹友们炼丹。

在我们之前对StyleGAN的调教中用到了Danbooru 2018数据集。这个数据集是一个同人画师数据集,很多画师在上传的时候都会选择这是什么角色。这天生就非常适合做角色识别。我们从2018年的630万张图出发,做了以下过滤和处理:

  • 首先我们根据每张图片的tag,根据tag的属性过滤其中的人物角色tag。如果一个图片没有任何角色tag,我们就直接丢弃这张图片。
  • 因为当一个图片有多个角色tag的时候我们不知道哪个脸对哪个tag,所以我们目前丢弃了所有有2个或以上角色tag的图片。
  • 接下来我们对剩下的图片用这个模型进行头像检测。对于检出多于一个头像的图片直接丢弃。
  • 注意这里我们没有进行人脸校准,主要是因为没找到适合的模型。也许未来会标注训练一个。

最终得到一个97万张图,7万个角色的数据集。平均每个角色有13.85张图像。但和大多数数据集一样,每个角色有多少张图像是个非常长尾的分布。在7万个角色中,有2万个角色只有一张图片。如果我们把图像最多的100个角色画一个直方图的话,长这样:

Stats of the anime head detection dataset

其中图片最多的是初音未来,有接近25000张图。。公主殿下到底是多受欢迎。。然后最受欢迎的前20个角色是:

  • hatsune_miku 初音未来
  • hakurei_reimu 博丽灵梦
  • flandre_scarlet 芙兰朵露·斯卡蕾特
  • kirisame_marisa 雾雨魔理沙
  • cirno 琪露诺
  • izayoi_sakuya 十六夜咲夜
  • remilia_scarlet 蕾米莉亚·斯卡蕾特
  • kochiya_sanae 东风谷早苗
  • rumia 露米娅
  • shameimaru_aya 射命丸文
  • patchouli_knowledge 帕秋莉·诺蕾姬
  • inubashiri_momiji 犬走椛
  • fujiwara_no_mokou 藤原妹红
  • komeiji_koishi 古明地恋
  • reisen_udongein_inaba 铃仙·优昙华院·因幡
  • yakumo_yukari 八云紫
  • alice_margatroid 爱丽丝·玛格特罗伊德
  • komeiji_satori 古明地觉
  • hinanawi_tenshi 比那名居天子
  • kazami_yuuka 风见幽香

我特码。。真是给你们东方厨跪了。。前几个角色的可视化结果如下:

Examples of the characters

感觉标注的质量还是比较高的。

有了这个数据集,我们就可以做之前提到的角色识别了。在删去了置信度低于0.85的头像以后,我们用剩下的56万张图+ArcFace loss训练了一个ResNet18的baseline。这个模型在测试集上可以达到37.3%的精度。相应的训练集,验证集和测试集也都在数据库中提供了。感兴趣的同学可以训练自己的模型,和baseline进行比较。

最后就是传送门啦,请猛击我吧! https://github.com/grapeot/Danbooru2018AnimeCharacterRecognitionDataset

Comments