COCO2017「新生」夺冠战队感言:梦想还是要有的,万一实现了呢?

ImageNet曾作为计算机视觉领域的最受关注的比赛,自2010年开赛以来,其数据量大、比赛类别多,一直吸引国际知名院校和企业参赛。商汤科技也曾参加ImageNet大赛中包揽多项冠军,并在ImageNet 2015年视频通用物体检测竞赛中取得检测数量、检测准确率两项世界第一,成为首个夺冠的中国企业。在ImageNet 2016年也一举揽下物体检测、视频物体检测和场景分析三项冠军。

在ImageNet停办后,MS COCO(Microsoft Common Objects in Context,常见物体图像识别)比赛的关注度迅猛增加,成为了全球计算机视觉领域最受关注和最权威的比赛之一。COCO 2017是举办的第三届竞赛,本次大赛更是聚焦了detection 21支团队,segmentation 9支团队参赛,其参赛团队的数量和竞赛的复杂程度不亚于ImageNet大赛。

在今年ICCV大会期间,代表商汤参赛的刘枢、亓鲁、秦海芳和Mentor石建萍等成员,在COCO竞赛Workshop中取得了两项比赛的Segmentation冠军及Detection亚军的好成绩。此前在7月 CVPR 2017期间,刘枢及其团队与商汤实习生潘新钢、李晓潇、张熠摘取了四项赛事的桂冠,这些计算机视觉领域的前沿技术,未来将广泛应用在自动驾驶等领域,具有非常强的实用性。

作为COCO 2017 商汤战队的成员,在大赛来临之际刘枢及其团队成员做了哪些准备?在竞争激烈的标杆比赛中拿下好成绩,这支“新生”团队又有哪些难忘的经历?作为团队leader刘枢已经准备好他的故事,分享商汤战队夺冠的奥秘,大家快来听听吧。

COCO2017「新生」夺冠战队感言:梦想还是要有的,万一实现了呢?

刘枢,商汤科技实习生,现就读于香港中文大学博士四年级。研究方向是“物体识别与分割”。到目前为止,三年期间,在CVPR和ICCV两大计算机视觉顶级会议上面共发表学术论文5篇,其中3篇为第一作者(含一篇OralPresentation,录取率低于5%)。曾受邀作为顶级学术会议NIPS和ICCV的审稿人。今年又率队参加MS COCO 2017竞赛,获得实例分割任务冠军,物体检测任务亚军,LSUN 2017实例分割任务冠军。

Q1:摘取了两项比赛的一个冠军及一个亚军的好成绩,今年COCO竞赛的情况,你们做了哪些准备工作?比赛的情况能否简单介绍一下?

刘枢:除了ImageNet以外,COCO竞赛应该算是最大规模的比赛了,堪称行业标杆级的竞赛,代表图像识别的最高水平。每年COCO的比赛任务在不断变化,之前只设有物体识别和实例分割,其中,物体识别是比较传统的任务,实例分割是将每个物体单独分割出来,难度更大。在比赛任务上,去年增加了关键点检测,今年又增加了stuff(相当于场景理解)的任务。在参赛规模上,之前实例分割只有2支队伍,今年增加到9支;detection之前每年最多10支队伍,今年猛增到21支,涨幅很大。总之,COCO竞赛每年的变化都不少。

整个比赛的周期差不多要4、5个月。我们从今年5月份开始准备,7月份的CVPR的时候,我们把基础框架baseline做得差不多了,从这个节点之后,我们开始做一些这次比赛用到的新技术。因为很多东西之前是没有的,我们需要花很多时间从头开始搭建。

开赛之前,我们也survey了很多比赛用到的trick,了解到各种技术,然后让组员们通过这些任务实现技术点,把一些trick的东西找回来。因为当时我们并没有一套现成state-of-the-art的code可以用,基本是从零开始。在准备的前期我们做了些复现的工作,比如之前提出的Mask-RCNN、FPN,这是前期必要的准备。当时的想法是无论怎样,我们要先把刀磨快,至少跟别人站在同一起跑线上,这样才能将比赛做得更好。

Q2:来商汤实习主要负责的哪部分的工作?和比赛中努力的方向有哪些关联?

刘枢:我在商汤segmentation group实习,现在做一些技术储备的工作。像COCO这样的竞赛需要我们自己搭建一套东西。比如别人发过的paper,没有开源的,但效果比较好可以先搭出来,验证一下。这就相当于一个很不错的出发点,在这个基础的系统上再去做改动。

我们一般先看结果,看在现有的网络或系统上运行是否有问题,针对这些问题来思考如何改进,设计出一个新的网络或者系统之后再去train,这样不断迭代 。

Q3:你认为COCO两项比赛中拿下冠、亚军的关键要素是什么?比赛过程中有没有难忘的故事?

刘枢:起初,我对公司内部的框架并不是很熟,开始复现FPN检测框架的时候,结果一直偏低,卡在这里五六天没有进展,最后才发现有些默认参数和之前外部的开源框架是不一样的,想当然地用错了,因为理解上的偏差导致用错了工具。

