最近在看英文版的《Learning OpenCV 3》,看原书与看中文版相比,效率上不会有明显劣势,多了查单词的时间,但能更理解内容,翻译有时会省略一些显而易见但重要的细节,即翻译是从译者的角度,去理解、删减内容后再去讲述,还是看英文原版比较好。

这本书的两个作者是Adrian Kaehler博士和Gary Bradski博士。

Dr.Adrian Kaehler是一个企业家、硅谷Deep Learning Group的创始人,他的著作涵盖机器学习、统计模型、计算机视觉和机器人。Adrian Kaehler博士还在斯坦福大学AI实验室任职,曾作为成员,赢得DARPA Grand Challenge的胜利,这是一个无人驾驶技术业内的顶级比赛,由DARPA(美国国防先进研究项目局)出资赞助。美国国会授权DARPA部门可以出资支持赞助那些能够给军事应用带来革命性改变的技术,这项赛事一开始是为了促进在极限环境下无人驾驶车辆技术的发展。

Gary Bradski是Arraiy.ai的CTO,曾在多个创业公司任职,并在斯坦福大学AI实验室的计算机科学部门做consulting professor,他是OpenCV库的创立者,在开源方面有很多贡献,在开源社区享有极高声誉。

深度学习是OpenCV的未来方向之一

上一篇也提到,Learning OpenCV 3这本书在谈到OpenCV的未来时首先提到了「深度学习」:

OpenCV可以读取和运行由例如Caffe、Torch、Theano等深度学习框架训练的模型,代码在:
https://github.com/opencv/opencv_contrib/tree/master/modules/cnn_3dobj。

OpenCV还将支持在嵌入式系统和智能相机这样的设备上运行深度学习模块。OpenCV的DNN模块扩展自tiny_dnn。

tiny_dnn是一个基于DNN的轻量级深度学习开源库,现在OpenCV已发展为支持包括Tensorflow在内的大多数主流深度学习框架。

实现方式:通过DNN调用训练好的模型

去年差不多这个时候(2017年8月),pyimagesearch网站发表过一篇文章《Deep Learning with OpenCV》:

文中提到,我们不能也不应该使用OpenCV来训练模型,而是应该通过DNN模块来调用其他深度学习框架训练的结果。

什么是DNN?

在介绍DNN之前,我们再来简单看一下OpenCV的安装、代码结构等。有两个地方可以下载OpenCV,一个是官网https://opencv.org,另一个是OpenCV的GitHub。官网上,每个版本都给出了下面这样的列表:

Documentation
Sources
Win pack
iOS pack
Android pack

可以根据需要下载相应内容。Documentation是在线文档,pack就是sources+build。而GitHub上面是专门放sources的,另外,如果需要opencv_contrib就只能来GitHub下载。

DNN即Deep Neural network,一种人工神经网络,简单地说就是很多层的神经网络。OpenCV从3.1.0开始支持DNN,2.x时代是没有dnn的,我看了一下2.4.9的\sources\modules\contrib\src文件夹,一共39个cpp文件,没有dnn相关的源码,包括最新2.x版本的2.4.13.6也没有。3.1.0和3.2.0的DNN模块都在opencv_contrib中,3.3.0开始被提到主仓库中了。

另外,有两个与DNN长得很像的名词:CNN、RNN,CNN是convolutional neural network,即卷积神经网络,RNN是recurrent neural network,循环神经网络。

Tensorflow:一种深度学习框架

Tensorflow最初是由Google Brain团队(隶属于Google的AI部门)中的研究人员和工程师开发的,可为机器学习和深度学习提供强力支持。这里有两点需要注意,一是「开源」,Tensorflow在GitHub上保持开源,但Google仍在维护其内部版本。二是「之一」,Tensorflow只是众多开源机器智能库中的一种。

为什么选择Tensorflow呢?简单的说,首先Tensorflow可能是最流行的。目前流行的几个深度学习库是:Tensorflow、Theano、Torch、Keras、Caffe。其次,Tensorflow的接口非常简洁。最后,Tensorflow是为产品而生的,而不仅仅是研究。

两个数据集

我看到很多使用OpenCV调用Tensorflow(或者Caffe)模型的例子,都用到了下面两个数据集。

CIFAR-10数据集:
http://www.cs.toronto.edu/~kriz/cifar.html
它有python、Matlab、binary三个版本的数据集,其中binary是适用于C/C++的。

