点击上方“AI搞事情”关注我们

一、介绍

OpenCV(开源计算机视觉库:http://opencv.org)是英特尔开源的一个跨平台计算机视觉的BSD许可库,包含数百种计算机视觉算法。OpenCV由Gary Bradsky于1999年在英特尔创立,第一版于2000年问世。Vadim Pisarevsky加入Gary Bradsky,一起管理英特尔的俄罗斯软件OpenCV团队。2005年,OpenCV用于Stanley,该车赢得了2005年DARPA挑战赛的冠军。后来,在Willow Garage的支持下,由Gary Bradsky和Vadim Pisarevsky领导了该项目,它得以继续积极的发展。OpenCV现在支持与计算机视觉和机器学习有关的多种算法,并且正在日益扩展。

OpenCV具备 C++、Python 和 Java 接口,支持 Windows、Linux、Mac OS、iOS 和 Android 系统,可以说 OpenCV 是 CV 领域开发者与研究者的必备工具包。继2015 年 6 月,OpenCV 3.0 发布以来,时隔三年半,OpenCV 4.0 终于发布。至此,OpenCV 已经走过了近 18 个年头。相比于之前的版本,它进一步完善了核心接口,并添加了二维码检测器、ONNX 转换格式等新特点。

1. 重要更新

● OpenCV 4.0 现在是一个 C++11 库,要求 C++11 兼容的编译器。所需的 CMake 版本至少为 3.5.1 。
● 移除 了OpenCV 1.x 中的大量 C API。
● core 模块中的 Persistence(用于存储和加载 XML、YAML 或 JSON 格式的结构化数据)已经完全用 C++ 来重新实现,因此对应的 C API 也被移除。
● 添加了新模块 G-API,一种基于图的高效图像处理流程。
● 更新dnn模块,包含Vulkan 后端,且支持ONNX格式的网络。
● 实现了流行的 Kinect Fusion 算法,且为 CPU 和 GPU (OpenCL) 进行优化。
● objdetect 模块中添加了二维码检测器和解码器。
● 将高效、高质量的 DIS dense optical flow 算法从 opencv_contrib 移到 video 模块。

此外,OpenCV 4.0 支持 Mask-RCNN 模型,性能也有所提升,图像处理操作可实现 15%-30% 的速度提升。

2. opencv与DL

自从 OpenCV 3.1 以来,它就包含了能实现深度网络前向传播的 DNN 模块,通过该模块可以加载由 Caffe 等深度学习框架训练的模型数据,并执行前向推理运算,输出预测结果。在 OpenCV 3.3 中,DNN 模块从 opencv_contrib 移到了核心代码库,并取得了显著的加速。在 OpenCV 4.0 的更新中,它强化了 DNN 模块并添加支持 ONNX 交换格式的神经网络,这一切都表明 OpenCV 非常注重其与深度学习之间的关系。

除了libprotobuf,dnn模块不依赖任何额外的外部库,而且现在 libprotobuf 已经包含到了 OpenCV 中。
opencv支持的框架:
● Caffe
● TensorFlow
● Torch
● Darknet
● Models in ONNX format

支持的层:
● AbsVal
● AveragePooling
● BatchNormalization
● Concatenation
● Convolution (including dilated convolution)
● Crop
● Deconvolution, a.k.a. transposed convolution or full convolution
● DetectionOutput (SSD-specific layer)
● Dropout
● Eltwise (+, *, max)
● Flatten
● FullyConnected
● LRN
● LSTM
● MaxPooling
● MaxUnpooling
● MVN
● NormalizeBBox (SSD-specific layer)
● Padding
● Permute
● Power
● PReLU (including ChannelPReLU with channel-specific slopes)
● PriorBox (SSD-specific layer)
● ReLU
● RNN
● Scale
● Shift
● Sigmoid
● Slice
● Softmax
● Split
● TanH

对于对性能要求很高的神经网络层,DNN 模块还包括 SSE、AVX、AVX2 和 NEON 等底层加速库,且还有持续优化中的 Halide 后端。还有OpenCL 也已经整合到OpenCV 3.3以后发布的版本中。

各模型在dnn模块下的性能:
CPU下单张图片最佳计算时间(单位:毫秒,基于float32运算)

GPU(OpenCL 2.0)下单张图片最佳计算时间(单位:毫秒,基于float32运算)

具体参考:

https://github.com/opencv/opencv/wiki/Deep-Learning-in-OpenCV

二、安装

本系列教程基于windows python3环境进行实验,因此,本教程介绍如何在windows环境下安装和使用python的opencv接口。

1. 安装Annaconda

下载地址:

https://www.anaconda.com/distribution/#windows

根据电脑配置选择相应版本,在这,我选择64位版本进行安装,默认安装python3.7。

双击安装文件进行安装 ->”Next”->”I Agree”->选择”Just Me”->”Next”->选择安装路径->”Next”,

□ 勾选添加环境变量
□ 勾选设为默认python环境

点击”Install”安装 点击”Finish”完成安装。

2. 安装opencv-python

采用最简单的安装方法:pip命令安装,打开命令行终端CMD,输入python,查看是否安装python环境。

exit() 退出后,输入以下命令:

pip install opencv-python

默认安装最新的发布版本,本安装版本:opencv-python 4.2.0

提示安装成功后,测试opencv版本:

# 查看opencv版本
import cv2
print(cv2.__version__)

到此,大功告成,开启opencv之旅吧!!!

附录

后续可能会用到的python包:numpy、matplotlib、pillow

pip install numpy
pip install matplotlib
pip install Pillow

长按二维码关注我们

有趣的灵魂在等你

【opencv系列01】OpenCV4.X介绍与安装相关推荐

  1. openresty开发系列10--openresty的简单介绍及安装

    openresty开发系列10--openresty的简单介绍及安装 一.Nginx优点 十几年前,互联网没有这么火,软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏 ...

  2. Kafka系列一之架构介绍和安装

    Kafka架构介绍和安装 写在前面 还是那句话,当你学习一个新的东西之前,你总得知道这个东西是什么?这个东西可以用来做什么?然后你才会去学习它,使用它.简单来说,kafka既是一个消息队列,如今,它也 ...

  3. 【KVM系列01】KVM简介及安装

    第一章 KVM简介及安装 1. KVM 介绍 1.0 虚拟化简史 1.1 KVM 架构 2. KVM 的功能列表 3. KVM 工具集合 4. RedHat Linux KVM 安装 4.1 在安装  ...

  4. Redis系列一、redis介绍与安装

    一.Redis介绍 redis是一种基于键值对(key-value)数据库,其中value可以为string.hash.list.set.sorted set等多种数据结构,可以满足很多应用场景.还提 ...

  5. Power Query 系列 (01) - Power Query 介绍

    Power Query 介绍 Power Query 是微软提供的工具,Excel 2013 版作为插件加载使用,从 Office 2016 版开始,Power Query 的功能集成到 Excel ...

  6. Git 分布式版本控制工具01:Git介绍+下载+安装

    1. 前言 1.1 什么是Git Git 是一个分布式版本控制工具,通过Git 仓库来存储和管理源代码文件文件. 在IDEA开发工具中可以集成Git: 集成后在IDEA中可以看到Git相关图标: 可以 ...

  7. 【opencv系列08】OpenCV4.X图像融合操作

    点击上方"AI搞事情"关注我们 图像叠加 add(src1, src2, dst=None, mask=None, dtype=None)函数或者numpy操作实现图像按位相加,若 ...

  8. 【opencv系列07】OpenCV4.X图像基本操作

    点击上方"AI搞事情"关注我们 一.像素操作 可以通过行列坐标访问像素值,对于BGR图,返回一个蓝色.绿色.红色通道的数组值,对于灰度图,仅返回相应的强度值. 代码 import ...

  9. Android Studio 配置OpenCV4.4.0 不用安装OpenCV Manager (泪崩居然用了礼拜天2天的时间居然还没配置成功,今天又看了下配置成功了)

    Android Studio 配置OpenCV4.4.0 ,说来惭愧居然用户礼拜天2天的时间呢,期间遇到的问题大致有4个问题 这里我也总结出了最后在列举出来,(可能是新版和之前旧版本不一样的问题按照网 ...

最新文章

  1. 【小白学习C++ 教程】三、C++用户输入、判断语句和switch
  2. 开源组件DocX导出Word
  3. 19-linux下ElasticSearch.6.2.1与head、Kibana、X-Pack、SQL、IK、PINYIN插件的配置安装
  4. 2013.8.4thinkPHp学习
  5. nodejs mysql 执行多条sql语句
  6. Vue-Quill-Editor富文本编辑器的使用
  7. 三菱plc232通讯实例_三菱PLC编程实例与通讯
  8. UNITY游戏开发源码
  9. rec删除xposed_Xposed框架对应各系统版本的下载与卸载
  10. 高端游戏计算机配置单,2021年高端游戏电脑配置清单推荐
  11. 字符串类型变量的相关内置函数详解
  12. robots协议文件的写法及语法属性解释
  13. 贪心(优先队列) - New Year Snowmen - CodeForces - 140C
  14. Android Excel(xls,xlsx)表格数据简单生成和读取尝试
  15. 蓝桥杯实验4--按键之独立键盘(proteus仿真)
  16. hssfrow 单元格样式_POI设置Excel单元格样式
  17. Java中File使用--创建文件
  18. catia重心主惯量矩 m1_「CATIA V5教程」CATIA的公共工具栏有哪些?工具栏基本知识...
  19. JRebel最新激活服务器地址链接
  20. 【操作系统】CPU 时间片 分时 轮转调度

热门文章

  1. WCHAR,CHAR,TCHAR的区别
  2. matplotlib包的学习(二)
  3. scanf函数使用遇到的问题
  4. 第三届山东大数据-威海赛区-民宿空置预测-排行榜
  5. 七夕节,程序员们都怎么哄女朋友开心?
  6. 【NLP】新分类!全总结!最新Awesome-SLU-Survey资源库开源!
  7. 【机器学习】使用MLflow管理机器学习模型版本
  8. 数据预处理|关于标准化和归一化的一切
  9. 报名丨“眼界大开 声临其境”网易首届音视频技术大会倒计时!
  10. 使用 VideoToolbox 探索低延迟视频编码 | WWDC 演讲实录