点击上方 “小白学视觉 ”,选择加" 星标 "或“ 置顶 ”
重磅干货,第一时间送达
许多同学私信我,表达了他们初入研究生期间的迷茫,希望了解我研究生期间的成长路线。虽然说没有适合每个人的方法,因为每个人的特点和所处的环境都不一样,但有个参考总是好的,所以我在这悄悄把自己研究生三年的经历写一下,前面可能会写的详细一点,希望能对这些同学有所帮助。 大三暑假的时候去QQ邮箱实习,一直实习到了2015年12月,回到学校正是2016年的元旦,跟现在差不多的季节,开始跟导师讨论毕业设计的思路,并动手实现。 主线任务:毕设 毕业设计做的是一个多模态行人检索系统里的Java后端,跟班里两个同学做的前端和硬件采集端合为一个大的系统。导师刚评上副教授,带的研究生只有两个人(后来又多了一个计创的师弟),虽然还有很多本科生,但是对我们的指导时间很多,是那种实干型的导师,会一边给你理思路一边给你准备资源。 拿到几个大华的摄像头、NVR和SDK之后,在B3五楼会议室里调C代码读写数据,并且从Servlet裸写Java后端(虽然实习写Android把Java写得很熟了,但是当时不熟悉Java后端框架,所以就直接Servlet)。写了差不多两个星期就写完了。然后开始写论文初稿,到一月底,毕设就基本完工,虽然后边又各种调整,但基本的工作在这个时候都做完了。在这个Java后端里,把在QQ邮箱实习的时候熏陶的设计模式全都实践了一把,感觉写的挺优雅,但是好像有点过度封装,不过也还好,这个系统就一直沿用下来。 在后边研究生几年里这个系统又被部署到超算虚拟机上,经过离线化等等变更。合作的两个同学毕业后他们的Hadoop后端和JS前端,路由器硬件都变成我维护了(:з」∠) 不过因为没有特别大的改动所以还能Hold得住,一直到现在还在运行着。 支线任务1:自学 写完之后就回家放寒假,因为有大把时间,所以开始刷GitHub,熟悉Git,Markdown,Gitbook,期间翻译了一个当时Github上Star上万的工程,大概讲的是程序员的自我修养之类的东西,收货了几百个Star,后来因为在邮箱期间遇到的Webview问题没彻底解决,心存执念,又开始翻译Chromium的文档,因为当时国内也没有Chromium的中文文档,所以就动手翻译,也从中学到了许多架构设计方面的东西,虽然因为内容太多没有最终翻译完。 支线任务2:物资管理系统 毕设这套系统更偏向工程,还没有一些计算机视觉的东西,当时导师就跟我讨论就想是不是可以往这方面发展做点研究,于是开始学Python,因为我之前在学校学工办勤工助学,实习的时候就跑路了,准备大四下回去在挣一点生活费,毕竟奖学金只够学费,吃饭还是得自己想办法(当时没想到导师每个月给我们发的钱完全够吃饭了),所以就用Python+Django写了一个物资管理系统,当做回归的见面礼,顺便也是试手Python。这套系统从2016年3月一直用到2018年12月,因为之后我要毕业不在学校,办公室那边的同学维护不了,所以及时过渡到了以前的Excel工作模式。我感觉这套系统做得还挺好看的,实践了一把当时比较推崇的Material Design。 支线任务3:羽毛球 每周1个半小时的羽毛球,一直打到现在,学校的体育馆还是可以的。 主线任务1:毕设 这学期主线任务还是改毕设啦,改格式很烦(:з」∠) 主线任务2:入门机器学习 导师之前其实也不做机器学习,我也是自己摸索,当时TensorFlow,Caffe各种框架百花齐放,因为之前做Android比较喜欢Google,所以在TensorFlow还只是0.8版本的时候开始自学,看的是Google在Udacity上发的教程,一边学一边整理笔记,放到GitHub上又刷了几百个Star。差不多5月的时候,导师也开始跟我们讨论当前机器学习的一些进展和研究方向,因为发现调参很麻烦,所以想做一个自动调参的东西,用神经网络来给神经网络调参,然而当时我只有CPU,整天在Acer笔记本上呼呼呼地跑实验,一直到暑假快结束了实验效果也不好。后来发现Google用N多块GPU做出了AutoML…后来差不多到研一导师才开始重视设备,所以这段时间更多的只是学TensorFlow和机器学习的一些基础知识,也开始学会了做实验,当然因为没有设备这个方向在开学之后还是放弃了。 支线任务1:校园活动管理系统 因为回到了学工办,受到当时双创的影响,被那边的老师抓去组了一个小小的创业团队,准备写一个校园活动管理系统。所以大四下也花了一些时间在这件事情上,带着不同学院的几个同学一起做东西,又写Python又写JS,虽然最后也没搞成,但还是挺有意思的一段时光,遇到许多不错的小伙伴。 支线任务2:博客 大概是到这个时候博客才开始放到Gitbook上,大多数是一些琐碎的知识,后来也渐渐把论文解读和一些工程实践也放进去,还在一直写着。 研究生的课大部分没什么卵用,我觉得我学到最大的技能就是读论文,做PPT还有汇报…当然还是有几门有用的课的: 主线任务2:行人重识别入门,确定研究方向 遭遇了自动调参任务的失败之后,10月老师开始让我调整方向,感觉导师在方向上的把握一直都很敏锐而正确。老师希望我还是关注回毕设做的视频行人检索任务上,于是开始看顶会上的各种行人重识别论文,不知道为啥当时老师follow郑宇大佬的工作,关注多模态,所以我们整个实验室大方向是多模态数据融合,我是行人重识别这个小方向,在毕设的系统里,发现基于Wi-Fi的时空信息能够有效筛选行人之后,也想在行人重识别数据集上做相关的研究。 一开始看论文其实没什么经验,看到公式基本都觉得不懂,学了最优化计算之后才感觉看懂了,此外还有一个机遇是老师带着我们去了一趟南京大学参加MLA,听了各路大佬的论文解读和方向指引,期间也看了大量的论文,开始对机器学习这个领域有一个整体的把握,之后看论文就得心应手了。 回到研究上,看论文之后再去调研数据集,才能知道从哪里下手。可视化是一个很重要的手段,一边各种数据分析加可视化,一边跟导师讨论(老师经常半夜十一二点跟我QQ讨论进展)我们才将目标剥离为无监督时空+视觉这个干净的方向,差不多就到11月了;在这个学期主要是尝试构造时空模型,并想办法和视觉模型做融合。当时Re-id还没有那么多方便的Baseline,我用的是郑哲东的MATLAB baseline,用了MatConvNet这个框架,也是走了一点弯路,一边准备考试一边做实验,差不多到要寒假才把视觉模型的训练和测试都理顺跑通。寒假期间开始把时空模型和视觉模型结合起来,有了一点初步成果,这部分是用Python写的,所以这期间一直在Python和MATLAB之间反复横跳。 这个期间拿着老师给的5W买了一台三卡机,三张TITANX,总算有显卡可以用了…代码也开始放到服务器上跑,这个方向设备真的还是很重要的,我觉得至少要有一张11G的卡吧… 支线任务:PS 因为在学工办兼职,需要做一些海报之类的,本科的时候在学院的宣传部做过,就扛起了学工办所有的海报设计…虽然水平不高,但至少能用。
主线任务:推进实验进展 放假回来还是继续做多模态融合,思路还是从实验里找,各种可视化,摸索出可以建模噪音这样的思路。差不多5月的时候实验基本能保证有效了,导师想投NIPS,开始写了一点点论文初稿,但是因为时间太赶,实验还不完备,就拖着没投,继续完善实验,进一步想用Learning to Rank来改进模型,从调研到选路线到推实验。期间因为支线任务1学了Keras,所以把代码都改成了Keras实现,代码写起来非常清爽,也都整合到Python里了,并且用各种技巧把视觉模型baseline复现到郑哲东他们TOMM的水平,暑假也一直在调Learning to Rank,直到效果满意。 支线任务:百度宠物狗分类比赛 发现了这样一个比赛,然后加了比赛群,听各路大佬吹牛(里边有很多大佬在知乎哈哈),学到了很多套路的东西,包括调参技巧,刷分技巧之类的。这些东西虽然不是必须的,但有了之后会事半功倍。同时也学了Keras,加了Keras群,先试水宠物狗分类,把Keras套路用回ReID。虽然这个比赛没刷上去,但开阔了视野,我们不仅有实验室,同学这样的来自学校的力量,还有来自社区的力量可以汲取。 主线任务:CVPR论文 9月把实验都整理好,老师开始写论文,我也一边写实验的部分,虽然后来基本上还是都被导师重写了,毕竟老师写起来确实比我写的好很多。各种画图,各种修改。直到十月底投出去,老师还在学院楼睡了一晚,真的很辛苦。好像是到1月的时候CVPR review,然后写Rebuttal,应reviewer要求补了很多实验来rebuttal。过完春节,某天好像听说出结果了,然后发现已经AC了。 支线任务1:树莓派系统 因为老师想要以后把工作重点放在行人重识别上,所以需要搭一套实验平台,包括采数据的终端和存数据,检索的后端。以前那套系统基于Hadoop太笨重了,所以我重新写了一套系统。买了一堆树莓派、摄像头和无线网卡,在树莓派上跑行人检测,把数据存到MongoDB,用Spring boot来写后端。感觉写工程开始变得很容易,Spring boot也就简单看了几天视频教程就用起来了。只要把一些难点攻克了,之后写起来就很流畅。这个事情做了一个月,然后交给几个大二的本科生接手了,但师弟们之前只学C++和数据结构和算法,不太推得动,有烂尾的趋势,估计我研三下还得把这个东西自己拿过来推进。 支线任务2:动物计数横向 跟一个创业公司合作,做一个数牛的项目,主要还是用树莓派和目标检测那堆东西,加一点物理知识做计数,做出来效果还行。技术上难度不大,但是跟甲方讨论还是一件挺费时间的事情,需要及时推进和协调。 支线任务3:目标检测 寒假期间看了目标检测方面的经典论文,为下学期找实习做准备,虽然我是做行人重识别,但是重点其实还是在多模态上,对计算机视觉方面的东西还是停留在课程里学的东西上,以及Re-id一些论文。其实应该把分割和人脸方面的一些论文也都看一看的。
主线任务1:论文 首先是把CVPR的论文整理成camera ready,然后是继续改进,想得到进一步的提升去投期刊。试了很多技巧,感觉创新点够了,但是效果还是没太大提升,所以一直没投出去。 主线任务2:实习面试 投了几家公司的实习,面试,一边刷牛客网上的题,因为我不是专业的ACMer,而且也有别的任务要做,没法把题都刷完,所以刷题只是找找感觉,基础知识也只是看蓝皮书和西瓜书,大部分面试都是裸考。好在还是找到实习了,具体经历在知乎上答过:https://www.zhihu.com/question/272045026/answer/366665187 主线任务3:鹅厂实习 到AI Lab实习主要还是研究类的工作,感觉在这期间填补了之前在CV上欠缺的一些认识,发现原来网络结构啥的可以玩出这么多的花。具体不便多说,保密哈。 主线任务4:秋招 2019秋招算法面经:https://zhuanlan.zhihu.com/p/42936891 支线任务1:实验室基础设施建设 跟师弟一起搭了实验室的Git平台,还有网站和博客,所以2018年在GitHub上提交的代码可能少一点点。 主 线任务1:期刊论文 读了18年的一些顶会论文,获得了启发,找到有效的提升方法,现在实验做完了,效果很好,希望能在春节前把论文投出去。BTW,回来给实验室买了两台GPU服务器,实验室目前有3张TITANX和12张1080ti,还有若干1060,师弟们都转Reid了,卡要多一点才够用。 主线任务2:毕业论文 SCUT总能时不时坑你一把,去年论文是研三下才送审,今年就变成1月送审了,于是生死时速开始写论文,现在写好了,等导师给修改意见就准备去查重送审了。
主线任务1:毕业论文 寒假的时候送审意见就回来了。做了一点点修改就可以准备答辩手续了。因为学院当时行政比较混乱,所以手续搞了挺久。期间做了答辩ppt,到答辩前一个星期讲给导师听,导师听完之后说:“我觉得你这个只达到了硕士水平,没有达到博士水平”。于是照着导师的意见做了修改,把ppt做得更加易懂,自己把整个ppt背了下来,试讲了几遍之后再跟导师试讲。答辩的那天很早就到了B3,但我是最后一个答辩,一直等到中午,前面很多是一些在职的学生(真的很菜。。),于是到自己答辩的时候就木有什么压力了,讲完之后有个评委老师甚至很感兴趣要代码。宣布答辩结果之后,再适当改一下论文,就等拿毕业证啦。 主线任务2:行人检索系统 导师想做一个平台来演示我们实验室所有的算法,于是Java后端,web前端,python深度学习后端,树莓派采集端我都一个人写了出来。现在还是一个比较简单的版本,交给师弟们后续继续扩展。 支线任务:熟悉无人机 因为要入职大疆,公司发了一台无人机,所以没事就带着无人机到处拍。无人机还是很好玩的,毕竟造飞机是每个男孩的梦想嘛。 读研期间有一个好的导师真的很幸运
要尽快确定一个还有研究空间的方向,前期要多读论文,多总结,开阔视野
CV方向至少要有一块卡,实验室没有的话,尽量自己买一块吧
确定方向之后多做实验,多做分析,多跟他人尤其是导师沟通
工作的事情是水到渠成的,在学校能出成果最重要,尽量在研二上把论文投出去
现在环境比我们当时好了很多,框架成熟,baseline开源代码到处都有,大多数实验室也都意识到设备重要性,所以都有设备了,但是竞争也更激烈了,大家要加油呀
好消息,小白学视觉团队的知识星球开通啦,为了感谢大家的支持与厚爱,团队决定将价值149元的知识星球现时免费加入。各位小伙伴们要抓住机会哦!
下载1:OpenCV-Contrib扩展模块中文版教程 在「小白学视觉 」公众号后台回复: 扩展模块中文教程 , 即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理 等二十多章内容。在「小白学视觉 」 公众号后台回复:Python视觉实战项目 , 即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别 等31个视觉实战项目,助力快速学校计算机视觉。 在「小白学视觉 」 公众号后台回复:OpenCV实战项目20讲 , 即可下载含有20 个基于OpenCV 实现20个实战项目 ,实现OpenCV学习进阶。 交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉 、传感器、自动驾驶、 计算摄影 、检测、分割、识别、医学影像、GAN、算法竞赛 等微信群(以后会逐渐细分), 请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过 。添加成功后会根据研究方向邀请进入相关微信群。请勿 在群内发送广告 ,否则会请出群,谢谢理解~