本人IT领域硕士狗一枚,所上的学校既不是985、211,也谈不上双一流,在一个普通的不能再普通的城市的一所普通的不能再普通的学校。学习的专业是计算机科学与技术,研究的方向是图像识别与检测。
与一些大神不同的是,在读研究生之前从未接触过图像识别,更没有听说过深度学习。本科阶段所学的专业是物联网工程,那些年刚刚兴起的专业,虽然每个人都在提,但是更多的是流于形式、流于理论。本科阶段本人也算要强,幸得一位好导师,浅浅的学习了一段时间Java,学到的更多的是一种面向对象的思想(也就是技术没咋学到家)。
中国的研究生教育(以我的浅薄之见),你在校期间的学习内容主要是看你的导师(由于没有多少经费,所以没有叫导师Boss的习惯)的项目方向。很不幸,导师所接手的项目更多的是一些系统开发,使用的语言主要是.NET。虽然语言没有高低贵贱之分,但是.NET 确实有点跟不上时代的潮流(应该是我学艺不精带来的偏见)。
话不多说,进入主题。
由于所选的方向是图像识别,要想顺利毕业,还是需要做些功课的。
那时候(16、17年)Python还没有现在这么火爆(起码在我的认识范围内),通过和导师沟通,确定了研究方向——基于深度学习的遥感图像目标检测算法研究。
(以下均是我的个人浅薄之见,如果您有不同意见,欢迎留言沟通,如果您是杠精,出门右拐,走好不送)
做目标检测,或者是做图像识别的话现在主要有两个大的方向:其一是基于传统的方式的目标检测,其二是基于深度学习的目标检测。由于目前阶段基于深度学习的目标检测算法无论从检测速度、检测精度还是其他什么方面吧,都要优越于基于传统方式的目标检测算法。因此,要想在这条路上走,肯定你要来到基于深度学习的目标检测算法。这样就出现的两条学习之路:其一,从头开始,即从传统的目标检测开始研究,一步一步的来到深度学习领域;其二,从深度学习算法开始研究,在有一定的理解之后,返回去研究传统的目标检测算法。毫无疑问前一种方法是扎实的学习之路,但是传统的目标检测算法中的复杂计算、复杂公式、基于图像的种种认识巴拉巴拉等等等等是你前进的一个一个的绊脚石,说不定你就停留在某一个坑中停止了前进的脚步。
鉴于我的学渣身份,果断选择了第二条道路。在真正入手之前,对目标检测的一些基本常识、对神经网络的基本常识首先进行了一个了解,都不能称之为学习。在这里推荐一本书《OpenCV 3计算机视觉:Python语言实现(原书第2版)》(此处应该有广告费,但是没人给),只要你有简单的编程基础,你就可以读懂这本书,这本书使用Python从一个一个小的例子出发简单的介绍了图像的一些基本知识、检测的基本知识、识别的基本知识,除此之外,还有一些传统优秀的目标检测算法的Python实现,你不用管那些复杂的运算过程,一条Python语句就成功搞定(这里Python的有点初现)。记忆中(好久未读,存在记忆模糊的可能),在这本书的后面一些章节还介绍了神经网路、简单的基于深度神经网络的编程。
利用这本书,勤学苦练了大概两周(或者是三周)的时间,对于图像、目标检测、深度学习有了一定的了解和认识,下面就开始了自己的深度学习探索之路。
基于目标检测的深度学习算法在深度学习领域占据了十分重要的地位,身边有些同学一头扎进了最新的算法研究之中,虽然他们有自己的收获,但是我感觉饭还是一口一口的吃比较好。
基于目标检测的深度学习算法也有着自己的发展历程,学习这些发展历程对于了解那些大神的算法改进思路还是有很大好处的。真正的开始研究深度学习算法是在2017年下半年了,经过多方考证,基本上奠定了我的学习之路。
学习之路是RCNN-->SPPNet-->Fast RCNN-->Faster RCNN-->YOLO-->SSD,这条道路也算是基本符合了时间轴。
未完待续。。。