一文概括机器视觉常用算法以及常用开发库

article/2025/7/16 10:36:38

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达85829676925a0b8dedb4fba9e7a52ed5.jpeg

本篇就软件部分,对机器视觉的算法处理进行大致概括分析。


一、算法(预处理算法、检测算法)

在采集完图像后,首先会对图像进行预处理操作。保证图像的对比度清晰,水平。方便后续图像处理。

常用的图像处理算法:

1,图像变换:(空域与频域、几何变换、色度变换、尺度变换)

  • 几何变换:图像平移、旋转、镜像、转置;

  • 尺度变换:图像缩放、插值算法(最近邻插值、线性插值、双三次插值);

  • 空间域与频域间变换:由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。因此,有时候需要将空间域变换到频域进行处理。例如:傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为频域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。

2、图像增强:

图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响。

  • 灰度变换增强(线性灰度变换、分段线性灰度变换、非线性灰度变换);

  • 直方图增强(直方图统计、直方图均衡化);

  • 图像平滑/降噪(邻域平均法、加权平均法、中值滤波、非线性均值滤波、高斯滤波、双边滤波);

  • 图像(边缘)锐化:梯度锐化,Roberts算子、Laplace算子、Sobel算子等;

3、纹理分析(取骨架、连通性);

4、图像分割:

图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。

(1)阈值分割(固定阈值分割、最优/OTSU阈值分割、自适应阈值分割);

(2)基于边界分割(Canny边缘检测、轮廓提取、边界跟踪);

(3)Hough变换(直线检测、圆检测);

(4)基于区域分割(区域生长、区域归并与分裂、聚类分割);

(5)色彩分割;

(6)分水岭分割;

5、图像特征:

(1)几何特征(位置与方向、周长、面积、长轴与短轴、距离(欧式距离、街区距离、棋盘距离));

(2)形状特征(几何形态分析(Blob分析):矩形度、圆形度、不变矩、偏心率、多边形描述、曲线描述);

(3)幅值特征(矩、投影);

(4)直方图特征(统计特征):均值、方差、能量、熵、L1范数、L2范数等;直方图特征方法计算简单、具有平移和旋转不变性、对颜色像素的精确空间分布不敏感等,在表面检测、缺陷识别有不少应用。

(5)颜色特征(颜色直方图、颜色矩)

(6)局部二值模式( LBP)特征:LBP对诸如光照变化等造成的图像灰度变化具有较强的鲁棒性,在表面缺陷检测、指纹识别、光学字符识别、人脸识别及车牌识别等领域有所应用。由于LBP 计算简单,也可以用于实时检测。

6、图像/模板匹配:

轮廓匹配、归一化积相关灰度匹配、不变矩匹配、最小均方误差匹配

7、色彩分析:
色度、色密度、光谱、颜色直方图、自动白平衡

8、图像数据编码压缩和传输:
图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。

9、表面缺陷目标识别算法:
传统方法:贝叶斯分类、K最近邻(KNN)、人工神经网络(ANN)、支持向量机(SVM)、K-means等;

10、图像分类(识别):
图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。

11、图像复原:

图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立“降质模型”,再采用某种滤波方法,恢复或重建原来的图像。

二、现有的视觉检测软件/库

1、做工业视觉检测的公司有哪些?
比较出名的有:大恒图像(亚洲Halcon最大代理商)、凌云光技术(VisionPro视觉平台:印刷、3C电子、显示屏、玻璃、线路板检测)、大族激光(振静系统:视觉激光焊接,定视觉位、缺陷检测)、康耐视、基恩士、深圳精锐视觉、深圳市视觉龙科技有限公司、广州超音速、深圳市创科自动化等等。

可二次开发的视觉系统:Labview、DVT、Halcon、OpenCV等。

2、常用的视觉检测软件/库
视觉开发软件工具 Halcon、VisionPro、LabView、OpenCV, 还有eVision、Mil、Sapera等。

(一)、Halcon:底层功能算法多,运算性能快,功能齐全,容易上手,开发项目周期短。非开源项目,商用收费,价格较贵。

        Halcon:Halcon是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。它是一套image processing library,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中包含了各类滤波,色彩以及几何,数学转换,型态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能。整个函数库可以用C,C++,C#,Visual basic和Delphi等多种普通编程语言访问。Halcon为大量的图像获取设备提供接口,保证了硬件的独立性。

(二)OpenCV:功能算法相对较多(比Halcon少),开源,可用于商用,开发周期较长(比Halcon长),有些算法要自己写。

        OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。其核心轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言。该库也有大量的Python, Java and MATLAB/OCTAVE的接口,如今也提供对于C#, Ruby的支持。OpenCV可以在 Windows, Android, Maemo, FreeBSD, OpenBSD, iOS,Linux 和Mac OS等平台上运行。

OpenCV出身:OpenCV是Intel开源计算机视觉库。其核心由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 的特点拥有包括300多个C函数的跨平台的中、高层 API 跨平台:Windows, Linux;免费(FREE):无论对非商业应用和商业应用;速度快;使用方便。

