2021年1月21日 机器视觉与计算机视觉技术

为什么计算机视觉项目中选择OpenCV而不是MATLAB

科学计算依赖于执行用不同编程语言编码的计算机算法。计算机视觉就是这样一个跨学科的科学领域,通常简称为CV。计算机视觉被用来开发能够自动完成诸如获取、处理、分析和理解数字图像等任务的技术。它也被用来从现实世界中提取高维数据来产生符号信息。简单地说,计算机视觉使计算机能够像人类一样看到、理解和处理图像和视频。

硬件、机器学习工具和框架的巨大进步导致了计算机视觉在物联网、制造业、医疗保健、安全等各个领域的实现。亚马逊、谷歌、微软和Facebook等主要科技公司都在这一领域的研发上投入了巨大的资金。

在目前可用于计算机视觉的许多工具和库中,有两种主要的工具OpenCV和Matlab在速度和效率方面表现突出。在本文中,我们将详细介绍这两种方法。

OpenCV:为计算机视觉量身定制的开源多平台解决方案

OpenCV由Intel开发,现在由Willow Garage支持,根据BSD 3条款许可证发布,免费用于商业用途。它是最流行的计算机视觉工具之一,旨在为计算机视觉算法提供一种优化的、经过良好测试的、基于开源的(C++)实现。开源库具有多种语言的接口,如C++、Python和Java,支持Linux、Mac OS、Windows、IOS和Android。它的许多功能都是在GPU上实现的。

OpenCV version 1.0的第一个稳定版本是在2006年。OpenCV社区自发布最新版本OpenCV version 4.1.1以来发展迅速,它还带来了dnn(Deep Neural Networks)模块的改进,dnn(Deep Neural Networks)模块是库中一个流行的模块,它用Deep Networks实现前向传递(inferencing),而Deep Networks是使用流行的深度学习框架预先训练的。

OpenCV提供的一些功能包括:

imread函数默认读取BGR(蓝绿红)格式的图像。

调整图像大小时,上下缩放容易。

支持各种插值和下采样方法,如INTER_NEAREST来表示最近邻插值。

支持多种阈值变化,如自适应阈值、按位操作、边缘检测、图像滤波、图像轮廓等。

使图像分割(分水岭算法)能够将图像中的每个像素分类为特定类别的背景和前景。

支持多种特征匹配算法,如蛮力匹配、knn特征匹配等。

随着其活跃的社区和机器学习的定期更新,OpenCV在计算机视觉项目领域只会有突飞猛进的发展。

MATLAB:一个授权的OpenCV集成快速原型工具

OpenCV的一个缺点是它的复杂性,这使得新手计算机视觉用户倾向于使用Matlab。由于缺少文档和错误处理代码,OpenCV相对来说更难学习。Matlab是MathWorks开发的一种专用编程语言,具有多范式的数值计算环境。它在全球拥有超过300万用户,被认为是工程师和科学家最容易和最高效的软件之一。它有一个非常强大和迅速的矩阵库。

Matlab也可以与OpenCV集成。这使得MATLAB用户能够探索、分析和调试包含OpenCV算法的设计。MATLAB的支持包包括MATLAB和OpenCV所需的数据类型转换。

MathWorks提供了计算机视觉工具箱,用于设计和测试计算机视觉、三维视觉和视频处理系统的算法、功能和应用程序。它还允许检测、跟踪、特征提取和对象匹配。Matlab还可以使用深度学习和机器学习算法(如YOLO v2、Faster R-CNN和ACF)训练自定义对象检测器。Matlab的大多数工具箱算法支持C/C++代码生成,用于与现有代码、桌面原型和嵌入式视觉系统部署相结合。

然而,Matlab并不像OpenCV那样包含很多用于计算机视觉的功能,OpenCV更多的功能是在GPU上实现的。Matlab的另一个问题是它不是开源的,它的许可证价格昂贵并且程序不可移植。

另一个在计算机视觉中非常重要的因素是代码的性能,特别是在实时视频处理方面。

哪个执行时间更快?OpenCV还是Matlab?

除了计算机视觉之外,其他领域在选择实现任何功能的编程语言或库时也需要更快的执行速度。在一篇题为“Matlab与OpenCV:不同机器学习算法的比较研究”的论文中,详细分析了这一因素。

改论文使用20个不同的实际数据集对Matlab和OpenCV进行了比较研究。这种区分是基于各种机器学习算法的执行时间,如分类与回归树(CART)、朴素贝叶斯(Naive Bayes)、增强(boost)、随机森林(Random Forest)和k近邻(K-Nearest Neighbor, KNN)。实验在Intel Core 2 duo P7450机器上运行,该机器具有3GB RAM,并在Matlab 7.12.0.635(R2011a)和OpenCV C ++ 2.1版上使用Ubuntu 11.04 32位操作系统。

该论文描述:“为了比较Matlab和OpenCV对于特定机器学习算法的速度,我们运行算法1000次,然后取平均执行时间。平均1000次以上的实验是不必要的,因为几百次之后就会收敛。”

实验结果表明,虽然Matlab是一个成功的科学计算环境,但在考虑执行时间的情况下,几乎所有的实验都是OpenCV无法比拟的。该论文还指出,这可能是由于维数、样本量和训练集的使用的组合。其中一个列出的机器学习算法KNN在数据集D16和D17上分别产生0.8和0.9的对数时间比。

