两个月的深度学习和计算机视觉领域探索总结

摘要: 历经两个月对深度学习和计算机视觉领域进行探索,获得一些经验与总结。

两个月的深度学习和计算机视觉领域探索总结

我使用了iPad Pro和LiquidText进行阅读或记笔记

我下决心提高在计算机视觉和机器学习技术方面的熟练程度。作为一名Web开发人员,我发现这个快速成长的领域令人感到兴奋,但是我没有任何使用这些技术的背景经验。现在,我踏上了两年的旅程来探索这个领域。

最终,通过不断探索任何一个学习机会来激励自己,使自己不断的前行。最初,我并没有研究机器学习,但是我想回到对某一个课题感到兴奋的状态。为了参加一个为期一天关于加密货币的学术会议,我开始搜寻相关的知识,直到下午会议开始,我意识到机器学习和计算机视觉更有趣。

开始学习

在一本涵盖深度学习和计算机视觉的书出版的时候,我开始了这项探索。来自PyImageSearch.com的作者Adrian Rosebrock编写了一个三卷巨著,它涵盖了计算机视觉和深度学习的高层思想和低层应用。在探索深度学习的同时,我遇到了对线性回归、朴素贝叶斯(Naive Bayesian)应用、随机森林/决策树学习等大量的解释。

两个月的深度学习和计算机视觉领域探索总结

我花了几个星期的时间阅读这本书,并且感觉可以把所有已经读过的各种博文和数学概念的队列、抽象思维的概念以及它实际的编程应用联系起来。我很快就读完了这本书,从而更好地理解了如何从整体上走进这个领域。我获得的最大的结论便是,巩固自己的工具和硬件来构建计算机视觉软件。

硬件实现

受到启发后,我找到一个树莓派(Raspberry Pi)和RPI摄像机用来分析视频流。我从来都不知道配置树莓派会花费这么长时间。最初, 我希望仅仅用视频流启动和运行树莓派,并且处理计算机上的视频。我尽可能的使树莓派的操作系统可以正常工作。一旦我意识到什么出了问题,然后我就不小心安装了错误的图像驱动,并出乎意外的安装了导致冲突的软件。最初我以为的视频处理过程,结果变成了一个多小时的调试噩梦。

到目前为止,我已经意识到,调试是开始机器学习和计算机视觉所涉及到的一个大方面。

第1步:得到一个想法。

第2步:开始寻找工具来做这件事。

第3步:安装所需的软件。

第4步:陷入冲突和意料之外的版本问题。

两个月的深度学习和计算机视觉领域探索总结

https://aiyprojects.withgoogle.com/vision#list-of-materials

我最初基于树莓派的灵感是一个想法,配置一个带有摄像头和GPS信号的简单设备。这个想法是考虑到未来有多少车辆需要许多台摄像机进行导航,无论是什么样的交通工具,都将需要许多的摄像机导航。无论是出于保险目的还是基本功能的需要,可以想象出未来将会创建和使用大量的视频片段。在这个过程中,将会有大量的媒体库被闲置,并且成为了解世界的一个庞大的数据库。

我结束了探索树莓派的计算机视觉能力的工作,但是也没如我所愿成功的获得任何有趣的成果。我发现有很多价格便宜的类树莓派设备,在一个比整个树莓派小很多的的PCB板上仍具有互通性和摄像功能。我意识到与其走硬件路线,还不如使用旧的iPhone来开发一些软件。

我在探索深度学习的硬件组成上进行了简单的尝试,这使我意识到应该尽可能的坚持使用软件。当软件部分不能解决问题时,包含一个新的变量仅仅只会增加其复杂性。

开源工具

在到处寻找机器学习资源的第一个月中,我发现了很多启动和运行都非常容易的开源工具。我了解到FANG科技公司提供了很多专有的服务,但是并不能确定他们是如何和那些开源方案竞争的。在IBM, Google, Amazon和Microsoft上可以被用作SAAS工具的图像识别以及OCR工具使用起来比较简单。令我感到惊讶的是,有很多优秀的开源方案值得配置来避免一些不必要的服务依赖。

