分享

Svm应用尝试(C#写的数字ocr软件LTOCR)

 duduwolf 2005-09-29

通过前几天对svm的学习,结合最近对.netwinform的学习,昨天在以前的libsvm的基础之上写了一个简单的ocr数字识别程序。

对于libsvm的使用最重要的有两点:

1 针对不同的使用选取不同核函数.

2 训练样本的有效性和代表性,样本的覆盖面约大越好。

针对数字ocr的识别,特征向量的选取就非常的重要。由于是对ocrlibsvm的尝试,所以我的训练使用的是手写的图片,拖动鼠标,在picturbox控件上画的数字图片,既能训练,也能用来识别。样本数据保存在数据库中,需要识别的时候载入数据库的样本数据训练该分类识别器。

图片选择160*160的大小,特征向量选择:垂直投影,暂时没有经过边缘轮廓提取。简单的把该图片分成16*16网格, 每个网格的特征向量值:黑色的像素点/总的像素点,每个数字样本垂直投影后总共现只有16个特征向量,每个向量也就是垂直网格列的合计。依次顺序为:1,2,3,4…..16 ,为0(也就是空白)的特征向量在训练的时候也没有过滤掉。

1

2

3

4

5

6

15

16

数字

value

0.390625

0

0.59765625

0.625

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

数字1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

数字2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

数字1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

数字3

3

……

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

效果:还不是特别满意:

1):1的识别率100%

2):3 8的识别率只有40%,经常会3识别成88识别成3,看来图像没有处理,特征向量的选择有很大的关系。

3):惩罚因子选择的是100

 

 

 

 

 

 

 

 

Ps:本人不善于表达。可惜,在这个blog上面不能贴图,也不能上传demo软件。只是由于对编程的爱好,促使我把自己的一些东西拿来和大伙分享,希望能够起到抛砖引玉的作用。也希望有更多的大虾来指点,交流。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多