Screenshot recognition, information extraction to find obsolete artifacts.
Проверка скриншотов на наличие дат.
Скрипт ScrTimeCheck.py находит и выводит на экран все найденные даты ранее указанной при запуске. Также все изображения, содержащие "некорректные" даты, копируются в подкаталог с именем вида "found_before_{год}_{месяц}_{день}" в каталоге с материалами сканирования. Даты распознаются со всех скриншотов (и других изображений), которые содержатся в обрабатываемом файле формата docx. Поддерживаются простые маски файлов ("*"), поэтому множественная обработка файлов тоже возможна.
Для работы скрипту необходим установленный в системе пакет Tesseract-OCR (согласно его инструкции по установке, правильной установкой считается такая, когда вызов утилиты tesseract возможен без указания полного пути к ней).
Для работы скрипту необходим установленный в системе интерпретатор Python версии 3.8 или выше.
Windows: https://github.com/UB-Mannheim/tesseract/wiki
В ходе инсталляции нужно выбрать языки, для которых будут установлены тренировочные данные (как минимум - Russian, Englis):
Рекомендуется также устанавливать Tesseract в варианте "Для всех пользователей". В этом случае скрипт сам позаботится о том, чтобы указать правильный путь к исполняемому файлу:
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
Linux:
sudo apt install tesseract-ocr tesseract-ocr-rus -y
На Astra Linux Orel (2.12.43) для корректной работы утилиты pip для установки Python-модулей необходимо установить curl, а затем pip3:
sudo apt install curl
curl -sS https://bootstrap.pypa.io/pip/3.5/get-pip.py | sudo python3
ln /usr/local/bin/pip3 /usr/bin/pip3
-
Установить git.
-
Установить Python 3 версии >= 3.8.
-
Установить Tesseract-OCR.
-
Клонировать этот репозиторий.
-
Установить пакеты из requirements.txt:
python -m pip install -r ./requirements.txt --no-cache-dir
или на Windows
py -3 -m pip install -r requirements.txt --no-cache-dir
Для выполнения скрипта нужно запустить его с необходимыми параметрами с помощью интерпретатора python3 (если он единственный в системе - может называться просто python
).
Чтобы не получать ошибок об отсутствующем файле python
или python3
и не указывать полный путь к интерпретатору Python, убедитесь, что путь к нему указан в системной переменной PATH.
`python3 ./ScrTimeCheck.py -c ./report.docx "2021-01-10"`
`python3 ./ScrTimeCheck.py -c topdir/**/*.doc* "2021-01-10"`
Под Windows используйте команду py -3
:
`py -3 ./ScrTimeCheck.py -c ./report.docx "2021-01-10"`
`py -3 ./ScrTimeCheck.py -c topdir/**/*.doc* "2021-01-10"`
По результатам работы в текущем каталоге будет создан каталог (каталоги, если обрабатываемых файлов несколько) с именем обрабатываемого файла и указанной даты (например report.docx_2021-01-10
).
Если каталог с таким именем уже существует, будет создан новый каталог с таким же именем, но к которому будет добавлен суффикс типа "(1)", "(2)" и т.д. Это может быть полезно, если в разных обрабатываемых подкаталогах обнаружатся одноимённые файлы.
Скрипт в ходе работы выводит на экран:
-
имена обрабатываемых файлов docx;
-
имя каталога с изображениями с "неправильными" датами;
-
количество найденных в docx-файлах изображений;
-
прогресс-бары для длительных операций;
-
найденные "неправильные" даты и названия файлов, их содержащих.
Пожелания по доработке скрипта или по дополнительной функциональности можно присылать по адресу [email protected] или [email protected].