OpenCV的起源(发展历程)
OpenCV 缘起于英特尔想要增强 CPU 集群性能的研究。该项目的结果是英特尔启动了许多项目,包括实时光线追踪算法以及三维墙体的显示。
其中一位研究员 Gary Bradski(加里·布拉德斯基),当时正在为英特尔工作,他在访问大学的时候注意到很多顶尖大学研究机构,比如 MIT 的媒体实验室,拥有非常完备的内部公开的计算机视觉开发接口——代码从一个学生传到另一个学生手中,并且会给每个新来的学生一个有价值的由他们自己开发的视觉应用方案。相较于从头开始设计并完成基本功能,新来的学生可以在之前的基础上进行很多新的工作。
所以,OpenCV 怀着为计算机视觉提供通用性接口这一思想开始了策划。在英特尔性能实验室(Performance Library)团队的帮助下,OpenCV 最初的核心代码和算法规范是英特尔俄罗斯实验室团队完成的,这就是 OpenCV 的缘起,从英特尔软件性能组的实验研究开始,俄罗斯的专家负责实现和优化。
与他一同工作的 Victor Eruhimov(维克托·伊拉西莫夫)帮助构建了早期框架,Valery Kuriakin(瓦勒利·库里阿基恩)负责管理俄罗斯实验室并且为项目提供了非常大的助力。
以下是 OpenCV 想要完成的一些目标。
这些目标阐述了 Opencv 创建的目的。启用计算机视觉程序,将会增加对高性能处理器的需求,从而使得用户购买更快的处理器,相较于售卖额外的软件,能够更快增加英特尔的收入。
也许这就是这样一个开源并且免费的代码库是由一个硬件厂商而非软件厂商开发的原因。有时,硬件厂商内部拥有更多针对软件的创新空间。
目前,OpenCV 已经拥有接近 1100 万次的下载量(2009年3月,200万次),并且这个数字还在以平均每个月 160 000 次下载的速度增长。OpenCV 得到了来自很多用户的贡献,研发主力也很大部分转移到英特尔之外。
Opencv 发展的时间线如图 1 所示。在发展过程中,OpenCV 受到互联网泡沫的影响,也受到管理层和方向变更等诸多变化的影响,在这些波动的过程中,有时候根本就没有英特尔公司任何人员参与。然而,随着多核处理器的出现以及计算机视觉的许多新应用的问世,OpenCV 的价值开始上升。
类似地,机器人领域的快速增长也推动了许多用户开始使用和开发这个库。在成为一个开源的函数库之后,OpenCV 经过柳树车库(Willow Garage,一个机器人研究机构和孵化器)几年的开发,现在已经得到了 OpenCV 基金会的支持。在今天,OpenCV 由基金会以及一些上市公司和私人机构开发。
图1:OpenCV 发展历程
对 OpenCV 3.x 的补充说明:
OpenCV 更详细的发展历程可以访问:https://opencv.org/releases.html
因此,它是开源并且免费的,并且无论是研究还是商业目的代码都可以(全部或者部分的)使用或者被嵌入到其他程序中。它并不强制你声明基于此开发的代码必须是免费或者开源的,也不要求你将自己的改进反馈回 OpenCV 中,虽然我们希望可以。
其中一位研究员 Gary Bradski(加里·布拉德斯基),当时正在为英特尔工作,他在访问大学的时候注意到很多顶尖大学研究机构,比如 MIT 的媒体实验室,拥有非常完备的内部公开的计算机视觉开发接口——代码从一个学生传到另一个学生手中,并且会给每个新来的学生一个有价值的由他们自己开发的视觉应用方案。相较于从头开始设计并完成基本功能,新来的学生可以在之前的基础上进行很多新的工作。
所以,OpenCV 怀着为计算机视觉提供通用性接口这一思想开始了策划。在英特尔性能实验室(Performance Library)团队的帮助下,OpenCV 最初的核心代码和算法规范是英特尔俄罗斯实验室团队完成的,这就是 OpenCV 的缘起,从英特尔软件性能组的实验研究开始,俄罗斯的专家负责实现和优化。
Shinn Horng Lee (李信弘)是主要推动者,时任 IPP(集成性能基元)首席架构师。俄罗斯专家团队的负责人是 Vadim Pisarevsky(瓦迪姆·彼萨里夫斯基),他负责规划、编程以及大部分 OpenCV 的优化工作,并且到现在他仍是很多 OpenCV 项目的核心人物。
与他一同工作的 Victor Eruhimov(维克托·伊拉西莫夫)帮助构建了早期框架,Valery Kuriakin(瓦勒利·库里阿基恩)负责管理俄罗斯实验室并且为项目提供了非常大的助力。
以下是 OpenCV 想要完成的一些目标。
- 为高级的视觉研究提供开源并且优化过的基础代码,不再需要重复造轮子。
- 以提供开发者可以在此基础上进行开发的通用接口为手段传播视觉相关知识,这样代码有更强的可读性和移植性。
- 以创造可移植的、优化过的免费开源代码来推动基于高级视觉的商业应用,这些代码可以自由使用,不要求商业应用程序开放或免费。
这些目标阐述了 Opencv 创建的目的。启用计算机视觉程序,将会增加对高性能处理器的需求,从而使得用户购买更快的处理器,相较于售卖额外的软件,能够更快增加英特尔的收入。
也许这就是这样一个开源并且免费的代码库是由一个硬件厂商而非软件厂商开发的原因。有时,硬件厂商内部拥有更多针对软件的创新空间。
OpenCV 目前的情况
对于开源项目来说,项目需要超过一个临界质量使其能够自我维持,这是开源项目非常重要的一点。目前,OpenCV 已经拥有接近 1100 万次的下载量(2009年3月,200万次),并且这个数字还在以平均每个月 160 000 次下载的速度增长。OpenCV 得到了来自很多用户的贡献,研发主力也很大部分转移到英特尔之外。
Opencv 发展的时间线如图 1 所示。在发展过程中,OpenCV 受到互联网泡沫的影响,也受到管理层和方向变更等诸多变化的影响,在这些波动的过程中,有时候根本就没有英特尔公司任何人员参与。然而,随着多核处理器的出现以及计算机视觉的许多新应用的问世,OpenCV 的价值开始上升。
类似地,机器人领域的快速增长也推动了许多用户开始使用和开发这个库。在成为一个开源的函数库之后,OpenCV 经过柳树车库(Willow Garage,一个机器人研究机构和孵化器)几年的开发,现在已经得到了 OpenCV 基金会的支持。在今天,OpenCV 由基金会以及一些上市公司和私人机构开发。
图1:OpenCV 发展历程
对 OpenCV 3.x 的补充说明:
- 2016 年 12 月发布 OpenCV 3.2;
- 2017 年 8 月发布 OpenCV 3.3;
- 2017 年 12 月发布 OpenCV 3.4。
OpenCV 更详细的发展历程可以访问:https://opencv.org/releases.html
谁拥有OpenCV
尽管 Gary Bradski 在英特尔发起了 OpenCV 项目,但这个函数库的宗旨是促进商业和研究,这正是它的使命。因此,它是开源并且免费的,并且无论是研究还是商业目的代码都可以(全部或者部分的)使用或者被嵌入到其他程序中。它并不强制你声明基于此开发的代码必须是免费或者开源的,也不要求你将自己的改进反馈回 OpenCV 中,虽然我们希望可以。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算