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ż
- ALTO (XML) — kolejny format reprezentacji danych OCR
Linki zewnętrzne
- specyfikacja aktualnej wersji (1.2 na luty 2021)
- hocr-tools – narzędzia do manipulowania i oceny formatu hOCR na GitHub
- ocr-fileformat – Oprogramowanie, które weryfikuje i przekształca różne formaty plików OCR, w tym hOCR na GitHub