2013-03-05 56 views
2

我們假設,我們正在使用複選框/空圈來掃描類似測試的文檔(用於簽名/打擊/滴答)。如果已檢查複選框/圓圈是否被選中/簽名/敲擊/勾選,那麼正確的方法是什麼?
如果我們強制測試用戶完全標記該區域,只要知道複選框/圓的位置並計算非白色像素的數量就足夠了(是嗎?),但是我們應該採用什麼方式來測試,勾選或檢查複選框/圓圈(X)?

這將成爲C#項目的一部分,因此代碼或甚至準備好.net/c/C++庫將不勝感激。測試掃描文檔上是否勾選複選框的正確方法是什麼?

+1

最可靠的方法來做到這一點很可能是用文字識別軟件,基於神經網絡的許多內容。 – anaximander 2013-03-05 15:37:49

+0

@anaximander:我不認爲這是個好主意。這裏沒有可以識別的字符。我可以製作一個X,一個完整的圓圈,完全填充它,等等。 – 2013-03-05 16:13:40

+0

有一些圖書館 - 但它們是商業的...是你的選擇嗎? – Yahia 2013-03-05 16:49:21

回答

3

對於此答案的簡短而感到遺憾,但您可以在複選框內的區域上運行ocr系統。

如果它沒有返回,那麼你知道它沒有被檢查。

如果它返回一些東西,然後將它與可能性的大白名單進行比較,然後標記不確定性。

,你可以使用@丹建議,以及

是什麼讓這個更強大的不僅僅是取平均值就是你可以判斷,如果它不具有高確定性檢查錯誤處理。因爲我們正在尋找一種以最小方式可識別的標誌,我們知道如果沒有任何東西,那麼它絕對不會被檢查。所有你需要做的就是找到一個可以用作檢查的字符和標記的白名單(並且在盒子外面思考,ocr系統可以返回一個'a'來表示一個波形,但這是一個積極的迴應) 。並且爲了澄清,僅僅取平均值的問題是複選框中黑暗的增加會產生積極的結果,但情況並非總是如此。如果有人放了一個標記,然後抹去,你仍然會在盒子裏增加黑暗。

最後,我會補充說,現在有很多OCR系統非常先進。我懷疑你會找到一個能夠提供額外的訓練數據集的地方,這些訓練數據集可以比隨機字符更好地匹配你。

1

算法會去是這樣的:

  1. 找到每個複選框(我知道你已經有)
  2. 計算所有像素
  3. 的顏色的平均值。如果超過一定閾值時,它被標記,若跌破,則無人盯防

但是,你應該增加一些檢查:

  • 是否超過閾值? - >讓人來檢查一下,學生可以先勾選一些內容,然後將其改爲另一個字段。
  • 沒有高於閾值嗎? - >讓一個人確認沒有被檢查過。

我想這個答案的重要組成部分是:
如果該算法是不確定,它標誌了人工處理。

+1

怎麼樣用不同的背景顏色的頁面?或者更糟的是頁面有漸變或圖像背景? – 2013-03-05 15:16:56

+0

@DavidWork:不應該太難:獲取一個乾淨的工作表並計算每個複選框的平均值。從應該填寫的掃描測試的平均值中減去該值。我想這將給予更好的結果,因爲每一個非選中的複選框現在應該有一個值在0附近(掃描平均 - 原來的平均)= 0 + ERROR_MARGIN – 2013-03-05 15:18:58

+0

@downvoter:請發表評論。 – 2013-03-05 16:12:58

1

大部分,提供複選框識別使用某種鍾分佈曲線的工作實際出發正在檢查一盒的可能性高性能產品:太多的「數據」,並有一個很好的機會用戶改變了主意,有潦草地寫出這個盒子;太少了,它可能是用戶在下面勾選一個方框而留下的「尾巴」,而不會在穿過下一個方框區域之前擡起筆。

我建議你應用額外的邏輯來處理被允許的多個箱子(例如,你擁有一輛汽車/你還擁有一輛自行車)以及只有一個箱子可以正確的情況(例如你是男性還是女性)。這應該有助於你的應用。濾除更明顯的錯誤。

相關問題