旷视科技俞刚:我在旷视研究院做检测

扫码手机浏览

(公众号:) AI 科技评论按,本文首发于知乎专栏「」,作者, AI 科技评论获其授权转载。以下为原文:入职旷视研究院已经四年多,一转眼已经从单兵作战,到现在有一个 Detection 团队。一路过来有坎坷,有经历,有成长。这次希望通过分享的方式,让各位对旷视研究院(Detection 组)有更多了解,同时也把我个人的心路历程呈现出来...

(公众号:) AI 科技评论按,本文首发于知乎专栏「」 ,作者, AI 科技评论获其授权转载。以下为原文:

入职旷视研究院已经四年多,一转眼已经从单兵作战 ,到现在有一个 Detection 团队 。一路过来有坎坷,有经历,有成长。这次希望通过分享的方式 ,让各位对旷视研究院(Detection 组)有更多了解,同时也把我个人的心路历程呈现出来,为后来者抛砖引玉。

求职

时间回退到五年前 ,已交完 PhD thesis 的我 ,开始准备找工作 。当时导师非常 nice,给了一份保底工作,在学校里做 research fellow ,这样我就有足够的时间好好找工作,但是缺乏完整的职业规划。一开始投递了一些高校教职,面试了一些学校也拿了一些 offer。偶然间应师弟邀请去旷视参观 。当时公司刚从银谷搬到融科 ,人数不多,但氛围出奇好;环境虽没现在火热,也没有多少友商 ,但是能感觉到一种气息——每个人对技术的执着追求。没做多少犹豫,我就跟老婆一起搬来了北京。

起步

刚来时,雄心勃勃想大干一场 ,却低估了很多事情的难度 。前前后后揽了不少活,但是没有干出什么成绩 。2015 年的时候,旷视研究院已经希望做一些零售商超方面的工作 ,没有什么行业背景 ,没有什么项目经历,感觉自己把产品想象得太简单。这段时间的一个总结是:算法不等于产品,有产品也不等于能落地解决客户问题。当然 ,那时候的算法非常粗糙,还是基于传统方法,感觉充其量只是一个受限场景的 demo 。经过反思 ,觉得需要先把算法真正做扎实。

于是,在 2015 年的时候,我第一次接触了深度学习 ,虽然当时深度学习已经爆发了。2015 年在旷视研究院的那段时间是非常幸福的,停下来,好好思考一下 ,其实可以学习到很多东西 。基于深度学习,Detection 组开始做的第一个任务就是行人检测,最开始使用 fast rcnn ,后来慢慢切换到 faster rcnn。同时 Detection 组开始基于行人检测做人体骨架算法。另外 ,为了更精细的定位人体框,Detection 组又做了一些分割算法 。所有这些算法的研究构成了 Detection 组的雏形。但是那时,我忽视了一个非常重要的方面——团队培养。

带人

旷视研究院前几年的生源质量其实非常好 ,实习生都是有非常好的背景 。比如我最早的两个实习生,一个实习生拿了 ACM world final 的金牌(第二名),另外一个去了 MIT 读博。后来很多实习生都是 OI 金牌之类的。当然 ,这些其实跟我没什么关系,我并没有带人的经验 。很多同学在团队里付出了很多努力,但是实际收益很小 。当时自己可能是有些失落的 ,我开始反思,如何才能真正培养同学,如何才能增加团队的战斗力。我花了很多时间跟实习同学一起去琢磨各种 paper, 研究各种细节 ,讨论各种实验结果。从那个时候开始,Detection 组真正成长出来了一批非常强而且可靠的同学 。那批同学现在已经成为我们组的骨干,很多人已经自己带起了一个小团队。同时 ,Detection 组招人的要求也在不断完善。从只看基础能力 ,到后来会关注一些软性能力,比如 motivation,价值观等等 。一个让我有深刻反思的例子是一个同学推荐了两个 OI 同学 ,一个是 OI 金牌,另外一个 OI 银牌但是有非常强的规划和 motivation。我没有经过多少思考就选择那个 OI 金牌的同学。后来那个 OI 银牌的同学快速成长起来,同时做出了非常多优秀的工作 。价值观在小团队野蛮生长期可能并不是很突出的问题 ,但是当团队变大后,这个问题的严重性会暴露出来。

产品

那个时候 Detection 组人不多,但是大家士气都很好 ,研究算法工作已有起色,有了比较好的刷点经验。但是当时的问题在于,Detection 组渐渐离产品越来越远 。我们所做的东西希望能用在实际产品中 ,但是算法成熟度不高,所以离实际落地距离还是非常的远。2016 年暑期,公司迎来了孙剑老师的加入 ,这对于 Detection 组以及我个人来讲都是有非常大的帮助。经过一段时间的梳理 ,Detection 组正式接手了所有的检测工作,包括产品中用到的人脸检测 。这一步对于打通技术完整检测技术链条是非常重要的,因为我们同时做检测产品的研发 ,同时做检测基础算法的预研,让我们真正 end-to-end 在优化过程 。比如产品中的难点可以转化为研究问题去帮忙探索,这样可以确保研究方向是实用导向的。另外一方面 ,很多研究方面的经验可以快速 transfer 到产品中使用。

