## 2 Related Work
### Tools Providing an OCR Workflow
#### 2.2.3 OCRopus  
The open-source toolbox OCRopus 1 ([[https://github.com/tmbdev/ocropy](https://github.com/tmbdev/ocropy)]([https://github.com/tmbdev/ocropy](https://github.com/tmbdev/ocropy))) [18] comprises several Python-based tools for document analysis and recognition. This includes highly performant algorithms for deskewing and binarization, as well as a segmentation module that extracts text lines from a page in reading order. While the segmentation can quite comfortably deal with modern standard layouts, it tends to struggle with typical historical layouts with marginalia, swash capitals, etc. When a page has already been split up into regions, however, the line segmentation usually identifies the single lines very reliably and accurately, at least when working with Latin script. OCRopus 1 was the first  
\begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Step** & **Sub Task** & **ABBYY** & **OCRopus 3** & **Tesseract 4** & **OCR4 all** \\ \hline \multirow{2}{*}{Preprocessing} & Deskewing & ✓ & ✓ & ✓ & ✓ \\  & Binarization & ✓ & ✓ & ✓ & ✓ \\ \hline \multirow{4}{*}{Segmentation} & Image/Text & ✓ & ✗ & ✓ & ✓ \\  & Semantic Distinction & ✗ & ✗ & ✗ & ✓ \\  & Line Segmentation & ✓ & ✓ & ✓ & ✓ \\  & Reading Order & ✓ & ✓ & ✓ & ✓ \\  & Manual Correction & ✓ & ✗ & ✗ & ✓ \\ \hline \multirow{3}{*}{Historical OCR} & Recognition & ✓ & ✓ & ✓ & ✓ \\  & Training & ✓ & ✓ & ✓ & ✓ \\  & Manual Correction & ✓ ✓ & ✗ & ✗ & ✓ \\ \hline \multirow{2}{*}{Post-processing} & Dictionaries & ✓ & ✗ & ✓ & ✗ \\  & Language Modeling & ✓ & ✗ & ✓ & ✗ \\ \hline \multirow{2}{*}{open-source} & - & ✗ & ✓ & ✓ & ✓ \\ \hline \hline \end{tabular}
\end{table}
Table 2: Comparison of existing tools providing an OCR workflow with OCRall.  
OCR engine to implement the pioneering line based approach for character recognition introduced by [PERSON] et al. [7] using bidirectional LSTM networks. Furthermore, this method significantly simplified the process of training new models since the user just has to provide image/text pairs on the line level, which can be created by using an HTML-based transcription interface in a browser. Despite the outdated shallow network structure, OCRopus 1 still proves to be a cornerstone for OCR workflows dealing with historical printings mainly for two reasons. First, the preprocessing usually achieves excellent results due to its robust deskewing approach, as well as its adaptive thresholding technique used for preprocessing [19]. The second is due to the robust line segmentation described above.  
After the comparatively disregarded OCRopus 2 ([[https://github.com/tmbdev/ocropy2](https://github.com/tmbdev/ocropy2)]([https://github.com/tmbdev/ocropy2](https://github.com/tmbdev/ocropy2))), the third edition of OCRopus 3 ([[https://github.com/NVlabs/ocropus3](https://github.com/NVlabs/ocropus3)]([https://github.com/NVlabs/ocropus3](https://github.com/NVlabs/ocropus3))) was released in May 2018. It introduced a PyTorch backend [20], which enabled the utilization of deep network structures and GPU support, resulting in better recognition rates and faster training and prediction. Concerning the other steps in the OCR workflow like binarization, deskewing, and segmentation, OCRopus 3 almost exclusively relies on deep learning techniques. To the best of our knowledge, there are not yet any comparisons available between the traditional methods of OCRopus 1 and the new approach by OCRopus 3.