有一次在搭建整个系统的过程中,当时我们复现的结果始终和原结果差一点,反复读了很多遍code,依旧找不出原因。那几天脑子里不停地在思考这件事,可能因为深陷其中吧,在睡梦中我还在分析和思考。很意外的是,竟然按照梦里的线索找到了出错代码的地方,并且很快就揭开谜底,虽然“这种方式”有些难以置信,但回想起来系统的搭建,如果很微小的地方出了偏差,没有及时get到问题所在,都会影响到整个进度和结果。比如每一个像素是否标记正确,缩小或放大是否准确,一个像素的偏差都会影响到实例分割的结果,所以需要非常细心、准确。

还有一件趣事,那时离比赛结束还有三四周吧,我们平时做实验用的模型比较小,方便快速迭代和验证,最后我们才会用大模型去train以达到最好的结果。在一开始做小模型实验的时候,我就梦到了“今年冠军”的结果46.6这个数字,在最后做模型的融合,我们做到了46.7,正好比梦到的数字高了0.1。当时模型的结果出来之后,我们正好以46.7这个数字拿下了冠军。

COCO2017「新生」夺冠战队感言:梦想还是要有的,万一实现了呢?

“宇宙中心”的UCenter团队在比赛中拿下Segmentation冠军

COCO2017「新生」夺冠战队感言:梦想还是要有的,万一实现了呢?

“宇宙中心”的UCenter团队在比赛中拿下Detection亚军

Q4:在搭建系统过程中,需要提升或改进的问题是怎么找到的?如何去判断?

刘枢:我想这主要还是看数据吧。比如在不同类型的数据上我们会分析看到的结果,如果小物体的效果不好,那就要想为什么小物体效果不好。是因为图的原因,还是因为某些地方没处理到位?或者说层太深导致一些小的signal没有了?有些类效果不好的话,是不是sample的训练数据量太少,还是因为其他,等等。

总体来说判断的方法分为两种。第一看数据,不同类别的数据,有共同的性质,比如大小。找到某种属性一类的物体,如果它的performance比较低的话,可以针对这种属性去提升效果。第二就是要找规律,找一些结构上的缺陷,再针对这些规律去提升。

Q5:“新生”团队取得了好成绩,作为这个组的leader如何带领团队夺魁?有何妙计与我们分享?

刘枢:发现问题及时改进。某些情况下,针对遇到的问题要第一时间改进,当新方法将效果处理特别好的时候,或者说generally对每一类做的还不错,在这个过程中自己和团队便得到提升,只不过具体做法可能不同,但效果和目的是一样的。

就我个人而言,因为之前尝试性地参加过COCO的比赛,自己也吃过亏,所以现在特别严谨。再加上实例分割要求每个像素点都要对上,所以让团队成员在很多地方都会特别注意,反复确认,甚至把网络内部的中间结果一个一个打出来,看每个位置对应的是否正确。

我们的队伍相对经验较少,按照我的经验,当时把每个点都拆的很散,不同的功能点,提前让成员们把后面要用到的东西都做了,完成之后我们直接对接,这样确保整体进度不受影响。

包括我们最后时间进度的把控,在做模型融合效果提升方面,基本和计划保持一致,作为leader我也是第一次带人,成员们虽然没有经验,但都能很出色的完成,我很欣慰。

Q6:比赛过程中有没有印象较为深刻的瞬间? 如何看待这场比赛?

刘枢:我们当时只知道自己的结果和去年的冠军的结果,大家相互之间是不知道成绩的,在比赛结束前一两个月左右,我们用小模型的结果就已经比他们(去年冠军)用大模型的结果高不少,且比我们搭出来的baseline也高很多点。根据去年和前年比赛的结果来看涨幅也不大,尤其是在检测那部分,差不多只有4、5个点的涨幅,我们在一个月前就比去年冠军高了不少,很开心,觉得这次比较稳了。

但后来令我惊讶的是今年和去年的相比涨幅很大,大家的结果做的都很高。我觉得原因在于,今年有一些比较好的技术出来,比如Facebook提出的MaskR-CNN和FPN,包括MSRA也提出了一些比较好的新改进方法,所以这些新方法使今年比去年的performance高很多,由此可以看到CV这个领域是在高速发展中,技术迭代非常快,在大家的认可中,还是比较有前途的。

Q7:如何评价整个COCO比赛?以及你们组的表现?

刘枢:对于我们组的表现我很满意,今年的竞争实在太激烈了。MSRA本来是两届冠军,facebook有恺明和Ross这个两个神一般的人物存在,加上我们自己的经验并不丰富,所以当时得知有这两个队参赛,我觉得我们团队能取得第二的成绩就很不错了,结果我们超过了他们两支团队还取得了第一,真心觉得太不容易了。从无到有的这个过程,我们都是一步一步走过来,中间有很多不易的地方,每个人都牺牲了很多来为比赛付出,有时候想想非常暖心。

Q8:对于想参加比赛的小伙伴还有在商汤的实习生们传授下经验?

刘枢:虽然传奇人物很多,而且他们一直都是很强的队伍。我们只是一个经验很少的小规模团队且战胜了他们,所以说这就告诉大家:梦想还是要有的,万一实现了呢?

另外,平时做事踏实、仔细、严谨一些,还是很重要的。我们比赛最后拼的是performance,我们做的东西是不是真的有效果这很重要,而在实现过程中很可能因为极小的问题对结果产生很大影响。就比赛本身而言,如果要参赛最好做些新东西,因为不一样,所以大家可能才会记住,机器和硬件的保障也是必不可少。


分享到:


相關文章: