Skip to content

Commit

Permalink
lin
Browse files Browse the repository at this point in the history
  • Loading branch information
procesaur committed Aug 13, 2024
1 parent 94736f4 commit b12de2f
Show file tree
Hide file tree
Showing 4 changed files with 174 additions and 14 deletions.
161 changes: 157 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,165 @@

#### Дигитекс се може покретати као [Фласк](https://flask.palletsprojects.com/) веб апликација на рачунарима са _Виндоус_ и _Виндоус сервер_ оперативним системима, за шта је неопходно инсталирати [Пајтон 3.12](https://www.python.org/downloads/release/python-3120/), или се може скинути и покренути компајлована верзија која у себи садржи неопходан софтвер.

#### Предстојећи кораци:
1. Припрема детаљнијег упутства за инсталацију и употребу;
# Покретање апликације

2. Имплементација адекватних језичких модела путем библиотеке _трансформерс_;
## Виндоус апликација
Скините прекомпајловану апликацију доступну на [Гитхаб репозиторијуму софтвера] (https://github.com/procesaur/digiteks/releases) и покрените програм на вашем рачунару.

3. Припрема софтвера за извршење на _Линукс_ оперативним системима.
## Виндоус (командна линија, припремљено виртуелно окружење)
1. Преузмите апликацију у целости и сачувајте је на вашем рачунару.

2. Инсталирајте Пајтон интерпретер (препоручена верзија 3.12)

3. У командној линији подесите радно окружење на директоријум у којем је похрањен преузети софтвер
```console
cd ./direktorijum/digiteks/softvera
```

4. Покрените припремљено виртуелно окружење
```console
.\venv\Scripts\activate
```

5. Покрените апликацију
```console
python main.py
```

## Виндоус (командна линија, ваше Пајтон окружење)
1. Преузмите апликацију у целости и сачувајте је на вашем рачунару.

2. Инсталирајте Пајтон интерпретер (препоручена верзија 3.12)

3. У командној линији подесите радно окружење на директоријум у којем је похрањен преузети софтвер
```console
cd ./direktorijum/digiteks/softvera
```

4. Инсталиратје неопходне Пајтон пакете
```console
pip install -r requirements.txt
```

5. Преузмите инсталацију пакета _tesserocr_ за вашу верзију Пајтон интерпретера на [овој адреси](https://github.com/simonflueckiger/tesserocr-windows_build/releases)

6. Инсталирајте преузети пакет (_tesserocr_)
```console
pip install <путања/преузетог/пакета/име>.whl
```

5. Покрените апликацију
```console
python main.py
```

## Linux (командна линија, ваше Пајтон окружење)
1. Преузмите апликацију у целости и сачувајте је на вашем рачунару.

2. Инсталирајте Пајтон интерпретер (препоручена верзија 3.12)

3. У командној линији подесите радно окружење на директоријум у којем је похрањен преузети софтвер
```console
cd ./direktorijum/digiteks/softvera
```

4. Инсталиратје неопходне Пајтон пакете
```console
pip install -r requirements.txt
```

5. Инсталирајте _Tesseract_
```console
apt-get install tesseract-ocr libtesseract-dev libleptonica-dev pkg-config
```

6. Инсталирајте _Poppler_
```console
apt-get install -y poppler-utils
```

7. Инсталирајте пакет (_tesserocr_)
```console
pip install pip install tesserocr
```

8. Покрените апликацију
```console
python main.py
```

## _apache_ веб апликација (_Linux_ пример)
1. Преузмите апликацију у целости и сачувајте је на вашем рачунару (нпр. у директоријуму _var/www/digiteks_).

2. Инсталирајте Пајтон интерпретер (препоручена верзија 3.12)

3. У командној линији подесите радно окружење на директоријум у којем је похрањен преузети софтвер
```console
cd ./direktorijum/digiteks/softvera
```

4. Инсталиратје неопходне Пајтон пакете
```console
pip install -r requirements.txt
```

5. Инсталирајте _Tesseract_
```console
apt-get install tesseract-ocr libtesseract-dev libleptonica-dev pkg-config
```

6. Инсталирајте _Poppler_
```console
apt-get install -y poppler-utils
```

7. Инсталирајте пакет (_tesserocr_)
```console
pip install pip install tesserocr
```

8. Инсталација и подешавање _apache_ веб сервера

```console
sudo apt install apache2
apache2 -v
sudo apt-get install libapache2-mod-wsgi-py3
sudo a2enmod rewrite
sudo a2enmod wsgi
sudo nano /etc/apache2/sites-available/digiteks.conf
```

У конфигурациону датотеку упишите:

```apache
<Directory /var/www/digiteks>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
```

sudo nano /etc/apache2/ports.conf
```apache
Listen 5001
```

Урадите неопходни рестарт сервиса

```console
sudo service apache2 restart
```

и апликација ће бити покренута и доступна на порту 5001

# Предстојећи кораци:
1. Припремање прекомпајловане апликације за _Linux_ оперативне системе;

2. Припрема детаљнијег упутства за употребу;

2. Имплементација адекватних језичких модела путем библиотеке _трансформерс_.

# Напомене

#### Развој апликације, у сарадњи са ЈП Службени Гласник, омогућио је програм [Говтех], који финансира Фонд за иновациону делатност Републике Србије.

Expand Down
7 changes: 6 additions & 1 deletion helper.py
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
cfg = {}
from os import name

cfg = {}

def isWindows():
return name == 'nt'
18 changes: 10 additions & 8 deletions ocrworks.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,21 @@
from tesserocr import PyTessBaseAPI
from imageworks import improve_image, img2bytes

from helper import isWindows


print(cpu_count())
pool = ThreadPool(cpu_count())

binpath = px.join(px.dirname(px.realpath(__file__)), "bin\\")
for x in listdir(binpath):
environ['PATH'] += pathsep + px.join(px.dirname(px.realpath(__file__)), "bin\\" + x)
environ['PATH'] += pathsep + px.join(px.dirname(px.realpath(__file__)), "bin")

if isWindows():
binpath = px.join(px.dirname(px.realpath(__file__)), "bin\\")
for x in listdir(binpath):
environ['PATH'] += pathsep + px.join(px.dirname(px.realpath(__file__)), "bin\\" + x)
environ['PATH'] += pathsep + px.join(px.dirname(px.realpath(__file__)), "bin")

tessenvirons = ["OMP_NUM_THREADS","OMP_THREAD_LIMIT","MKL_NUM_THREADS","NUMEXPR_NUM_THREADS","VECLIB_MAXIMUM_THREADS","OCR_THREADS"]
for x in tessenvirons:
environ[x] = str(1)
tessenvirons = ["OMP_NUM_THREADS","OMP_THREAD_LIMIT","MKL_NUM_THREADS","NUMEXPR_NUM_THREADS","VECLIB_MAXIMUM_THREADS","OCR_THREADS"]
for x in tessenvirons:
environ[x] = str(1)


def ocr_pdf(file_bytes):
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ pdf2image==1.17.0
Pillow==10.4.0
psutil==6.0.0
PyPDF2==3.0.1
tqdm==4.66.2
tqdm==4.66.2

0 comments on commit b12de2f

Please sign in to comment.