Komut satırı / komut dosyası aracılığıyla mevcut PDF'yi aranabilir hale getirme (OCR)


21

Mevcut bir PDF dosyasını üzerinde OCR çalıştırarak, aranabilir olmayan orijinal dosyayı aranabilir sürümle değiştirerek aranabilir yapan ve katılımsız çalıştırabilen çevrimdışı bir komut dosyası aracı arıyorum.

Örneğin, www.pdfscannerapp.com - tam olarak ihtiyacım olanı yapıyor, ama sadece GUI - yazılabilir değil.

Evernote'un PDF dosyalarını aranabilir hale getirdiğinin farkındayım, ancak yalnızca Evernote içindeyken aranabilir durumda kalıyorlar.

Mükemmel bir OCR aramıyorum, orta derecede kabul edilebilir bir OCR bile iyi, ancak hantal bir yazılım paketi yerine küçük bir yardımcı programı tercih ederim.

(AD ile ilgili benzer ancak farklı bir sorunun farkındayım: Aranabilir ve İmzalanabilir PDF'ye Taramak veya Dönüştürmek için Yazılım Aranıyor - ancak, PDF'leri imzalamak veya doldurmak zorunda değilim ve gereksinimim çözümün yazılabilir olması)

DÜZENLE:

1) Çeşitli yardımcı programlar yapılandırılmış metin çıkarmaya izin verir, ancak çıkarılması için metnin orada olması gerekir; Tarayıcılar tarafından oluşturulan düz PDF'lerde olduğu gibi, esas olarak bitmap'leri saran PDF'lerden bahsediyorum.

2) Mutlaka ücretsiz bir çözüm aramıyorum ve sadece ihtiyacım olanı yapan iyi bir yardımcı program için ödeme yapmaktan mutluluk duyarım, ancak bir OCR özelliği içeren milyonlarca özelliğe sahip hantal uygulamalar aramıyorum ama maliyeti sadece OCR işlevselliği için satın almayı haklı göstermeyen.

3) Yukarıda belirtildiği gibi, mükemmel bir OCR aramıyorum, sadece orta derecede kabul edilebilir bir OCR arıyorum. Ne yazık ki, tecrübelerime göre, tesseract gerçekten bu eşiğin altında. En azından hesap numarasının (müşteri numarası) doğru bir şekilde tanınması için OCR yardımcı fatura tasarlayabileceği bir OCR'yi "orta derecede kabul edilebilir" olarak tanımlıyorum.

EDIT: "komut dosyası" veya "otomatikleştirilebilir", yani otomatik olarak tetiklenebilir ve insan girişi olmadan katılımsız çalışabilir.


2
... ne kadar zor olacağını bilmiyorum ama Tesseract OCR genellikle Unix.SE'de code.google.com/p/tesseract-ocr ve OCR'den bahsetti .
hhh

1
Burada benzer bir soru var , cevap gereksinimlerinize uygun mu?
nohillside

1
OCR'den bahsediyorsun. Gereksinimleriniz PDF içindeki görüntüleri veya taranmış PDF dosyalarını içeriyor mu? İçinde basit bir postscript olarak metin bulunan dosyalar için "PDF2Text Pilot" gibi bir PDF'den metne dönüştürücü sizin için işe yarayabilir.
Tim B

@patrix Mutlaka ücretsiz değil, farklı bir fiyat aralığında daha küçük bir hizmet arıyordum. Yine de, olası bir çözüm, teşekkür ederim.
magma

@TimothyButler ne yazık ki taranmış PDF'lerle (görüntüler) ilgileniyorum. Ama, güzel bir ipucu, teşekkür ederim.
magma

Yanıtlar:


5

Bunu "komut satırı" ndan "komut dosyası" yapabilmek için gereksinimlerinizin neler olduğu tam olarak açık değil.

Otomasyon hakkında konuşuyorsanız, bu herhangi bir yardımcı programla mümkündür.

ABBYY FineReader Express + Klavye Maestro + Hazel

