基于 LBP + SVM 胡萝卜开裂检测算法

来源:互联网 发布:js lastindexof 编辑:程序博客网 时间:2024/04/25 08:14

胡萝卜开裂检测算法

l  LBP+SVM 算法:

1.       算法描述:

LBP+SVM对胡萝卜开裂检测算法的主要思想是,首先,利用LBP对开裂胡萝卜与非开裂胡萝卜进行特征提取,将提取的特征利用svm对提取的特征进行训练和识别;

2.       算法步骤描述:

1)       首先,对胡萝卜进行预处理,主要通过加权的方式对胡萝卜的背景进行去除;当RGB三个通道的加权系数分别为2.5、-1.5、-1.0时,可得到较好的处理效果,具体计算如下述公式所示:

上述公式中,gray 为去除背景后的胡萝卜的灰度图像,R、G、B分别为RGB图像的三个颜色通道图像,即为R 通道图像、G通道图像、B通道图像;

处理效果如下图所示:

对处理后的图像进行分割,仅提取出胡萝卜区域,提取的图像如下图所示:


2)       对提取出的胡萝卜进行LBP特征提取,主要采用LBP圆形算子对胡萝卜进行LBP特征的提取,当LBP圆形算子的半径为1,领域为12时,可以对胡萝卜的表面纹理特征进行准确的描述,如下图所示:

对非开裂胡萝卜的纹理特征的描述,如下图所示:



对开裂胡萝卜的描述,如下图所示:


3)       Svm 采用径向基函数作为激活函数,当gamma取8.0,惩罚因子C 取10.0时,svm对训练集的识别准确率为100%,但对测试集的识别准确率为:70%,具体情况,详见数据统计表。

 

3.       算法准确率统计

根据现有算法,对胡萝卜的准确率的统计如下所述,共采集了200个样本,表面有裂纹的胡萝卜与表面没有裂纹的胡萝卜各100个,在两组各100个样本中,各取95个作为训练集,剩余的5个做为测试集,其中,训练集的识别准确率为100%,测试集的准确率为70%,具体数据如下表所述:

训练集

测试集

 

开裂

非开裂

开裂

非开裂

数量

95

95

5

5

正确

95

95

2

5

错误

0

0

3

0

准确率

100%

100%

40%

100%

整体准确率

100%

70%

 

4.       算法分析

1)       算法识别效率低的原因分析

根据上表中统计的数据,可以看出,主要是将开裂的胡萝卜识别为非开裂的胡萝卜,造成这种现象的主要原因,主要有以下几点:

a)       首先,由于算法本身决定,LBP算法主要是根据局部图像的灰度值对该区域进行编码,继而遍历该图像,得到该图像的LBP编码,因此,该算法的准确率,很大程序上依赖于图像的灰度值,识别错误的图像如下图所示:

如上图中左右两侧的图像所示,胡萝卜的开裂区域的纹理与灰度值,与其他非开裂区域的纹理与灰度值的特征非常接近,而算法本身是通过灰度值与纹理特征来进行区分,因此,这是造成算法识别率低的主要原因之一;

b)       因为,图像的采集环境过于简单,胡萝卜表面存在高光,也会对算法的准确率造成一定的影响;

c)       参数的设置也是对检测造成影响的因素之一,因为,此处的胡萝卜LBP特征的提取,采用的是LBP圆形算子,其中的半径(radius)、邻域数(neighbor)等数据,通过人为设置进行设定,所以,该参数组合的设置,对检测的准确率也有一定的影响;

 

5.        

0 0