江大白:这些年从0转行AI行业的一些感悟

自从大白在知乎、CSDN等平台,不断分享文章、视频后,很多朋友添加大白的微信(wxqzy68)。

在相互交流中,很多小伙伴从他们的角度,分享了很多AI行业的经验,很多人也都加入了《AI未来星球》

从本周开始,大白将这些宝贵的工作、人生经验,也分享给大家,希望对大家工作学习有帮助。

PS:《AI未来星球》加入方式,可点击查看。


分享人:江大白
社群编号:V001号
所属方向:图像算法
所在行业:智能安防

01

个人简介

Hello,大家好,我是江大白。

很多朋友应该在网站或者知乎的视频上,经常听到这个开头语。

目前在AI公司,主要负责算法方面的工作,目标检测,目标追踪等,以及各类AI项目方案。

研究生毕业也正好进入第7个年头,正式进入AI行业两年多,非正式接触AI行业11年(研究生就开始接触CNN)。

距离提笔写下这篇文章时,网站www.jiangdabai.com,正好上线两个半月。

图片

时间过得太快,一晃身边已经发生太多的改变。

从进入机器视觉行业,到几次创业,再到AI行业,人生的经历,在不断的发生变化。

因此经常会回想,这6年收获了什么?

如果再次遇到几年前,刚进入AI行业的自己,会对他说什么?有什么样的建议?

这段时间,也有很多朋友加我的微信,问各种问题:

比如大学刚学AI行业,怎么入门?

想跳槽到AI行业,应该如何准备?

聊了很多人,发觉很多朋友入门时,工作几年后的很多困惑都是很相似的。

因此才萌发,想创立《AI未来星球》的想法。

在星球里,大家可以真诚的、没有套路的分享交流,AI行业的所思所想。

也可以迅速找到自己想要了解的行业、岗位心得,找到和自己志同道合的小伙伴,一起加油。

和大家一起,将AI未来星球,打造成AI领域,各个行业,各个岗位小伙伴的乌托邦!

02

为什么进入AI行业?

在2018年底,当时还从事机器视觉方向。

因为业务原因,需要常年在外奔波,那时也开始重新审视自己未来的方向。

是继续从事机器视觉,还是考虑其他方向呢?

后来其实也接触了很多公司,尝试了一些方向,最终还是选择了AI行业。

在刚开始接触的时候,基础很不扎实,因为不是科班出生。

但比较幸运的是,研究生的课题当时做的是工业OCR,字符识别。

而2013年时,卷积神经网络CNN刚刚开始有萌芽。

因此那时研究生的课题,就选择将CNN和OCR结合,写课题发专利。

当时应该也算第一批,做深度学习方向的研究生。

那时通过搜索引擎,检索深度学习,基本都没有相关文章,不像现在,百花齐放。

当时,边研究论文,边写了一些文章,比如《深度学习(卷积神经网络)一些总结》,也有十几万的浏览量。

虽然毕业后没有继续从事AI方面的工作,不过在2018年底,面临选择时,也算有一点点理论基础。

03

AI行业是如何入门,打怪升级的?

AI入门,其实每个人刚开始接触的时候,都会遇到很多问题。

大白19年初,刚开始接触各种智能安防项目时,也是一脸懵逼。

因为很多项目,都是各种算法串联起来的。

比如人脸识别算法,就包括人脸检测+人脸关键点定位+人脸矫正+人脸质量评估+人脸特征提取+特征对比。

刚开始接触的时候,差不多半年时间,每天晚上都在加班,疯狂补习相关的知识点,以及项目经验。

记得刚开始使用的检测算法,还是Cascade-RCNN,用的框架还是Caffe的框架。

后来在19年下半年的时候,才接触到Yolov3目标检测算法。

在后面的各种项目中,用了很多次Yolo算法,发觉目标检测,真的是非常重要的一部分。

比如在智能安防的很多项目中:安全帽检测、客流统计、火焰检测、人脸识别、打电话手机检测、反光服检测、动物识别、飞机检测等。

很多项目的第一步,都是要先进行目标检测,才能做后续的分析。

在2020年初,Yolov4刚出来的时候,大白就认真的研究了一下,感觉创新点很多。

但当时并没有打算写相关的文章,后来因为一个契机。

