這是前年年底我做過的一個項目,項目中我用到了大津法來處理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] 大津法原理