與從文字中度量文件相比,從影象度量文件的相似性比較複雜,原因有兩個。在這些影象可能在亮度、文字背景、圖表或符號方面具有相似性。在
與文字資訊相比,從文件包含的影象中找到文件的表示形式通常比較困難。在
解決方案
我的解決方案是使用機器學習來查詢文件的表示形式,並使用此表示對文件進行分類。
在這裡,我將給keras實現我提出的解決方案。在
網路型別
我建議使用卷積層進行特徵提取,然後使用遞迴層進行序列分類。我選擇keras是因為我很熟悉,它有簡單的api來定義乙個結合了卷積層和遞迴層的網路。但**可以很容易地更改為其他庫,如pytorch、tensorflow等
影象預處理
神經網路對文件影象進行預處理的方法很多。我在做假設。在影象包含水平文字而不是垂直文字。在
文件影象大小是固定的。如果影象大小不固定,可以使用opencv's resize方法調整大小。在
垂直拆分影象,以便將行作為序列進行饋送(如果可以在空行上生成拆分行,則效率更高)。我將在單個文件中使用numpy來顯示這個。在下面的實現中,我假設單個文件的影象形狀是(100,100,3)。
首先,讓我們定義影象形狀文件影象的形狀import numpy as np
image_shape = (100, 100, 3)
split_size = 25 # this should be factor of the image_shape[0]
doc_images = #
doc_image = np.zeros(image_shape)
splitted_images = np.split(doc_image,[split_size], axis=0)
doc_images.extend(splitted_images)
doc_images = np.array(doc_images)
網路實現
keras有convlstm2d層來處理序列影象。網路的輸入是通過分割文件影象而產生的影象序列的列表。在
^$理想情況下,這個模型可以工作,因為模型可以從影象中學習文件的層次表示(字元、單詞、句子、上下文、符號)。在
如何比較兩個內容相似的Word文件
做開發很多人都知道大名鼎鼎的beyond compare,非常強大的文字檔案比較軟體。如果有兩個差不多的word檔案要比較可咋辦呢?word檔案有自己的格式,bc搞不懂裡面的東西的。強大的ms word擁有乙個功能,可以減輕一點比較兩個word檔案的痛苦。以word2007為例。當系統中有兩個以上的...
判斷兩個同類現象相似的條件 相似對角化(3)
相似對角化 3 前言 1 今天我們繼續來討論矩陣的相似對角化問題,算是對之前學習內容的複習和鞏固,並同時給出實際的例子。2 特徵值 特徵向量這裡,無論是具體的數字型還是抽象型問題,定義法都是首選的。本題是含引數的矩陣,考慮定義法,可以得到3個方程,正好解3個未知數。判斷是否可以相似對角化,我們其實講...
如何求兩個序列的相似度
衡量兩個序列的相似度,可以用馬氏距離,歐氏距離等距離公式來度量。但對兩個字串,比如kitten與sitting的相似度是多少?如果是兩個等長字串,也可以用one hot對每個字母編碼,然後用馬氏 歐式距離也可以計算。但對不等長的兩個字串,怎麼計算相似度呢?更一般的說法,如何計算兩個不等長陣列的相似度...