ABBYY FineReader Express + Keyboard Maestro + Hazel'i şu şekilde kullanıyorum:

  1. Hazel, herhangi bir yeni PDF için belirli bir klasörü izler

  2. bir PDF bulunursa, "ABBYY FineReader Express" içinde açılır.

  3. Klavye Maestro daha sonra PDF'yi Aranabilir PDF'ye (OCR) dönüştürme işlemini otomatik hale getirir ve dosyayı farklı bir dizine kaydeder.

Şimdi, Hazel ve Keyboard Maestro'ya sahip değilseniz, başlangıç ​​maliyetleriniz oldukça hızlı bir şekilde yükselecek (her ikisine de bağlı olmamıza rağmen, onları bir pazarlık olarak görüyorum).

PDFPen + AppleScript + Klasör Eylemleri

PDFPen (veya PDFPenPro) ve klasör eylemleri ve AppleScript ile benzer bir şey yapabilirsiniz. Bir örnek için bkz. Https://gist.github.com/prenagha/1355037 .

Marco Arment, Mac için OCR uygulamaları hakkında bir anket yaptı ve PDFPen'in harika sonuçları olduğunu ve otomatikleştirilmesinin kolay olduğunu buldu.

"PDFpen el yazısı OCR" için yapılan bir Google araması bir dizi alternatif oluşturacaktır.


iyi cevap TJ. Hazel şaşırtıcı, ben sahibim ve çok kullanmaktan zevk alıyorum. Şu anda abbyy / klavye maestro'm yok, ancak Hazel + PDFPen inanılmaz bir kombinasyon. Genel olarak, buradaki tüm cevaplar genellikle çok iyi ve biraz farklı kitlelere hizmet ederken, Hazel + PDFPen'in orijinal soruna iyi bir uyum olduğunu düşünüyorum. Kabul edilmiş.
magma

ABBYYFineReader Express'te +1, şu anda orada en iyi OCR var ve kendi projem için neredeyse bir düzine
geçtim

12

Ne istiyorsun Tesseract OCR. Google tarafından sağlanan ve çeşitli platformları destekleyen açık kaynaklı bir OCR'dir. Ayrıca yerel bir komut satırı arabirimine sahiptir. Tam olarak aradığınız şey ve Mac bağlantı noktaları projesinin yanı sıra homebrew'dan da mevcut .

Proje Ana Sayfası: https://github.com/tesseract-ocr

OS X'e nasıl kurulur: http://blog.matt-swain.com/post/26419042500/instal-tesseract-ocr-on-mac-os-x-lion

Kullanım Örneği: tesseract -l eng input.pdf output


Güzel bir proje. Testlerimde tanıma zayıftı, ama eminim ki ince ayar yapamam. Daha tembel bir çözüm arıyordum, ancak özellikle daha fazla kontrol istiyorsanız ve buna zaman ayırabiliyorsanız, bu iyi bir seçim olabilir.
magma

tesseract, daha güncel tescilli uygulamalara kıyasla çok iyi değil. Özellikle kodlama ve matematik ile ilgili problemleri vardır, genellikle birçok Yunan karakteri çalkalar.
TechZen

OS X sürümü PDF girişlerine izin veriyor mu? Windows sürümü yoktur.
Doug

8

