智慧互娱赛道——漫画人脸识别
人脸识别过去几十年一直是计算机视觉领域重点研究的问题,特别是伴随着深度学习的快速发展,深度人脸识别模型在一些数据集上已经达到甚至超越了人类的识别水平。例如,在人脸识别最常用的LFW数据集上,现有的人脸识别算法可以达到99%以上的准确率。但是,已有的算法大都是围绕真实的人脸图像进行研究的,很少有专门的算法来研究漫画人脸识别这一主题。
相较于真实的人脸图像,漫画人脸图像具有更加复杂多变的面部表观,如不符合比例的眼睛鼻子嘴巴、夸张的表情、怪异的发型等。因此,相较于普通的人脸识别任务,漫画人脸识别是一个更加困难的问题。一个有效的漫画人脸识别算法需要从检测、对齐和特征提取、多模态特征比对这四个方面对已有的人脸识别算法进行重新思考和设计。
本赛题基于漫画人脸识别的诉求和数据展开,金山云作为本次赛题的命题方,期待看到参赛选手能够设计出高效的漫画人脸识别算法,扩展人脸识别算法的应用范围。
金山云,是金山集团旗下、全球领先的云计算服务提供商。创立于2012年,在北京、上海、广州、香港和北美等全球各地设立数据中心及运营机构。金山云多年来一直在进行人工智能的研究和实践工作,推出了适用于各行业的多种组合型AI解决方案和服务,是本次大赛的主要合作方之一。