OpenCV具有以下的特征:(1)开源计算机视觉采用C/C++编写。(2)使用目的是开发实时应用程序。(3)独立与操作系统、硬件和图形管理器。(4)具有通用的图象/视频载入、保存和获取模块。(5)具有底层和高层的应用开发包。

应用OpenCV能够实现以下功能:(1)对图象数据的操作,包括分配、释放、复制和转换数据。(2)对图象和视频的输入输出,指文件和摄像头作为输入,图象和视频文件作为输出。(3)具有对距陈和向量的操作以及线性代数的算法程序,包括距阵、解方程、特征值以及奇异值。(4)可对各种动态数据结构,如列表、队列、集合、树和图等进行操作。(5)具有基本的数字图象处理能力,如可进行滤波、边缘检测、角点检测、采样与差值、色彩转换、形态操作、直方图和图象金字塔等操作。

(6)可对各种结构进行分析,包括连接部件分析、轮廓处理、距离变换、各种距的计算、模板匹配、Hongh变换、多边形逼近、直线拟合、椭圆拟合和Delaunay三角划分等。(7)对摄像头的定标,包括发现与跟踪定标模式、定标、基本矩阵估计、齐次矩阵估计和立体对应。(8)对运动的分析,如对光流、运动分割和跟踪的分析。(9)对目标的识别,可采用特征法和隐马尔科夫模型(HMM)法。(10)具有基本的GUI功能,包括图像与视频显示、键盘和鼠标事件处理及滚动条等。(11)可对图像进行标注,如对线、二次曲线和多边形进行标注,还可以书写文字(目前之支持中文)。

(三)VisionPro
        VisionPro是美国康耐视Cognex公司提供全套视觉解决方案。VisionPro提供多种开发工具拖放式界面、简单指令码和编程方式等,全面支持所有模式的开发。用户利用VisionPro QuickBuild™可以无需编程配置读取、选择并优化视觉工具,决定产品是否合格。用户也可以利用C++、C#、VB及.NET开发管理应用程序。Vision Pro提供的.NET程序接口允许用户采用面向对象的高级语言编程访问所有工具,以高效开发客户的专用视觉方案。

(四)LabView

         LabView是一种程序开发环境,由美国国 家仪器(NI)公司研制开发,使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。LabView软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。LabView开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。

三,HSV颜色识别-HSV基本颜色分量范围

一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。

H:  0 — 180

S:  0 — 255

V:  0 — 255

HSV(色度/饱和度/亮度)颜色空间是表示类似于RGB颜色模型的颜色空间的模型。根据色度通道(Channel)对颜色类型进行建模,因此在需要根据颜色对对象进行分割的图像处理任务中非常有用。饱和度的变化代表颜色成分的多少。亮度通道描述颜色的亮度。
72513ff5af9a02d042628fd3bb5ef69e.png

下载1:OpenCV-Contrib扩展模块中文版教程在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。交流群欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

http://chatgpt.dhexx.cn/article/iwnF0Nr0.shtml

相关文章

[5机器学习]python计算机视觉应用-图片内容识别

上一期中,ofter介绍了计算机视觉的常用神经网络模型,以及如何选择模型,今天我们就趁热打铁拿个实际的模型跑跑,欢迎大家跨入数据科学家们的世界。 一、机器学习的目标 作为数据科学家,我们必须明白投入大量时间精力进…

计算机视觉用于图像识别的难点在哪?

计算机视觉用于图像识别的难点在哪?作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取‘信息’的人工智能系统,但也存在一些难点,本篇来解答一下这个问题。 计算机视觉用于图像…

Java OCR tesseract 图像智能字符识别技术 Java代码实现

接着上一篇OCR所说的,上一篇给大家介绍了tesseract 在命令行的简单用法,当然了要继承到我们的程序中,还是需要代码实现的,下面给大家分享下java实现的例子。 拿代码扫描上面的图片,然后输出结果。主要思想就是利用Java…

六、计算机视觉相关内容

