私は、PDF形式で保存されたテキストの科学論文を抽出するプロジェクトに取り組んでいます。ほとんどの論文では、これはPDFMinerを使って非常に簡単に行えますが、古い論文の中にはテキストを大きなイメージとして保存するものがあります。本質的には、紙がスキャンされ、その画像ファイル(通常はPNGまたはJPEG)がページ全体を構成します。複数段落スキャンでのOCRパフォーマンスの改善
私はTesseractエンジンを使ってそれをpython-tesseractバインディングで試しましたが、結果はかなり残念です。
私はこのライブラリで質問をする前に、OCRライブラリの提案を受け付けています。ネイティブのPythonソリューションはほとんどないようです。
Hereは、テキストを抽出しようとしているそのような画像(JPEG)です。私は上記のpython-tesseract googleコードページのサンプルスニペットで提供されている正確なコードです。私はドキュメントが少し疎であることを言及する必要があるので、私のコードの多くのオプションの1つが誤って構成されている可能性があります。どんなアドバイス(または詳細なチュートリアルへのリンク)も大歓迎です。
Hereは、OCRで試した結果です。次のように
私の質問は以下のとおりです。
- は、私が使用しているコード内の次善のものはありますか?これを行うより良い方法はありますか?おそらく別の図書館でしょうか?
- 検出を改善するためにどのような前処理を実行できますか?画像はすべてB & Wですが、しきい値を設定してその上に何かを単一値の黒色に設定し、その下のすべてをヌル値の白色に設定する必要がありますか?他に何か?
- より具体的な質問:単一単語でOCRを実行するとパフォーマンスが改善できますか?もしそうなら、誰も画像ファイル(例えば、上にリンクされたもの)内の単一の単語を区切り、それらを独立して扱うことができる別々の画像に抽出する方法を提案することができますか?
- PDFページ画像に埋め込まれたグラフや他の画像がOCRに干渉することはありますか?私はこれらを取り除くべきですか?もしそうなら、誰も自動的にそれらを削除する方法を提案できますか?
EDIT: 簡単にするために、ここで私が使用したコードです。
import tesseract
api = tesseract.TessBaseAPI()
api.Init(".","eng",tesseract.OEM_DEFAULT)
api.SetPageSegMode(tesseract.PSM_AUTO)
mImgFile = "eurotext.jpg"
mBuffer=open(mImgFile,"rb").read()
result = tesseract.ProcessPagesBuffer(mBuffer,len(mBuffer),api)
print "result(ProcessPagesBuffer)=",result
そして、ここで(その結果、パフォーマンスが非常に似ているように見えるが、この質問には示されていない)代替コードです。
import cv2.cv as cv
import tesseract
api = tesseract.TessBaseAPI()
api.Init(".","eng",tesseract.OEM_DEFAULT)
api.SetPageSegMode(tesseract.PSM_AUTO)
image=cv.LoadImage("eurotext.jpg", cv.CV_LOAD_IMAGE_GRAYSCALE)
tesseract.SetCvImage(image,api)
text=api.GetUTF8Text()
conf=api.MeanTextConf()
誰でもこの2つのスニペットの違いを説明できますか?
Ozvaldに質問を転送するために歓迎でき、素晴らしいアドバイス、ありがとう!私はあなたのコードをチェックアウトすることに本当に興味があります。 githubリポジトリなどがありますか?画像ファイルの種類については、JPEG画像をPNG形式に変換することは許容されていますか、それともすでに行われている損傷ですか?私は遭遇したPDFの多くが内部的にJPEGとして画像を保存しているので、私は尋ねます。問題が損失圧縮の1つであれば、私は私が持っているものにこだわっています。 – blz
github repoはありません、私にメールを送ってください(ianzsvald comのian)、私はそれを掘り出します(私は実際にそれをgithubに...)。 –
JPEGの場合は、余分なアーチファクトを追加しないようにTIFFとして保存します。ノイズを追加することは、避けたいものです。 –