竞赛协议
《2019未来杯高校AI挑战赛 选手报名协议》
报名与组队
选手以组队形式参赛,每支队伍可包含1-5名成员,队长创建队伍成功后,可邀请成员加入队伍并完成审核。报名截止后,组队信息不可再进行变更。
报名选手必须为高校在校学生,并按要求完成实名认证。
资源提供
参赛队伍可使用大赛提供的已标注数据集,可申请金山云高性能GPU使用机时。
获奖说明
评审与晋级
- 经复核后的初赛前十队选手参与决赛线上阶段;
- 决赛前五名进入总决赛线下答辩阶段。
奖项设置
奖学金
- 第一名:人民币 50000 元 1队
- 第二名:人民币 20000 元 1队
- 第三名:人民币 10000 元 1队
- 第四名:人民币 6000 元 1队
- 第五名:人民币 4000 元 1队
奖励/荣誉
- 可参加知名企业大数据及AI专项培训、现场授课、在线直播;
- 免费成为中国计算机学会CCF会员;
- 获得知名企业就业、实习机会;
- 业内专家、大咖指导和交流;
- 中国青少年发展基金会奖学金荣誉证书。
决赛排行榜
名次 |
战队名称 |
得分 |
1 |
cana |
0.846 |
2 |
试玩 |
0.799 |
3 |
633333 |
0.785 |
4 |
Villaaaa |
0.777 |
5 |
sysuface |
0.777 |
6 |
cv_cmp |
0.773 |
7 |
onlyone |
0.737 |
8 |
一颗赛艇 |
0.686 |
9 |
识芙蓉辨柳眉 |
0.563 |
以下日程表有可能会随着大赛进程细化和调整,参赛选手需要关注大赛官网和微信小助手消息,及时获取最新的日程表。
- 2019年04月08日 启动报名,开放GPU申请。
- 2019年04月10日 开放初赛训练集和预测试集。
- 2019年04月16日 开放初赛预测试集提交通道供选手预演提交流程。
- 2019年04月22日 报名截止。
- 2019年04月24日 15:00 至 2019年04月27日 15:00 开放初赛正式测试集及提交通道。
- 2019年05月18日 发布决赛题目和开发集(Test A)。
- 2019年05月22日 发布测试接口样例文件。
- 2019年05月22日 15:00 至 2019年05月28日 15:00 开放测试提交通道和协助调试。
- 2019年06月05日 15:00 至 2019年06月12日 15:00 开放决赛正式提交通道。
- 2019年06月12日 15:00 至 2019年06月15日 15:00 提交评审材料。
- 2019年06月15日 至 2019年06月20日 线下评审。
- 2019年06月20日 公布决赛线上成绩以及入选线下答辩名单。
- 2019年07月01日 总决赛线下答辩。
- 2019年07月02日 公布大赛获奖名单并颁奖。
决赛赛题说明
规则概述
决赛阶段,要求参赛选手基于给定的数据集,建立模型,并按照规范编写程序。根据给定的漫画,从检索库中找出与查询图像身份一致的图像。本轮比赛仅公开开发集(Test A),测试集(Test B)不公开,但与开发集的格式一致。评测由比赛组织方统一在指定环境的服务器上进行。
评测包括准确率和运算效率两方面,其中准确率占85%的权重,运算效率占15%的权重,具体计分方法见[决赛分数计算方法]。
数据集发放与结果提交
训练集
决赛不额外提供训练集,所使用的训练集与初赛相同。
决赛阶段允许选手使用额外的训练集和标注,但必须在提交的说明文档中明确说明。必要时,组织方可能要求选手提交其使用的额外数据进行审查。
开发集Test A和测试集Test B
Test A为开发集,用于选手调试程序和验证模型,会与规则同时发放给选手。
Test B为正式测试集,不公开,格式与Test A相同。
TestA和TestB存放在/root/data目录下。
决赛分数计算方法
决赛的成绩由准确率分数和速度分数两部分构成,默认选择每个队伍所有提交中准确率最高的提交参与计算成绩。正式提交结束后,每个队伍有一次机会选择其他的结果计算成绩。
准确率为所有检索结果中正确的比例,例如一共有1000次检索,正确的有500次,那么准确率为0.5。速度由运算时间衡量,interface.py自动输出运算时间,单位为秒。
决赛成绩的分数计算方法为:
$s=0.35a_i + 0.5e^{ -(a_i - a_{max})^2} + 0.15e^{-0.2*(t_i / t_{mean})^2}$
其中:
$a_i$ 为该队伍的准确率;
$a_{max}$ 为所有队伍中的最高准确率;
$t_i$ 为该队伍的运算时间;
$t_{mean}$ 为各队运算时间的平均数。
测试提交与协助调试
开发集Test A会与规则一起下发,提供给选手调试程序和验证模型。
测试提交通道开放后,选手可提交程序,在测试服务器上测试。测试服务器会将Test A的预测结果(未经评分)自动发送至选手邮箱。调试阶段,每个队伍每3小时允许提交一次。
如果选手在调试过程中有困难,可以与工作人员协调时间,申请协助调试。原则上每个队伍最多申请2次调试,每次调试时间不超过1小时。
比赛正式开始后,原则上不再协助选手进行任何调试。
正式提交
正式提交通道开放后,选手可以提交程序进行测试,系统会自动执行评测程序。如果程序正常运行,则评测程序会将测试结果详情邮件发送至队长邮箱(不对其他队伍公布),如果程序出现报错,未能输出结果,则会发送报错信息。由于邮件容量有限,报错信息可能不完整,不建议选手完全根据报错信息进行调试。
每个队伍每天有一次提交的机会(从当天15:00至第二天15:00算作一天)。每天中午12:00会更新榜单,榜单中仅包含每个队伍的历史最好成绩。
正式提交结束后,将选取每个队伍准确率最高的结果作为最优结果,参与最终评分。每个参赛队伍有一次机会,选择其他的结果计算成绩。
评测环境
评测服务器的主要硬件配置:
CPU:E5-2690 v4 @ 2.60GHz * 1
GPU:Nvidia Titan V * 1
内存:64GB
SSD:32GB (不含系统及测试数据)
评测服务器使用nvidia-docker,系统版本为ubuntu 16.04,可以参考官方文档下载调试。
评测服务器中已安装python2.7、python3.6等编程环境和主流软件包,安装了cuda-9.0,cuda-9.2,和cuda-10.0,默认cuda为cuda-9.2。选手如果需要使用特定版本的cuda,则应该在程序中配置好环境。
允许使用apt命令安装ubuntu官方提供的软件包,允许使用pip命令安装pypi官方提供的软件包,具体流程详见结果提交。需要安装非官方软件包时,须将安装文件一并打包提交。
为了高效评测,入围决赛的队伍,都会有独立的docker环境。
/root/env 目录用于存放环境配置相关的文件,每次测试结束后会保存
/root/data 目录存放测试数据,包含TestA或TestB目录,即 /root/data/TestA 和/root/data/TestB
/root/code 目录存放本次测试的代码。服务器收到选手的提交后,会自动调用评测脚本。测试完成后,会删除目录下的所有文件。
比赛要求
- 参赛选手需要同时提交说明文档、预测代码、模型,详见[决赛结果提交说明文本]
- 参赛选手所提交程序应可在Linux环境顺利运行。建议(不强制)使用Python 2.7或Python3.6作为首选编程环境,建议使用Anaconda 或 virtualenv + requirements.txt搭建python环境。不限制第三方软件包使用,但须获得合法授权和软件拷贝。
- 参赛选手可以使用公开开源的预训练模型,需要提供相关下载地址。
- 参赛选手可以使用提供的数据集之外的数据训练模型,需要提供相关下载地址。
- 参赛选手可以使用自行手工标注的结果运用于训练。
- 参赛选手提交的程序不得含有任何作弊程序或代码,不得含有故意破坏测试服务器的程序或代码,一经发现,直接取消比赛资格,造成严重后果的将追究责任。
初赛赛题说明
规则概述
参赛选手需要基于给定的数据集,运用CV/AI技术,实现人物的漫画图像和真实图像之间的比对识别,拓展人脸识别的应用范围。
平台提供的数据包括训练集、开发集(Test A)、测试集(Test B),详见“数据集”页面说明。
初赛中,选手需要基于给定的训练数据设计模型,判断给定的一对漫画图像和真实图像是否是同一个人。请将预测的结果按照测试集id顺序输出,以便平台对提交模型的结果进行验证。
最终的评价指标为ROC曲线的AUC值,详见评分算法实现。
数据集发放与结果提交
预测试集TestA会先行开放,提供给参赛选手调试程序和验证模型。TestA的结果可提交至竞赛平台,获取跑分,每天每队参赛者最多可以提交2次,但不计入比赛成绩。
正式测试集TestB会于约定时间开放给选手,选手需要在72小时内提交正式数据集的验证结果、模型和代码,详见“结果提交”说明。每队选手共有3次提交机会,取最好成绩作为客观成绩。
评分算法实现
根据参赛队伍提供的预测结果文件计算ROC曲线对应的AUC值作为最终的评价指标,我们采用Python的sklearn库进行AUC的计算。
假设有四个测试样本对,它们对应的真实标签为 y = [0, 0, 1, 1],0代表不是同一个人,1代表是同一个人。
选手的预测结果为 pred = [0.1, 0.4, 0.35, 0.8]。AUC的计算方式如下:
import numpy as np
from sklearn import metrics
fpr, tpr, thresholds = metrics.roc_curve(np.array(y), np.array(pred), pos_label=1)
auc = metrics.auc(fpr, tpr)
比赛要求
- 参赛选手需要同时提交说明文档、预测结果、预测代码、模型,详见结果提交
- 参赛选手所提交程序应可在Linux环境顺利运行。建议(不强制)使用Python 2.7或Python3.6作为首选编程环境,使用Anaconda 3搭建软件环境。不限制第三方软件包使用,但须获得合法授权和软件拷贝,以确保主办方可以复现程序运行过程。
- 参数选手的提交物需要可完整复现预测过程,主办方不会做任何代码修改,如无法复现的,视作无效提交。
- 参赛选手可以使用公开开源的预训练模型,需要提供相关下载地址。
- 不得使用提供的数据集之外的数据训练模型。
- 不得将自行手工标注的结果运用于训练和测试。
评审与晋级
根据有效提交的得分,前10组选手可以晋级复赛。