LEADTOOLS教程:使用LEADTOOLS OMR處理大型測試和調(diào)查
LEADTOOLS (Lead Technology)由Moe Daher and Rich Little創(chuàng)建于1990年,其總部設(shè)在北卡羅來納州夏洛特。LEAD的建立是為了使Daher先生在數(shù)碼圖象與壓縮技術(shù)領(lǐng)域的發(fā)明面向市場。在過去的發(fā)展歷程中,LEAD以其在全世界主要國家中占有的市場領(lǐng)導(dǎo)地位,在數(shù)碼圖象開發(fā)工具領(lǐng)域中已成為既定的全球領(lǐng)導(dǎo)者。LEADTOOLS開發(fā)與發(fā)布的LEAD是屢獲殊榮的開發(fā)工具包。
光學(xué)標(biāo)記識別(OMR)是形式識別的重要組成部分,但可能非常復(fù)雜。從表面上看,僅通過計數(shù)像素就可以很容易地檢測出盒子是否被填充。盡管這對于小區(qū)域而言可能是正確的,但您如何處理帶有數(shù)百個復(fù)選框的圖像,如選擇試卷或調(diào)查問卷?
充滿泡沫的文檔面臨幾個獨特的挑戰(zhàn):
設(shè)置模板,以便識別引擎知道要查找的氣泡以及在何處
為每個氣泡或氣泡組分配適當(dāng)?shù)闹?/p>
處理與模板匹配的填充文檔
理解所有數(shù)據(jù)并處理人為錯誤
提供分析信心報告
LEADTOOLS通過一套直觀、易于使用的API和示例應(yīng)用程序來解決這些問題,并在文檔圖像中創(chuàng)建和處理大量OMR字段。
創(chuàng)建模板
對于大型OMR數(shù)據(jù)集,第一個(也可能是最大的)問題是必須設(shè)置主表單模板的麻煩。LEADTOOLS表單識別的第一版包括OMR支持。但是,該版本的主要目標(biāo)是捕獲單個復(fù)選框,而不是捕獲大量復(fù)選框。由于您必須在每個OMR字段周圍繪制一個矩形,因此如果要設(shè)置大型調(diào)查表或考試表很麻煩。
對于版本20,LEADTOOLS添加了一個用戶友好的單擊和拖動界面來創(chuàng)建整個字段分組。解析后,您可以選擇是按行還是按列細分每個答案,以及分配給每個單元格的值。提供了常見的答案集(1-9,A-Z等)以及分配自定義值的功能。您還可以告訴它以逗號分隔(用于多項選擇答案)或組合為單個字符串(用于名稱和日期)輸出數(shù)據(jù)。
在后臺,界面和對話框正在創(chuàng)建和編輯OmrFieldOptions對象。通過簡單地傳遞邊界矩形和一些選項,主模板的ITemplateForm.ExtractInfo方法將找到并創(chuàng)建所有單獨的子字段,并對數(shù)據(jù)是什么進行一些初步猜測。(例如,方向、值、使用答案鍵等)
圖1:想象一下在此表單的每個OMR氣泡周圍繪制一個矩形!
OmrField omrField = new OmrField(); omrField.Bounds = lr; omrField.PageNumber = _currentPageIndex + 1; omrField.Name = "Answers 1-15"; // Parse the area defined by the OmrField and populate the individual OMR sub-// fields within it templateForm.ExtractInfo(_currentPageIndex + 1, new Field[] { omrField }); for (int i = 0; i < omrField.Fields.Count; i++) { if (string.IsNullOrWhiteSpace(omrField.Fields[i].Name)) { omrField.Fields[i].Name = string.Format("Area {0}", i.ToString()); } } // Set additional options (you can also do this programmatically if desired) OmrFieldDialog dlg = new OmrFieldDialog(omrField, formPage.Image.Clone()); if (dlg.ShowDialog() == DialogResult.OK) { return omrField; }
“現(xiàn)在更像是它!”
處理填寫的文件
設(shè)置主模板后,就該對它處理已填寫的表單了。您可以選擇單個文件,也可以選擇整個文件夾來加載并與模板進行比較。如果要處理測試結(jié)果,則還可以在此步驟中提供答案鍵,以及其他選項,例如及格分?jǐn)?shù)。
圖2:管理要處理的已填寫表格
圖3:選擇和配置答案鍵
不要讓截圖的簡單性蒙騙您,OMR引擎本能地處理了很多幕后工作。自動預(yù)處理和對齊算法正是使LEADTOOLS如此特別的原因。掃描文檔時,可能會出現(xiàn)一些常見的缺陷,例如角度稍微偏斜或黑色邊框。這些問題由LEADTOOLS OMR引擎自動處理和解決。最重要的是,豐富的LEADTOOLS圖像處理庫為您提供了專門用于校正圖像缺陷和變形的綜合工具。但是,即使使用更高質(zhì)量的分辨率,諸如主表單和填充表單之間不同的掃描分辨率之類的不太明顯的問題也會極大地影響圖像比較算法。這是因為填寫的表單圖像和模板的物理坐標(biāo)將不匹配。另外,來自ADF掃描儀的非線性變形(例如,文檔的某些部分的垂直拉伸)通常會繞開未經(jīng)訓(xùn)練的眼睛,并且還會困擾處理。LEADTOOLS Forms Processing引擎會自動處理此類場景以及更多場景。這就是使其成為市場上功能最強大且最可靠的SDK之一的原因。
評分和分析結(jié)果
啟用對模板中的OMR字段評分的選項時,LEADTOOLS會將用戶的已填寫響應(yīng)與答案鍵進行匹配。除了檢索結(jié)果之外,還將顯示其他統(tǒng)計信息。
圖4:處理結(jié)果,答案以黃色突出顯示以供審核
根據(jù)模板處理填寫的表格后,用戶可以查看結(jié)果。LEADTOOLS將使用其可信度報告,然后根據(jù)顏色代碼,正確(綠色),錯誤(紅色)和需要審查(黃色)。當(dāng)氣泡沒有完全填充或沒有被淺色陰影填充時,通常會發(fā)生低置信度值。可以在設(shè)計模板時微調(diào)OMR靈敏度,但是通常最好在靈敏度低的方面犯錯,因為大多數(shù)檢查在氣泡內(nèi)都有字母或數(shù)值,可能會導(dǎo)致假陽性。此外,如果該字段為空白,或者對于同一答案填充了多個氣泡,則應(yīng)用程序?qū)⑼ㄖ獙忛喺摺?/p>
圖5:查看答案
審閱窗格將顯示已處理表格中的區(qū)域和答案鍵,以進行簡單驗證。例如,如果部分填充的氣泡導(dǎo)致引擎將答案檢測為空白,則用戶可以更改答案并獲取更新的統(tǒng)計信息。用戶單擊“下一步”按鈕后,它將更改概述中單元格的背景顏色,表明答案已被查看。
您還可以在處理表單之前或之后自定義“需求審查”標(biāo)準(zhǔn)。這使用戶能夠過濾出結(jié)果,然后對需要檢查的結(jié)果進行分類。
圖6:設(shè)置要審查的新過濾器
圖7:帶有新突出顯示顏色的復(fù)習(xí)考試
結(jié)論
LEADTOOLS OMR SDK超越了簡單填充/未填充文檔圖像上光學(xué)標(biāo)記的檢測范圍。它為應(yīng)用程序開發(fā)人員提供了設(shè)計,處理和分析從考試和調(diào)查中發(fā)現(xiàn)的大量氣泡中檢索到的數(shù)據(jù)所需的一切。
本文內(nèi)容到這里就結(jié)束了,感興趣的朋友可以繼續(xù)關(guān)注我們,了解更多產(chǎn)品信息~
LEADTOOLS Imaging Pro Developer Toolkit、LEADTOOLS Document Imaging Suite Developer Toolkit、LEADTOOLS Medical Imaging Developer Toolkit是LEADTOOLS的產(chǎn)品,點擊查看產(chǎn)品詳情