I overlooked the four years


Foreword

Affected by the epidemic, district regulations require foreign Ning isolated at home for 14 days now finally take up writing this blog. In fact, long wanted to write, but four years a lot has happened to these four years to be a summary not know where to start, he has been no clue, so there is no hands-on writing during the New Year at home, looked at home two books: "alien" and "self-cultivation Ali engineer" (electronic version only).
Here Insert Picture Description
The "alien" I look at probably three or four years ago, but Mo Kanwan, read some off the middle, but until this was all finished. This book is not a Jack, this book reveals a large number of cases through the mystery behind the success, many people feeling a kind of fatalistic After reading it, but I personally thought is: The Significance behind the success of these authors found that, for us ordinary people can better understand the mystery behind the success, to be more objective and comprehensive look at the success, rather than to the success grouped into a certain kind of reasons (such as IQ, rich second generation, etc.), followed by after that, for the average person to understand the mystery behind the success, you can take advantage of these mysteries, and even, in some cases, artificially created some opportunities, such as changing the time the child is born, and make full use of opportunities of the times, make full use of family resources, etc. . "Ali Engineer's self-cultivation" This book inspired me to be a little bigger, let me go from a higher point of view of technology and life, also learned some new thinking habits, such as structured thinking, going to the next 2 to 3 years to focus on training this habit of thinking. After reading these books, I write this blog to suddenly bring some inspiration, the following few days finishing his thoughts, only today's blog post.



I overlooked the four years

2016.02.26 overlooked is my first day of work, because at that time have not graduated, so just an intern. 02.26 behind each year will receive a blessing message, overlooked but it is still very humane company, not too many intrigues, infighting, various benefits are very good.
Here Insert Picture Description
Remember 2016.02.25 short notice so I went two faces tomorrow, the day I went early in the morning, two faces are the personnel interview, Juan was the sister of the interview, after the plane actually informed me finish began to work! Suddenly feeling good. At that time the company was still very young, a place with other companies that hire.
Here Insert Picture Description
The first day recruits scene as if in front, on the aisle of green walls covered with albums and decorations, the entire middle floor has two similar cage seating area for your rest or work, remember that the sum Ran East Columbia I sat diagonally opposite, Juan's sister station a little farther away from me, and that a fresh man sitting position, people have changed, some of these people are still firm, and some have already disappeared.
Here Insert Picture Description
After four years of development, gradually developed to underestimate the size of about 200 to 300 people, we can not say that the development of good, but not too bad, in fact, last year the entire field CV is not particularly good, and even the head large companies are more difficult, but I still firmly believe that the future of AI. In fact, growth in four years overlooked very quickly, learned a lot, from a technical and management intends to two terms.

technology

刚来小视的时候,我连caffe是什么都不知道,公司之所以要我,我想大概是看重了我的图像基础和工程能力了,研究生期间是学low level图像的(从我以前的博客就可以看出),之前在海康也实习过几个月,参与过真实的软件项目开发,所以来公司做的第一个项目就是开发一个人脸识别系统(demo),这个系统是使用QT实现的,集成了人脸检测,跟踪,识别功能,活体功能。
Here Insert Picture Description
由于当时对人脸检测,跟踪,识别功能,活体这些算法的原理还不是很懂,所以开发过程中遇到了很多困难,整个开发进度也比较缓慢,印象最深的一个就是识别结果无法实时显示,由于2016年OpenCV的dnn、ncnn等还没有开源,公司使用的是自己的前向引擎,速度较慢,单线程实现从检测到跟踪再到识别和活体这一整套流程速度非常慢,无法实时显示识别结果,最后采用了多线程的方案,识别线程识别的结果返回的时候,如果该对象还在画面中就显示,这样就可以达到实时显示的效果,如上图所示。这个项目做完之后还是非常有成就感的,而且这个项目做完之后,就在公司得到了广泛使用,主要用于公司销售对外宣传产品时的演示软件,同时一直用于公司的展厅中,向客户展示公司的人脸识别和活体技术。这个项目让我信心得到了极大的提高,同时也让领导给与了更多的机会。

