Распознавание текста с изображения (OCR)
Напишите нам, если не нашли ответ в Справке. Вы можете приложить скриншоты или видео, чтобы ускорить помощь:
Написать в чат Написать в Telegram
Используйте этот пресет в проектах, когда необходимо распознать текст на изображении для разметки данных.
В пресете по умолчанию для создания интерфейса задания используется редактор HTML/JS/CSS. В этом разделе описано, как использовать Конструктор шаблонов для этой же цели. В разделе Интерфейс проекта выберите Конструктор шаблонов и вставьте код из примера в раздел Конфигурация.
В этом примере исполнителю необходимо найти вывеску объекта на фото и ввести название в текстовое поле или активировать опцию Нет компаний.
Интерфес задания содержит фото объекта, текстовое поле для ответа исполнителя, чекбокс для выбора опции Нет компаний. В нем уже настроены проверка, что данные исполнителем заполнены, и внешний вид задания.
Из каких компонентов состоит этот пример
- view.list — отображает данные списком;
- view.image — показывает картинку;
Показать код
{
"type": "view.image",
"noBorder": true,
"rotatable": true,
"url": {
"type": "data.input",
"path": "image"
}
}
- view.text — показывает текст;
Если вам нужен форматированный текст, используйте view.markdown.
Показать код
{
"type": "view.text",
"label": "Категория",
"content": {
"type": "data.input",
"path": "category"
}
}
-
Сочетание компонентов helper.if и condition.equals показывает поле ответа, если не была выбрана опция Нет компаний.
Показать код
{ "type": "helper.if", "condition": { "type": "condition.equals", "data": { "type": "data.output", "path": "not_found" }, "to": false }, "then": { "type": "view.list", "items": [ { "type": "field.text", "label": "Название", "placeholder": "Введите текст", "data": { "type": "data.output", "path": "output" }, "validation": { "type": "condition.required" } } ] } }
- field.text — добавляет поле для ввода текста;
Используйте компонент conditions.required внутри свойства validation
, чтобы проверить, что исполнитель ввел ответ в текстовое поле.
Показать код
{
"type": "field.text",
"label": "Название",
"placeholder": "Введите текст",
"data": {
"type": "data.output",
"path": "output"
}
"validation": {
"type": "condition.required"
}
}
- field.checkbox — добавляет чекбокс;
С помощью него исполнитель сможет активировать опцию Нет компаний.
Показать код
{
"type": "field.checkbox",
"preserveFalse": true,
"label": "Нет компаний",
"hint": "На фото нет компаний, оно плохого качества или не загрузилось, название не видно полностью.",
"data": {
"type": "data.output",
"path": "not_found"
}
}
- plugin.toloka — настраивает внешний вид задания.
Показать код
{
"type": "plugin.toloka",
"layout": {
"kind": "scroll",
"taskWidth": 650
}
}
Если вам не подходит этот пресет, посмотрите другие примеры в этом разделе.
Добавить описание
Чтобы добавить подробное описание к заданию, воспользуйтесь свойством label
компонента view.image.
Показать код
{
"type": "view.image",
"label": "Посмотрите на фото и найдите название компании.",
"noBorder": true,
"rotatable": true,
"url": {
"type": "data.input",
"path": "image"
}
}
Добавить уточняющий вопрос
Чтобы уточнить, почему исполнители выбрали опцию Нет компаний с помощью компонентов helper.if и field.radio-group добавьте группу переключателей (радиокнопок), чтобы исполнитель смог выбрать вариант ответа.
Показать код
{
"type": "helper.if",
"condition": {
"type": "condition.equals",
"data": {
"type": "data.output",
"path": "not_found"
},
"to": true
},
"then": {
"type": "field.radio-group",
"label": "Выберите один из вариантов ответа",
"options": [
{
"label": "На фото нет компаний",
"value": "no_business"
},
{
"label": "Фото плохого качества",
"value": "bad_quality"
},
{
"label": "Название не видно полностью",
"value": "not_fully_visible"
},
{
"label": "Ошибка загрузки",
"value": "error"
}
],
"data": {
"type": "data.output",
"path": "option"
},
"validation": {
"type": "condition.required",
"hint": "Выберите вариант."
}
}
}
Добавить оформление
Чтобы исполнитель легче ориентировался в задании, оформите разные типы данных цветом с помощью компонента view.alert. Вы можете расположить его внутри view.list вместе с другими компонентами.
В этом примере описание задания выделено синим цветом.
Показать код
{
"type": "view.alert",
"theme": "info",
"content": {
"type": "view.text",
"content": "Посмотрите на фото и найдите название компании."
}
}
Добавить поле для ввода ответа
Чтобы исполнители могли оставить комментарий, добавьте компонент для ввода многострочного текста field.textarea.
Показать код
{
"type": "field.textarea",
"label": "Комментарий",
"placeholder": "Введите текст",
"data": {
"type": "data.output",
"path": "comment"
}
}
Добавьте горячие клавиши
Добавьте горячие клавиши в конфигурации plugin.hotkeys. Так вы поможете исполнителям быстрее выполнять задания — нажимать кнопки порой удобнее, чем управлять мышкой.
Показать код
{
"type": "plugin.hotkeys",
"l": {
"type": "action.rotate",
"view": {
"$ref": "view.items.0"
},
"payload": "left"
},
"r": {
"type": "action.rotate",
"view": {
"$ref": "view.items.0"
},
"payload": "right"
},
"q": {
"type": "action.open-close",
"view": {
"$ref": "view.items.0"
}
}
}