作为一名 web 开发人员, 我发现计算机视觉和机器学习领域的快速发展是让人感到兴奋, 但是我没有任何使用这些技术的背景经验 最终, 我决定用两年的时间来转型
开始学习
在一本涵盖深度学习和计算机视觉的书出版的时候, 我开始了这段转型之旅 来自 PyImageSearch.com 的作者 Adrian Rosebrock 编写了一个三卷巨著, 它涵盖了计算机视觉和深度学习的高层思想和低层应用在探索深度学习的同时, 我遇到了对线性回归朴素贝叶斯 (Naive Bayesian) 应用随机森林 / 决策树学习等诸多新的算法
我花了几个星期的时间阅读这本书, 并且把所有已经读过的各种博文和数学概念的队列抽象思维的概念以及它实际的编程应用联系起来我很快就读完了这本书, 从而更好地理解了如何从整体上走进这个领域我获得的最大的结论: 筹备自己的工具和硬件来构建计算机视觉软件
硬件实现
受到启发后, 我找到一个树莓派 (Raspberry Pi) 和 RPI 摄像机用来分析视频流我从来没想过配置树莓派会花费这么长时间最初, 我希望仅仅用视频流启动和运行树莓派, 并且处理计算机上的视频我尽可能的使树莓派的操作系统可以正常工作一旦我意识到什么出了问题, 然后我就不小心安装了错误的图像驱动, 并出乎意外的安装了导致冲突的软件最初我以为的视频处理过程, 结果变成了一个多小时的调试噩梦
到目前为止, 我已经意识到调试机器是开始机器学习和计算机视觉所涉及到的一个大方面
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 等) 之间的差异
熟能生巧(动手去做才是王道)
回顾我一直以来阅读的资料, 我发现大多数知识还是不能熟练掌握, 为此我决定开展更多的行动来配合阅读相关博客或许只有理论和实践相结合才能获得更快的成长速度为此, 我购买了一个 GPU 有了它我再也不需要因为训练模型和操作数据集等问题有任何的限制
如果你想要在机器学习的相关技术上有所提高, 你一定不要只看论文和博客, 一定要尝试自己动手去做, 这样你才有可能收获更多
来源: http://click.aliyun.com/m/42650/