HOCR

hOCR to otwarty standard reprezentacji danych dla sformatowanego tekstu uzyskanego z optycznego rozpoznawania znaków (OCR). Definicja koduje tekst, styl, informacje o układzie, metryki pewności rozpoznawania i inne informacje przy użyciu Extensible Markup Language (XML) w postaci Hypertext Markup Language (HTML) lub XHTML .

Oprogramowanie

Następujące oprogramowanie OCR może wyświetlać wynik rozpoznawania jako plik hOCR:

Przykład

Poniższy przykład to wyciąg z pliku hOCR:

   
    
       ...  <  p  class  =  'ocr_par'  lang  =  'deu'  title  =  "bbox930"  >  <  span  class  =  'ocr_line'  title  =  "bbox 348 797 1482 838; linia bazowa -0,009 -6"  >  <  span  class  =  'ocrx_word '  title  =  'bbox 348 805 402 832; x_wconf 93'   >  Zgiń  </  rozpiętość  
       
       
       >  <  span  class  =  'ocrx_word'  title  =  'bbox 421 804 697 832; x_wconf 90'   >  Darlehenssumme  </  span  >  <  span  class  =  'ocrx_word'  title  =  'bbox 717 803 755 831; x_wconf 96'   >  ist  </  span  >  <  span  class  =  'ocrx_word'  title  =  
       
       
     „skrzynka pocztowa 773 803 802 831; x_wconf 96'   >  in  </  span  >  <  span  class  =  'ocrx_word'  title  =  'bbox 821 803 917 830; x_wconf 96'   >  ihrem  </  span  >  <  span  class  =  'ocrx_word'  title  =  'bbox 935 799 1180 838; x_wconf 95'   >  ursprünglichen  </  span  >  <    
       
       span  class  =  'ocrx_word'  title  =  'bbox 1199 797 1343 832; x_wconf 95'   >  Umfange  </  span  >  <  span  class  =  'ocrx_word'  title  =  'bbox 1362 805 1399 823; x_wconf 95'   >  zu  </  span  >  <  span  class  =  'ocrx_word'  title  =  'bbox 1417 x_wconf 96'  >  
   ver-  </  span  >  </  span  >  ... 

Rozpoznany tekst jest przechowywany w normalnych węzłach tekstowych pliku HTML. Rozkład na osobne wiersze i słowa jest tutaj podany przez otaczające span . Ponadto używane są zwykłe jednostki HTML, na przykład p dla akapitu. We właściwościach podane są dodatkowe informacje, takie jak:

  • różne elementy układu, takie jak „ocr_par”, „ocr_line”, „ocrx_word”
  • informacje geometryczne dla każdego elementu z ramką ograniczającą „bbox”
  • informacje o języku „język”
  • niektóre wartości ufności „x_wconf”

Dokumenty hoOCR

Odwiedź https://kba.github.io/hocr-spec/1.2 , aby uzyskać szczegółowe informacje na temat hOCR.

bbox

Ogólny

Układ obiektu Bounding Box lub bbox to gramatyka.

  • nazwa-właściwości = "bbox"
  • wartość-właściwości = uint uint uint uint

Przykład

bbox 0 0 100 200

Bbox - skrót od "bounding box" - elementu to prostokątny prostokąt wokół tego elementu, który jest zdefiniowany przez lewy górny róg (x0, y0) i prawy dolny róg (x1, y1).

wartości odnoszą się do lewego górnego rogu obrazu dokumentu i są mierzone w pikselach

kolejność wartości to x0 y0 x1 y1 = "lewy górny prawy dolny"

Stosowanie
Użyj x_bboxes poniżej dla ramek ograniczających znaki

Nie używaj bbox, chyba że ramka ograniczająca komponentu układu jest w rzeczywistości prostokątna. Niektóre nieprostokątne elementy układu mogą mieć prostokątne ramki ograniczające, jeśli nieprostokątność jest spowodowana pływającymi elementami, wokół których przepływa tekst.

 ...</span> 
 Obwiednia bbox tej linii jest pokazana na niebiesko i obejmuje lewy górny róg (10, 20) i prawy dolny róg (160, 30). Wszystkie współrzędne są mierzone w odniesieniu do lewego górnego rogu obrazu dokumentu, którego obramowanie jest narysowane na czarno.  