文章目录 前言一、图像增广1.1 常用的图像增广1.1.1 翻转和裁剪1.1.2 变换颜色1.1.3 结合多种图像增广方法 二、微调2.1 微调的步骤2.2 具体案例 三、 目标检测和边界框3.1 边界框 四、锚框五、多尺度目标检测六、目标检测数据集七、单发多框检测(SSD)八、区域卷积神经网络(R-C…

python计算机视觉学习第七章——图像搜索

目录 一、基于内容的图像检索 二、 视觉单词 三、 图像索引 3.1 建立数据库 3.2 添加图像 ​编辑四、在数据库中搜素图像 4.1 利用索引获取候选图像 4.2 用一幅图像进行查询 4.3 确定对比基准并绘制结果 五、 使用几何特性对结果排序 一、基于内容的图像检索 CBI…

使用计算机视觉和深度学习创建现代OCR管道

作者 | 学海无涯yc 编辑 | 3D视觉开发者社区 文章目录 前言1.研究和原型设计2.字深网3.字检测器4.组合式端到端系统5.生产化6.性能调优7.优雅 导读 此篇文章中讲述使用了计算机视觉和深度学习的进步,如双向长短期记忆(LSTM),连接…

Java OCR tesseract 图像智能字符识别技术

公司有需求啊,所以就得研究哈,最近公司需要读验证码,于是就研究起了图像识别,应该就是传说中的(OCR:光学字符识别OCR),下面把今天的收获整理一个给大家做个分享。 本人程序用的tess…

《深度学习中的字符识别在工业视觉中的实际应用》

最近在公司做了一个构建卷积神经网络来识别字符的项目,编程环境为pycharm2019,使用的是OpenCvPytorch进行项目的实现,因此想总结和归纳一下方法。 本次的字符识别项目可以分为以下几个步骤: 一、图像处理和字符分割 二、创建自…

python计算机视觉-图像检索和识别

目录 一、原理解析 1.1计算机视觉领域的图像分类是什么意思? 1.2图像分类要如何实现? 1.3Bag-of-features算法和过程? 1)提取图像特征 2)训练字典( visual vocabulary ) 3)图片直方图表示 4)训练分类器 1.4TF-IDF? 1.5当前图像分类中会遇到…

使用计算机视觉和深度学习创建现代 OCR 管道

文章目录 研究和原型设计字深网字检测器组合式端到端系统生产化性能调优优雅 在这篇文章中,我们将带您了解我们如何为[【移动文档扫描仪】构建最先进的光学字符识别(OCR)管道的幕后故事。我们使用了计算机视觉和深度学习的进步,如…

最流行的4个机器学习数据集

最流行的4个机器学习数据集 机器学习算法需要作用于数据,而数据的本质则决定了应用的机器学习算法是否合适,而数据的质量也会决定算法表现的好坏程度。所以会研究数据,会分析数据很重要。本文作为学习研究数据系列博文的开篇,列举…

机器学习——数据集预处理(数据查看和空值处理)

目录 前言 数据集查看 前言 目的:本数据集是为了分析炉丝功率和炉膛温度以及样品盒内部温度之间的关系,分析温场的分布等。 来源:本数据集的来源是实验获得的数据。 特点:特征维度高,数据量大。 数据集查看 1.查…

推荐收藏:50个最佳机器学习公共数据集

外国自媒体mlmemoirs根据github、福布斯、CMU官网等信息,整理了一张50个最佳机器学习公共数据集的榜单,为大家分享一下~ 作者:mlmemoirs 郭一璞 编译 外国自媒体mlmemoirs根据github、福布斯、CMU官网等信息,整理了一张50个最佳…

8种适用于不同机器学习问题的常用数据集

要找到一定特定的数据集可以解决各种机器学习问题,是一件很难的事情。越来越多企业或研究机构将自己的数据集公开,已经成为全球的趋势,这也将有助于大家进行更多研究。 近期,亚马逊高级技术顾问 Will Badr 分享了 8 种适用于不同…

【ML】机器学习数据集:sklearn中回归数据集介绍

目录 1. Boston房价预测数据集2. California房价预测数据集3. 糖尿病预测数据集 在机器学习的教程中,我们会看到很多的demo,这些demo都是基于python中自带的数据集。今天我们将介绍三个用于回归预测的数据集。 1. Boston房价预测数据集 该数据集将在sci…

浅谈机器学习之数据集构建

浅谈机器学习之数据集构建 ​ 正如大家现在知道的,深度学习模型(DL)和机器学习模型(ML)是数据驱动型任务,在近乎完美的数据集面前,模型间的细微差异可以忽略。但要获得覆盖目标场景所有特征的样本,不仅要耗费巨大的人力物力&…

机器学习经典开源数据集盘点

在机器学习任务实施前,如何快速寻找到可用数据集,是令每一位研究人员最头痛的事情。本文为大家列举了八大主流数据集来源,不仅包含大量的数据集信息,而且包含了描述、用法以及一些实施案例等。 01 Kaggle数据集 Kaggle数据集地址h…

免费的机器学习数据集网站(6300+数据集)

今天给大家分享一个免费获取机器学习数据集网站: Machine Learning Datasets | Papers With Code 有想法但没有数据集的同学的福音,网站届满很简洁,及本本上提供的了一般可用的各类数据集,我们可以进行各类影像、评论和点云等数…

学习机器学习算法过程中的常用数据集

文章目录 【数据集1】forge:小型模拟分类问题数据集【数据集2】wave:小型模拟回归问题数据集【数据集3】cancer:中型实际分类问题数据集【数据集4】boston:中型实际回归问题数据集 以下数据集为学习机器学习算法时,经常…

虚拟机系统iso镜像下载_如何下载正版系统镜像

许多网友想装系统,可是不会装(后期会推装系统的文章),而且网上的系统有的装有全家桶,有的又有捆绑软件,严重的还有病毒。那么,在哪里去下载正版,安全的系统镜像呢 "MSDN,我告诉你"这个…