用大津法进行omr识别
来源:互联网 发布:阿里云收件服务器 编辑:程序博客网 时间:2024/05/02 01:54
这是前年年底我做过的一个项目,项目中我用到了大津法来处理omr识别的自动阈值问题,经过测试,该算法可以对不规范的涂写答题卡进行高效识别(比如以打对勾进行涂写的),而且是仅仅是几十行代码就实现了这样的功能。
看如果对如下这样的调查问卷进行识别:
在用大津法之前会有很多图像预处理及复杂的识别过程,这里略去,感兴趣的读者可以参看相关的文章。
我们这里假设成功的完成以上的步骤,成功的分割了卡片,分离出若干的基于二值或者灰度的答题框(这里,为表达方便,对答题框简写为CM,下文将均采用CM来代表分离出的答题框位图),如下:
涂了的CM,黑像素的比率自然就大些,我们下面要做的就是要在这些若干个CM中选出涂改了的CM。这里先简单介绍一下大津法。
大津法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫最大类间方差法,简称OTSU。它是用来对图像阈值化的。我们说大津法实际上是对集合的一个二分类,大津法是作用于某覆范空间M,如果M有进行二分类的需求。可以用大津法进行集合的两分类。
再回到omr识别上来,像素比率是实数域上的覆范空间,定义范数为其绝对值,而且我们这里的识别是否涂写就是二分类(涂写了和没有涂写),所以说完全的符合大津法的要求。
我们简述一下大津法的过程:
对于图像I(x,y),涂改的和未涂改的黑像素比率的分割阈值记作,属于已经涂写的CM个数占CM的总数比例记为,其平均黑像素比率;未涂写的CM个数占CM的总数的比例为,其平均黑像素比率为。图像的总平均黑像素比率记为,类间方差记为。
图像的大小为,图像中黑像素比率大于阈值的CM个数记作,黑像素比率小于阈值的CM个数记作,则有:
将式(1.5)代入式(1.6),得到等价公式:
采用遍历的方法得到使类间方差最大的阈值,即为所求。
我们对答题卡涂写一般是用2B铅笔全涂(要尽可能的适用于不规范的情况),对调查问卷则可能打对勾等,我们要适用于各种情况,所以绝不能用固定阈值来处理。大津法恰恰能动态的对目标和背景进行区分,最大限度的保证它的稳定性。
参考资料:
[1] 大津法原理
- 用大津法进行omr识别
- OpenCV进行OCR识别
- ZBar进行二维码识别
- GestureOverlayView进行手势识别
- Tesseract 进行图像识别
- 基于图像的OMR技术的实现
- LEADTOOLS典型案例-OMR智能阅卷系统
- 进行识别前图像预处理
- 使用隐马尔科夫进行语音识别
- Watir 进行对象识别方式
- 用matlab进行模糊识别
- 使用opencv进行数字识别
- 使用GestureDetector进行手势识别
- 使用GestureDetector进行手势识别
- 使用GestrueDetector进行手势识别
- 使用GestureOverlayView进行手势识别
- 使用svm进行蚊子识别
- Grid Control major components:OMA、OMS and OMR
- Git入门指南六:移除文件和移动文件
- C++ 定义string类型变量
- 三星在MWC大会上发布两款新的Gear智能手表
- __I、 __O 、__IO是什么意思?怎么用?
- pat:1013 质数
- 用大津法进行omr识别
- rman实现不完全恢复
- uva 1291 - Dance Dance Revolution(dp)
- Partition List - LeetCode
- 【linux学习笔记】top命令总结
- Spring中IoC的入门实例
- 12306网站设计猜想
- mysql时区转换查询,convert_tz
- Android高级篇-NDK(Native Development Kit)之坏境搭建【二】