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

整个比赛的周期差不多要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这个数字拿下了冠军。

“宇宙中心”的UCenter团队在比赛中

拿下Segmentation冠军和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,我们做的东西是不是真的有效果这很重要,而在实现过程中很可能因为极小的问题对结果产生很大影响。就比赛本身而言,如果要参赛最好做些新东西,因为不一样,所以大家可能才会记住,机器和硬件的保障也是必不可少。返回搜狐,查看更多