2020年9月18日 机器视觉与计算机视觉技术

为什么计算机视觉项目中选择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

新的过滤器增强了机器人对6D姿态评估的视觉感知能力

2019年8月7日

2019年8月7日

研究人员最近进行了一项关于6D物体姿态估计的研究,目的是开发一种过滤器,使机器人具有更强的空间感知能力,从而能够更准确地操纵物体和在空间中导航。

深度学习“瓶颈”已至,计算机视觉如何突破困局?

2018年8月9日

2018年8月9日

从人工智能的发展过程看,深度学习是继专家系统之后人工智能应用的又一重要研究领域,也是人工智能和神经计算的核心研究课题之一。Alan Yuille认为,现在做AI不提神经网络,成果都很难发表了,这不是一个好势头。

利用计算机视觉和机器学习技术实现莴苣种植的精准化作业

2019年6月11日

2019年6月11日

Earlham Institute的研究人员开发了一个机器学习平台,使用计算机视觉和航拍图像对莴苣作物进行分类。

计算机视觉的最佳图像注释平台

2019年5月10日

2019年5月10日

我们一直在寻找最佳的图像注释平台,该平台提供多种功能、项目管理工具和注释过程的优化(当您需要注释50k图像时,每个图像减少1秒钟!)。

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

2020年1月17日

2020年1月17日

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

利用机器学习消灭撒哈拉以南非洲采采蝇

2018年8月9日

2018年8月9日

“我们将使用数据科学来创建一个基于机器学习的自动化系统,它可以从采采蛹中快速确定是雄性还是雌性,”Zsuzza Marka说。这一系统将成为机器人分拣机的基础,我们希望该机器最终将用于撒哈拉以南非洲地区,以减轻采采蝇的危害。”

计算机视觉和图像处理之间有什么区别?

2018年8月9日

2018年8月9日

图像处理是计算机视觉的一个子集。计算机视觉系统利用图像处理算法对人体视觉进行仿真。例如,如果目标是增强图像以便以后使用,那么这可以称为图像处理。如果目标是识别物体、汽车自动驾驶,那么它可以被称为计算机视觉。

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

2019年5月9日

2019年5月9日

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

掌握计算机视觉开发技能的8个步骤

2019年8月5日

2019年8月5日

在与几位致力于人工智能和计算机视觉项目的开发人员交谈之后,我提出了八个步骤,成为一名出色的计算机视觉开发人员。但是,在深入研究每个步骤之前,让我们看一下计算机视觉技术最适合的案例:

CMU的研究人员设计出利用计算机视觉来观察周围角落的新技术

2019年6月20日

2019年6月20日

未来的自动驾驶汽车和其他机器智能系统可能不需要视线来收集极其详细的图像数据:卡内基梅隆大学(Carnegie Mellon University)、多伦多大学(University of Toronto)和伦敦大学学院(University College London)的一项新研究设计出了一种“观察周围角落”的技术。

英伟达Jetson Nano定位于大众市场机器学习

2019年3月20日

2019年3月20日

GPU巨头英伟达(Nvidia)发布了用于大众市场产品的微型人工智能电脑Jetson Nano。

富士通发布了新的AI计算机视觉软件以简化行为识别培训

2019年12月5日

2019年12月5日

富士通开发了一种基于人工智能的新方法,可以对视频片段进行行为分析,据该公司公告称,它可以识别出一系列细微而复杂的人类活动,而无需大量的培训数据。

计算机视觉的优点和局限性

2019年9月10日

2019年9月10日

计算机视觉是计算机科学的一个分支,它允许机器系统实时地查看、处理和解释视觉信息。

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

2019年9月17日

2019年9月17日

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

计算机视觉软件市场的最新趋势

2018年8月9日

2018年8月9日

计算机视觉软件正在改变各个行业,不仅使消费者的生活更容易,而且让人产生兴趣。作为一个领域,计算机视觉已经获得了大量的宣传和投资。北美计算机视觉软件市场总投资额为1.2亿美元,而中国市场则飙升至39亿美元。

Comments
发表评论

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