it-swarm.asia

كيفية استخراج النص باستخدام OCR من PDF على نظام Linux؟

كيف يمكنني استخراج نص من PDF لم يتم بناؤه باستخدام فهرس؟ كل هذا النص ، لكن لا يمكنني البحث أو تحديد أي شيء. أقوم بتشغيل Kubuntu ، وليس لدى Okular هذه الميزة.

41
hsribei

لقد حققت نجاحًا مع ترخيص BSD Linux لنظام Cuneiform OCR Linux.

لا يبدو أن الحزم الثنائية متاحة ، لذلك تحتاج إلى بنائها من المصدر. تأكد من تثبيت مكتبات ImageMagick C++ للحصول على دعم لأي تنسيق لصورة إدخال بشكل أساسي (وإلا فسيتم قبول BMP فقط).

في حين يبدو أنه غير موثق بشكل أساسي بصرف النظر عن ملف موجز README ، فقد وجدت أن نتائج التعرف الضوئي على الحروف جيدة جدًا. الشيء الجميل في ذلك هو أنه يمكن إخراج معلومات الموضع لنص التعرف الضوئي على الحروف في hOCR تنسيق ، بحيث يصبح من الممكن إعادة وضع النص في الموضع الصحيح في طبقة مخفية من ملف PDF. بهذه الطريقة يمكنك إنشاء ملفات PDF "قابلة للبحث" والتي يمكنك من خلالها نسخ النص.

لقد استخدمت hocr2pdf لإعادة إنشاء ملفات PDF من ملفات PDF ونتائج التعرف الضوئي على الحروف الأصلية فقط. للأسف ، لا يبدو أن البرنامج يدعم إنشاء ملفات PDF متعددة الصفحات ، لذلك قد تضطر إلى إنشاء برنامج نصي للتعامل معها:

#!/bin/bash
# Run OCR on a multi-page PDF file and create a new pdf with the
# extracted text in hidden layer. Requires cuneiform, hocr2pdf, gs.
# Usage: ./dwim.sh input.pdf output.pdf

set -e

input="$1"
output="$2"

tmpdir="$(mktemp -d)"

# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiffg4 -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input"

# OCR each page individually and convert into PDF
for page in "$tmpdir"/page-*.tiff
do
    base="${page%.tiff}"
    cuneiform -f hocr -o "$base.html" "$page"
    hocr2pdf -i "$page" -o "$base.pdf" < "$base.html"
done

# combine the pages into one PDF
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$output" "$tmpdir"/page-*.pdf

rm -rf -- "$tmpdir"

يرجى ملاحظة أن النص أعلاه هو بدائي للغاية. على سبيل المثال ، لا يحتفظ بأي بيانات تعريف PDF.

25
Jukka Matilainen

معرفة ما إذا كان pdftotext ستعمل من أجلك. إذا لم يكن موجودًا على جهازك ، فسيتعين عليك تثبيت حزمة poppler-utils

Sudo apt-get install poppler-utils 

قد تجد أيضًا مجموعة أدوات pdf للاستخدام.

قائمة كاملة من برامج قوات الدفاع الشعبي هنا على ويكيبيديا.

تحرير: بما أنك تحتاج إلى إمكانيات التعرف الضوئي على الحروف ، أعتقد أنك سوف تضطر إلى تجربة طريقة مختلفة. (على سبيل المثال ، لم أتمكن من العثور على محول pdf2text من نظام تشغيل Linux يعمل على التعرف الضوئي على الحروف).

  • تحويل قوات الدفاع الشعبي إلى صورة
  • قم بمسح الصورة ضوئيًا إلى نص باستخدام أدوات التعرف الضوئي على الحروف

تحويل pdf إلى صورة

  • gs: يجب أن يقوم الأمر أدناه بتحويل pdf متعدد الصفحات إلى ملفات tiff الفردية.

    gs -SDEVICE = tiffg4 -r600x600 -sPAPERSIZE = letter -sOutputFile = filename_٪ 04d.tif -dNOPAUSE -dBATCH - filename

  • أدوات مساعدة ImageMagik : هناك أسئلة أخرى على موقع SuperUser حول استخدام ImageMagik قد تستخدمها لمساعدتك في إجراء التحويل.

    تحويل foo.pdf foo.png

تحويل الصورة إلى نص باستخدام OCR

مأخوذة من قائمة ويكيبيديا من برامج التعرف الضوئي على الحروف

13
nagul

محرّر مستندات Google سوف الآن يستخدم التعرف الضوئي على الحروف (OCR) لتحويل مستندات الصور/قوات الدفاع الشعبي التي حمّلتها إلى نص. لقد حققت نجاحًا جيدًا في ذلك.

إنهم يستخدمون نظام التعرف الضوئي على الحروف الذي يتم استخدامه للمشروع العملاق كتب Google .

