结合最近视觉算法开发谈对概率模型的理解

        以前写机器视觉算法的时候,依赖从opencv中提取出的特征,经过人为设计的规则,得到检测结果。
        在线序检测算法设计中,在整张图片中截取了1个像素高度的横向区域,得到1920个rgb像素点,转换为hsv颜色空间,分别做3个通道的曲线图。在线缆和背景,线缆与线缆之间的像素值跳变反应在曲线图上就是曲线导数的绝对值大小。根据这一朴素的结论,人为设计跳变识别函数,比如三条曲线导数(一个通道相邻像素的差)的乘积,把大于某个数(阈值)的地方认为是跳变区域,跳变区域中间的部分认为是线缆区域,然后在提取线缆区域的hsv通道值的均值,作为颜色匹配的输入。颜色的匹配程度使用颜色空间中距离(阈值)来衡量。很明显,这样设计的算法依赖于特定的场景,因为需要设置阈值的地方过多,这不是一个设计机器视觉算法好思路。
        在端子检测算法中,从固定背景中根据颜色通道的阈值(事先根据背景颜色设置阈值)分割出背景和前景,用前景的轮廓和保存的前景轮廓进行匹配(简化的ICP算法,适用于二维),得到转换参数,根据转换参数,提取事先设置的感兴趣区域。然后对感兴趣区域进行识别(工业检测中一般是分类问题,识别良品与废品)。识别感兴趣区域也可以使用人为设置的函数,通过阈值来进行分类。
        所有可以看出,这里人为设计的规则,其实就是找到一个转换,使得特征经过这个转换后可以很明显的描述我们想要结果。对于简单的问题,人为设计一些转换(容易理解的,线性的,低维的转换关系)便能得到良好的效果,但是对于复杂的问题,这个转换关系需要通过大量的数据对(特征和结果)来得到。这里转换关系也可以看做是模型。模型有白盒子和黑盒子之分。
        概率模型属于白盒子,在计算机视觉:《模型,学习和推理》一书中,介绍了多种概率分布,及描述这些概率分布参数概率分布的概率分布。模型学习的目的就是要找到我们假设的概率(在现有状态条件下结果的概率)分布参数的值或者分布。
        神经网络学习模型属于黑盒子,大量的特征数据和对应的结果数据对,通过不断的前馈和反馈,使模型的输出的结果越来越接近输入特征所对应的结果。这个模型最终能把一个新的输入特征转换为我们需要的结果。
        在问题并不复杂的情况下,当模型可以轻易的去描述时,使用概率模型不仅容易理解而且计算量相对于神经网络的方法更少。
        在使用概率模型求解时,首先要确定是使用生成模型还是使用识别模型。判别模型(discriminative)是建立一个在给定获取到的数据条件下的世界状态的概率的模型。生成模型(generative)是建立一个在给定世界状态下获取到的数据的概率的模型。
        对于判别模型,举一个例子,检测像素是否属于皮肤。一个像素就是一个数据,可以记为X,世界状态就是1(是皮肤),0(不是皮肤),可以记为W。那么识别模型就是P(W|X),即在给定X的条件下W的概率。因为W取值只有两个,所以旋转伯努利分布,并且想办法把x通过一个变换转换到(0,1)。识别模型的学习过程就是确定概率分布函数P中的参数。当确定了参数,我们只要计算P(W|X)就能知道给定的图像数据X是否是皮肤了。
        对于生成模型,同样举个例子,在人脸检测应用中,一张人脸照片或者一张动物照片就是一个数据,可以记为X,世界状态就是1(是人脸),0(不是人脸),可以记为W。那么识别模型就是P(X|W),即在给定W的条件下X的概率。识别模型的学习过程就是确定概率分布函数P中的参数。如果我们的模型选择多维正态分布(multivariate normal distribution),那么要确定的参数就是均值向量和协方差矩阵。这里需要注意的是,学习过程中,P(X|W=0)和P(X|W=1)要分开处理,即样本也要分为人脸图片和非人脸图片。分别学习得到人脸的多维正态分布参数的均值向量和协方差矩阵和非人脸的多维正态分布参数的均值向量和协方差矩阵。学习过程中使用极大似然估计,极大后验,贝叶斯方法等,对于还有隐藏参数的分布,使用迭代的EM(expectation maximization)算法。在应用时,使用贝叶斯准则计算P(W=1|X)即可得到X数据是否来自人脸图像。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仟人斩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值