Skip to content

Приложение для разметки извлекаемых пар "ключ-значение" из изображений

Notifications You must be signed in to change notification settings

dronperminov/KeyValueDataExtractionLabeler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KeyValueDataExtractionLabeler

Приложение для разметки извлекаемых пар "ключ-значение" из изображений. Позволяет настроить набор полей, значения которых нужно извлекать из изображений и запустить web интерфейс для выполнения разметки.

Конфигурация

Все настройки задаются в файле config.json. Пример конфигурационного файла:

{
    "title": "Заголовок страницы",
    "keys": [
        {"name": "oneline_key", "type": "str", "title": "Однострочное поле: "},
        {"name": "multiline_key", "type": "multiline_str", "title": "Многострочное поле: "},
        {"name": "checkbox_key", "type": "checkbox", "title": "Чекбокс"},
        {"name": "select_key", "type": "select", "options": ["value1", "value2", "value3"], "title": "Поле с выбором: "}
    ],

    "sampling": "sequential",
    "images_path": "images",
    "output_path": "labeled",
    "output_name": "labeled.json"
}

Описание ключевых полей

Используемые в разметке ключевые поля описываются в поле key в виде списка словарей следующего вида:

{
    "name": "идентификатор_ключа",
    "type": "тип_ключа",
    "title": "название_для_пользователя"
}

Поле name используется в формируемом в результате разметке словаре. Поле title можно не указывать, тогда оно будет совпадать с name.

Доступные типы ключей:

  • Однострочное текстовое поле: тип str, можно не указывать
  • Многострочное текстовое поле: тип multiline_str
  • Чекбокс: тип checkbox
  • Поле с выбором: тип select, опции выбора задаются в поле options

Папка с изображениями и результатом разметки

Изображения, которые необходимо разметить должны находиться в папке, задаваемой параметром images_path (по умолчанию images). После разметки очередного изображения оно будет перемещаться в папку с размеченными изображениями, задаваемую параметром output_path (по умолчанию labeled, автоматически создаётся, если не существует при первом запуске). В этой же папке будет располагаться json файл, содержащий разметку. Имя файла с разметкой соответствует параметру output_name (по умолчанию labeled.json).

Формат файла с разметкой

Разметкой является словарь, ключами в котором являются имена размеченных изображений, а значениями словари, с ключами, соответствующими полю name в конфигурации ключевых полей. Результатом разметки изображения image.png с описанным выше конфигом может быть такой файл:

{
    "image.png": {
        "oneline_key": "Одна единственная строка",
        "multiline_key": "Первая строка\nВторая строка",
        "checkbox_key": true,
        "select_key": "value3"
    }
}

Режим разметки изображений

Доступны два режима разметки, задаваемые с помощью параметра sampling:

  • sequential - изображения выбираются последовательно, упорядоченно по имени (используется по умолчанию)
  • random - изображения выбираются в случайном порядке

Запуск приложения

Перед первым запуском установите все зависимости:

pip install -r requirements.txt

После этого запустите систему разметки:

uvicorn main:app --reload

About

Приложение для разметки извлекаемых пар "ключ-значение" из изображений

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published