Przeszukiwalne pliki PDF

Format hOCR jest najczęściej używany do tworzenia przeszukiwalnych plików PDF lub jako wyodrębnione metadane pliku PDF. Aby utworzyć przeszukiwalne pliki PDF, możemy użyć zeskanowanego obrazu dokumentu i pliku .hocr konkretnego obrazu. Aby to osiągnąć, możemy użyć następujących narzędzi open source.

narzędzia-hocr

hocr-tools to biblioteka open source napisana w języku Python, która obsługuje zarówno wersje Python 2.x , jak i Python 3 .x. Ma narzędzie wiersza poleceń dołączone do skryptów o nazwie hocr-pdf , które umożliwia nam konwersję standardowych plików hocr do przeszukiwalnego pliku pdf. Warto również zaznaczyć, że w wersji do obsługi plików hocr w RTL lub skryptach innych niż łacińskie jak np. arabski , musimy w tej chwili korzystać z GitHub Repo.

hocr-pdf

Możemy użyć narzędzia hocr-pdf, używając następującej podstawowej składni.

hocr-pdf—plik końcowy final.pdf folder_images_and_hocr

Folder_images_and_hocr musi zawierać odpowiednie pliki w formacie .jpg i .hocr ze zmienionymi rozszerzeniami.

Znane problemy

Niektóre znane problemy ze skryptem hocr-pdf w instalacji PyPI są następujące.

  • Nieaktualne z repozytorium GitHub.
  • hocr-pdf jest uszkodzony w linii 134 z powodu zdeprecjonowania decodebytes() po Pythonie 3.1

Znane poprawki

Skompiluj narzędzia hocr przy użyciu najnowszego repozytorium GitHub.

hocr2pdf

hocr2pdf to kolejna biblioteka obsługująca konwersję plików hocr. Jest napisany w C++ i jest kompatybilny krzyżowo z innymi bibliotekami. Obsługuje również języki utf-8, ale może to wymagać dodatkowego debugowania i przeglądania niektórych zapisów rozmów Google, aby to osiągnąć.

Według Ubuntu Manpages ,

ExactImage to szybka biblioteka do przetwarzania obrazów C++. W przeciwieństwie do wielu innych platform bibliotecznych umożliwia natywną pracę w kilku przestrzeniach kolorów i głębiach bitowych, co skutkuje niskimi wymaganiami dotyczącymi pamięci i obliczeń. hocr2pdf tworzy dobrze rozplanowane, przeszukiwalne pliki PDF na podstawie danych wejściowych hOCR ( HTML z adnotacjami ) uzyskanych z systemu OCR .

Próby hoOCR do PDF

Oprócz poniższych omówionych i stabilnych bibliotek, przez lata w formacie hOCR wniesiono wiele wkładów przy wsparciu wielu wczesnych użytkowników tego formatu. Możesz uzyskać dostęp do umieszczania tekstu na obrazie za pomocą hOCR i konwertowania go w pliku PDF przy użyciu Python2 z tym 12-letnim skryptem od 2021 r. Ten skrypt można również zaktualizować i uczynić funkcjonalnym, konwertując ten kod źródłowy Python 2 na Python 3 Obsługiwany kontekst.

- HOCRConverter autorstwa jbrinley (dokumentacja)

HOCRConverter

HOCRConverter to skrypt napisany w języku Python 2.x, którego można użyć do konwersji pliku hOCR z określonym plikiem obrazu w celu przekonwertowania go na przeszukiwalny plik pdf. Możesz zobaczyć dokumentację, korzystając z powyższego linku.

 z HocrConverter import HocrConverter 
 hocr = HocrConverter("myHocrFile.html") # można to zrobić zmieniając .hocr na .html i odwrotnie 
 hocr.to_text("output.txt") 
 hocr.to_pdf("myImageFile.png", "wyjście.pdf") 

Znane problemy

  • Nie został przetestowany.
  • Nie obsługuje natywnie języka Python 3.x

Zobacz też

Linki zewnętrzne