大多数人听到深度学习, 都会望而却步, 因为会觉得很难, 在这个人工智能飞速进步的时代, 我也来抓一下时代的尾巴~
两周前, 我开始接触到 python 和 Turicreate 框架, 经过不懈的努力, 终于有所收获, 特在此总结一下经验, 如有不妥, 欢迎指正
如何让机器来识别图像? 感觉好难是吗, 想想人是怎么识别一条猫和一条狗的呢? 我们看到了它们有不同的特征对吧, 如果机器要区分它们, 也要来获取特征, 这就需要图像的特征提取, 这里需要数字图像处理的一点知识, 图片都是由像素组成的, 我们一般的彩色图片都是 RGB 图片, 它的每一个是由 R,G,B 三个分量组成, 数值范围是 0~255 我们需要提取所有像素值吗? 显然不需要, 这样内存消耗巨大那我们需要对这些像素如何处理才好呢? 接下来就是大名鼎鼎的 CNN 登场了, 很多人都听过它吧, 卷积神经网络, 原理啥的就不说了, 有兴趣可以网上搜搜告诉你一个好消息, 我们的 Turicreate 已经封装好了它的算法, 我们直接拿来用就好了接下来, 我们需要用大量的数据来训练, 最后训练后的结果保存成一个 model, 然后你随便找图片来它都可以识别, 当然你训练的图片都是猫的话, 它也只能识别你拿来的图像是不是猫 [泪]
接下里说说过程吧, 首先你需要选择一个系统, 当然 Turicreate 是 apple 的, 选择 MacOS 是最好的, 没有苹果装备的话, 那就和我一样在 Linux 下来操作吧我们需要安装 python 的集成环境 Anaconda, 中文名蟒蛇, 好霸气当然还有其他的集成环境, 建议选择这个, 可以网上了解一下几个的优劣多说一句, python 选择 2.7 版本的, 3.0 以上的会出错, 原因你懂的, 然后你需要配置环境变量, 不然一些操作权限问题很烦, 然后用 conda 命令创建一个虚拟环境就叫 turi, 激活它, 使用 pip 安装 turicreate, 然后配置这个包的环境变量打开自带的笔记本 (太简陋了, 建议安装一款 IDE)
写代码的时刻到了在里面新建一个 python2 的笔记本, 首先 import 这个 turicreate 包, 如果你没有配环境变量的话, 它就会告诉你找不到这个包,, 然后我们读入你需要训练的图片, 有很多类的话放在不同的文件夹下, 给这些不同文件夹里的图片添加标签, 标签的意义在于机器识别的图像反馈给你的结果是猫或狗, 而不是一个文件夹然后就可以开始训练了, 这里应该是最难的, 然而 Turicreate 已经封装好了, 你只需要调用对应的函数就可以了, 当然, 需要多说一句的是, 训练对电脑配置要求很高, 我的渣渣笔记本跑崩溃了好几次我训练结果准确率高达 98%, 训练后的结果保存成一个 model, 以后你就可以直接用这个 model, 而不需要再去训练了接下来你可以测试你的数据, 我测试了几次准确率蛮高的, 哈哈哈
有可能你觉得这太没意思了, 接下来我们加点难度, 我们如何用这个 model 来处理实时拍摄的视频, 当然也需要实时反馈识别的信息, 该怎么做呢?
是不是需要把拍摄的视频传送到我们电脑上, 这个我们使用一款软件叫做 IP 摄像头, 还要借用 opencv 库, 这里安装 opencv 库只需要和安装 turicreate 一样, pip 就可以了, 库名称是 opencv-python, 然后用 python 写几行代码定义一下用户名和 IP 地址就行了, 监控器大概就是这么做的吧传过来的视频我们该如何处理呢, 要知道我们识别的是图像, 而不是视频, 我们都知道视频是一帧一帧的图像, 所以我们只需要间隔保存一帧的图像就可以了, 没必要每帧都去识别, 保存有两种方法, 一种是设置定时器, 每隔一段时间保存一张图片, 另一种方法就是设置间隔值, 每隔多少帧保存一张图片, 值得注意的是, 前一种方法使用的是进程的函数, 所以容易陷入进程关不掉的局面血的教训当然我们不能一直都在保存图片, 我们可以在识别完成之后自动删除图片, 这样就不会占用大量内存了这样我们就可以便拍摄视频, 机器实时识别图像了, 如果你觉得还不过瘾, 请关注后续更新, 或者你有更好的玩法, 欢迎下方留言
来源: https://www.cnblogs.com/chenzhibin/p/8544665.html