经过一段时间,我跟另一个同事重新搭起了一套新的检测算法,相比上一版算法有非常明显的提升 ,无论是速度跟精度 。当然,因为是糙出来的,所以有非常多不合理的细节。经过一步步完善以及更多同学的努力 ,到今天,Detection 组的算法有了非常本质的提升。总结一下,一个产品用的算法可能需要做好各个细节:训练集的持续增加 ,科学细分的 benchmark ,合理的数据格式以及高效的 data provider,统一的 codebase 以及完善的文档,定期的发版计划 ,以及 badcase 的追踪和维护 。当然,在那个时候,很多细节做的都不好。除了上述细节之外 ,还有一个我没做好的维度是团队的工程化建设,工具链的建立。这个问题一直被忽略,或者以比较低的优先级在进行着 ,导致长期来讲 Detection 组的效率比较低,研究员花了非常多的时间在处理数据,流程等工作 ,而这些工作其实可以自动化的 。另外,因为本身没有很好的工程基础,所以 Detection 组一般只负责算法模块的实现 ,没有完整 Pipeline 架构层的能力 ,这可能会导致算法能力无法很好的发挥出来。当然,目前我们对这方面的建设是非常重视的,同时也我们会花很多时间来提高团队的产品能力和效率。

科研

随着团队的成熟 ,一些现有同学的成长以及强有力的新同学加入,目前产品层的算法 Detection 组也梳理的比较顺利 。但是基础研究上面走的有点累。具体来讲,Detection 组一直走在复现的路上 ,比如有一个新的算法,复现一下,刚复现完 ,可能新的算法又出来了。这让我深深意识到之前基础算法工作中的短板,如果只是 follow 别人,那永远不可能超越 。从那时起 ,Detection 组主攻几个点,在多个同学的努力下,渐渐有了自己的算法工作 ,比如从最早期的 RFCN++ ,Large Kernel Matters,到后来的 MegDet, DetNet 等 。大家慢慢找到了方向,找到了自信。

Detection 组开始参加一些比赛 ,比如 2017 年 ICCV 的 COCO 以及 2018 年 ECCV 的 COCO 比赛。因为早期的积累,加上多团队的合作分工,我们对于结果还是非常有信心的 。这里可以提两个细节。2017 年时 ,我们从来没有参加过 COCO 比赛,也没有太多经验,但是我们心态非常好。有一次对话过程中 ,孙剑老师问我们,希望能跑到单模型多少结果,当大家犹豫时 ,有一个同学脱口说了 49 。我们一致认为他在吹牛,因为当时我们的点可能只有 46。但是在比赛前,他确实做到了。在 2018 年的比赛过程中 ,我们的一个感受就是 tough ,每天 sync 过程中,一般会同步之前的实验结果,但往往一天天的实验都是不涨点的 ,虽然每次大家都会觉得有点失落,但是大家的斗志始终非常旺盛,一直尝试各种想法 ,哪怕可能只有 0.1 的涨点,大家都很非常兴奋 。从那段时间的反思过程中,我觉得团队中需要有一些「软性」能力 ,对胜利的渴望,对问题的坚持和执着是非常重要的。

另外,在研究过程中 ,我从孙剑老师身上学到的一个非常重要的点,就是专注。这个词虽然说起来很简单,但是我自己一直做得不好 。很多时候 ,我们对于研究的态度是希望到处开花 ,各个领域皆有涉及,然后每个领域都能分一杯羹。但是真正的研究工作可能需要花大量的精力和时间去深挖一个点,这必然需要放弃掉一些其他的东西。从 2019 年开始 ,Detection 组的研究范围重新定义,停掉了一些任务,同时把精力聚焦在几个重要的点上 。希望这些改变能让 Detection 组真正带来一些「大招」 ,而不是简单的小打小闹 。

招聘

2017 年下半年到现在,因为业务等需要,Detection 组需要招聘更多的同学。因为一开始不重视招聘 ,导致 2017 年校招犯了一个非常严重的失误,直接导致 2018 年甚至是 2019 年的人力短缺,所以这一年过得非常累 ,因为可能一个人需要同时补很多洞。2018 年我复盘了自己招聘过程中的问题,重新理解了招聘 。招聘首先不是为了解决现在的问题,而是为了以后做准备 ,一定要未雨绸缪。另外 ,很重要的是,招聘不单是 HR 的工作,更是每个 leader 的工作。那时候 ,每周都会拿出很多时间去面试,去沟通同学,对于很多候选同学来讲 ,其实我们自己去沟通会比 HR 更能让同学们了解旷视研究院的情况以及他可能的工作 。同时间,另外一个经验是招聘需要发动全员一起行动。首先如果只有自己一个人去操心招聘,这样精力肯定不够 ,所以 Detection 组会发动每一个同学去招聘,让每个同学理解招聘的重要性以及学会如何去招人。同时,我们也会通过一些宣传 ,让大家了解我们,愿意加入我们 。