当时有两个同事问我Yolo算法,非常具体的细节,但是平时很少总结这方面的知识点。

所以感觉很尴尬,不知道如何,对他们讲解相关的内容。

因此才萌发写Yolo文章的心思,梳理自己的知识框架。

而且为了让自己思路清晰,让别人也能看懂。

花费了几个星期的时间,做各种网络架构图,算法效果图,才写完了第一篇Yolov4的文章,《深入浅出Yolo系列之Yolov4核心基础完整讲解》

后来Yolov5出来后,又写了《深入浅出Yolo系列之Yolov5核心基础完整讲解》

文章反响还是挺不错的,全网有100万左右的浏览量,在小众的算法行业,还是不错的成绩。

就在大家思考Yolo系列如何进一步改进时,旷视科技发布了Yolox算法。

大白也进行了深入的研究,进而编写了《深入浅出Yolo系列之Yolox核心基础完整讲解》,最终也获得了Yolox研发团队的认可。

04

工作学习中,

有哪些印象深刻的事?

回想从事AI行业的这几年,做过太多太多的项目,但是对我来说,印象最深刻的还是第一个项目。

19年刚入职的第二天,直属领导让我接手一个,商场动态VIP人脸识别的项目。

当时对于动态人脸识别,还是很懵懂的状态,不知道每一个算法之间,为什么要这样做?

从0开始写代码,边查资料,边想每个算法之间的逻辑。

那大半个月,基本每天都是12点半之后回家。终于在快一个月的时候,把整个项目写完了。

其实今天回想起来,都感觉那个项目还是很复杂的。

比如从算法端来说:

(1)要先写整套的人脸识别算法,将VIP人员的人脸信息,采集并录入到数据库中。

(2)再针对通道中的客流视频,使用人脸检测和头肩检测算法,对每个人的人脸和头肩都进行检测,并通过IOU计算,将人脸和头肩进行关联绑定。

(3)在此情况下,即使有的人转过身去,也可以利用头肩追踪的track_id,和人脸的信息进行对应。

而在业务端来说:

(1)需要在视频中,绘制进出口的线段,对客流进行统计;

(2)当人体进入到合适范围内,再对人脸追踪过程中,最好的一张人脸图像,提取人脸特征信息,并和数据库中的人脸,进行比对,计算最相似的一张人脸信息;

有了这段非常痛苦的经历过后,智能安防上很多的项目,其实都理清思路了,无非是某些模块进行拆分组合。

不过那段经历,虽然很痛苦,但还是非常感谢当时的Leader,目前他已移民新加坡,祝愿他的工作生活越来越好。

05

工作学习中

踩过哪些坑,哪些可以改进?

说到踩坑,其实有一种一直在踩坑的感觉。

因为很多项目中,可能遇到的问题,都是未知的。

而且有些项目,公司之前也并没有相关的经验,只能边走边踩坑。

比如在做某项目时,有一个功能,需要将检测到的的车辆图像坐标。

通过经纬度映射,拟合得到地图坐标系中的位置(经纬度)。

并将拟合的经纬度,和公司数据库中,所有汽车的经纬度,在一定范围内进行对比,得到符合条件的汽车信息,进而显示在原始视频中。

当时做项目时,发现很多汽车无法获取到信息,成功率很低。

经过一系列的排查,发现方法都没有问题,后来经过对Log文件分析后才发现。

在实际情况下,有些汽车并没有将自己的经纬度信息,发送到数据库中。

所以虽然在图像中,检测到了车辆,但在数据库中,根本无法找到相应的信息。

而这个情况,不会有工作人员告诉你,只有自己一点点去挖掘真相。

这个过程,既煎熬又残酷,虽然探索真相后的成就感满满,但是过程还是蛮难受的。

而改进的地方呢?

其实这也是为什么想搭建AI未来星球的初心:

(1)因为每个人的经验是渺小的,但是如果汇集一大批志同道合的朋友,经验心得大家都能真诚的分享,少走一些坑,对于工作或者生活,都会很有帮助。

(2)而且在工作或者学习中,常常遇到很头疼的技术难点,个人层面或者公司层面的,大家是否也可以一起真诚的出谋划策呢?

(3)每个人从自己的视角,在定期举办的活动中,分享项目中的一些坑,大家在项目中遇到相关问题时,就可以直接避坑,也是非常有价值的一件事。