接着到了2016年年底的时候我开始了我人生第一个深度学习项目:活体算法的开发。其实2016年市面上基本上没有什么活体技术,就连旷世,商汤等公司活体应该也没有出来。经过了大约半年的时间,最终活体算法还是上线了,虽然精度不是特别高。活体算法的出现推动了公司人脸识别算法的落地。其实对于我,这个项目最大的收获是学习了深度学习的基本知识,了解了开发一个深度学习算法的基本流程(需求分析,确定评价指标,数据采集和数据标注,算法选型,算法迭代和优化,模型部署)。我的第一篇深度学习博客:LeNet论文的翻译与CNN三大核心思想的解读,就是在这个项目完成之后写的。活体这个项目后来交接给其他小伙伴了,直到现在还在继续优化。

2017年下半年我就转到检测方向了,这个方向是我一直很感兴趣的方向。做的第一个检测项目就是基于MTCNN的头肩、人脸检测以及landmark检测算法的研发。其实MTCNN是2016年出来的,一出来,就受到了广泛的关注,各家都在复现论文,我们算是起步较晚的,到了2017年的时候,其实已经有开源的出来了,所以我们就直接使用的开源的,但是只有caffe的windows版本的,通过一番努力,成功将windows移植到了ubuntu上了,大大加快了训练速度。刚开始做的时候,由于不懂原理,做起来比较吃力,于是那段时间,每天早上起得很早,利用早上的时间研究了论文和源码,大概花了一周所有的时间,各个方面就比较了解了,做起来才顺手了很多。后面在开发过程中,也在不断深化对MTCNN的理解。开发过程中遇到的最大的一个困难是误检特别多,但是想了很多方法,最终通过离线mining的方式很好的控制了误检。
这个项目做完之后,对深度学习检测的基本原理就非常了解了(本质上就是滑动窗口),为后面理解SSD奠定了非常重要的基础。
自己还深深体会到一点:只有深入理解了算法原理,才能够真正使用好算法,进而才有可能改进算法。而深入理解算法原理的必经之路就是研究论文和源码。

其实2017年同步还在开发跟踪算法,当时预研过很多算法:基于模板匹配的跟踪方法,基于KCF的跟踪方法,基于TLD的跟踪方法,但是效果都不好。机缘巧合的是,由于当时正在使用MTCNN做检测,在深入理解了MTCNN原理之后,受到了MTCNN的启发,提出了一种基于MTCNN的多目标跟踪算法,跟踪效果要远远好于模板匹配、KCF和TLD算法,而且速度非常快,在RK3288、RK3399、海思AI芯片HI3516CV500以及HI3516DV300上都可以达到实时。该算法广泛应用于公司的各类产品中(如pad,商圈),提高了公司产品的竞争力,也由于该项目,我的薪资和职位也有了一个较大的提高,这个项目让我的信心再次得到了很大的提高。跟踪算法同时也让我具有了一定的软件架构设计经验,由于要实现人脸,头肩,鱼眼,行人等多种目标的检测和跟踪,所以里面采用了多种设计模式,包括策略模式,工程方法模式,单例模式等,同时该框架也体现了多种软件架构设计原则,包括单一职责原则,里氏替换原则,依赖倒置原则,稳定依赖原则。该项目让我的算法能力和工程能力得到了很大的提高。
Here Insert Picture Description

2017年年底,发生了一件事情,就是OpenCV开源了DNN模块,这让之前的MTCNN和跟踪算法速度又有了一个较大的提高,也为后面SSD的研究提供了重要基础。