Feragatname: OCR ÇÖZÜMÜ DEĞİL (ancak bu cevap pdf'den metin çıkarmak için hala yararlıdır)

Apache Tika adında bir Apache Yazılım Vakfı projesi var :

Bir araç seti, varolan ayrıştırıcı kitaplıklarını kullanarak çeşitli belgelerdeki meta verileri ve yapılandırılmış metin içeriğini algılar ve ayıklar

PDFBox kullanarak PDF metin çıkarmayı desteklerler :

yeni PDF belgelerinin oluşturulmasına, mevcut belgelerin manipüle edilmesine ve belgelerden içerik çıkarılmasına olanak tanır. Apache PDFBox ayrıca birkaç komut satırı yardımcı programı içerir

Ve son zamanlarda OCR için de destek eklediler (Tesserac aracılığıyla)

Metin tabanlı bir çözüm için PDFBox, PDF'den metin ayıklamak için çok basittir:

Ayrıca ExtractText belgelerinde görebileceğiniz başka güzel seçenekler de var .


Metin çıkartmak için kesinlikle güzel bir seçenek, ancak görebildiğim bir OCR yeteneği yok.
magma

1
@magma OCR "optik karakter tanıma" anlamına gelir, kesinlikle "OCR özelliği" vardır. Şimdi açıklığa kavuşturmanız gerekiyor: VGA kamera, düşük tarayıcı veya uzak resim ile oluşturulan gibi düşük çözünürlüklü görüntüden metin ayıklamak için sorununuz mu var? O zaman probleminiz farklıdır ve süper çözünürlük gibi şeylerin fiziksel olarak değerlendirilmesini gerektirir. Lütfen cevaplanabilmeleri için daha spesifik ve kısa sorular sorun. Bu soruyu istediğiniz bir özelliğe basitleştirmenizi öneririm. Daha fazla bir şey istiyorsanız, yeni bir soru sorun.
11:13

3
@hhh, bir şey bir ikili dosyadan (PDF gibi) metin ayıklamaktır, böylece ikili biçimi ayrıştırarak kullanılabilir ve okunabilir olur. bu konuda optik bir şey yok. metin zaten orada, bu yardımcı programlar sadece onu çıkarır, böylece gözleriniz için kolay olur. optik karakter tanıma, bir bitmapteki piksel desenlerini tanımaya ve bunlara karşılık gelen bir metin parçası üretebileceğine dair yeterli mantık oluşturmaya çalışması bakımından farklıdır.
magma

Bu asıl soruya cevap vermiyor. AFAICT, pdfbox-uygulaması OCR yapmaz.
Feuermurmel

5

Ben öneriyoruz DEVONthink Pro Ofisi . Mükemmel bir uygulamadır ve çok iyi AppleScript desteğine sahiptir. Ne yazık ki sadece 'Pro Office' sürümü OCR yeteneğine sahiptir - bu yüzden 100 £ (150 $) ödemek zorundasınız.

Yalnızca komut dosyası OCR için kullanıyorsanız aşırıya kaçabilir - ama çok iyi bir uygulama.

- sadece yazınızı tekrar okuyun - kesinlikle aşırıya kaçacak!

Kabuktan sadece OCR istiyorsanız, motor DEVON lisansları olan ABBY ile konuşmayı deneyebilirsiniz:

http://www.abbyy-developers.com/en:tech:samples:commandline_ocr


OS X'teki DEVONThink Pro Office aşırıya kaçmış olsa da ilginç. Geliştiriciler OS X ve iOS üzerinde tasarladıysa, işe yarayabilir (UI'yi daha basit tutarak) - böyle bir şey biliyor musunuz? Yine de harika bir fikir - Pro sürümü, ekran görüntüleri ve PDF'ler gibi her şeye otomatik olarak OCR katmanı ekliyor mu? Ve kullanıcı bir şekilde "script" olabilir?
hhh

2
Evet - uygulama, diğer şeylerin yanı sıra, uygulamada depolanan görüntüleri aranabilir PDF'lere dönüştürmenize izin veren iyi bir AppleScript Sözlüğüne sahiptir.
Diggory

İPhone ile resim veya OS X ile ekran görüntüleri aldığımı ve bunları ProjectA klasörüne koyduğumu varsayalım, DEVONThink, dili belirtmeden bile OCR katmanını otomatik olarak onlara ekliyor mu? Onları bir DropBox'a koyduğunuzu ve ardından klasörü otomatik olarak kontrol etmek için OSX'te DEVONThink yaptığınızı varsayalım, o zaman OS X ve iOS üzerinde çalışabilir misiniz? İyi yapılırsa büyüleyici bir kavram ... +1
hhh

Bir şekilde, EverNote'un OCR'yi eklediği ancak bu şekilde dışa aktarılmasına izin vermediği EverNote gibi görünüyor. Projelerinizi bu yazılımdan OCR ile dışa aktarmak mümkün mü? Değilse, bazı çok basit OCR lib ve sonra bazı dilsel analiz lib en iyi çalışabilir. Belki diğeri ABBY, henüz bilmiyorum.
hhh