管理

因为短时间内很多新同学的加入,我渐渐的意识到 Detection 组在变大 ,之前的一些管理方式可能已经不是很适用了。因为我对于管理其实是个小白 ,虽然开始尝试读一些书,学习一些课程,但是感觉处理起来还是比较简单粗暴。其实算法团队的管理跟很多传统工程的管理还是有区别的 。不能太教条 ,这样会影响团队成员的积极性和创造性。我们需要的可能是赋能,让团队提高效率,而不是制造障碍和瓶颈。我的一些尝试是首先是做好基础建设 ,特别是组内的工具链,codebase, 文档,论坛 ,tech-talk 分享等 。只有具备高效自动化的工具才能真正解放每一个同学,把时间花在刀刃上面 。另外,Detection 组内的信息共享 ,科学的培训体系对于每一个同学的成长都是非常必要的。另外一层就是培养一些 Leader,包括可以替换自己的同学。每个团队大了后,一定需要有同学成长起立 ,来帮忙负责做一些管理 。同时每个 Leader 本身也需要有一些二号位 ,来做补位等。即使是我自己,也希望能培养一些同学完成工作。这样可能团队才是最健康的状态 。另外一方面 Detection 组会制定一些流程,一些计划来帮助团队提升。因为工作久了 ,可能会有一些惯性,很多时候我们希望能有一些新的想法,新的思路来提升大家战斗力。当然我们发现要推广这些新的流程可能会花很多时间 ,很多精力,所以目前的经验是不会频繁的推广新的流程,每个新流程都需要在一些 sub-team 小团队中先做验证 。总结一下 ,我们希望能提供一个很好的平台,把优秀的同学聚在一起,一起去干出一番成绩 ,同时也希望新来的同学基于我们平台快速成长。

团队稳定后,另外一个可能突出的问题是我们做的是算法,正如文章前面写的 ,算法不等于产品 ,所以 Detection 组开始学习一些产品方面的知识。Detection 组内每周会有一次产品相关的分享讨论,主要是讨论算法如何在产品中发挥更大的价值等等 。因为只有更好的产品意识才能把算法真正落地。同时我们也可能希望能跟「客户」做更多的沟通交流,了解具体的需求以及讨论可能性。很多时候 ,算法,工程,产品 ,商务,客户是两两之间沟通的,中间每次传递都有可能信息的丢失和理解的偏差 。正如神经网络一样 ,Detection 组可能希望的是拉通,end-to-end 的优化,同时最好有一些类似 residual 的 shortcut 来更好的传递信息 。从价值观角度来讲 ,旷视研究院希望用算法解决客户问题,给客户创造价值。而不是为了算法的落地而落地。

建议

上面给出了一些我个人的一些经历 。同时基于这些年我看到的很多同学,我希望给出一些我自己零碎的建议。这些建议是对职业生涯中的三种不同阶段给出的。

假设你是学生:

  • 一定要提前做好规划 ,无论是工作还是继续深造 。假设有问题 ,多跟老师,师兄,师姐等沟通 ,了解更多信息来做判断。任何决定可以适度犹豫,但是不要太纠结。

  • 基本功非常重要比如工程能力,比如数学基础等等 。

  • 在导师允许的前提下 ,多出来实习,看看外面的世界,同时多认识一些同学。

假设你刚入职工作:

  • 平台很重要 ,跟一些很强的同学一起共事可能是一件非常有意思的事情。

  • 不要挑活,要相信付出是一定有收获的 。

  • 自驱力很重要,一定要主动去学习。

假设你已经开始带团队:

  • 一定要有共赢的思想。大家一同有收益而不是「一将功成万骨枯」 。真正关心了解每个团队成员的需求 ,多沟通,多倾听每个人的意见,建议良好的反馈机制 ,发挥出每个人的最大价值 。

  • 增强基础建设 ,流程建设,确保组织以更高效的方式运作。

  • 方向的把控很重要,避免「战胜了所有对手 ,但是输给了这个时代」这种窘态。

说了很多,还是希望让大家对旷视研究院以及 Detection 组有一定的了解,也希望我的分享能让大家避免我踩过的坑 ,有更多同学加入我们,一起去探索一个超越人类的检测算法,扩宽认识边界 ,真正让计算机视觉技术推动人类的进步和发展 。如果有兴趣加入我们欢迎投递简历给 Detection 组负责人俞刚:[email protected]. 同时我们会在 Valse2019 有展台,欢迎大家来交流。

作者介绍

俞刚,旷视研究院 Detection 组负责人。2014 年博士毕业于新加坡南洋理工大学 ,加入旷视 。主要负责检测,分割,跟踪 ,骨架 ,动作行为等方面的研究以及算法落地工作。俞刚博士带队参加 2017 COCO+Places 挑战赛获得检测第一名,人体姿态估计第一名;接着,带队参加 2018 COCO+Mapillary 挑战赛 ,获四项第一。

个人主页:

版权文章,未经授权禁止转载 。详情见。

本文转载自互联网,如有侵权,联系删除