06

如果遇见之前的自己

从入门的角度,会给他什么建议?

如果遇见几年前,刚入门的自己或者朋友,我会从理论和实践的角度,聊一下自己的一些想法:

(1)从目标检测的角度

因为平时目标检测算法用的很多,而且也有很多朋友会咨询,比如如何短时间入手目标检测算法,所以从快速学习目标检测Yolo的角度,提一些建议。

① 从0搭建起测试环境

先下载Yolo算法的代码(这里推荐使用Pytorch版本,更简单一些), 将运行环境等配置好,作者提供的预训练模型和图片也下载好,按照测试推理的代码,跑一遍,大概了解Yolo的方法。

② 了解算法内部原理

算法代码可以跑起来,有了信心之后,可以查看相关的文章或者视频,了解Yolo算法的一些常用知识点,可能还会有很多疑问,不过不用急。

③ 结合代码解决疑问

结合算法的推理测试代码,这时先不用看训练代码,一步步Debug运行,了解网络的前处理,网络加载,后处理等过程,可以将脑海中的很多疑惑解开;

④ 学习完整的训练流程

因为想快速学会整体操作流程,可以开始了解,如何标注图片,如何对标注图片通过脚本,生成可以训练的格式。

再将转换后的格式,使用Yolo的训练代码,训练起来,明白训练的大体流程;

⑤ 深挖算法训练代码细节

训练代码是算法的核心,明白了各个阶段的流程和疑问。

将训练代码,再一步步Debug运行,针对不懂的知识点,全部列出来,在网上针对性检索,一点点克服,最终可以快速入门;

(2)从算法的角度

① 制定好自己的计划

如果还在学生阶段,尽早制定好自己的学习计划,了解某些领域常用的一些算法,以及基础知识。

在此基础上,在寒暑假期间,找一些大厂,或者所在城市的AI公司实习,了解工作中实际的工作方式,这样可以清晰的知道,在学校期间,需要掌握哪些技能?

② 掌握必备且重要的算法

如果即将从事AI行业,在工作中,尽快借助一些项目,将整体的算法功能模块掌握。

在此基础上,再去反推,哪些算法可以优化加速?哪些算法可以改进网络?

(3)从项目的角度

① 算法只是一门技术

算法技术在公司体系下,是非常重要的核心技术,但是只是一门技术。

商业体系下,想销售出去,需要和研发、测试、项目经理等多种角色打交道,大家一起合力。

将算法和软硬件,以及项目结合,包装成产品,卖给客户。

因此我们要经常思考,在做的算法是否有价值?

某些算法已经达到瓶颈后,是否需要花费大量的精力物力去攻克?

项目交付是否可以通过其他的方式加快解决,比如销售、项目经理等。

② 不同部门合作的能力

如果不是沉迷算法,在公司体系下,我们会接触到各个部门的人员,比如开发部、测试组、项目经理等。

每个人的岗位不同,要求也不同。

我们可以和不同的同事交流,了解不同岗位的需求以及工作诉求。

比如测试组,他想了解项目中哪些测试信息?

这些信息,我们应该如何提供?如何形成测试案例?

多从不同的角度,对项目进行了解,我们也可以知道,算法应该从哪些方面进行改进?

(4)从个人成长的角度

① 尽快找到自己的人生定位

在工作一段时间后,你要尽快找到自己的人生定位,是走深的路线,还是广的路线。

如果走深的路线,应该如何走?如果走广的路线,应该覆盖哪些知识领域。

每个人的时间精力是有限的,特别是工作后,时间更是无比宝贵。

尽快找到自己的人生定位,确定好自己的方向,才能勇敢的一往无前。

② 经常锻炼拥有一个好身体

算法的工作,有的时候是很枯燥无聊的,而且需要长时间呆在电脑前。

给自己制定一个锻炼计划,每天完成什么样的运动量?

只有拥有强健的身体,我们才能投入百分百的动力到工作中,到探索自己的定位中。

最后,祝愿大家所得皆所愿,所遇皆所求,江湖路远,未来可期!

本文由 大白智能 作者:yang 发表,其版权均为 大白智能 所有,文章内容系作者个人观点,不代表 大白智能 对观点赞同或支持。如需转载,请注明文章来源。

发表评论

This site is protected by wp-copyrightpro.com