两个月的深度学习和计算机视觉领域探索总结

例如,几年前,我启动了一个IOS应用程序来收集和分享涂鸦照片。我从 Instagram 和Flickr等带有地理标记图像的公开API对图像进行索引。利用这些资源,我使用像标签和位置数据这样的基本特征来区分图像是否被涂鸦。最初,我每周开始对数千张图像进行索引,很快每月就扩大到数十万张。我很快的注意到,编入索引的很多图像都没有涂鸦,取而代之的则是对我努力建立的社区具有破坏性的图像。我无法阻止人们自己拍摄的低质量的图像,或者从别人的种子下载的用起来有安全风险的标记不良的图像。因此,我决定了关闭整个项目。

两个月的深度学习和计算机视觉领域探索总结

现在,利用为对象检测和人体检测提供的机器学习服务和开源实现,我可以推出自己的易用的检索图像服务。以前我需要付费服务做这个质量检查,如即便是不花费数千美元的API费用,也要花费数百美元。相反,我现在可以从一些“数据科学”AWS框架中下载一个AMI,创建自己的API来检查不需要的图像内容。即便仅仅在两年以前,这对于我也是遥不可及的。

概论

在一个更高的层次上,在经历这个过程以前,我以为我在理论上已经理解了大部分对象识别和机器学习的过程。在开始将我所使用的机器学习内容的关联点连接起来的过程以后,我对需要学习什么概念日渐清晰。例如,我并不仅仅知道线性代数对于机器学习很重要,现在我理解了如何将问题分解为多维数组/矩阵,并对其进行批量处理,以便找到可以在理论上表示的模式。在这之前,我知道在特征之间存在一些抽象的概念,以及如何将它们表示为可以在一系列评估项目中进行比较的数字。现在我更清楚地理解到,在很多直接和间接相互关联的因素下,机器学习的维度是如何表示的。矩阵数学的特征检测和评估的多维形式对我来说仍然是一个谜,但是我能够理解更高层次的概念。

两个月的深度学习和计算机视觉领域探索总结

以前难以辨认的网络架构图现在看起来很清晰

确切的来说,阿德里安·罗斯布罗克(Adrian Rosebrock)的书让我对解码机器学习算法的简图顿悟了。深度学习网络架构的分解现在也可以理解一些了。我还熟悉用于各种图像识别模型的基准数据集(MNIST,CIFAR-10和ImageNet)以及图像识别模型(VGG-16,Inception等)之间的差异。

计时—公公基金会

现在学习机器学习和计算机视觉很重要,我有这一认知的原因与这本书上的一个概念有关:政府投入大量资金进行研究的领域将有巨大的创新。目前,除了数亿美元以拨款和奖学金的形式用于研究项目外,还有特别的资金分配给具体的机器学习相关项目。

两个月的深度学习和计算机视觉领域探索总结

例如:应用于“cat_ness”的pix2pix算法。https://distill.pub/201

除了政府支出之外,私人机构的公开研究似乎也在增长。现存的来自于大型科技公司和公共基金会的研究形式,正在推进机器学习这一整个领域。我个人从来没有见过私人机构出资的公共项目有共同的关注点,如distill.pub和像OpenAI基金会那样的机构。

可执行的任务

回顾我一直以来阅读的资料,我意识到我的记忆已经开始令人失望了。我将从这一点开展更多的以行动为主导的阅读。现在,我有一个拥有GPU框架可以运行,因此我并不认为围绕训练模型和操作数据集上有任何限制。

最近,我参加了由Carto主持的大型空间数据科学大会。在那里,我了解到在空间数据科学领域有多少我不知道的知识。在参加会议之前,我只是把整个领域叫做“地图定位数据资料”。

本文由阿里云云栖社区组织翻译。

文章原标题《Two months exploring deep learning and computer vision》

作者:Leonard Bogdonoff

译者:Mags,审校:袁虎。

相关推荐