图像采集
为了得到被测图像所需的硬件部件
- 照明——基本特征可见,抑制不需要的特征
- 镜头——使在传感器上得到清晰的图像
- 传感器——图像转换成模拟or数字视频信号
- 摄像机与计算机的接口接收信号放于计算机内存
注意:接口可能是模拟或者数字采集卡
IEEE1394或者USB2.0 也可能是Ethernet网络接口
照明:
(1)可见光波长λ
380~780nm
X射线/伽马射线-紫外光-可见光-红外线-微波/无线电波
(2)单色光以 λ 表征
多个波长λ 组成的光→ 与黑体辐射的光谱比较
黑体可以吸收所有落在其表面的电磁辐射
黑体光谱与其温度直接相关,又称为色温
符合普朗克定律(p6)
(3)光源类型→
①白炽灯:灯丝由钨制成,电流加热灯丝产生热辐射
可以产生色温为3000~3400k的连续光谱
可以工作在低电压
缺点:只有5%左右的能量转换成光
②氙气:色温5500~12000k的非常亮的白光
可以做成闪光灯/短弧灯/长弧灯
③荧光灯:色温3000~6000k
由交流电供电,产生与供电相同频率的闪烁
注意:对于机器视觉应用中为了避免图像明暗的变化,需要使用不低于22kHz的供电频率
②③是气体放电光源
④发光二极管(LED):电致发光的光导体
发光亮度与通过二极管的电流相关
发光颜色与半导体材料成分相关
采用直流供电,所以亮度易控制
(4)光与被测物间的相互作用
可分为
1镜面反射(反射角与入射角相等)
2漫反射(可以任意方向反射,在各个方向上散射的光线基本均匀)
3定向透射(透过去之后的角度与入射的光线平行)
4.慢透射(透过去之后的方向任意)
5背反射(进入物体之后在另一个面上被反射,总共要反射两次)
6吸收(光线进入物体)
上面的形式与被测物体表面的粗糙度有关
注意:在现实中,镜面反射在一定角度产生较强的波瓣形反射,入射光的角度决定是否有波
瓣形反射,物体表面的微细结构决定波瓣的宽度
透射率和反射率都决定于光线的波长
除镜面反射外,上述各物理量均取决于投射到物体的光的波长
不透明物体的颜色由慢反射+吸收决定
透明物体的颜色由透射决定
总的光=反射光+入射光+吸收的光
发生在金属or绝缘材料(比如玻璃or塑料)表面上的反射使光线产生部分偏振
(5)利用照明的光谱 使光谱范围正好是希望的波长范围被反射,不希望的波长范围被吸收(比如绿背景红物体,用红色光照明效果更好)(用白光的话,平均对比度)
①CCD和CMOS传感器对红外光比较敏感(也常用红外光来增强某些特征)
②红外截止滤光片避免图像过亮以及颜色变化(彩色照明)
红外透过滤光镜抑制可见光部分(红外照明)
③滤光片→ 偏振片(起偏镜,检偏镜)
抑制某些反射的方法:使光线成为偏振光,再落入物体表面
(6)利用照明的方向性
漫射/直接照射(平行光照明)
正面光:光源与摄像机在被测物体的同一侧
背光:两侧(当被测物体为透明时称为透射光)
明场照明:光源位置使得大部分的光反射到摄像机
暗场照明:……没有……
明场漫射正面照明:为了防止产生阴影,用于减少or防止镜面反射
用于透过被测物体的透明包装
构造方法
- 摄像头前端安装了漫射板的LED平板或环形光
- 在光源前安有漫射板和45°半透半反镜的同轴漫射光
- 安装有漫射板的半球光源
- 光源是LED环形光、由半球表面作为漫射板的半球照明
直接明场正面照明::①光源使用倾斜的环形光
(常用于使孔洞或者感兴趣区域产生阴影)
(缺点:光线分布不均匀)
②使用同轴平行光
(常用于采集会产生镜面反射的物体的图像)
直接暗场正面照明:①LED环形光(可以突出被测物的缺口及凸起,划痕、纹理、雕刻文字等被增强,更加清晰)
明场漫射背光照明:①在光源前面安漫射板,光源常采用LED平板或荧光灯
(用于被测物需要的信息可以从其轮廓得到的场合,对于透明物体,背光可以用于检测被测物的内部部件,这样可以避免使用正面照明造成的反射)(缺点:由于是漫反射,对于有一定高度的被测物,其在摄像机一侧的某些部分也可能会被照亮,因此漫射背光照明主要用于厚度不大的被测物)
直接明场背光照明(可以解决上述的摄像机一侧的被测物某些部分也被照亮的问题)
①使用平行照明构造
镜头:
作用:产生锐利的图像,以获得细节
针孔摄像机(小孔成像)
真正的摄像机使用镜头收集光线,而不是利用小孔(利用玻璃和塑料的形状)
实际的镜头为了减少像差,通常镜头由多个球心位于同一光轴上的光学镜片组成。
真实的镜头有一定孔径大小限制,为了控制可以到达像平面光线的多少,镜头系统中一般都设计有可变光阑。在镜头筒上有个环可以用来调整光阑大小。最大程度限制通光量的光阑称作镜头的孔径光阑。
注意:并不是最小的光阑就是孔径光阑,因为在光穿过镜头时,光阑前后的镜片可能放大或缩小光阑的实际尺寸。因此,镜头中相对较大的光阑也可能是孔径光阑(意思是镜头中可以有很多光阑吗?)
基于孔径光阑,定义两个虚拟光阑:入瞳和出瞳。入瞳决定镜头入口可以接收光线的面积。 只有能通过出瞳的光线才能通过整个光学系统。
目前传感器的像素尺寸在5微米~10微米之间
景深:对焦距离为s的被测物可以很好的聚焦,比对焦距离远或近的物体都将模糊像。
注意:不能任意加大景深,因为由于光的波动特性,如果使用非常小的孔径光阑,光线将在光阑处发生衍射,这将会使对焦平面上的物点在像面上所成的像为条纹圆环斑,从而影响图像的清晰度。
远心镜头:距离镜头越近,物体所成的像就越大。因此,与像平面不平行的被测物体所成的像将会变形。
镜头的像差:(1)球差:由于远离光轴的光线与近轴光线并不交于同一点,这是由于球面镜头边缘的折射增大造成的。无论平面在哪里,都会存在球差,只能使它最小。
减小球差的方法:使用较大的f数,使用较小的通光光圈可以阻止远离光轴的光线通过镜头。
由于衍射的存在,无法使孔径光阑无限小,另一种方法就是在镜头中使用非球面来代替球面。
(2)慧差:与光轴成一定角度的光线通过镜头后不聚于一点。像不是圆形而是类似彗星的形状,是非对称的。这种像差会使如边缘提取之类的特征提取算法得到错误的位置。可以通过使用大的f数来减小彗差。
还有别的类型的像差:除了彗差外都会影响图像聚焦。镜头像差还会造成图像变形,会使不经过光轴的直线通过镜头后成的像不再是一条直线。变形可以分为枕形畸变和桶形畸变。注意:通过光轴的直线不会发生畸变。
上述的像差都是单色光像差,如果被测物被白光等多波长光照明,还会产生色差。
对于彩色摄像机,色差会在物体边缘产生彩条,而对于黑白摄像机,色差会造成模糊。色差是非对称的,会使边缘提取等特征提取算法产生位置错误。色差可以通过采用大的f数的孔径光阑来减小。
传感器
CCD和CMOS的主要区别是从芯片中读出数据的方式即读出结构不同。
CCD的读出模式:一场是图像的奇数行,另一场包含所有的偶数行。这种读出模式称作隔行扫描。一幅图像必须经过两次曝光。若一个物体在两次曝光之间有移动,图像就会出现锯齿。顺序读出CCD传感器每一行的读出模式称作逐行扫描。
CMOS传感器的每一行都可以独立读出。随机读取特性,可以在传感器上实现并行模数转换。
彩色摄像机:CCD和CMOS传感器对于近紫外200nm至可见光380~780nm直至近红外1100nm波长范围都有响应。每个传感器都是按其光谱响应函数对入射光作出响应。
传感器产生的灰度是传感器所能感应的所有波长范围内入射光的积累后按传感器光谱响应的结果。
通常镜头是玻璃制作的,阻止紫外光通过。因此不需要特殊滤光片滤掉紫外。当需要紫外响应时,需要特殊的镜头。
由于CCD和CMOS传感器对于整个可见光波段全部有响应,所以无法产生彩色图像。所以需要在传感器前面加上彩色滤镜阵列,由三种滤镜组成,因为人眼对绿色更加敏感,绿色采样是1/2,红色和蓝色是1/4,这会导致严重的图像失真。通常还要加上图像失真滤光片。
第二种构造彩色摄像机的方法,通过镜头的光线被分光器或棱镜分为三束光然后到达三个传感器。每个传感器前有一个不同的滤光片。可以克服图像失真的问题,但是很贵。
一般情况下,传感器分辨率越高,帧率就越低。
摄像机性能:噪声
摄像机-计算机接口
需要在计算机中安装一块通常称作图像采集卡的专用接口卡。
数字视频信号也需要图像采集卡如IEEE1394卡,USB 2.0卡和千兆网卡。
模拟视频信号:有4种比较重要:
EIA-170和CCIR :黑白的视频标准
PAL和NTSC:彩色视频标准
EIA-170和NTSC的帧率为30Hz,每幅图像有525行,而CCIR和PAL帧率为25Hz,每幅图像有625行。
每行的传输时间基本相同,在525和625行中,有40或50行有名无实,被用作同步信号来表示新的一帧的开始。
EIA-170和NTSC的图像大小为640*480,CCIR和PAL为768*576。每个像素的采样时间大约为82ns和68ns。
计算机需要图像采集卡以便从视频信号中重建图像。图像采集卡包含同步分离部分,可以从视频信号中分离出同步信号用来产生像素时钟信号并用来控制采样视频信号的模数转换器。
模拟视频的同步信息是包含在信号中的,数字视频的同步信息是分离的。垂直同步信号和水平同步信号。
数字视频信号:Camera Link
数字视频信号:IEEE1394
数字视频信号:USB 2.0
数字视频信号:Gigabit Ethernet千兆网
图像采集模式
-
- 图像处理完毕后,采集周期就开始了——这种采集模式叫同步采集。
缺点:应用程序有很多时间用于等待图像采集完成。
-
- 异步采集
机器视觉算法:
图像
一个像素能被看成对能量的采样结果。
区域:
机器视觉的任务之一就是识别图像中包含某些特性的区域,比如阈值分割处理。
用二值图像来描述区域,灰度值为0表示不在区域内。为1表示在区域内。
用二值图像表示的缺陷,他必须存储区域外的有时候是非常多的点。效率也不高,图像中的每个点都至少要占用一个位来保存。通常这种方法会用一个字节而不是一个位来表示,因为访问字节比访问位更容易。运行时间上也不好,因为要扫描每一个点。以二值图像保存扩展到负坐标的区域是不容易实现的,需要借助非常复杂的算法。
由于图像数据在内存中是一行接着一行保存的,所以最好使用水平行程。
表示每次行程的最小量的数据包括该行程的纵坐标值、行程开始和行程结束对应横坐标值。这种保存区域的方法叫做行程编码。采用行程编码能显著降低内存的使用。
行程编码仅存储区域内的点,所以无需检查像素实是在区域内还是外。所以这两个优点可以减少执行的时间。还容易表示含有负坐标的区域。
为表示多个区域,我们还可以使用链表或数组来保存采用行程编码描述的多个区域。此时由于每个区域的信息是独立保存和存储的,所以处理交叠区域也没问题。
亚像素精度轮廓
比图像像素分辨率更高的精度——亚像素精度
可以通过亚像素阈值分割、亚像素边缘提取来获得。
轮廓是用浮点数表示的横和纵坐标所构成的数组表示。
轮廓可以是开的也可以是闭的。
几个轮廓可以在一个接合点汇合。
①图像增强
之前讨论了提高采集图像质量的各种方法:光源、镜头、摄像机、图像采集卡等,但可能图像还是不理想。
灰度值变换
调整图像灰度值原因:对比度太弱,通过对照明光源的调整,这个问题通常只会在局部发生。所以只需要增强局部的对比度。另一个原因:图像的对比度或者亮度同最初设定时发生了变化。比如工作一段时间后,由于光源老化造成图像对比度变弱。
可以视为一种点处理。灰度值变换通常通过一查找表LUT来进行。
最重要的灰度值变换是灰度值线性比例缩放f(g)=ag+b。
对灰度值进行裁剪和四舍五入处理
f(g)=min(max([ag +b +0.5 ],0),2b-1)
当|a|>1时,对比度增加,当|a|<1时,对比度降低
当a<0时,灰度值反转,b>0时,亮度值增加,b<0时,亮度值降低。
自动确定ab的值的方法
gmin和gmax
分别保存当前ROI图像中的最小灰度值和最大灰度值,
当a=(2b-1 )/( gmax-gmin ),b= -agmin
时转换后的输出灰度值可以覆盖Gb的最大取值范围,可以被理解为灰度值的n归一化处理。
如果图像中存在一个非常亮或者非常暗的像素值,通过灰度值归一化处理就不行了,亮的已经到达255了,暗的也差不多接近0,改了也没啥特别大的影响。
灰度值直方图:显示每一灰度值在图像中出现的频率。
n表示像素点总数,ni表示灰度值是i的像素点总数。
在灰度的累计直方图中通过设定ci>=pl来确定最小灰度值,用ci<=pu来确定最大灰度值。
辐射标定
很多图像处理算法是建立在传感器收集的能量和图像灰度值之间存在线性响应这一事实基础上的:G=aE+b,E是传感器累计到的能量,G是图像上的灰度值。
理想情况下,b=0,传感器上两倍的能量会得到2倍的图像灰度值。
b=0对测量的准确度不是必需的,只需要响应是线性的就可以了。
如果需要准确测量的话就要确定非线性响应并求其逆响应,如果对非线性响应的图像使用了逆响应,那么结果图像就是线性响应的。
确定逆响应函数的过程就是辐射标定。
传统方式:采用经过标定的目标物来进行辐射标定。
测量不同梯度条的灰度值并将这些灰度值与这些进度条已知的反射系数进行比较,比较后产生一系列的独立测量,通过这一组测量完成函数的拟合。
方法缺点:需要非常均匀的光照以便能正确检测出梯度条的灰度值。标定板的格式没有被标准化,所以没有通用的算法来寻找标定板上的梯度条并检测它们和真实反射系数之间的响应关系。
无图表辐射标定
基于在不同曝光下对同一场景所拍摄的一系列图像来实现。
不同的曝光度可以通过改变镜头的光圈也可通过改变摄像机曝光时间来实现。
改变曝光时间是首选(改变光圈精度相比于时间较低,而且工业相机可以通过软件精确设定曝光时间的长度)
所有可能的灰度值取值范围能够被多幅图像所覆盖。不需要标定板,不需要均匀照明。
唯一要求是每幅图像的灰度值直方图中,图像灰度值所覆盖的范围内不应存在空隙。
逆响应q仅仅依赖于图像的灰度值和曝光比例e1,2而不是曝光e1和e2的取值。
从一幅曝光时间充分的图像开始,不断降低时间直到采集的图像中包含可能出现的最小灰度值。或者从一幅曝光轻微过度的图像开始以确保最高的灰度值被覆盖,但要注意的是,需将过曝的像素排除。因为这些像素点不符合等式的原理。
②图像平滑
每幅图像都会有噪声,将噪声看作是由多种原因造成的灰度值的随机变化。必须通过图像平滑处理进行抑制。
将噪声视为一种平稳随机的过程,平稳是指噪声与图像上像素的位置无关。
一个最简单的降噪方法是采集同一场景的多幅图像并进行平均,因为图像是不同时间采集的,所以称为时域平均。此方法在X光检测系统中应用广泛。
时域平均法的缺点之一就是必须采集多幅图像才能进行噪声抑制。在对速度要求很高的机器视觉中就不太适用了。
空间平均法,也叫均值滤波器,空间平均法平滑后的边缘不如时域平均法锐利。因为图像并不是遍历的,只有在图中亮度一致的区域才是遍历的。因此,与时域平均法相比,空间滤波器使边缘模糊。
图像在二维空间上是有限的,如果掩码靠近图像的边界,掩码中就会有部分延申到图像外导致访问到未定义的灰度值。
解决上述问题的方法:只针对掩码能完全覆盖的图像内的像素进行滤波计算。处理后的结果图像比处理前的输入图像小。
将图像外的灰度值都定义为0。对于均值滤波器,这意味着在滤波后的结果图像上,像素越靠近图像边界越暗。
令图像边界以外的像素灰度值等于图像边界上最邻近的像素点的灰度值。结果图像也会产生不希望的边缘。
通常以图像边界为中心,令图像外某位置上未定义的灰度值等于图像内其镜像位置的灰度值。这样处理干扰最小。
一个滤波器在运算时允许分别在行和列上求和,那么此滤波器就被称为可分滤波器。优点:提升计算速度。
在前一个计算出的值的基础上计算出新的值,这种滤波器叫做递归滤波器。
滤波指的是一个操作:采用某个函数作为输入并产生某个函数作为输出。可以将图像看成一个函数。
均值滤波器是线性滤波器的一个例子。
噪声主要是以图像中灰度值高频波动的方式暴露出来。希望有一个平滑滤波器来消除高频波动。(所以用到了傅里叶变换频率)
高斯滤波器:是唯一的各向同性的可分平滑滤波器。但是不能以递归的方式来执行。与均值滤波器相比,高斯更好的抑制了高频部分。
在滤波器尺寸较小时,两种方法之间没什么显著的差异。但如果使用更大的滤波器尺寸,均值滤波器将边缘变成了灰度值缓慢变化的斜坡,边缘位置难以确定。而高斯滤波器产生了相对锐利的边缘。
更关注结果选择高斯滤波器,更关注执行速度的话首选均值滤波器。
非线性滤波器:
中值滤波器,不可分,但是用优化的算法,中值滤波器的运行时间和一个可分线性滤波器相差无几。
即便使用大窗口尺寸的中值滤波器也不会降低边缘的锐利程度。但是处理后图像边缘是否会发生变化,变化程度多少是无法预先估计的。也不能估计中值滤波器抑制噪声的程度。所以对于高精度测量任务,还是采用高斯滤波器。
中值滤波器只是广义顺序滤波器中的一个特例。
傅里叶变换:将函数从空间域转换成频率域h(x)变成H(f)
最有趣的一个性质:在空间域的卷积被变换成频率域的一个简单相乘。通过将图像及使用的滤波器变换到频率域,将此二者在频率域的转换结果相乘后再转换回空间域就实现了卷积操作。
另一个有趣的特性是可以计算相关性。
傅里叶变换能被用来在频率域内计算与任意线性滤波器的卷积。可被用来配合标准滤波器掩码实现滤波操作,比如与均值滤波器或高斯滤波器配合。但是通常仅在与相对大尺寸滤波器配合使用时才有速度优势。
使用傅里叶变换进行滤波处理的真正好处是:可以通过使用定制的滤波器来消除图像中某些特定的频率。比如,这些特定频率可能代表着图像中重复出现的纹理。
③几何变换
并不能保证被测物的图像中总是处于同样的位置和方向。
调整物体到检测所需位姿的最简单方法是对ROI的位姿进行适当的调整。
进行OCR中的文本分割时,如果文本是水平的或垂直的,那么图像分割会容易些。
仿射变换
倾斜是仅让一个轴旋转,此处是让纵轴旋转一个角度,这在OCR矫正倾斜字符时非常有用。
投影变换
物体三维空间发生了旋转,由于可能出现阴影或遮挡,所以投影变换很难被修正。但如果物体是平面的,可以通过二维投影变换对物体的三维变换进行模式化。
一个投影变换有八个独立参数,那么投影变换就可以通过四个相应的点被唯一确定。(机器视觉中通常用这个方法确定投影变换)
从图像中提取四个点,通常是一个矩形,然后将其变换到对应的点上。
图像变换
一幅图像的仿射变换,注意输出图像内的整数坐标变换为原始图像中的非整数坐标,所以灰度值必须由插值得到。
插值方法:
最近邻域插值法:先对转换后像素中心的非整数坐标进行取整处理,以找到与此坐标相邻的四个像素点的中心位置中最近的一个,然后将输入图像里的这个最近邻位置的像素的灰度值视为输出图像内相应像素点的灰度值。
双线性内插法:先确定到四个相邻像素中心的距离,然后用距离作为它们灰度值的权重进行插值计算。
极坐标变换
通常用来矫正图像中的圆形物体或被包含在圆环中的物体。
与仿射变换和投影变换类似,进行变换处理时可以使用极坐标变换的逆变换。
比如说要读取CD上一圈的文字,可以用极坐标变换,变换后的条码又直又平,容易被读取。
④图像分割
为了得到图像中的物体信息,必须进行图像分割,即提取图像中与感兴趣物体相对应。
阈值分割
基于灰度值自身,只要被分割的物体和背景之间存在非常明显的灰度差时,都可以使用阈值分割。
固定阈值仅在物体的灰度值和背景的灰度值不变时效果很好,但实际不可能。比如照明变化。
自动确定阈值
可以基于图像的灰度值直方图来实现。每幅图像的直方图中都存在两个峰,灰度值小一点的对应的是背景,灰度值大一点的对应的是字符。
一个好的阈值应该对应直方图中两个峰之间的最小值。但是灰度值直方图是随机波动的,所以得先对直方图进行平滑处理。将直方图与一个一维高斯滤波器进行卷积来完成平滑处理。为了给高斯滤波器选择合适的值,可以逐渐增大这个值并平滑直方图直到可以从平滑后的直方图中得到两个唯一的最大值和它们之间唯一的最小值。
如果直方图中存在双峰的假设不满足,那么上面的方法就不好了。比如字符的噪声太大,灰度值非常分散,不均匀照明是导致另一个峰不出现的另一个原因,它会破坏这些峰移动到错误的位置。
动态阈值分割
平滑滤波器的尺寸决定了能被分割出来的物体的尺寸。如果滤波器尺寸太小,那么在物体的中心估计出的局部背景将不理想。
凭经验,均值滤波器的宽度必须大于被识别物体的宽度。这一规则同样适用于中值/高斯滤波器。
如果均值滤波器/高斯滤波器的尺寸越大,那么滤波后的结果能更好地代表局部背景。
中值滤波器的半径大于被提取物体宽度时,滤波操作将会在结果图中完全消除此物体。
动态阈值分割的结果不仅包括比局部背景更亮或更暗的物体,也包括亮区域或暗区域的边缘。
动态阈值分割处理能被用来将图像与图像的局部背景进行对比,局部背景是由图像平滑处理得到的。
稍作调整,还可以用来检测某一物体上的缺陷。
为了改善算法,在进行阈值分割处理时,考虑图像中预期的灰度值偏差。
偏差模型需要n幅训练图像来构造参考图像和偏差图像。
建立偏差模型的方法:人为创造,比如平移参考图像。当允许尺寸和位置存在小的公差时,在物体边缘处就存在着相应的最大偏差,由此导出偏差模型。
提取连通区域
当对前景和背景使用同一个连通域定义时会出现怪异的现象。所以可以分别使用不同的方法。
亚像素精度阈值分割(看不懂)
⑤特征提取
我们需要从分割结果中选出某些区域或轮廓,比如去除结果中不想要的部分。
相对物体进行分类以确定物体的类型。
区域特征:能够从区域自身提取出来的特征
灰度值特征:还需要图像中区域的灰度值
轮廓特征:基于轮廓坐标
(1)面积
一个区域能被视为其所有行程的一个并集,而每个行程的面积是很容易计算的。区域的行程表示法可使区域面积的计算速度快得多,这个特点对几乎所有的区域特征都适用。
期望有一些特征可不随物体的尺寸变化而变化。
重心是从像素精度的数据计算得到的,但它是一个亚像素精度特征。(用来描述位置)
各向异性:在区域缩放时是保持恒定不变的,可以描述一个区域的细长程度。
椭圆的长径/短径表示各向异性
椭圆的长径与x轴正向的夹角能被用来对经过旋转的文本进行校正。
分割结果被当作一个单一区域,也就是说还没有计算连通区域。
椭圆的这些参数存在两个问题:一是只有满足大径不等于小径的时候才能确定区域的方位。除了正圆,很多物体都不满足,所有类似正方形那样的四折旋转对称物体。
第二是仅能以pi为模确定方位θ ,先确定区域内部距离重心最远的点,然后用此点来选择θ 或θ+pi 作为正确的方位。
为区域找到一个外接几何基元。
最小平行轴外接矩形。也被称为区域的边框。基于区域的横纵坐标的最大值和最小值计算得到。
其他有用的特征量:区域的宽度、高度、宽高比。
还需要定义任意方位的最小外接矩形。
任意方位的矩形与椭圆有同样的参数。所以也可以用来定义区域的位置、尺寸和方向。
外接圆,可以定义区域的位置和尺寸。
计算任意方位的最小外接矩形和最小外接圆的方法是基于首先计算区域的凸包。在一个特定区域内,一个点集的凸包就是包含了区域中所有点的最小凸集。如果点集中任意两点连成的直线上的所有点都在此点集中,那么这个点集就是凸集。
基于一个区域的凸包能够定义另一个有用的特征:凸性。
凸性被定义为某区域的面积和该区域凸包面积的比值,值在0和1之间,用来测量区域的紧凑程度。
凸性可以用来去除不想要的分割结果,这些不想要的结果通常是高度非凸的。
区域的轮廓长度。
得到可区域的轮廓后将全部轮廓线段的欧几里得距离求和即可。水平线段和垂直线段的欧几里得距离都是1。对角线段的距离是2。
区域的紧性的度量方法c=l2/(4πa) ,l是区域的轮廓长度,a是区域的面积。
圆形区域的紧性特征值都是1,其他区域的紧性特征值更大。
灰度值特征
区域内的最大灰度值和最小灰度值。用来进行灰度值的归一化处理。
灰度值的平均值:总的灰度值/区域的面积。是对区域内亮度的一个度量。
对参考区域内灰度值的平均值进行测量可以确定附加的亮度变化(相对于最初被设置的情况而言)
在两个不同参考区域内计算平均灰度值可测量出线性亮度变化,并由此计算一个线性灰度值变换,此变换可以用于补偿亮度的变化或调整分割阈值。
灰度值方差s2 和标准偏差s。测出的平均值和标准偏差也能被用来建立一个线性灰度值变换,此变换可以补偿亮度的变化。标准偏差可以被用来调整分割阈值。标准偏差还可以用来测量存在于区域内纹理的多少。
灰度值直方图
灰度值累计直方图
α -分位数:此特征被用来获取鲁棒的最大灰度值和最小灰度值。当α =0.5时,就得到了中值灰度值,与均值灰度值有着类似的用途。
由于区域矩仅需要基于区域的行程编码就可以计算,所以计算区域矩的速度更快。因此,灰度值矩在一般情况下只用于处理相对小的区域。
轮廓特征:
很多区域特征能直接转换成亚像素精度轮廓特征。
亚像素精度轮廓长度的计算更容易。
计算轮廓的最小外接平行轴矩形(边框)也很简单。计算轮廓的凸包和计算区域的也类似。根据轮廓的凸包,能推导出最小外接圆和任意方向最小外接矩形。
轮廓必须是闭合的且不能自相交。
轮廓的面积和重心计算公式:P175
轮廓的重心和椭圆参数的准确度与灰度值重心相同。
轮廓面积的准确度比灰度值面积的准确度稍微差点。
⑥形态学
分割结果中包含不想要的干扰。例如,由于反射对分割结果造成的干扰。
通常必须要调整分割后区域的形状以获得想要的结果。
区域形态学
根据六个简单的操作来定义。并集,交集,差集,补集,平移和转置(关于原点的镜像)。
形态学的处理方法:涉及两个区域。其中一个是我们想处理的那个区域,用R表示,另一个区域被称为结构元,用S表示。
第一个形态学操作是闵可夫斯基加法,R+S,计算R中的点和S中的点的向量和。闵可夫斯基加法的结果是由此得到的所有点的集合。
在闵可夫斯基加法中使用转置后的结构元,这种操作称为膨胀。
只要结构元相对于原点是非对称的,那么闵可夫斯基加法的结果与膨胀的结果是不一样的。如果结构元是对称的,那么结果是一样的。
许多形态学的方法中都假设结构元是基于原点对称的。因此很多时候膨胀都被定义为使用非转置的结构元。
只要结构元相对于原点是非对称的,那么闵可夫斯基减法的结果与腐蚀的结果是不一样的。如果结构元是对称的,那么结果是一样的
许多形态学的方法中都假设结构元是基于原点对称的。
对前景的一个膨胀处理等同于对背景的一个腐蚀处理。为了避免大量运算以提高处理速度时可以利用这个对偶性。注意对偶性只适用于当补集是无限的情况下。因此,不适用于二值图。因为二值图描述的区域的补集必需裁减成某种图像尺寸。
腐蚀和膨胀最有用处的应用是计算区域的边界。基于轮廓控制点构成的一个链表来求出真实的边界是相当复杂的算法。但是计算出一个边界的近似值是非常容易的。想计算出内边界,仅需对区域进行适当的腐蚀,然后从原区域中减去腐蚀后得到的区域。由对偶性可知,外边界(背景的内边界)可通过膨胀处理求出。
为得到合适的边界,必须适当地选取结构元S,8连通的边界,需要使用结构元S8(P186)(5个格子),如果想得到4连通的边界,需使用S4(P186)(9个格子)。
腐蚀能被当成模板匹配来使用,但有时候它的选择性不太够,会返回太多匹配项。原因是腐蚀操作并不会去考虑背景。
能将背景明确地模型化的方法:击中击不中变换。(前景和背景都考虑了)
开操作:先进行腐蚀操作再使用相同结构元的闵可夫斯基加法。
可以组合击中击不中变换和闵可夫斯基加法以得到击中击不中开操作。
开操作可以将区域内比结构元小的部分从区域内去除掉,这个特性能用来从区域中去除不想要的附加物,也能被用来去除边界上的突出部分以达到平滑区域边界的目的。
此特性还可去除物体间相连的部分以达到分开物体的目的。还可以被用来抑制小物体。
闭操作:先膨胀后用同一个结构元进行闵可夫斯基减法。
开操作和闭操作是对偶的。对前景的一个闭操作等同于对背景的一个开操作。
如果使用类似圆或矩形作为结构元,闭操作能用来填充孔洞及消除较结构元小的缺口。后一个特性能用来平滑区域的边界。
距离变换
返回的是一幅图像而不是一个区域。此图像的像素值是距离,这个距离代表区域R内每一个点到区域外所有点的距离的最小值。所以区域边界上的所有点的距离都是1.
4连通距离计算公式和8连通距离计算公式在P195
欧几里得距离计算等式为P195
灰度值形态学
灰度值膨胀和区域膨胀是类似的:它扩大前景,即扩大图像中比周围更亮的部分,且收缩背景,即收缩图像中比周围更暗的部分。这样,灰度值膨胀能够被用来将灰度值图像中的一个亮物体的脱节部分连在一起。在仅使用区域操作不能轻松地将物体分割出来时,灰度值膨胀是有用地,反之,灰度值膨胀能够被用来将暗物体分裂。
灰度值腐蚀和区域腐蚀是类似的:它收缩前景并扩大背景。所以灰度值腐蚀能够被用来分开相互连接的亮物体和连接支离破碎的暗物体。
膨胀和腐蚀有时也被称作最大值滤波和最小值滤波。
灰度值开操作:腐蚀+闵可夫斯基加法。
闭操作:膨胀+闵可夫司机减法。
灰度值开闭操作可以用来填补小孔洞,或者删除小物体。此外,在灰度值图像中,还能够被用来连接或分开物体,平滑物体的内外边界。
形态学梯度算子:能计算得到出现在结构元内的灰度值范围。通过计算膨胀操作和腐蚀操作间的差就能轻松得到这个结果。
⑦边缘提取:
之前的算法是基于阈值分割结果推导出的测量准确度由分割时选定的阈值正确与否有关。要求阈值必须非常准确的适应改变后的照明情况。所以需要一个对光照有鲁棒性的分割算法。
一维边缘提取:Canny滤波器
二维边缘提取:a=1时为Prewitt滤波器:在垂直于导数的方向上进行一个均值滤波处理,a=2 时为Frei滤波器、a=2时为Sobel滤波器:在垂直于导数的方向上执行一个近似于高斯平滑的处理。
上面三个滤波器中,Sobel滤波器返回的结果最好,因为它使用了最好的平滑滤波器。Ando滤波器对应a=2.435101,但是和Frei滤波器类似,要求浮点计算。运行时间不太好。
在质量相对较好的图像中以中等准确度快速搜索边缘时主要使用3*3边缘滤波器。因为3*3滤波器对噪声和其他干扰。如纹理,鲁棒性不好。所以必须将最佳一维边缘提取方法应用到二维。
Canny滤波器的优点是具有各向同性和旋转不变。缺点是不能以递归方式来计算。但运行时间由平滑程度决定。
Deriche滤波器能以递归方式计算,运行时间不受平滑参数的影响。但是是各项异性的,即用其计算出的边缘幅度依赖于图像中边缘的角度。
Lanser滤波器是Deriche滤波器的各向同性版本。
与使用Sobel滤波器的结果相比,Lanser能更好的抑制噪声和纹理。
滞后阈值分割:使用两个阈值——高阈值和低阈值。
边缘幅度比高阈值大的那些点立即作为安全边缘点被接受,比低阈值小的那些点被立即剔除。中间的点只有能按某一路径与安全边缘点相连时才作为边缘点被接受。
滞后阈值分割处理能在不断裂边缘线也不丢失边缘点的情况下选择出相关边缘。
用拉普拉斯算子求得的边缘比用梯度量值求得的边缘更弯曲些。因为拉普拉斯算子得到的边缘一定要经过真边缘上所有角点,所以后续处理更困难些。
边缘的准确度:
精确度:某提取值与若干次提取值的平均值接近的程度。可重复性
准确度:提取值与真实值接近的程度。
图像中的噪声越大,边缘定位的精确度越差;边缘幅度越大,边缘的精确度越好。提高平滑处理的程度不能增加精确度。因为由提高平滑程度而实现的噪声降低会恰好由平滑处理得到的更弱的边缘幅度所抵消。
Deriche滤波器和Lanser滤波器比Canny滤波器更精确。
如果想控制边缘的精确度,必须使用正确的照明、摄像机、图像采集卡来使信噪比最大化。如果使用的是模拟摄像机,图像采集卡的行抖动应该尽可能的小。
影响边缘准确度的所有误差来源:摄像机和图像采集设备的灰度值响应是非线性的。未修正摄像机的非线性响应,必须进行辐射标定。
某些因素也可能造成边缘剖面变为非对称的。特别是彗差、像散以及色差。镜头的像差可能会导致非对称的剖面,镜头像差不容易用图像算法进行修正,所以尽可能让他们很小。
摄像机没有进行几何标定。
图像的透视失真。如果安装摄像机的时候不能保证其垂直于被测物体,那么都会引发透视失真。
摄像机的填充因子应该尽可能的大以避免“盲点”的影响。
⑧几何基元的分割和拟合
将轮廓数据拟合成几何基元:直线、圆和椭圆的方法。
如何将轮廓自动分割成多个部分,每部分有相对应的几何基元。
直线拟合,可以降低工件上小凸起的影响。
圆拟合,圆弧的角度变得越小则参数的准确度变得越差。
椭圆拟合:在摄像头标定中非常有用,因为标定板上经常使用圆形标记点。由于圆形会投射成椭圆,所以拟合椭圆到图像中的标记点边缘自然成为了标定过程的第一步。
将轮廓分割为直线、圆和椭圆。
直线:多边形逼近法。Ramer算法,小缺点:算法有时会将多边形控制点放置到稍微偏离真实拐角的位置上。
将轮廓分割成直线和圆的算法可以分为两类:第一类是将那些与明确实体相对应的轮廓上的断点识别出来。断点通常被定义为轮廓角上的不连续点,也等价于曲率最大处,以及曲线部分自身的不连续点。前一个定义覆盖了直线或圆弧以锐角相交的情况。后一个定义覆盖了圆和圆之间,或者直线和圆直线平滑相接的情况。
第二类算法:统一的将轮廓分割成直线和圆或者椭圆。
一开始时仅将轮廓分割成直线,会在圆和椭圆相对应的轮廓所在区域内产生一个过度分割的结果。第二步检查这些线段能否被合并成圆或者椭圆。
先用Ramer算法执行一个多边形逼近。然后检查每一对彼此相邻的线段,看它们能否用一个椭圆或一个圆更好地近似。如果椭圆地拟合误差比这两条直线地最大误差还要小,那么这两条线段就被标记成合并处理的候选对象。具有最小的拟合误差的那对直线被合并。
摄像机被标定过的话,拟合是在世界坐标中完成的。
⑨摄像机标定:
每个镜头的畸变程度不同,通过标定可以校正畸变。
标定后可以得到世界坐标系中目标物体米制单位的坐标,例如多少米或者多少毫米。
为了标定摄像机,建立一个模型,由摄像机、镜头和图像采集卡(如果使用)组成。这个模型可以将世界坐标系中三维空间点投影到二维图像中。
使用普通镜头时,世界坐标系到图像坐标系的投影为透视投影。将摄像机和普通镜头的组合称为针孔摄像机模型。
远心镜头实现世界坐标系到图像坐标系的平行投影。摄像机与远心镜头的组合为远心摄像机模型。
图像传感器:线阵图像传感器和面阵图像传感器。使用面阵时,普通镜头和远心镜头都比较常用,使用线阵时,只有普通镜头比较常用。
p=π(Pw,c1,…,cn)
P是三维空间点P 通过投影π 得到的二维图像坐标,摄像机标定就是确定摄像机参数c1,…,cn 的过程。
面阵摄像机的摄像机模型
世界坐标系WCS,摄像机坐标系CCS
Pc=RPw+T
T=(tx,ty,tz )的转置,是一个平移向量,R=(α,β,γ )是一个旋转矩阵,分别绕摄像机坐标系z轴旋转角度γ ,绕y轴旋转角度β ,绕x轴角度α 。
摄像机外参(α,β,γ,tx,ty,tz ),或称为外方位参数或摄像机位姿。决定了摄像机坐标系与世界坐标系之间的相对位置关系。
将三维空间点Pc
从摄像机坐标系中投影到成像平面坐标系中(IPCS),对于针孔摄像头模型,这个投影是透视投影,对于远心摄像机模型,这个投影是平行投影。
投影到成像平面后,镜头的畸变导致坐标发生变化。
径向畸变的影响。K>0枕型畸变,k=0无畸变,k<0桶形畸变。
最后将点从成像平面坐标系转换到图像坐标系ICS中。
针孔摄像机模型的6个参数(f,k,sx,sy,cx,cy)和远心摄像机模型的5个参数(k,sx,sy,cx,cy)被称为摄像机内参或内方位参数。
Sx和sy是缩放比例因子。对于针孔摄像机模型来讲,表示图像传感器上水平和垂直方向上相邻像素之间的距离。对于远心摄像机模型,表示像素在世界坐标系中的尺寸。
线阵摄像机的摄像机模型
必须与被拍摄物体之间有相对移动才能够拍摄得到一幅有用的图像。
摄像机外参(α,β,γ,tx,ty,tz ),摄像机内参(f,k,sx,sy,cx,cy,vx,vy,vz)
标定过程:确定内参和外参
一般情况下知道一个参考物相对于摄像机的位置已经足够用来精确测量物体。可以使用事先精确测量过的已知尺寸的可移动标定板来标定摄像机。
优势在于可以在摄像机固定的情况下对摄像机进行标定。
确定世界坐标系已知点与它们在图像中投影的对应关系。
一个平面标定板,平面上有m*m个圆形标志点,标志点外面有一个黑色的矩形边界框。圆形标志点按照行列排列成矩形阵列。
在图像中只要通过一个简单的阈值分割操作就可以找到标定板的内部区域。由于正确的阈值取决于图像中标定板的亮度,因此可以在图像中标定板的亮度,因此可以尝试不同的阈值,直到找出一个含m*n个孔洞(标定板上的圆形标记)的区域。
找到标定对象上的内部区域,利用亚像素边缘提取方法提取标定板各个圆点的边缘。因为圆形标定标记的投影是椭圆,所以将所有提取出来的边缘拟合为椭圆。
最后基于提取出椭圆的最小外接四边形,可以非常容易的确定标定标记与它们在图像中投影之间的对应关系。
可以基于标定板矩形外接框角落上的小三角方向标记来唯一确定标定板的方向。
标定对象的方向只有两种情况下才重要,如果标定标记之间在两个轴方向的距离不同;二是在多幅图像中之间唯一确定标定对象的方向。
如何标定摄像机我没看懂。
从单幅图像中提取世界坐标
摄像头参数的准确度
标定板放置不适当的话会导致摄像机参数中某个参数或某些参数不唯一。
用于摄像机标定的图像数量对参数也有影响。使用图像数量增加,准确度明显增加。
可以通过将标定板绕它的x轴和y轴旋转或者将标定板放置在与摄像机不同距离的位置上使标定板覆盖较大的深度范围,摄像机参数就会更准确。
调整镜头会影响摄像机参数。
镜头上光圈调节时,调节镜头的f值后需要重新对摄像机进行标定。
立体重构(没看)
⑩模板匹配
为了在图像上找到模板位置,必须计算模板的所有相关位姿和图像各个位置之间的相似度。例如基于模板和图像的灰度值或基于模板边缘与图像边缘的接近程度。
应用:完整性检测(物体存在与否)。物体识别。如果知道是什么物体,可以得到目标物体在图像中的位姿。找到图像中有多少个目标物。
目标的位姿是一个仿射变换或投影变换的特例。
基于灰度值的模板匹配
最简单的相似度量方法是计算模板与图像之间差值的绝对值的总和或所有差值的平方和。(SAD和SSD),计算效率很高。
如果模板和图像相同的话,得到的相似度为0,如果不同的话,相似度大于0。区别越大,相似度越大。
为了在图像中找到模板的实例,可以使用一个给定的上限对相似性图像sad(r,c)进行阈值分割。得到的是包含一些邻接像素的区域。为了得到模板的唯一位置,必须在阈值分割得到的每个连通区域中选择相似性图像的最小值。
光照情况保持不变,SAD和SSD相似度量的结果非常好。但如果光照变化,甚至在图像中存在相同物体的情况下,都将返回非常大的结果。因为图像中的灰度值已经不再相等。
归一化互相关系数NCC,线性光照变化不会影响它的结果。
通过直接减去平均灰度值可以消除加法对图像的影响,通过用灰度值的标准方差除来消除乘法对图像的影响。
归一化互相关系数的绝对值越大就表示模板与正在检测的部分图像之间越接近。
对于归一化互相关系数来说,没有简单的标准来判断是否可以停止当前计算。在确定不可能达到阈值的情况下停止相似度量的计算。
使用图形金字塔进行匹配
使用停止标准一般情况下可以提速的比例为一个常熟,但是并不能改变算法复杂度。
提高搜索速度的方法,取决于检查的平移数量,也就是位姿的数量和模板中点的数量。为了提高算法速度,需减少需要检查的位姿数量以及模板中点的数量。
首先只考虑图像和模板中间隔为i的点集,此时可以得到模板的大概位姿。随后使用间隔更小的点集在这个大概的位姿周围进一步搜索更准确的结果。
这种二次抽样可能导致锯齿效应。必须利用平滑图像来消除锯齿影响。
一般图像多次缩小两倍比直接缩小大于2倍的效果更好。
在构建金字塔的过程中,速度非常重要。使用2*2的均值滤波器来平滑图像,也就是求2*2区域内所有像素的平均灰度值。也可以使用一个高斯滤波器实现图像平滑。
为了避免在图像金字塔中造成图像平移,高斯滤波器的尺寸必须是偶数。最小尺寸为4*4。所以使用高斯滤波器会导致耗时严重。2*2的均值滤波器没有频率响应的问题,而较大的滤波器存在这个问题。均值滤波器是图像金字塔的首选滤波器。
有时构建图像金字塔的过程中会造成有用信息的损坏。
分层搜索策略:保证在图像金字塔最上层目标物体的相关结构必须可分辨出来。然后在最高层金字塔上进行一次完整的匹配。将高层中的匹配结果映射到下一层,也就是将找到的匹配点的坐标×2。由于不确定性,定为匹配结果周围的一个区域。然后在这个区域内计算相似度量,进行阈值分割以及提取局部极值。直到找不到匹配对象或到金字塔最底层结束。
在图像金字塔中层数越高,就需要使匹配阈值越宽松,这样才能保证找到所有可能的匹配位置。因此,在图像金字塔的较高层中,对于SAD和SSD相似度量需要使用稍微高一些的阈值,对于NCC相似度量我们需要使用稍微低一些的阈值。
随着图像金字塔的层数越来越低,匹配的结果也越来越精确。
基于灰度值的亚像素精度匹配(P316)(局部最小值和最大值)(最小二乘法)
带旋转与缩放的模板匹配
创建多个方向的模板。
模板越大就越能够区分更小角度的变化。
对于半径为100像素大小的模板设置角度步幅为1°。
只是在图像金字塔的最高层才匹配所有旋转的模板。
模板在每层金字塔中都会缩小两倍,每层金字塔上模板的角度步幅也会增大两倍。比如最底层角度步幅为1°,第4层可以用8°作为角度步幅。
可靠的模板匹配算法
要求目标物体由于遮挡或其他方式的干扰导致只有部分时也能找到模板的位置。图像存在严重的非线性光照变化时也能找到目标物体。
图像的边缘不会受光线变化的影响,问题是如何选择合适阈值来分割边缘。阈值太小,存在各种乱七八糟的边缘,阈值太大,目标物体的重要边缘会丢失。
法一:在匹配中使用原始的边缘点,或者增加每个点的一些特性。
法二:将边缘分割为多个几何基元,然后在图像中匹配这些分割得到的几何基元。
法三:基于边缘的分割,得到边缘上的突变点然后在图像中匹配这些突变点。突变点可以直接从图像中提取,而不需要首先提取边缘。
边缘匹配算法一大类是基于模板边缘与图像边缘之间的距离。一般使用原始边缘点进行匹配。使模板边缘上每一个点与离他最近的图像边缘点之间的均方距离最小。很耗时,但我们只要知道距离,不需要知道哪个是最近的。
如果模板边缘点和图像边缘点之间的平均距离小于一个阈值,就认为找到了一个模板的实例,为了得到模板的唯一位置,必须计算相似度量的局部最小值。
平移情况的均方边缘距离SED表示P320
也可以使用平均距离。
SED的问题:没有出现的部分边缘将会有一个非常大的平方距离,将会大大增加均方边缘距离的值,此时在图像中找到正确的匹配位置就会非常困难。
另一种距离:基于两个点集之间的Hausdorff距离。(P321)由两个距离的最大值决定。一个是模板边缘与最近图像边缘之间的最大距离,二是图像边缘与最近模板边缘之间的最大距离。
遮挡和混乱会影响匹配。
缺点:匹配过程中巨大的运算负载。
一种高效的匹配方法称为几何哈希法。
①①光学字符识别OCR
在图像中识别字符的过程。将检测对象上印刷的字符识别出来。
包含两个任务:将图像中单个字符分割出来以及将分割得到的字符进行分类,也就是为分割得到的区域分配一个符号标记。
字符分割
每个字符要对应一个区域。
使用固定的阈值或自动选择阈值进行阈值分割、动态阈值分割以及提取图像中连通区域。
还得使用过形态学方法把同一个字符分离的部分连接起来。例如i。
在一些应用中可能必须对图像进行几何变换将字符变换到一个标准位置。一般情况是将文本变成水平的,称为图像校正。旋转、透视校正、使用极性变换校正图像。
可以计算分割得到的区域在每列的像素数量,一般情况下还有必要为字符分割处定义一个搜索区域,可以基于字符预期的宽度决定。
特征提取
基于区域特征anisomery和compactness来分类这些字母。
字符分类
两种不同类型的分类器:第一种类型的分类器一般使用贝叶斯Bayes定理,尝试通过不同类型的前验概率估计后验概率。
第二种类型的分类器尝试在类型之间构建分割的超曲面。
所有分类器需要一个方法来得到概率或分割的超曲面。为实现这个目的就需要一个训练集。知道一系列特征向量的样本以及他们对应的类型。
对OCR来讲,训练集是一系列字符样本,从这些字符样本中计算它们的特征向量,同时也已知这些字符所属的类型。
图像处理系统必须提供一些手段基于收集到的字符样本扩展训练集。
测试集实际上是用来确定分类器在实际应用中存在的错误率,进行效果评估。
基于估计概率密度的分类器被称为贝叶斯Bayes分类器。假设每个类型出现的概率相等。可以通过在特征空间上计算训练集中特征向量的直方图来估计。(实际中运用不太好)
K最近邻分类器(kNN分类器),当k=1时,这个分类器就是最近邻分类器(NN分类器),NN分类器的错误率将近是使用正确概率密度的理想贝叶斯分类器的两倍大。所以3NN分类器基本和理想的贝叶斯分类器效果差不多。
不过kNN分类器很少在实际应用中使用。因为需要将整个训练集都保存在分类器中,非常耗时。
所以直接估计概率密度是不实际的。估计概率密度函数的参数。正态分布的概率密度函数共有(n2 +3n)/2个参数。可以通过例如标准的最大似然估计方法进行估计。
但是实际正态分布的假设并不成立。
线性分类器还可以被视为神经网络,但是分类能力有限,分类器将类型使用一个超平面线性分离开来试图得到正确的输出。
为了能够得到一个可以构建更普通的分离超曲面的分类器,得在神经网络中添加更多的层。
得到能够构建任意分离超曲面的分类器的另一个方法是将特征向量变换到更高维的空间,使特征向量在这个更高维的空间中是可线性分离的,然后在更高维空间中使用线性分类器。这种方法的一个实例就是多项式分类器。
SVM分类器
所有分类器的分类结果都取决于训练集中样本的多少以及质量,要尽可能多而且要具有代表性。
要错误率低的话,构建分离超曲面类(多层感知器和支持向量机)的分类器是首选。
训练速度,支持向量机比多层感知器更有优势。
但是在线分类阶段的速度要求比较重要的话,多层感知器应该是首选。因为如果训练集中包含几十万个训练样本,那么在线阶段就有几万个支持向量必须与核进行计算。但是多层感知器的分类时间只取决于网络的布局,也就是每层中处理单元的数量。
能否提供一个简单的手段来决定需要分类的某个特征向量不属于任何一个训练类型。构建超曲面的分类器就不行。
多层感知器和支持向量机没有提供手段来计算一个样本和训练集之间的接近程度。
若想实现上述功能
法一:训练一个外在的否决类,问题是如何构建一个明确的拒绝类。
法二:使用一个可以提供手段测量与训练样本接近度的分类器,如高斯混合模型分类器。