胡萝卜开裂检测算法
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.