MNIST数据集:
http://yann.lecun.com/exdb/mnist/

大家可以思考一下,如何建立自己的数据集?


本文2018-08-05 发于公众号:老王AI路,更多文章可扫描左侧二维码查看

OpenCV调用TensorFlow是什么意思相关推荐

  1. OpenCV调用TensorFlow预训练模型

    OpenCV调用TensorFlow预训练模型 [尊重原创,转载请注明出处]https://panjinquan.blog.csdn.net/article/details/80570120 强大Op ...

  2. opencv打开pb_【OpenCV】OpenCV4调用tensorflow pb模型进行目标检测

    先在visual studio 2015新建一个工程并配置好环境. OpenCV调用tensorflow的pb模型,不仅需要一个.pb文件,还需要一个.pbtxt文件. 一些预训练好的pb模型的下载地 ...

  3. VS2015+OpenCV3.4.5+QT5.12+WINDOWS10用c++调用tensorflow训练好的.pb文件图像检测

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_31806049/article/ ...

  4. 记录::Opencv调用tensorflow2.x-Keras模型

    需要用C++调用tensoeflow模型,但我发现现在的tensorflow2.x的版本都是用keras搭建的,不想用动态库,决定直接用Opencv调用模型. 库版本: tensorflow 2.2. ...

  5. opencv调用TensorFlow1.x训练的pb模型

    文章目录 前言 一.搭建虚拟环境 二.通过frozen_pb来生成pbtxt文件 1.获取opencv官方的转化文件 2.生成pbtxt文件 三.OpenCV调用pb模型 前言 通过opencv读取p ...

  6. 基于OpenCV和Tensorflow的深蹲检测器

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本期我们将介绍如和使用OpenCV以及Tensorflow实现深蹲 ...

  7. 深度学习调用TensorFlow、PyTorch等框架

    深度学习调用TensorFlow.PyTorch等框架 一.开发目标目标 提供统一接口的库,它可以从C++和Python中的多个框架中运行深度学习模型.欧米诺使研究人员能够在自己选择的框架内轻松建立模 ...

  8. 基于OpenCV与tensorflow实现实时手势识别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 干货-阅读需10分钟左右 基于OpenCV与tensorflow ...

  9. python打开摄像头获取图片_Python基于opencv调用摄像头获取个人图片的实现方法

    接触图像领域的应该对于opencv都不会感到陌生,这个应该算是功能十分强劲的一个算法库了,当然了,使用起来也是很方便的,之前使用Windows7的时候出现多该库难以安装成功的情况,现在这个问题就不存在 ...

最新文章

  1. python观察日志(part2)--牛顿法计算平方根
  2. 工业相机与镜头分辨率匹配
  3. 机器学习(2)之正规方程组
  4. 【转】iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
  5. 程序员转讲师 | 你约我写
  6. Ansys Lumerical Zemax Speos | CMOS 传感器相机:3D 场景中的图像质量分析
  7. 取色器实战(Qt含源码)
  8. ObjectARX开发(自定义块以及属性的获取)
  9. 暗黑模式?安卓适配一波
  10. 计算机专业注意身体,请注意身体 长时间使用电脑对身体的危害
  11. mac OS系统中 设置ssh连接端口
  12. 多米诺骨牌java_通过递归和回溯找到所有可能的多米诺骨牌链
  13. 一个完整的增删改查模块(以我们的项目‘危化品库管理’模块为例)
  14. 我国4种托盘的标准尺寸,托盘高度一般多少
  15. chrome/edge解决不能打开问题
  16. UNIFI 多wan端口转发设置
  17. U-boot之flash初始化完全代码分析
  18. ELISPOT酶联免疫斑点技术
  19. 电脑快捷方式图标变白的解决方式
  20. 华为云携手甘肃省医疗保障局,以数字科技为智慧医疗注入新动能

热门文章

  1. 微信小程序-模板的定义和使用
  2. Unity 与 微信小程序(游戏)交互
  3. PMO只是PM的工具人?太肤浅了
  4. 雅礼集训及WC2018划水记
  5. Fedora 18安装google输入法和云拼音
  6. Nginx 反向代理 Windows安装部署教程
  7. 吞吐量和响应时间的关系
  8. 资本寒冬 瓜子二手车数据动刀“整容”只为傍大款?
  9. 实验--mpls ospf sham-link
  10. 苹果和虫子c++(新手练习)