1

因此,我一直在研究一種應用程序,用戶可以上傳代表某種表單的(掃描的)PDF文件,在感興趣的字段周圍繪製邊界框,內容OCR'd並以結構化文本格式返回。因爲繪製邊界框是一種拖拽,我正在考慮一種減少用戶所需工作的方法;即已經向他/她提供了一種自動檢測的形式分區。我開始研究這個問題,並發現了一些有趣的方法,主要基於計算機視覺算法。然而,由於這個應用程序可能會在將來頻繁使用,因此用戶會繪製大量的邊界框,因此,如果不嘗試使用此數據集來應用學習方法,那對我來說幾乎是一種浪費。於是我開始找過很多不同的形式,發現其中大部分是由邊界的方式結構是這樣的:用於檢測表單中相關字段的學習方法(圖像格式)

enter image description here

一些觀察這裏:箱子,用文字充滿100%通常是由於它們代表條款/條件/免責聲明等,因此未要求提取。 (大部分)爲空的方框也不會被請求,因爲它們通常表示不相關的字段。唯一感興趣的盒子看起來是那些在盒子頂部/左邊有一個標籤和一些內容的盒子。

當然也應該說,並非每一種形式都與上述邊界一樣具有良好的邊界。有些在字段之間只使用一個分隔邊界(即水平或垂直),有時根本沒有邊界。

由於我們正在處理圖像,我開始研究物體識別並試用了YOLOv2(卷積神經網絡),我讓它在100個窗體的數據集上訓練了一晚(我意識到這個數據集太小了,我訓練了我的CPU,我還沒有足夠長的時間訓練它)。無論如何,我希望所有的培訓領域都有邊界和一些內容,這將很快幫助系統找到邊框。但結果令人失望(平均損失/誤差= 9.6)。我開始思考這個問題,然後意識到,如果用戶跳過繪製某些非常精美的邊界框的字段,它會在學習過程中混淆神經網絡,我是對的嗎?

至於我的問題的其餘部分:你們認爲物體識別是要走到這裏的方式,還是因爲這種形式的性質使系統太混亂了?如果是這樣,如果我申請例如一些過濾器來嘗試和「模糊」文本在一起,是否仍會是這種情況,使得這些盒子看起來更像彼此?或者,如果給定每個文檔的(大多數)相關框的座標數據集,反而會成爲更好的學習方法來應用?也許甚至有一種方法不會基於邊界的存在?

請記住,我要求的唯一要求是能夠使用用戶繪製的邊界框作爲數據集來不斷改進系統。

謝謝大家的時間!

回答

1

至於神經網絡策略,首先識別一段文字可能更有趣。通過這種方式,您可以從給定的100個文檔中獲得更多的數據。稍後,您可以學習識別特定的標題。如果你有文本的邊框,可以很容易地確定哪個文本接近所述頭部。如果您希望的輸出是與圖像中顯示的邊界框一樣大的邊界框,則網絡將難以找到有用的信息,而不是直接限制包含文本的小框。當然,因爲您的箱子是手動輸入的,所以它的模糊性將成爲預測它們準確性降低的主要原因。所以像素準確的輸入也會對此有所幫助。

也考慮使用version spaces作爲替代學習方法。包含功能的學習箱是其旗艦用例之一。

另一種策略是根本不使用機器學習。像Matlab和Octave這樣的數學框架有powerful algorithms,它可以將圖像縮小爲檢測線的二進制單像素寬柵格(example)。這當然需要一些額外的算法工作,當處理沒有線時(找到具有最小黑色像素的垂直/水平「切割」)或部分線。儘管如此,結果可能比學習者更準確。

+0

關於學習特定標題並將它們與文本片段相關聯的深刻見解!這樣,我不僅會得到自動檢測框,還會預測它屬於哪個標籤/標題。我將重點討論這些單獨的問題,並保留此更新。謝謝! – SND

+0

@SeekAndDestroy標記爲答案pl0x ^^ –

+1

在研究了多種方法之後,我可以放心地說,物體識別不是要走的路。相反,我將我的方法部分基於您最後提到的策略,我嘗試使用計算機視覺算法預先檢測線條,並類似地檢測文本塊。將兩者連接在一起給了我一套很好的'標籤' - 與它們的包圍盒相配的'文本塊'對。我仍在研究不同的方式來將用戶繪製的盒子作爲訓練數據,所以問題還沒有完全解決,但是由於您的帖子向我發送了正確的方向,我會將其標記爲答案。 – SND