责任编辑归纳了11种常见的影像处置演算法,包涵了预处置演算法以及检验演算法,并介绍了一些常见的开发库。
一、演算法(预处置演算法、检验演算法)
在收集完影像后,首先会对影像展开预处置操作。保证影像的清晰度明晰,水平。方便快捷先期影像处置。
常见的影像处置演算法:
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,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中包涵了各类低通滤波器,色彩以及几何,数学转设备提供接口,保证了硬件的独立性。
(二)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 — 255HSV(明度/饱和度/亮度)颜色内部空间是表示类似于RGB颜色模型的颜色内部空间的模型。根据明度通道(Channel)对颜色类型展开建模,因此在需要根据颜色对对象展开拆分的影像处置任务中非常有用。饱和度的变化代表颜色成分的多少。亮度通道描述颜色的亮度