关于svm在ocr数字识别中的尝试: ( 积分: 50 )

  • 主题发起人 主题发起人 blackbook
  • 开始时间 开始时间
B

blackbook

Unregistered / Unconfirmed
GUEST, unregistred user!
前几天把libsvm的转换了一个c#的版本,这样就免除了使用vc的麻烦(因为我问了好几个同事都没有vc光盘了).
通过前几天对svm的学习,结合最近对.net的winform的学习,昨天在以前的libsvm的基础之上写了一个简单的ocr数字识别程序。
对于libsvm的使用最重要的有两点:
1 针对不同的使用选取不同核函数.
2 训练样本的有效性和代表性,样本的覆盖面约大越好。
针对数字ocr的识别,特征向量的选取就非常的重要。由于是对ocr和libsvm的尝试,所以我的训练使用的是手写的图片,拖动鼠标,在picturbox控件上画的数字图片,既能训练,也能用来识别。样本数据保存在数据库中,需要识别的时候载入数据库的样本数据训练该分类识别器。
图片选择160*160的大小,特征向量选择:垂直投影,暂时没有经过边缘轮廓提取。简单的把该图片分成16*16网格, 每个网格的特征向量值:黑色的像素点/总的像素点,每个数字样本垂直投影后总共现只有16个特征向量,每个向量也就是垂直网格列的合计。依次顺序为:1,2,3,4…..16 ,为0(也就是空白)的特征向量在训练的时候也没有过滤掉。
效果:还不是特别满意:
(1):1的识别率100%
(2):3 和8的识别率只有40%,经常会3识别成8,8识别成3,看来图像没有处理,特征向量的选择有很大的关系。
(3):惩罚因子选择的是100。
对libsvm的研究还不是特别的深入 也许也是一个原因
 
前几天把libsvm的转换了一个c#的版本,这样就免除了使用vc的麻烦(因为我问了好几个同事都没有vc光盘了).
通过前几天对svm的学习,结合最近对.net的winform的学习,昨天在以前的libsvm的基础之上写了一个简单的ocr数字识别程序。
对于libsvm的使用最重要的有两点:
1 针对不同的使用选取不同核函数.
2 训练样本的有效性和代表性,样本的覆盖面约大越好。
针对数字ocr的识别,特征向量的选取就非常的重要。由于是对ocr和libsvm的尝试,所以我的训练使用的是手写的图片,拖动鼠标,在picturbox控件上画的数字图片,既能训练,也能用来识别。样本数据保存在数据库中,需要识别的时候载入数据库的样本数据训练该分类识别器。
图片选择160*160的大小,特征向量选择:垂直投影,暂时没有经过边缘轮廓提取。简单的把该图片分成16*16网格, 每个网格的特征向量值:黑色的像素点/总的像素点,每个数字样本垂直投影后总共现只有16个特征向量,每个向量也就是垂直网格列的合计。依次顺序为:1,2,3,4…..16 ,为0(也就是空白)的特征向量在训练的时候也没有过滤掉。
效果:还不是特别满意:
(1):1的识别率100%
(2):3 和8的识别率只有40%,经常会3识别成8,8识别成3,看来图像没有处理,特征向量的选择有很大的关系。
(3):惩罚因子选择的是100。
对libsvm的研究还不是特别的深入 也许也是一个原因
 
后退
顶部