2
Birkaç dilde tanıyabilir: i.stack.imgur.com/buDLI.png
Diggory

5

Mevcut PDF'nizi metin dosyasına dönüştürerek aranabilir hale getirebilirsiniz. En azından Imagemagick , Ghostscript (PDF dönüştürme için) ve Tesseract OCR aracına ihtiyacınız var.

Bazı komut satırı örnekleri:

$ wget http://www.fmwconcepts.com/misc_tests/pdf_tests/test.pdf
$ convert -density 300 -depth 8 test.pdf test.png
$ tesseract test*.png test.txt
$ grep -i --color=auto the test*.txt
**The** details as told by surviving crew members, to **the** German publication Spiegel and published on ABC's

Bu ihtiyaçlarınızı daha da genişletebilir.

Gerekli araçları kurmak için OSX'e Homebrew üzerinden yükleyebilirsiniz :

brew install imagemagick jpeg libpng ghostscript tesseract

Linux'ta apt-getveya yumyerine kullanın brew.

Daha fazla OCR aracı için şunları kontrol edin: Linux sistemlerinde OCR

İlgili:


4

Kolayca uygulanabilir ve aynı kalitede girdi dosyası artı makul boyutta bir çıktı pdf sağlayan bir çözüm OCRmyPDF'dir:

https://github.com/jbarlow83/OCRmyPDF


OCR arka ucunu, Tesseract'ı oldukça hayal kırıklığı bulduğum halde güzel bir çözüm gibi görünüyor (kesinlikle doğru şekilde yapılandırmamdaki kendi sınırlamalardan dolayı).
magma

OCRmyPDF'yi seviyorum, docker ile hızlı ve acısız bir şekilde nasıl kurup bırakacağınızı açıklayan aşağıdaki cevabım bakın.
thadk

1

Stackoverflow, PDF-ayrıştırma altında PDFBox ve Apache'nin PDFBox tarafından kullanılan TIKA gibi şeyleri kapsayan ilgili sorulara sahiptir . Aşağıdaki yakut kodu PDF'den yazmayı ayıklar. Bu tür kodların sağlam çalışması için yeterli çözünürlüğe sahip olmanız gerekir. Bu nedenle, yüksek çözünürlüklü yeterince iyi bir tarayıcı edinin ve bazı yazılımların çalışıp çalışmadığını görün.

Örnekler

  1. https://github.com/yob/pdf-reader/tree/master/examples

SO konuları

  1. /programming/5217783/pdf-parse-to-text-in-java

  2. /programming/8149179/alternative-to-tika-pdfbox-for-parsing-pdf-in-solr-any-version-later-than-1-4

  3. /programming/320621/ruby-pdf-parsing-gem-library

  4. /programming/15186740/haskell-parsing-reading-content-of-pdf-files

[Düzenle]

Sorununuzu şimdi anladığımdan emin değilim. Rastgele fotoğraflar, ekran görüntüleri, OCR katmanı olmayan PDF'ler gibi farklı malzemelere OCR katmanı eklemek ister misiniz? Çözümü bilmiyorum ama eminim birisi biliyor belirli bir soru Automator ve bazı OCR yazılımı ile nasıl yapılacağını sordu:

OCR malzemeye otomatik olarak eklemek için bir OCR yazılımı ile Automator-script?


Yine: Zaten orada olan metni ayrıştırmak veya çıkarmak istemiyorum. Ben aslında resimler, bitmapler PDF dosyasında metin (OCR) tanımak için arıyorum; orijinal olarak herhangi bir metin içermezler.
magma

@magma lütfen, güncellememe bakın. OCR katmanının eklenmesini otomatikleştirmek istiyorsunuz, böylece "aranabilir metin" olmadan da farklı belge türlerinde arama yapabilirsiniz? Bunu yapabilirseniz, Finder'daki tüm dokümanları arayabilirsiniz - anlıyor musunuz? Apple gelecek yükseltmelerde bunu yapmazsa şaşırdım ...
hhh

sorumda belirtildiği gibi, evet.
magma

