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

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

2019年6月2日

本地生活场景中包含大量极富挑战的计算机视觉任务,如菜单识别,招牌识别,菜品识别,商品识别,行人检测与室内视觉导航等。

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

2020年1月17日

2020年1月17日

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

用于太空星系检测的计算机视觉应用

2018年8月9日

2018年8月9日

观测天文学是天文学的一个分支,它涉及记录有关可观测宇宙的数据。地面和太空望远镜每晚用于观测行星和遥远的星系。专用望远镜仪器收集存储在远程服务器中的原始数据,然后使用多个图像处理和分析通道进行处理。

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

2018年8月9日

2018年8月9日

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

用3D绘制世界地图使我们能够用增强现实描绘街道

2019年4月19日

2019年4月19日

如果我们要获得真实的,针对特定地点的AR或精确的机器人交付服务,那计算机需要获得精确的导航地图。

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

2018年8月9日

2018年8月9日

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

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

2019年7月19日

2019年7月19日

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

研究人员发现用于3D视觉的神经元

2019年7月5日

2019年7月5日

英国纽卡斯尔大学的科学家在昆虫大脑中发现了计算3D距离和方向的神经元。了解这些可能有助于提高和发展机器人视觉应用。

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

2019年12月5日

2019年12月5日

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

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

2018年8月9日

2018年8月9日

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

图像分类和目标检测技术有什么区别?

2020年5月20日

2020年5月20日

图像分类和目标检测技术是计算机视觉领域的重要研究方法。这些技术帮助机器理解和识别实时对象和环境,帮助数字图像作为输入。多年来,计算机视觉技术已经被应用于多个领域,包括医疗保健、制造业、零售业等等。

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

2019年12月5日

2019年12月5日

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

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

2019年6月11日

2019年6月11日

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

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

2019年6月20日

2019年6月20日

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

英特尔深度学习工具包OpenVINO

2019年3月5日

2019年3月5日

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

Comments
发表评论

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