基于 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.
- 基于 LBP + SVM 胡萝卜开裂检测算法
- 前景检测算法(十一)--基于LBP纹理
- 基于Opencv的LBP+SVM分类实例
- 【特征检测】LBP特征算法
- OPENCV svm检测算法
- opencv lbp人脸检测算法
- 基于 OpenCV 的 LBP + SVM 人脸识别
- 【目标检测】基于SVM+HoG目标检测
- 基于LBP的背景建模算法
- 基于LBP的背景建模算法
- 基于LBP的背景建模算法
- 基于HOG-LBP特征融合的头肩检测研究
- 基于SVM的Android应用程序安全检测
- OpenCV中基于HOG+SVM行人检测
- AdaBoost+LBP人脸检测算法加速相关分析
- LBP算法
- LBP算法
- LBP算法
- 复选框如何设置全选并保存入库
- 通信协议:HTTP、TCP、UDP
- 【C#】反射创建类对象与传参
- 【Matplotlib】线设置,坐标显示范围
- libcurl错误
- 基于 LBP + SVM 胡萝卜开裂检测算法
- ejabberd聊天记录
- 2D激光雷达如何实现3D扫描?答案就在2016服务机器人展
- 数据库的时间提取方法
- selenium IDE 定时执行case
- 【io】学习了解
- iOS开发——启动广告页
- Jsoup使用选择器语法来查找元素
- 51nod-【1136 欧拉函数】