显然,作为能够负担得起软件的大学的研究人员和学生,Matlab对于探索和处理计算机视觉概念非常有用。然而,在构建可用于工业生产的真实世界的计算机视觉项目时,OpenCV胜过Matlab。(作者:Vincy Davis)

Banner
Related Posts

最全分类!计算机视觉的图像标注类型及应用

2019年10月9日

2019年10月9日

计算机视觉的图像标注种类繁多,应用也不尽相同。想知道各种标注技术的效果吗?一起来看看它们在计算机视觉方面的应用和独特的案例吧!

图像处理中的深度学习技术

2018年8月9日

2018年8月9日

机器学习中的另一种技术是例如“超级矢量机”。与深度学习相比,必须手动定义和验证功能。在深度学习中,神经网络采用这一手动步骤:在训练过程中,独立地自动识别和提取特征。

为什么数据科学在高级图像识别中很重要?

2020年1月17日

2020年1月17日

由于视觉和语音是两个至关重要的人类交互元素,数据科学能够利用计算机视觉和语音识别技术来模拟这些人类任务。即使它已经开始模仿和杠杆在不同的领域,特别是在电子商务部门。机器学习的进步和高带宽数据服务的使用增强了图像识别的应用。

计算机视觉在钢铁夹杂物分析中的应用研究

2019年12月5日

2019年12月5日

卡内基梅隆大学材料科学与工程学(MSE)教授布莱恩·韦伯勒(Bryan Webler)表示:“夹杂物是一些微小的颗粒始终漂浮在钢中,”。固相夹杂物会聚在一起,堵塞喷嘴和其他控制钢水流动的流量控制系统。一些夹杂物化学成分会降低钢的延展性、抗疲劳性或整体韧性。 “它们会影响钢材的最终性能,这就是我们如此关心它们的原因。”

增强的机器人“视觉”能够与人类进行更自然的互动

2019年5月9日

2019年5月9日

在伦斯勒理工学院(Rensselaer Polytechnic Institute)的智能系统实验室里,一个名叫Pepper motors的机器人睁大了眼睛,说话轻声细语。其中一名研究人员对“小辣椒”进行了测试,当“小辣椒”准确描述自己在做什么的时候,它会做出各种各样的手势。当他交叉双臂时,机器人从他的肢体语言中识别出有什么不对劲。

计算机视觉以及它在商业中是如何应用的?

2019年9月17日

2019年9月17日

事实证明,大多数人认为理所当然的东西,即能够看到、处理并对视觉输入采取行动的能力,在机器中是非常难以复制的。这正是计算机视觉(cv)的目标。虽然计算机视觉可能不如人类视觉先进,但它今天已经发展到在商业中非常重要的地步。

计算机视觉的未来

2018年8月9日

2018年8月9日

计算机视觉通过缩短开发时间并创建与用户想要和需要的内容相匹配的最终产品,为用户提供直接的好处。而不是在一小群开发人员和C级管理人员的闭门造车中确定功能,是基于自然使用而不断发展。

神经科学与计算机视觉合作可以更好的理解视觉信息处理

2019年5月8日

2019年5月8日

神经科学家和计算机视觉科学家表示,一个空前庞大的新数据集将帮助研究人员更好地理解大脑是如何处理图像的。

视觉系统在零售业4.0中的作用

2020年1月6日

2020年1月6日

技术在零售购物中扮演着越来越重要的角色,这一发展被称为零售4.0。我们来看看计算机视觉是如何推动这场革命的。

hotonic Vision通过视频开发激光雷达传感器

2019年5月8日

2019年5月8日

英国初创公司Photonic Vision开发了一种激光雷达飞行时间传感的颠覆性方法。

英特尔深度学习工具包OpenVINO

2019年3月5日

2019年3月5日

OpenVINO包括英特尔的深度学习部署工具包,其中包括一个模型优化器,可以从许多框架(Caffe,Tensoflow,MxNet,ONNX,Kaiai)导入和训练模型。

计算机视觉技术的七个典型应用

2019年4月8日

2019年4月8日

计算机视觉在现实世界中已经有了大量的应用,而且这项技术还很年轻。随着人类和机器继续合作,人类的劳动力将被解放出来,专注于更高价值的任务,机器的自动处理依赖于图像识别的过程。

自动机器视觉初创企业Nexar发布实时互动地图产品

2019年7月19日

2019年7月19日

导引 :该公司在声明中表示,通过将用户提供的更新数据与汽车摄像头和传感器的Nexar数据相连接,该公司的地图可以实时警告驾驶员道路的危险,施工区域和道路标志的丢失等

计算机视觉究竟是个怎样的行业?

2019年6月20日

2019年6月20日

5月1日外媒消息,微软刚刚发布了 Windows Vision Skills 的预览版本,是一个 NuGet 包集合。

基于田间高光谱图像和机器学习估计芒果成熟度的光谱滤波器设计

2019年8月15日

2019年8月15日

本文旨在通过模拟几个具有不同真实光学滤波器的成像设备,开发一种新型滤波器选择方法,并利用高成本成像高光谱设备为特定应用设计一种成本较低的多光谱解决方案。

Comments
发表评论

电子邮件地址不会被公开。 必填项已用*标注