1

Bu tür kendinden yönlendirmeli uygulama için, Hazel'in büyük bir hayranıyım.

Perl veya python gibi daha fazla komut satırı odaklı bir araç öğrenmeye gerek kalmadan eylemleri komutlandırmayı son derece kolay hale getirir ve seçtiğiniz OCR motoru ile eşleştirilir (benimki şu anda PDF Pen Pro'dur) Dosyalarınızı en az düzeyde işlerken sorun yaşamanız gerekir yaygara.

Bunların her ikisi de ücretli yazılımdır, ancak her ikisinin de faydası bu bir vakayı aşar. Benim durumumda, geçmiş taranmış kayıtlarımı (ve devam eden kağıdı) dijitalleştirmekle ilgili emekle, bunların fiyatı, bunu başka bir yerde programlamak için harcayacağım zamandan çok daha ağır basar ve şimdi her iki araca da sahip olduğum için, onlar.



0

Toplu olarak OCR için Adobe acrobat kullanıyorum. Dubleks tarayıcım taradıktan sonra OCR yapabilir, ancak acrobat'taki OCR teknolojisi bence daha doğrudur. Sadece OCR olmayan bir klasöre işaret ediyorum, sonra acrobat PDF'yi şimdi bir metin katmanı da dahil olmak üzere aranabilir bir PDF olarak kaydediyor. Komut satırı üzerinden OCR yapmak istersem, bir yolunu bilmiyorum ama Autohotkey'i kullanarak GUI sonunu otomatikleştirebilirim. Komut satırı kadar güvenilir veya hızlı değil, ancak GUI etkileşimini en aza indirmek için bir iş akışı eylemi ayarladıktan sonra işi yapar.

Mac için, Apple komut dosyası, Mac bilgisayarımda henüz denememe rağmen Autohotkey'in PC'de ne yaptığını yapıyor.

Otomatik kısayol tuşu bir kayıt cihazı ile birlikte gelir, bu yüzden senaryo yazımının çoğu sizin için akşam yemeği ve daha fazla düzenleme ve biraz da isterseniz döngü için sizin için akşam yemeği olur.

OCRing görüntülerini deniyorum ancak işlemi henüz acrobat üzerinden tam olarak otomatikleştirmedim. Komut satırı ideal ancak akrobatı aşan kaliteli bir OCR motoru bulamadım, bu yüzden şimdilik akrobatla bağlı kalıyorum.


0

Son zamanlarda bunun üzerine tökezledim: http://ocrkit.com/faq.html

Yine de 14 gün sonra ödemek zorunda


1
Farklı Sormaya hoş geldiniz! En iyi yanıtları bulmaya çalışıyoruz ve bu cevaplar neden en iyi oldukları konusunda bilgi sağlayacaktır. Önerdiğiniz yazılımın neden diğerlerinden daha iyi olduğunu düşündüğünüzü açıklayın. Genel olarak, yalnızca bağlantı yanıtları silinmeye açıktır, bu nedenle her zaman cevabınızı ilgili tüm bilgileri içerecek şekilde yapmak istersiniz. Kaliteli bir yanıtın nasıl sağlanacağına ilişkin Nasıl Yanıt Verilir konusuna bakın .
fsb

0

Docker kullanarak yüksek kaliteli Sürükle ve Bırak dönüşümü yaptım.

Eğer sen:

  1. Mac'iniz için Docker'ı yükleyin ve
  2. ardından yeni bir Automator uygulaması oluşturun
  3. bu içerikleri "Kabuk Betiği Çalıştır" işlemi içinde bulabilirsiniz. Geçiş Girdisini Seçin:"as arguments"

/bin/bash komut metni:

cd "`dirname "$1"`"
/usr/local/bin/docker run --rm -v "$(pwd):/home/docker" jbarlow83/OCRmyPDF --force-ocr "`basename "$1"`" "`basename -s .pdf "$1"`-ocr.pdf"

Daha sonra PDF'leri üzerine sürükleyip bırakmanız iyi olur ve dosya adına "-ocr" eklenmiş benzer bir PDF alırsınız.

Bir yerde de kopyalamak için Automator'a bir dosya döndürmek için kolayca değiştirilebileceğini düşünüyorum. İnce OCRmyPDF yükleme istasyonu paketi hakkında daha fazla bilgi. ve ana araç (farklı bir cevapta da belirtilmiştir).

Bunu girdi olarak "Belirtilen Finder öğelerini al" eylemiyle Automator'da test edebilirsiniz.

İlk kez çalıştırıldığında, OCRmyPDF (görünmez) için Docker görüntülerini indirmesi gerekeceğinden daha fazla zaman alır. Terminal'de, alternatif docker pull jbarlow83/ocrmypdfolarak ilk çalıştırmayı hızlandırmak için çalıştırabilirsiniz. Tipik bir çalışma, yüksek DPI sayfası başına yaklaşık 10 saniye sürer, ancak tablolar veya diyagramlar olsa bile otomatik olarak metne dönüştürülebilir sonuçlar verir. OCRing'den önce Sejda kullanarak kırpıyorum, böylece diğer sayfalardan saçma kenar boşluğu kelimeleri kaldırılıyor.

--force-ocrArgüman görmezden ve benim durumlarda genellikle sadece kısmi ve yararsız herhangi önceki OCR girişimleri, üzerine yazmak için aracı söyler.


0

OCRKit'in hem AppleScript desteği hem de CLI'si vardır. Onların Gönderen yardım sayfasında :

AppleScript

Ayrıca, özel iş akışınıza entegre etmek için OCRKit komut dosyasını da yazabilirsiniz. Örneğin, gelen dosyaları, MFP kopyalama makinesinden paylaşılan klasör aracılığıyla işleyin ve OCRKit'e açılmasını söyleyin ve böylece işlem AppleScript aracılığıyla olur:

tell application "OCRKit"
   -- the wonders of AppleScript POSIX path handling, ...
   open "Users:admin:Desktop:orderform.pdf"
   open POSIX path of "/Users/Admin/Desktop/orderform.pdf"
end tell 

Komut satırı

OCRKit sürüm 2.5 olduğundan, doğrudan komut satırı komut dosyaları desteklenir. Bu, toplu işlemede OCRKit'in kullanımını büyük ölçüde basitleştirir, daha fazla seçenek ayarlamaya izin verir ve ayrıca AppleSCript'ten daha sağlam ve platformlar arasıdır.

OCRKit.app/Contents/MacOS/OCRKit \ 
    --lang en | de | fr | es | ... \
    --format pdf | html | rtf | text \
    --no-progress \
    --output out-file in-file

OCRKit sürüm 16.9 olduğundan ek komut satırı seçenekleri desteklenmektedir:

-r, --recursive directory

Dizini yeni dosyalar için özyinelemeli olarak tarayın. Metin katmanı veya vektör grafikleriyle OCRKit'ten dosyaları atlar.

--pattern "regex"

Özyinelemeli taramalar sırasında dosya adlarını eşleştirmek için kullanılan desen. Varsayılan olarak %.pdf$, TIFF için öneri%.tiff?$

--log file

Dosyaya özyinelemeli tarama sırasında günlük dosyası bilgilerini ve istatistiklerini yazın.

--password secret

Toplu işlem sırasında PDF dosyalarının şifresini çözmek için gizli şifreyi kullanın.

--test-run [ fast ]

Test toplu işlemeyi yalnızca PDF dosyalarını test etmek veya toplam işlem süresini tahmin etmek için sayfa sayısı elde etmek üzere test modunda çalıştırın. "hızlı", görüntü ve vektör analizi için tüm sayfaları açmak yerine her dosyanın yalnızca ilk sayfasını kontrol eder.

--tag name

Toplu işlem sırasında dosyaların işleme durumunu etiketlemek için genişletilmiş öznitelik adı kullanın. macos:OCRKit (%s)bunun yerine yerel macOS Finder etiketlerini kullanır veya macos:OCRKitdurum niteliğini içermez. Devlet özelliğinin sırası şunlardır: started, analyzed, processedve aynı zamanda olabilir encrypted.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.