Tesseract OCR je open-source nástroj, ktorý prevádza obrázky (JPG, PNG) na editovateľný text. Je dostupný pre Linux, Windows a macOS a používa sa cez príkazový riadok alebo programátorské rozhrania (napr. Python). Pre presné fungovanie môže vyžadovať jazykové balíky a dostatok pamäte RAM a miesta na disku. Vhodný je na spracovanie naskenovaných dokumentov, automatizované OCR riešenia a prevod obrázkov na text.

ParameterOdporúčanie / Poznámka
Operačný systémLinux, Windows, macOS (32- alebo 64-bit)
CPU2 jadrový pre rýchle spracovanie sa odporúča viac
RAMMinimálne 1–2 GB, odporúčané 4 GB+ pri veľkých alebo viacstranových dokumentoch
Diskový priestorMin. 100 MB pre Tesseract a základné jazykové balíky; viac pre veľké dokumenty alebo viaceré jazykové balíky
Jazykové balíkyVoliteľné, ale odporúčané pre presné OCR (napr. čeština, angličtina)
Prístup k sietiNie je povinný, ale môže byť potrebný pri sťahovaní jazykových balíkov
Podpora formátovObrázky: PNG, JPG, TIFF; PDF (vyžaduje OCRmyPDF alebo ďalšie nástroje)

Urobíme, ako prvé update

sudo apt update
sudo apt install tesseract-ocr tesseract-ocr-ces python3 python3-pip python3-venv -y

Vytvoríme, ako prvé priečinok pre server

mkdir -p ~/tesseract-server
cd ~/tesseract-server

Vytvoríme virtuálne prostredie

python3 -m venv venv
source venv/bin/activate

Nainštalujeme python balíky

pip install flask pillow pytesseract server.py

Vytvoríme dokument napr.

nano server.py

Vložíme do neho

from flask import Flask, request
import pytesseract
from PIL import Image
import io

app = Flask(__name__)

@app.get("/")
def index():
    return '''
    <h1>OCR Server</h1>
    <form action="/ocr" method="post" enctype="multipart/form-data">
        <input type="file" name="file"/>
        <input type="submit"/>
    </form>
    '''

@app.post("/ocr")
def ocr():
    if "file" not in request.files:
        return {"error": "No file uploaded"}, 400

    file = request.files["file"]
    img = Image.open(io.BytesIO(file.read()))
    text = pytesseract.image_to_string(img, lang="ces")
    return {"text": text}

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

Uložíme a spustíme

python3 server.py

Otvoríme webový prehliadač v tvare

http://X.X.X.X:5000

Ak teraz stlačíme CTRL + C, tak program nám prestane fungovať. Aby fungoval, aj naďalej, tak je potrebné mu spustiť proces, aby sa spustil priamo s boot operačného systému

Vytvorme systemd súbor

sudo nano /etc/systemd/system/tesseract-server.service

Do neho vložíme

[Unit]
Description=Tesseract OCR API Server
After=network.target

[Service]
Type=simple
User=ivan
WorkingDirectory=/home/ivan/tesseract-server
ExecStart=/home/ivan/tesseract-server/venv/bin/python3 /home/ivan/tesseract-server/server.py
Restart=always

[Install]
WantedBy=multi-user.target

Našítamea aktivujeme službu

sudo systemctl daemon-reload
sudo systemctl enable tesseract-server
sudo systemctl start tesseract-server

Môžeme skontrolovať stav

sudo systemctl status tesseract-server