ومع ذلك ، يجب ملاحظة أنه لن يتم قبول سوى ملفات PDF بحجم 2 ميغابايت للمعالجة.

تحديث
(1). لتجربته ، قم بتحميل <2 ميغابايت من ملفات pdf إلى مستندات google من مستعرض ويب.
(2). انقر بزر الماوس الأيمن فوق المستند الذي تم تحميله وانقر فوق "فتح باستخدام محرّر مستندات Google".
... سيتحول محرر مستندات Google إلى نص وإخراج إلى ملف جديد يحمل نفس الاسم ولكن محرّر مستندات Google يكتب في نفس المجلد.

11
Russ

قام Geza Kovacs بعمل حزمة Ubuntu والتي هي في الأساس نص برمجي يستخدم hocr2pdf كما اقترح Jukka ، لكنه يجعل الأمور أسرع قليلاً في الإعداد.

من منتدى Geza's Ubuntu مع التفاصيل حول الحزمة ...

إضافة مستودع وتثبيت في أوبونتو

Sudo add-apt-repository ppa:gezakovacs/pdfocr
Sudo apt-get update
Sudo apt-get install pdfocr

تشغيل ocr على ملف

pdfocr -i input.pdf -o output.pdf

مستودع GitHub للرمز https://github.com/gkovacs/pdfocr/

2
ryanjdillon

PDFBeads يعمل بشكل جيد بالنسبة لي. وضعني هذا الخيط " تحويل الصور الممسوحة ضوئيًا إلى ملف مفرد PDF ملف ". لفحص الكتب بالأبيض والأسود ، تحتاج إلى:

  1. إنشاء صورة لكل صفحة من قوات الدفاع الشعبي. يجب أن تعمل أي من الأمثلة ع أعلاه
  2. توليد الناتج hOCR لكل صفحة. لقد استخدمت tesseract (لكن لاحظ أن Cuneiform يبدو أنه يعمل بشكل أفضل).
  3. نقل الصور وملفات hOCR إلى مجلد جديد ؛ يجب أن تتوافق أسماء الملفات ، لذلك يحتاج file001.tif إلى file001.html ، file002.tif file002.html ، إلخ.
  4. في المجلد الجديد ، قم بتشغيل

    pdfbeads * > ../Output.pdf
    

سيؤدي ذلك إلى وضع الملف المدمج ، OCR'd PDF في الدليل الأصل.

1
scruss

نص آخر باستخدام tesseract:

#!/bin/bash
# Run OCR on a multi-page PDF file and create a txt with the
# extracted text in hidden layer. Requires tesseract, gs.
# Usage: ./pdf2ocr.sh input.pdf output.txt

set -e

input="$1"
output="$2"

tmpdir="$(mktemp -d)"

# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiff24nc -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input"

# OCR each page individually and convert into PDF
for page in "$tmpdir"/page-*.tiff
do
    base="${page%.tiff}"
    tesseract "$base.tiff" $base
done

# combine the pages into one txt
cat "$tmpdir"/page-*.txt > $output

rm -rf -- "$tmpdir"
1
tolima

أفضل وأيسر طريقة للخروج هي استخدام pypdfocr - إنه لا يغير ملف pdf

pypdfocr your_document.pdf

في النهاية ، سيكون لديك your_document_ocr.pdf آخر بالطريقة التي تريدها بنص قابل للبحث. لا يغير التطبيق جودة الصورة. يزيد من حجم الملف قليلاً بإضافة نص التراكب.

تحديث الثالث من نوفمبر 2018:

pypdfocr لم يعد مدعومًا منذ عام 2016 ولاحظت بعض المشكلات نظرًا لعدم وجود إرشادات. ocrmypdf ( الوحدة النمطية ) تقوم بعمل مألوف ويمكن استخدامها مثل هذا:

ocrmypdf in.pdf out.pdf

لتثبيت:

pip install ocrmypdf

أو

apt install ocrmypdf
1
Eduard Florinescu

مكتبة Asprise OCR تعمل على معظم إصدارات Linux. يمكن أن يستغرق PDF المدخلات والمخرجات كما البحث PDF.

إنها حزمة تجارية. قم بتنزيل نسخة مجانية من Asprise OCR SDK لنظام التشغيل Linux هنا وقم بتشغيله بهذه الطريقة:

aocr.sh input.pdf pdf

ملاحظة: يحدد ملف pdf المستقل تنسيق الإخراج.

إخلاء المسؤولية: أنا موظف في الشركة المنتجة للمنتج أعلاه.

1
Asprise Support

جرب Apache PDFBox لاستخراج محتوى النص من PDF الملف. في حالة الصور المضمنة في PDF تستخدم الملفات ABBYY FineReader Engine CLI لنظام التشغيل Linux لاستخراج النص.

0
Praveen Kumar K R