到了2018年,我开始带一些小伙伴了,同时也全面转到了SSD的研究,期间精读了SSD的论文和源码,写了几篇博客(比如SSD原理解读-从入门到精通),并完成了部门SSD算法的培训工作。在理解了SSD源码之后发现,SSD和MTCNN的本质都是一样的,都是对滑动窗口的分类和回归,而且我对SSD的理解很大程度上要归功于之前对MTCNN的理解。对SSD的探索过程相比较MTCNN要漫长曲折,期间对SSD的优化包括:修改backbone,优化anchor的设计,加入FPN结构,优化了SSD中mining机制,其中部分工作是2019年才完成的,期间很多工作也是在团队小伙伴的协助下完成的,这里非常感谢检测组的全体小伙伴。目前的SSD无论在速度还是精度上,都大大超越了之前的MTCNN算法,在公司产品中也是完全替换了MTCNN算法,也算没有辜负我们组对SSD的研究了。

到2018年年底,检测组的训练框架,测试流程,测试工具基本上已经完成了,虽然那个时候我也带了几个小伙伴,但是他们也都还没成长起来,检测组的绝大部分工作都由我一个人来完成,从2017年检测组0技术积累开始到2018年年底整个框架流程全部搭建完成,中间经历了很多曲折和困难,但是也让我得到了很大的提高。

到了2019年,整个2019年都是对原有算法的优化迭代,并没有太多突破,唯一让我印象深刻的就是海思AI芯片上SSD代码的移植和优化。由于海思AI芯片上的CPU算力非常有限,导致了SSD的CPU部分耗时较大,给实际部署带来了巨大挑战,然后我就尝试着去优化,其实当时也没有想过能把优化做好,心里想着大厂官方实现的代码应该是做了很多优化的,但是经过几天的研究发现官方代码还是有一些地方可以优化的,通过努力,在模型精度保持不变的前提下,CPU速度提高了一倍。 具体优化细节见博客:海思AI芯片 HI3516DV300上SSD代码的优化。这件事情给我的启发就是不要迷信权威,要相信自己,要敢于突破,说不定会有奇迹出现。

哈哈,像流水账一样记录了这4年技术上的成长,站在现在这个点回头看,这4年来技术上的成长还是非常大的。

管理

我虽然从2018年就开始带小伙伴了,但是说实话感觉并没有太多管理上面的经验,这里分享一些自己的心得体会吧,有些想法也是受到了《阿里工程师的自我修养》这本书的启发。

俗话说:招对了人,团队就已经成功一半了。我遇到的第一个问题就是招聘。一开始,我是没有任何招聘经验的,刚开始招聘的时候,标准完全是参考了自己对算法工程师的理解,而且更多是对一个人技术方面的考察,但是当我渐渐了解了一些人,目睹过一些小伙伴离职之后,我发现我的理解是不对的,后面又经过了很多次的修正,才逐渐形成了自己招聘的一些方法论。这里分享一下自己的招聘标准,就当抛砖引玉了。

如何招聘

下面是我这两年来形成的招聘标准
Here Insert Picture Description
一开始招聘的时候,我只关注专业基础,后来逐渐发现了一些问题,有些人虽然专业基础还可以(不排除背题之嫌),但是到了实际工作中却发现工作态度不好,交给他的任务没有责任心,每项工作只追求"不求有功,但求无过",以这种心态工作,工作质量可想而知。还有一些人,虽然专业基础合格,工作态度也还不错,挺负责的,但是呢缺乏深度思考能力,工作上面没有什么突破和亮点,个人成长也有很大局限性。在意识到这些问题之后,就逐渐改变了自己的招聘标准。

对于算法工程师来说,专业基础是必须要具备的。一般我会围绕简历上某个项目问,对于应届生,如果没有什么项目,我会单独出一些题目,这部分一般是比较好量化的。但是后面几项:工作态度,深度思考能力以及更高层次的动机,是没有办法量化的,也无法在面试中完全体现,那怎么办呢?这两年里对于这些问题还是有自己的一些体会的。

关于工作态度的考察
我会观察这个人的简历排版和格式,笔试题的书写规范,答题的认真程度,以及说话的语速、语气以及措辞,甚至我会观察当天你的穿着打扮。一般简历排版和格式清晰工整,笔试题书写比较规范,答题也比较认真的人工作态度都会比较好。

