diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index de10f119..afc95c16 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -108,6 +108,15 @@ function sidebarDefault() { } ] }, + { + text: "✨ 1.0 Beta Release", + collapsible: true, + items: [ + {text: "OCR4all 1.0", link: "/beta"}, + {text: "Introduction", link: "/beta/introduction"}, + {text: "Setup", link: "/beta/setup"}, + ] + } ] } diff --git a/docs/beta/index.md b/docs/beta/index.md new file mode 100644 index 00000000..0921e12e --- /dev/null +++ b/docs/beta/index.md @@ -0,0 +1,20 @@ +--- +title: OCR4all 1.0 +next: + text: 'Introduction' + link: '/beta/introduction' +--- +# {{ $frontmatter.title }} +## Core Features +- 👥 User and group management. Share your all your projects and files with other users and groups on the same instance. +- ⚙️ Wide array of OCR processor, powered by [OCR-D](https://ocr-d.de/) and others. +- 🗂️ Fully fledged in-app data management. Upload and manage your images, models, workflows and datasets completely through the UI. +- 📥 Export all uploaded and generated data, import them into other OCR4all instances or use them wherever you want. +- 👑 Full data sovereignty. No data leaves your instance unless approved by you or the instance administrator. +- 💪 Generate training data and use it to train or fine-tune models. +- 🆓 OCR4all is and will always stay free and open-source. +- and much more... + +## Next steps +- [Find out more about OCR4all 1.0](/beta/introduction) +- [Jump right into setting up your own instance of the OCR4all 1.0 beta](/beta/setup) diff --git a/docs/beta/introduction.md b/docs/beta/introduction.md new file mode 100644 index 00000000..8fbdea4e --- /dev/null +++ b/docs/beta/introduction.md @@ -0,0 +1,81 @@ +--- +title: OCR4all 1.0 – Introduction +next: + text: 'Setup Beta' + link: '/beta/setup' +--- +# {{ $frontmatter.title }} + +## Motivation and General Idea +- **Availability of Solutions:** Numerous high-performance open-source solutions for Automatic Text Recognition (ATR) are already available, with new releases emerging continuously. +- **Diverse Use Cases:** The highly heterogeneous nature of use cases necessitates the targeted deployment of specialized ATR solutions. +- **Requirement:** There is a need for user-friendly frameworks that facilitate the flexible, integrable, and sustainable combination and application of both existing and future ATR solutions. +- **Objective:** Our goal is to empower users to perform ATR independently, achieving high-quality results. +- **Foundation:** This framework is built upon freely available tools, enhanced by our in-house developments. + +## OCR-D and OCR4all +- **OCR-D Initiative:** The DFG-funded OCR-D initiative is dedicated to facilitating the mass full-text transformation of historical prints published in the German-speaking world. +- **Focus Areas:** OCR-D emphasizes interoperability and connectivity, ensuring a high degree of flexibility and sustainability in its solutions. +- **Integrated Solutions:** The initiative combines multiple ATR solutions within a unified framework, enabling precise adaptation to specific materials and use cases. +- **Open Source Commitment:** All results from the OCR-D project are released as completely open-source. +- **OCR4all-Libraries Project:** The DFG-funded OCR4all-libraries project has two primary goals: + - Providing a user-friendly interface for OCR-D solutions via OCR4all, enabling independent use by non-technical users. + - Enhancing the ATR output within OCR4all to offer added value to even the most technically experienced users. + +## System Architecture +- **Modularity and Interoperability:** The framework is designed with a strong focus on modularity and interoperability, ensuring seamless integration and adaptability. +- **Distributed Infrastructure:** The architecture features a distributed infrastructure, with a clear separation between the backend and frontend components. + - **Backend:** Built with Java and [Spring Boot](https://spring.io/projects/spring-boot). + - **Frontend:** Developed using the [Vue.js](https://vuejs.org/) ecosystem. +- **Component Communication:** Components communicate via a REST API, enabling efficient interaction between different parts of the system. +- **Integration of Third-Party Solutions:** Service Provider Interfaces (SPIs) allow for the integration of third-party solutions, such as ATR processors. +- **Containerized Setup:** The containerized architecture ensures easy distribution and deployment of all integrated components with minimal barriers. +- **Data Sovereignty:** Users retain full control over their data, with no data leaving the instance without explicit user or administrator consent. +- **Reproducibility:** Every step in the process is fully reproducible. A "transcript of records" feature stores detailed information about the processors and parameters used, ensuring transparency and repeatability. + +## Modules + +### Data Management and Processing +- **Separation of Functions:** Data management and processing are strictly separated to ensure efficient handling and security. +- **Data Sharing:** Data can be shared with different users or user groups as needed. + +### Processors and NodeFlow +- **Wide Array of Processors:** A diverse range of ATR processors is available, including OCR-D and external options. +- **Ease of Integration:** New processors can be easily implemented via a well-defined interface, with the user interface generated automatically. +- **NodeFlow:** The graphical editor NodeFlow simplifies the creation of workflows, making it convenient for users to design and customize processing sequences. + +### LAREX +- **Result Correction and Training Data Creation:** LAREX allows for the correction of all ATR workflow results and the creation of training data. +- **Visual Workflow Identification:** LAREX helps users identify the most suitable workflows as a visual explanation component. + +### Datasets, Training, and Evaluation +- **Dataset Creation:** Datasets can be created with the option to use tagging and import functionalities. +- **Dataset Enrichment:** Datasets can be enriched with training data generated and tagged within the application, even across various projects and sources. +- **Model Training:** Train models on selected datasets or subsets thereof, with options for in-app usage or exporting both models and associated training data. +- **Model Evaluation:** Evaluate both trained and imported models using curated datasets to ensure quality and accuracy. + +### Working with OCR4all 1.0 +#### One Tool, Two Modes +| Base Mode | Pro Mode | +|-------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------| +| Designed for novice users, with reduced complexity and a strongly guided, linear workflow | Tailored for experienced users who require more exploration and complexity | +| Pre-selected solutions for each processing step | Unrestricted access to all processors, parameters, and features | +| Pre-filtered parameters and limited access to advanced features | Support for identifying the best workflows and models for specific needs | +::: info +Currently only pro mode is available in the beta release. The base mode will be added shortly. +::: +### Example Use Cases and Application Scenarios +#### Fully Automatic Mass Full-Text Digitalization +- **Objective:** Maximize throughput with minimal manual effort. +- **Users:** Libraries and archives processing large volumes of scanned materials. +- **Approach:** Use the pro mode (NodeFlow, LAREX, and datasets) to identify the most suitable workflow. + +#### Flawless Transcription of Source Material +- **Objective:** Achieve maximum quality, accepting significant manual effort. +- **Users:** Humanist researchers preparing text for a digital edition. +- **Approach:** Utilize the base mode for iterative transcription with continually improving accuracy. + +#### Building Corpora for Quantitative Applications +- **Objective:** Maximize quality while minimizing manual effort. +- **Users:** Researchers constructing corpora for training and evaluating quantitative methods. +- **Approach:** Manage data and consistently retrain source-specific or mixed models using datasets and tagging functionalities. diff --git a/docs/beta/setup.md b/docs/beta/setup.md new file mode 100644 index 00000000..cfa46e98 --- /dev/null +++ b/docs/beta/setup.md @@ -0,0 +1,75 @@ +--- +title: OCR4all 1.0 – Setup +--- +# {{ $frontmatter.title }} + +If you want to try out the beta version of release 1.0 of OCR4all you can simply use the following Docker Compose file or download it [here](). + +The prerequisite for this is having both [Docker](https://docs.docker.com/get-started/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/) installed. + +A more in-depth installation guide will follow with the stable release of OCR4all 1.0. + +::: warning +This will install a beta version of OCR4all 1.0 which may still contain some bugs and many features are yet to come. +::: + +``` +version: "3.9" + +services: + msa-calamari: + hostname: msa-calamari + build: + context: ocr4all-app-calamari-msa + dockerfile: Dockerfile + args: + - TAG=${CALAMARI_TAG:-20240502} + - JAVA_VERSION=${CALAMARI_JAVA_VERSION:-17} + - APP_VERSION=${CALAMARI_APP_VERSION:-1.0-SNAPSHOT} + user: "${UID:-}" + restart: always + environment: + - SPRING_PROFILES_ACTIVE=${CALAMARI_PROFILES:-logging-debug,msa-api,docker} + volumes: + - ${OCR4ALL_DATA:-~/ocr4all/docker/data}:/srv/ocr4all/data + - ${OCR4ALL_ASSEMBLE:-~/ocr4all/docker/assemble}:/srv/ocr4all/assemble + - ${OCR4ALL_WORKSPACE_PROJECT:-~/ocr4all/docker/workspace/projects}:/srv/ocr4all/projects + ports: + - "${CALAMARI_API_PORT:-127.0.0.1:9092}:8080" + msa-ocrd: + hostname: msa-ocrd + build: + context: ocr4all-app-ocrd-msa + dockerfile: Dockerfile + args: + - TAG=${OCRD_TAG:-2024-04-29} + - JAVA_VERSION=${OCRD_JAVA_VERSION:-17} + - APP_VERSION=${OCRD_APP_VERSION:-1.0-SNAPSHOT} + user: "${UID:-}" + restart: always + environment: + - SPRING_PROFILES_ACTIVE=${OCRD_PROFILES:-logging-debug,msa-api,docker} + volumes: + - ${OCR4ALL_WORKSPACE_PROJECT:-~/ocr4all/docker/workspace/projects}:/srv/ocr4all/projects + - ${OCR4ALL_RESOURCES_ORCD:-~/ocr4all/docker/opt/ocr-d/resources}:/usr/local/share/ocrd-resources + ports: + - "${OCRD_API_PORT:-127.0.0.1:9091}:8080" + server: + build: + context: ocr4all-app + dockerfile: Dockerfile + args: + - TAG=${OCR4ALL_TAG:-17-jdk-slim} + - APP_VERSION=${OCR4ALL_APP_VERSION:-1.0-SNAPSHOT} + user: "${UID:-}" + restart: always + environment: + - SPRING_PROFILES_ACTIVE=${OCR4ALL_PROFILES:-logging-debug,server,api,documentation,docker} + volumes: + - ${OCR4ALL_HOME:-~/ocr4all/docker}:/srv/ocr4all + ports: + - "${OCR4ALL_API_PORT:-9090}:8080" + depends_on: + - msa-calamari + - msa-ocrd +``` diff --git a/docs/index.md b/docs/index.md index 599e350a..043f7b5f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -18,6 +18,9 @@ hero: - theme: alt text: User Guide link: /guide/user-guide/introduction + - theme: brand + text: ✨ Beta Release 1.0 + link: /beta features: - title: Fully free and open-source