天池FashionAI全球挑战赛小小尝试

前些天从实验室了解到天池的FashionAI全球挑战赛,题目和数据都挺有意思,于是花了点时间稍微尝试了下。目前比赛还在初赛阶段,题目有两个,分别是服装属性标签识别和服饰关键点定位。

服装属性标签识别是指识别出领、袖、衣、裙、裤等部位的设计属性,对应多个多分类问题,例如以下的例子。

服饰关键点定位是指定位出服饰中关键点的位置,对应多个回归问题,例如以下的例子。

这和CelebA(http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html)人脸数据集有点像,每张图片都是一张人脸,对应的标注包括5个关键点位置和40个属性的01标注,例如是否有眼镜、帽子、胡子等。

选题

我选了第二道题目,一方面感觉有人脸关键点检测、人体骨骼关键点检测等相关问题可供参考,去年的AI Challenger也举办过人体骨骼关键点检测的比赛(https://challenger.ai/competition/keypoint),另一方面自己还没有做过这块内容,比较感兴趣。

比赛官方提供的训练集共包括4W多张图片,测试集共包括将近1W张图片,神奇的是训练集和测试集有366张图片是完全重合的。每张图片都指定了对应的服饰,共5类:上衣(blouse)、外套(outwear)、连身裙(dress)、半身裙(skirt)、裤子(trousers)。

一共有24个关键点,但每类服饰对应的关键点数量并不一样。关键点标注分为三类,-1表示不存在,0表示存在但不可见,1表示存在且可见,后两种情况都会提供对应关键点的xy坐标。

初步探索

进行了相关的预处理之后,先尝试下最基础的结构,即卷积、池化加全连接。由于之前完全没做过这一块,所以网络的一些细节都只能慢慢尝试,包括卷积用几层、卷积核大小设多少、使用哪个激活函数、使用哪个损失函数等等。

进行了长时间的摸索,终于折腾出第一个全部打通的版本,提交了一版结果,成绩大概30%左右。由于最后一层使用全连接层直接输出每个关键点的xy坐标,因此误差比较大。

目前排行榜第一名是4.49%,占榜很多天雷打不动,可见实力之强劲。

进一步探索

后来一想,像这类比较经典的问题,肯定已经有大量的相关研究和模型,完全靠自己凭空搭一个网络显然不靠谱。于是进行了一些调研,找到两个模型:Convolutional Pose Machine、Stacked Hourglass。

精力有限,重点研究了一下CPM。阅读了对应的论文,2016年的CVPR,模型结构长这样,简单来说就是反复使用多个Stage,不断抽取每个关键点对应的越来越准确的响应图。

在Github上找到了CPM的一个开源实现(https://github.com/timctho/convolutional-pose-machines-tensorflow),阅读代码并进行修改后应用到比赛的数据上,在P100上训练共花费30个小时左右。使用6个Stage的CPM,为每个关键点生成一张响应图。

以下是一张dress对应的结果,第一行的三张依次是第1个、第2个、第3个Stage的响应图合成结果,第二行的三张分别对应第6个Stage的响应图合成结果、正确答案、正确答案和原图的合成,看起来还不错。

再来看个outwear,响应图也很准。

最后再看个trousers,关键点比较少,也很准。

又交了一版结果,拿到了17%的成绩。由于CPM输出关键点的响应图而不是直接输出关键点的xy坐标,同时使用多个Stage级联以逐步获取越来越准确的响应图,因此可以取得更好的结果。

可能的改进

可能的改进包括多个方面:

  • 使用其他更新更好的模型。由于我是这方面的外行,一方面不清楚哪个模型目前最好,另一方面再调研和实现一个模型也需要耗费大量时间;
  • 调参。每个模型都涉及很多参数,除此之外还有很多和模型无关的参数,例如学习率、批大小、正则项系数等,由于我是这方面的外行,暂时不清楚对关键点检测这类问题该如何选择参数;
  • 使用数据增强等技巧。由于我是这方面的外行,暂时不清楚除了数据增强之外还有什么适合关键点检测这类问题的技巧。

虽然有很多可能的改进方向,不过由于自己之前没有做过关键点检测这类问题,所以继续折腾下去只能靠运气各种尝试,而且每次尝试都需要等待很久的模型训练时间。

相比之下,对于一些在关键点检测领域有相当积累的团队和个人,他们有着丰富的经验和现成的代码,和他们竞争还是相当有难度的。看一下排行榜,第一名的4.49%至今无人能超越,前三十名也都在12%以下。

而且个人事情也比较多,时间和精力都十分有限,所以决定这个比赛不再继续尝试,感觉做到这一步就可以了。

总结

通过这次比赛,了解了关键点检测这类问题的一些解决方法,并尝试用CPM进行了一些实践,对自己而言已经满足了。

等比赛结束后,再关注一下冠军团队的解决方案,好好学习一波。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容