关于深度思考能力的考察
相比于工作态度和动机,这一点其实是比较好量化的,我一般会看这个人的在校成绩和获奖情况,比如高等数学、线性代数或者程序设计考试95+的,拿过国家奖学金,拿过ACM奖甚至是蓝桥杯比较好的名次的,这些人的学习能力一般都不差。

关于动机的考察
我觉得这个是最难考察的。虽然我觉得对于程序员来说,兴趣是最好的老师,但是真正能够对所从事的工作有强烈热情且能够坚持下去的寥寥无几,甚至可以说是万里挑一。以前看过一句话:一个人最大的天赋就是从什么事情中获得乐趣。 我觉得太对了。但是在面试这么短的时间内考察一个人的动机是非常困难的。一般我会考察这个人是否有阅读的习惯,是否有些技术博客的习惯,github上是否有出彩的项目。

上面就是我关于招聘的一些个人看法了,这些经验在我两年的管理中也得到了验证,现在是我的最佳实践了,哈哈。

团队文化的建设

人招来了之后,是要管理了,其中最重要的就是团队文化的建设了。
Here Insert Picture Description

我个人最大的体会就是,作为团队leader,最重要的一条就是:以身作则,言传身教。自己做不到的事情,又怎么能够要求别人做的很好。比如关键项目一定要深度参与一线工作,制定的规范标准和制度自己要起到带头作用起到表率作用。作为leader还需要公平,公正,坦诚。坦诚不仅仅要对那些表现良好的人,还要对那些表现糟糕的人。敢于指出他们的问题,对于表现不好的员工要敢于批评和管理,例如为什么解雇你。还有一点比较重要,就是培养小伙伴主人翁(Owner)的意识,培养小伙伴认真负责,积极主动的工作态度,可能一些有能力的小伙伴有点放不开,有自己的想法也不敢提,所有决定都需要通过leader,对于这些小伙伴,我一般会放权比较多,我只会制定目标和任务,具体的执行都是由他们来做,这样反而效果会比较好。对于能力一般的,我管的会细一点,但是等他们成长了之后,我就会放权给他们自己完成。

上面的就是自己这两年来做管理的一些体会了,不算是真知灼见,但是也是自己亲身实践总结出来的,有些内容已经成为了自己的最佳实践,反复在实际中得到了验证。


离开,是为了新的开始

La La weave write so much, he found himself in four years, whether technical or management overlooked, have learned a lot, thank you very much department heads and the platform overlooked provided, and thank junior partner to detect group given the trust and help .

But All good things banquet, thanks to growing overlooked, but also clearly felt his bottleneck, in fact, years ago, a blog Reflections of artificial intelligence in somewhat reflects, in the first half of this blog in fact, also reflected the important work of the entire test group is basically in 2019 has been completed, and in 2019 in an iterative optimization (commonly known as alchemy), the entire 2019 is basically no breakthrough and highlights, I was once caught in the deep deep confusion and confusion. The company is not optimistic about business conditions in 2019, consecutive losses, the end of layoffs will be more. In fact, within the department also had some management problems, are also discussing whether to adjust the organizational structure, some of my ideas and leadership has also undergone a big difference. Here is not to be overlooked too many negative things to say, and I do not love this man also arrested others weaknesses, on the whole, be overlooked is a promising company, is a very human company. The students want to join overlooked, it is worth trying.

During the New Year I have been thinking: is not reached a turning point, I was not required to jump a look at the outside world? After several days tangled, I finally made a formal application to the company's turnover, although the turnover process is not yet fully complete approval, but I believe this departure, for a new beginning.

2020-2-15 19:28:36


Thank you for reading, if you find this article helpful to you, welcome to scan codes appreciated.
Write pictures described here

Published 42 original articles · won praise 313 · views 440 000 +

Guess you like

Origin blog.csdn.net/qianqing13579/article/details/104328312