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

【导语】入职旷视研究院已经四年多,一转眼已经从单兵作战,到现在有一个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来更好的传递信息。从价值观角度来讲,旷视研究院希望用算法解决客户问题,给客户创造价值。而不是为了算法的落地而落地。

八、建议

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

1、假设你是学生

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

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

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

(4)假设你刚入职工作。

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

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

(7)自驱力很重要,一定要主动去学习。

2、假设你已经开始带团队

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

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

(3)方向的把控很重要,避免“战胜了所有对手,但是输给了这个时代”这种窘态。

说了很多,还是希望让大家对旷视研究院以及Detection组有一定的了解,也希望我的分享能让大家避免我踩过的坑,有更多同学加入我们,一起去探索一个超越人类的检测算法,扩宽认识边界,真正让计算机视觉技术推动人类的进步和发展。

如果有兴趣加入旷视 Detection 组,可以给俞刚老师发邮件:

yugang@megvii.com

原文链接:

https://zhuanlan.zhihu.com/p/61910297?utm_source=ZHShareTargetIDMore&utm_medium=social&utm_oi=40535670652928

(本文为AI科技大本营转载文章,转载请联系原作者)

实习生招募

推荐阅读:

  • Python超越Java,Rust持续称王!Stack Overflow 2019开发者报告

  • 科大讯飞刷新纪录,机器阅读理解如何超越人类平均水平?技术头条

  • 12个案例教你用Python玩转数据可视化

  • 抵制996!Python之父发声背后,这个社区一呼百应!

  • 刘强东割袍弃兄弟,马爸爸醉心 996

  • 996.ICU 下被过度消费的程序员,还配享受生活吗?

  • 漫画:图的 “最短路径” 问题 | 技术头条

  • 4000万假币流入波场, 发生在凌晨的BTT假币攻击事件始末及细节披露

  • 刺激!我31岁敲代码10年,明天退休!

❤点击“阅读原文”,查看更多精彩文章。

我在旷视研究院做检测 | 技术头条相关推荐

  1. 干货 | 旷视科技俞刚:我在旷视研究院做检测

    https://www.toutiao.com/i6678643562231366147/ 作者俞刚,AI 科技评论获其授权转载.以下为原文: 入职旷视研究院已经四年多,一转眼已经从单兵作战,到现在有 ...

  2. 旷视研究院博士图鉴|Be that challenger

    图为旷视研究院日常工作一景 旷视研究院有这样一批挑战者 他们是 PhD,更是 Researcher 他们-- 深入探索科技发展的前沿阵地 笃信自己的科研价值 渴望见证一行行代码的快速落地 期待与同样优 ...

  3. CVPR 2019 | 旷视研究院提出TACNet,刷新时空动作检测技术新高度

    全球计算机视觉三大顶级会议之一 CVPR 2019 将于当地时间 6 月 16-20 日在美国洛杉矶举办.届时,旷视研究院将带领团队远赴盛会,助力计算机视觉技术的交流与落地.在此之前,旷视每周会介绍一 ...

  4. ICCV2021旷视研究院入选9篇paper介绍(检测+点云+图像配准等)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 近日,两年一度的国际计算机视觉大会 ICCV 2021( IEEE International Con ...

  5. ICCV 2019 | 旷视研究院提出文字检测新方法:像素聚合网络PAN

    本文介绍ICCV 2019 旷视研究院提出任意形状文字检测模型:像素聚合网络 PAN,它考虑了任意文字识别过程中速度与精度的权衡,在大幅提升识别性能的同时也显著降低了计算量,成为当前该领域最佳方法. ...

  6. 吃瓜笔记 | 旷视研究院:被遮挡人脸区域检测的技术细节(PPT+视频)

    主讲人:袁野 | 旷视研究院研究员 屈鑫 编辑整理 量子位 出品 | 公众号 QbitAI 12月27日晚,量子位·吃瓜社联合Face++论文解读系列第四期开讲,本期中旷视(Megvii)研究院解读了 ...

  7. 报名啦!旷视研究院解读COCO 2017物体检测夺冠算法 | 吃瓜社

    刚刚结束的ICCV 2017期间,旷视科技(Face++)在竞争激烈的MS COCO大赛中,击败谷歌.微软.Facebook等国际巨头,夺得物体检测.人体关键点检测和Places物体分割三项核心竞赛冠 ...

  8. 旷视研究院「技术圆桌派 for PhDs」

    什么是「技术圆桌派 for PhDs」 「技术圆桌派 for PhDs」是旷视研究院和 SFFAI 联合主办的.面向博士生群体特别是应届博士生的中小型系列技术分享沙龙,针对不同的科研方向有着不同的分享 ...

  9. Last Call!旷视研究院「技术圆桌派 for PhDs」

    主题:物体检测的挑战和探索 -- 从工业界的视角 摘要:物体检测是计算机视觉中非常重要并且基础的环节,随着深度学习技术的发展,物体检测的性能有了突飞猛进.但是从产品落地角度来讲,目前物体检测算法还是有 ...

最新文章

  1. 厉害了!一本正经地为单身狗推荐这个158万张图像的鉴黄数据集
  2. Unity3D GUI中的图片尾随鼠标旋转脚本
  3. 关于向MySQL插入一条新纪录的问题
  4. LeetCode第一题两数之和---JavaScript
  5. Velocity中避免null引起的数据问题
  6. html5实现视频播放器 弹幕效果,基于HTML5的有弹幕功能的视频播放器
  7. 18春《c语言》在线作业3,华师18春《C语言程序设计A》在线作业参考
  8. Spring经典高频面试题,原来是长这个样子
  9. 国外大牛最终还是放弃迁移到微服务,为什么?
  10. private访问权限java_Java 访问权限控制:public、private、protected
  11. MySQL SYS CPU高的案例分析(一)
  12. Python中的图像处理(第十一章)Python图像锐化及边缘检测(2)
  13. linux根据文件名统计文件数,如何统计 Linux 中文件和文件夹/目录的数量
  14. matlab实现3维测井曲线绘制
  15. 无人车传感器 IMU
  16. mysql 子链接_MySQL多表查询实例详解【链接查询、子查询等】
  17. php页眉,自定义页眉
  18. office2019怎么在同一个窗口显示多个文件
  19. extjs google统计图
  20. RE2:Simple and Effective Text Matching with Richer Alignment Features

热门文章

  1. JSON入门基础知识
  2. 让你的输入框使用Google云语音输入技术
  3. java继承中的一些该注意的问题
  4. 日期控件判断是否为空
  5. HBase-1.3.1 集群搭建
  6. 5 修改request对象变量_【总结】前端5大常见设计模式,代码一看你就懂!
  7. for循环 lamda python_Python中if-else判断语句、while循环语句以及for循环语句的使用...
  8. leaflet地图框架
  9. maven 添加数据库驱动
  10. QSignalMapper的使用