Ересь

This commit is contained in:
2025-12-02 11:54:33 +03:00
parent d440647a67
commit c5b7358970
8 changed files with 50 additions and 105 deletions

BIN
lab2/img/almost-here.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 668 KiB

After

Width:  |  Height:  |  Size: 801 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 578 KiB

After

Width:  |  Height:  |  Size: 800 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 805 KiB

After

Width:  |  Height:  |  Size: 777 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 806 KiB

After

Width:  |  Height:  |  Size: 786 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 960 KiB

After

Width:  |  Height:  |  Size: 929 KiB

View File

@@ -216,54 +216,7 @@
В данной лабораторной будут использованы части 10, 12, 14, 15, 17.
\newpage
\section{Описание программы Label Studio}
Label Studio --- это многофункциональная платформа для разметки данных, поддерживающая широкий спектр типов данных: изображения, текст, аудио, видео, табличные данные и т.\,д. Инструмент применяется для подготовки обучающих датасетов в проектах машинного обучения, автоматизации бизнес-процессов, анализа данных и других задач, требующих структурированной разметки.
Интерфейс Label Studio можно условно разделить на несколько ключевых областей:
\begin{itemize}
\item \textbf{Левая панель (панель задач)} --- содержит список элементов данных, которые необходимо разметить: изображения, тексты или другие объекты. Здесь отображаются статусы задач (не размечено, в процессе, размечено), доступен выбор конкретного элемента для работы, а также возможны фильтрация и поиск по задачам.
\item \textbf{Центральная область разметки (workspace)} --- основная область, в которой происходит взаимодействие с данными. В зависимости от типа данных она может включать:
\begin{itemize}
\item просмотр изображений с инструментами выделения областей (bounding boxes, polygons, keypoints);
\item текстовый редактор для аннотации фрагментов текста;
\item аудиоплеер с временной шкалой и инструментами выделения сегментов;
\item видеоплеер с возможностью разметки покадрово;
\item интерфейс просмотра и редактирования табличных данных.
\end{itemize}
Эта область динамически изменяется в зависимости от выбранного шаблона разметки (Labeling Config).
\item \textbf{Правая панель (панель инструментов и свойств)} --- отображает доступные категории разметки (labels), их параметры и структуру. В зависимости от конфигурации проекта здесь могут размещаться:
\begin{itemize}
\item список меток, тегов, классов объектов;
\item параметры выбранного объекта разметки (цвет, класс, дополнительные атрибуты);
\item настройки ввода данных (например, формы для ввода тегов, числовых значений или текстовых описаний).
\end{itemize}
Эта панель позволяет изменять атрибуты аннотаций и добавлять связанные метаданные.
\item \textbf{Верхняя панель управления} --- включает элементы управления проектом и текущей задачей:
\begin{itemize}
\item навигация между задачами (следующая/предыдущая);
\item кнопки сохранения и отправки разметки;
\item режимы просмотра и переключение инструментов;
\item действия отмены и повторения (undo/redo);
\item доступ к настройкам проекта и шаблона разметки.
\end{itemize}
\item \textbf{Нижняя панель} --- может содержать дополнительные элементы в зависимости от типа разметки:
\begin{itemize}
\item временные шкалы для аудио/видео;
\item вспомогательные панели навигации (например, миниатюры кадров);
\item статистические данные о текущей задаче.
\end{itemize}
\end{itemize}
Label Studio предоставляет гибкую систему настройки интерфейса через XML-подобную конфигурацию (Labeling Config), что позволяет адаптировать рабочую среду под конкретные виды задач и сложные наборы данных. Платформа поддерживает одновременную работу нескольких человек, сравнение разметки, контроль качества и интеграцию с внешними моделями машинного обучения для создания предварительной разметки.
\subsection{Тип пользователя и уровень подготовки}
\section{Тип пользователя и уровень подготовки}
В рамках данной работы рассматривается \textbf{пользователь-новичок}:
@@ -274,28 +227,17 @@
\end{itemize}
\subsection{Задание для пользователя}
\section{Задание для пользователя}
Задание для пользователя формулируется следующим образом:
\begin{quote}
«На фотографиях городских улиц выделить светофоры (пешеходные и автомобильные) с помощью прямоугольных оболочек (bounding boxes). Оболочки задаются координатами в пространстве устройства (в пикселях) и ориентированы параллельно осям изображения. Количество оболочек на одном изображении не ограничено. Прямоугольные оболочки могут пересекаться и быть вложенными друг в друга. Результаты разметки выгрузить в формате JSON».
«На фотографиях городских улиц выделить автомобильные светофоры с помощью прямоугольных оболочек (bounding boxes). Оболочки задаются координатами в пространстве устройства (в пикселях) и ориентированы параллельно осям изображения. Количество оболочек на одном изображении не ограничено. Прямоугольные оболочки могут пересекаться и быть вложенными друг в друга. Результаты разметки выгрузить в формате JSON».
\end{quote}
Результатом выполнения задания считается наличие в Label Studio проекта, содержащего размеченные изображения со светофорами, где на каждом изображении объекты выделены корректными ограничивающими прямоугольниками, а также наличие JSON файла с разметкой.
Результатом выполнения задания считается наличие JSON файла с координатами оболочек.
% \subsection{Условия использования}
% В терминах ГОСТ Р ИСО 9241-11 условия использования включают пользователей, задачи, оборудование (аппаратные средства и программные средства), физическую и социальную среду. Пользователя и задачу мы уже определили, остальные условия следующие:
% \begin{itemize}
% \item \textbf{Аппаратные средства:} настольный компьютер с мышью и клавиатурой, подключённый к интернету; дисплей с разрешением 1920 на 1080 пикселей;
% \item \textbf{Программные средства:} приложение Label Studio;
% \item \textbf{Физическая среда:} стандартное офисное рабочее место, компьютерное кресло, стол;
% \item \textbf{Социальная среда:} индивидуальная работа.
% \end{itemize}
\newpage
\section{Сценарий выполнения задания в Label Studio}
@@ -338,7 +280,7 @@
\subsection*{Шаг 1. Открыть Label Studio и зарегистрироваться}
После открытия Label Studio перед пользователем появляется страница для входа в систему (см. Рис.~\ref{login}).
После открытия Label Studio перед пользователем-новичком появляется страница для входа в систему (см. Рис.~\ref{login}).
\begin{figure}[h!]
\centering
@@ -348,7 +290,8 @@
\end{figure}
\newpage
Для того, чтобы зарегистрироваться, пользователь должен нажать на кнопку "Sign up" ("Зарегистрироваться"), после чего откроется страница для регистрации (см. Рис.~\ref{signup}).
У меня как у пользователя-новичка ещё нету аккаунта в системе, а кнопки для анонимной работы не наблюдается, поэтому придётся зарегистрироваться.
Для того, чтобы зарегистрироваться, пользователь-новичок нажимает на кнопку "Sign up" ("Зарегистрироваться"), после чего откроется страница для регистрации (см. Рис.~\ref{signup}).
\begin{figure}[h!]
\centering
@@ -357,7 +300,7 @@
\label{signup}
\end{figure}
Далее нужно ввести адрес электронной почты и пароль, после чего нажать на кнопку "Create account" ("Создать аккаунт"). После чего появляется стартовая страница (см. Рис.~\ref{first-screen}).
Далее пользователь-новичёк вводит адрес электронной почты и пароль, после чего нажимает на кнопку "Create account" ("Создать аккаунт"). Это вполне привычная процедура, присущая большинству современных сервисов. После чего появляется стартовая страница (см. Рис.~\ref{first-screen}).
\begin{figure}[h!]
\centering
@@ -370,7 +313,7 @@
\subsection*{Шаг 2. Создать новый проект и указать его название}
После успешной регистрации, пользователь попадает на стартовую страницу (см. Рис.~\ref{first-screen}). Для того, чтобы создать новый проект, достаточно нажать на кнопку "Create project" ("Создать проект"). После чего откроется страница для создания проекта (см. Рис.~\ref{create-project}).
После успешной регистрации, перед пользователем автоматически открывается стартовая страница (см. Рис.~\ref{first-screen}) с большой синей кнопкой "Create project" ("Создать проект"). Я, как пользователь-новичёк, догадался, что чтобы начать разметку нужно создать проект в системе. Для этого я нажал на кнопку "Create project" ("Создать проект"). После чего открылась страница для создания проекта (см. Рис.~\ref{create-project}).
\begin{figure}[h!]
\centering
@@ -379,7 +322,7 @@
\label{create-project}
\end{figure}
На этой странице указываем название проекта в поле "Project name" ("Название проекта") и нажимаем на кнопку "Save" ("Сохранить"). После чего пользователь попадает на страницу проекта (см. Рис.~\ref{project-page}).
На этой странице я указал название проекта в поле "Project name" ("Название проекта") и нажал на кнопку "Save" ("Сохранить"). После чего я автоматически попал на страницу проекта (см. Рис.~\ref{project-page}). Несмотря на то, что весь интерфейс системы представлен на английском, название проекта удалось указать на русском языке.
\begin{figure}[h!]
\centering
@@ -393,7 +336,7 @@
\newpage
\subsection*{Шаг 3. Загрузить исходные изображения со светофорами}
После того, как проект создан, пользователь попадает на страницу проекта (см. Рис.~\ref{project-page}). Для того, чтобы загрузить исходные изображения со светофорами, достаточно нажать на кнопку "Import" ("Импортировать"). После чего откроется страница для загрузки файлов (см. Рис.~\ref{upload-files}).
После создания проекта автоматически открылась страница проекта (см. Рис.~\ref{project-page}). Название проекта отображается в верхней части страницы. По центру экрана отображается надпись <<Import data to get your project started>>, что означает <<Импортируйте данные, чтобы начать проект>>. Я, как пользователь-новичёк, догадался, что на этом этапе можно загрузить исходные изображения. На экране также видно две больших кнопки <<Connect Cloud Storage>> (<<Подключить облачное хранилище>>) и <<Import>> (<<Импортировать>>). Мои файлы с изображениями хранятся в папке на моём компьютере, а значит работа с облачным хранилищем мне не подойдёт. Поэтому далее я нажал на кнопку <<Import>> (<<Импортировать>>). После чего открылась страница для загрузки файлов (см. Рис.~\ref{upload-files}).
\begin{figure}[h!]
\centering
@@ -402,7 +345,7 @@
\label{upload-files}
\end{figure}
На этой странице пользователь может выбрать файлы для загрузки. Для этого нужно нажать на кнопку "Upload files" ("Загрузить файлы") и выбрать файлы с изображениями. Все загруженные файлы будут отображены списком, справа от них указывается их размер и прогресс загрузки. После завершения загрузки появится зелёная полоска (см. Рис.~\ref{upload-files-success}).
По центру открывшейся страницы видна надпись <<Dgag \& drop files here or click to browse>>, что означает <<Перетащите файлы сюда или нажмите для выбора файлов>>. Далее я просто открыл папку со своими изображениями в соседнем окне Windows, выделил нужные файлы и перетащил мышкой на надпись <<Dgag \& drop files here or click to browse>>. Это привычная для современного пользователя техника. Выбранные файлы отобразились списком на экране, справа от каждого файла появилась полоска загрузки. После завершения загрузки полоска стала зелёной (см. Рис.~\ref{upload-files-success}).
\begin{figure}[h!]
\centering
@@ -411,7 +354,8 @@
\label{upload-files-success}
\end{figure}
Чтобы добавить файлы в проект, пользователю нужно нажать на кнопку "Import" ("Импортировать"). После чего файлы будут добавлены в проект и отображены на странице проекта (см. Рис.~\ref{project-page}).
\newpage
В правом верхнем углу этой страницы видно две кнопки <<Cancel>> (<<Отмена>>) и <<Import>> (<<Импортировать>>). Отменять загрузку я не планировал, поэтому нажал на кнопку <<Import>> (<<Импортировать>>). После этого автоматически открылась страница проекта, но теперь на ней отображается список из 4-х элементов, которые судя по всему, являются моими загруженными файлами (см. Рис.~\ref{project-page}). Хотелось бы увидеть миниатюры изображений, чтобы было понятно, что за файлы загружены, но пока видны только названия файлов и их идентификаторы.
\begin{figure}[h!]
\centering
@@ -420,44 +364,48 @@
\label{project-page-with-files}
\end{figure}
Понравился прогресс-бар загрузки и зелёная полоска успешного завершения. Сразу видно, какие форматы поддерживаются. Не понравилось, что нельзя удалить отдельный файл из списка --- только сбросить всё и начать заново.
Понравился прогресс-бар загрузки и зелёная полоска успешного завершения, понятно, что файлы загружаются и понятно, когда они полностью загружены. Сразу видно, какие форматы поддерживаются. Не понравилось, что нельзя удалить отдельный файл из списка --- только сбросить всё и начать заново.
\newpage
\subsection*{Шаг 4. Открыть настройки проекта и выбрать тип разметки}
После того, как файлы загружены, пользователь попадает на страницу проекта (см. Рис.~\ref{project-page-with-files}). Для того, чтобы открыть настройки проекта, достаточно нажать на кнопку "Settings" ("Настройки") в правом верхнем углу страницы. После чего откроется страница настроек проекта (см. Рис.~\ref{project-settings}). В меню настроек нужно выбрать пункт "Labeling Interface" ("Интерфейс разметки").
После того, как файлы загружены, автоматически открывается страница проекта (см. Рис.~\ref{project-page-with-files}). Теперь я, как пользователь-новичёк, попробовал нажать на первый элемент из списка на экране, чтобы приступить к разметке. Я ожидал, что откроется страница с моей картинкой, но вместо этого появилось окошко с заголовком <<You're almost there>> (см. Рис.~\ref{almost-here}) и подписью <<Before you can annotate the data, set up labeling configuration>>, что означает <<Перед тем, как начать разметку данных, настройте конфигурацию разметки>>. Хоть я и первый раз работал в этой программе, но у меня есть понимание того, что существуют разные типы разметки для разных задач машинного обучения, и скорее всего именно тип разметки и нужно указать, потому что система никак не могла его угадать. На этом же окошке есть две кнопки <<Cancel>> (<<Отмена>>) и <<Go to setup>> (<<Настроить>>). Я нажал на кнопку <<Go to setup>> (<<Настроить>>), после чего открылась страница с настройками разметки (см. Рис.~\ref{templates-page}).
\begin{figure}[h!]
\centering
\includegraphics[width=1\linewidth]{img/project-settings.png}
\caption{Страница настроек проекта}
\label{project-settings}
\includegraphics[width=1\linewidth]{img/almost-here.png}
\caption{Вместо моей картинки появилось окошко с заголовком <<You're almost there>>.}
\label{almost-here}
\end{figure}
Чтобы выбрать тип разметки, нужно нажать на кнопку <<Browse Templates>> ("Выбрать шаблоны"), после чего откроется страница с шаблонами разметки (см. Рис.~\ref{templates-page}), на которой сразу виден нужный шаблон "Object Detection with Bounding Boxes" ("Обнаружение объектов с ограничивающими прямоугольниками").
Открывшаяся страница сначала немного меня смутила (см. Рис.~\ref{templates-page}), потому что на ней отображается очень много элементов с разными картинками, но не с теми, которые я самостоятельно загружал. Однако я достаточно быстро смог соориентироваться и понять, что эти изображения действительно не мои, а являются лишь иллюстрациями к разным типам разметки. Например, первая картинка, на которой изображены, судя по всему, ноги спортсменов, иллюстрирует тип разметки для задач семантической сегментации изображений с помощью полигонов. В этом также можно убедиться, если прочитать надпись под этой картинкой: <<Semantic segmentation with Polygons>>. В меню слева можно увидеть разные категории для разных типов разметки: <<Computer Vision>> (<<Компьютерное зрение>>), <<Natural Language Processing>> (<<Обработка естественного языка>>), <<Audio/Speech Processing>> (<<Обработка аудио/голоса>>) и так далее.
Хоть я и являюсь пользователем-новичком, однако у меня есть понимание, что моя задача с разметкой изображений, относится к области задач компьютерного зрения, именно эта категория выбрана в меню слева, а значит в этом меню я могу ничего не менять. Осталось найти разметку ограничивающими прямоугольниками, на английском она называется <<Object Detection with Bounding Boxes>> (<<Обнаружение объектов с ограничивающими прямоугольниками>>), именно такому типу разметки соответствует третья карточка в списке с изображением биологических клеток (см. Рис.~\ref{templates-page}). Именно на эту карточку я и нажал, на рисунке~\ref{templates-page} видно, что она выделена синей рамкой.
\begin{figure}[h!]
\centering
\includegraphics[width=1\linewidth]{img/templates-page.png}
\caption{Страница с шаблонами разметки}
\caption{Страница с типами разметки}
\label{templates-page}
\end{figure}
\newpage
Чтобы выбрать шаблон, нужно нажать на него левой кнопкой мыши, после чего откроется страница с настройками шаблона (см. Рис.~\ref{template-settings}).
Нужный шаблон нашёлся сразу на первой странице. Однако страница с выбором типов разметки сильно нагружена, представлено большое число различных типов для различных задач машинного обучения. Это может запутать пользователя-новичка.
\subsection*{Шаг 5. В конфигурации разметки указать единственный класс — «Светофор»}
После выбора типа разметки автоматически открывается страница с настройками типа разметки (см. Рис.~\ref{template-settings}). На ней снова отображается не то изображение, которое я загружал ранее, что путает пользователя-новичка. Однако, после более внимательного ознакомления со страницей, я понял, что это снова лишь иллюстрация того, как будет выглядеть разметка. Над картинкой с самолётами выведена надпись <<UI Preview>> (<<Предварительный просмотр>>).
Также в левой части экрана есть раздел <<Labels>> (<<Классы>>), в котором виден список классов. После выбора типа разметки, система автоматически, судя по всему в качестве иллюстрации, добавила два класса <<Airplane>> (<<Самолёт>>) и <<Car>> (<<Машина>>). Хоть я и являюсь пользователем новичком, но знаю, что разметка ограничивающими прямоугольниками подразумевает присвоение какого-либо класса каждому такому прямоугольнику. В задаче, которую я перед собой поставил, меня интересует только один класс прямоугольников - <<Светофоры>>. А значит мне нужно каким-то образом удалить созданные автоматически классы <<Airplane>> (<<Самолёт>>) и <<Car>> (<<Машина>>) и добавить свой класс - <<Светофор>>.
\begin{figure}[h!]
\centering
\includegraphics[width=1\linewidth]{img/template-settings.png}
\caption{Страница с настройками шаблона}
\caption{Страница с настройками типа разметки}
\label{template-settings}
\end{figure}
Нужный шаблон нашёлся сразу на первой странице. Это удобно. Однако на странице настроек шаблона в качестве примера всегда отображается изображение самолёта, независимо от того, какие классы указывает пользователь. Это может запутать пользователя-новичка, который ожидает увидеть изоображение, которое он сам загружал на предыдущих шагах.
\subsection*{Шаг 5. В конфигурации разметки указать единственный класс — «Светофор»}
На странице с настройками шаблона можно увидеть раздел <<Labels>> ("Классы"). Программа автоматически добавила два класса для машин и самолётов, однако нам они не нужны. Поэтому их нужно удалить. Для этого достаточно навести мышь на ненужный класс и нажать на иконку мусорной корзины (см. Рис.~\ref{template-settings-labels}).
Чтобы удалить ненужные классы я попробовал навести мышку на название класса <<Car>> (<<Машина>>). Рядом с ним появилась красная иконка с мусорной корзиной (см. Рис.~\ref{template-settings-labels}). Я нажал на неё и класс <<Car>> (<<Машина>>) удалился. Я проделал аналогичную операцию с классом <<Airplane>> (<<Самолёт>>).
\begin{figure}[h!]
\centering
@@ -466,7 +414,8 @@
\label{template-settings-labels}
\end{figure}
После удаления ненужных классов, можно добавить класс светофор. Для этого достаточно ввести слово <<Светофор>> в поле <<Add label names>> и нажать на кнопку <<Add>> ("Добавить"). После чего класс будет добавлен в список классов (см. Рис.~\ref{template-settings-labels-added}).
\newpage
Автоматически созданные классы удалены, осталось добавить свой класс - <<Светофор>>. Для этого я ввёл слово <<Светофор>> в поле <<Add label names>> и нажал на кнопку <<Add>> (<<Добавить>>). Ожидаемо класс <<Светофор>> появился в разделе <<Labels>> (<<Классы>>) (см. Рис.~\ref{template-settings-labels-added}).
\begin{figure}[h!]
\centering
@@ -475,29 +424,28 @@
\label{template-settings-labels-added}
\end{figure}
Осталось только сохранить шаблон, нажав на кнопку <<Save>> ("Сохранить"). Рядом с кнопкой сохранения появится зелёная надпись <<Saved!>> ("Сохранено!") (см. Рис.~\ref{template-settings-labels-saved}), в подтверждение того, что шаблон был сохранен успешно.
Теперь я разобрался с классами, сходу не ясно, что делать дальше. Однако, если присмотреться, то внизу по центру страницы расположена крупная кнопка <<Save>> ("Сохранить"). Я ещё помню, что всё это время мы настраивали тип разметки, вероятно эта кнопка отвечает за сохранение тех настроек, что я сделал. До этого я выбирал тип разметки с ограничивающими прямоугольниками и указывал нужный мне класс <<Светофор>>. Нажимаю на кнопку <<Save>> (<<Сохранить>>). Рядом с кнопкой сохранения появилась зелёная надпись <<Saved!>> ("Сохранено!") (см. Рис.~\ref{template-settings-labels-saved}), в подтверждение того, что настройки разметки были сохранены успешно, а затем автоматически открылась основная страница проекта (см. Рис.~\ref{project-page-with-images}).
\begin{figure}[h!]
\centering
\includegraphics[width=0.3\linewidth]{img/template-settings-labels-saved.png}
\caption{Кнопка сохранения шаблона}
\caption{Рядом с кнопкой сохранения появилась зелёная надпись <<Saved!>> ("Сохранено!") в подтверждение того, что настройки были сохранены успешно}
\label{template-settings-labels-saved}
\end{figure}
Добавление и удаление классов интуитивно понятно. Понравилась зелёная надпись <<Saved!>> --- сразу видно, что изменения сохранены.
\subsection*{Шаг 6. Перейти к первому изображению и изучить инструменты разметки}
После загрузки файлов и сохранения шаблона, можно приступить к разметке. Для этого достаточно нажать на первое изображение в списке файлов проекта (см. Рис.~\ref{project-page-with-files1}).
Снова автоматически открылась уже знакомая основная страница проекта со списком (см. Рис.~\ref{project-page-with-images}). Но теперь у каждого элемента списка отображается миниатюрная версия с изображениями, которые я сам загружал. Снова попробую наконец приступить к разметке, нажимаю левой кнопкой мыши на одну из своих картинок.
\begin{figure}[h!]
\centering
\includegraphics[width=1\linewidth]{img/project-page-with-files.png}
\includegraphics[width=1\linewidth]{img/project-page-with-images.png}
\caption{Список файлов на странице проекта}
\label{project-page-with-files1}
\label{project-page-with-images}
\end{figure}
После нажатия открывается страница разметки, соответствующая выбранному шаблону (см. Рис.~\ref{labeling-page}).
После нажатия открывается страница разметки (см. Рис.~\ref{labeling-page}).
\begin{figure}[h!]
\centering
@@ -515,30 +463,28 @@
\label{labeling-page-tools}
\end{figure}
В правом нижнем углу расположена кнопка <<Submit>> ("Сохранить"), с помощью которой можно сохранить разметку.
В правом нижнем углу расположена кнопка <<Submit>> ("Сохранить").
Понравились всплывающие подсказки при наведении на инструменты. Интерфейс не перегружен, всё необходимое под рукой. Не хватает кнопки отмены для сброса разметки без сохранения.
\newpage
\subsection*{Шаг 7. Для каждого изображения выделить объекты «Светофор» с помощью ограничивающих прямоугольников}
Для того, чтобы выделить объекты «Светофор» с помощью ограничивающих прямоугольников, достаточно нажать на слово <<Светофор>>, а затем нарисовать прямоугольник в нужном месте изображения (см. Рис.~\ref{labeling-page-object}).
Теперь я как пользователь-новичёк пробую нарисовать ограничивающий прямоугольник вокруг светофора на моём изображении. Как видно на рисунке~\ref{labeling-page-object}, вокруг светофора появляется нужный мне ограничивающий прямоугольник.
\begin{figure}[h!]
\centering
\includegraphics[width=0.5\linewidth]{img/labeling-page-object.png}
\caption{Выделение одного из пешеходных светофоров с помощью ограничивающего прямоугольника}
\includegraphics[width=1\linewidth]{img/labeling-page-object.png}
\caption{Выделение светофора с помощью ограничивающего прямоугольника}
\label{labeling-page-object}
\end{figure}
Как уже было сказано ранее, на панели слева выводится список загруженных изображений. С его помощью можно переключаться между ними. Остальные изображения размечаются аналогичным образом.
Рисование прямоугольников работает плавно. Границы прямоугольника видны сразу в процессе рисования.
Как я уже заметил на предыдущем шаге, на панели слева выводится список загруженных изображений. С его помощью можно переключаться между ними. Остальные изображения размечаются аналогичным образом.
\subsection*{Шаг 8. Сохранить результаты для всех изображений}
После того, как все изображения размечены, нажимаем на кнопку <<Submit>> ("Сохранить"). После чего автоматически открывается страница со списком изображений. Слева у каждого изображения появляется галочка, которая подтверждает, что изображение размечено.
После того, как все изображения размечены, я нажал на кнопку <<Submit>> ("Сохранить"), она выделена синим цветом и его предназначение интуитивно ясно. После этого автоматически открылась страница со списком изображений. Слева у каждого изображения появилась галочка, которая подтверждает, что изображение размечено.
\begin{figure}[h!]
\centering
@@ -547,11 +493,10 @@
\label{labeling-page-submit}
\end{figure}
Галочки у размеченных изображений --- удобный индикатор прогресса. После перезапуска браузера все данные сохранились.
\newpage
\subsection*{Шаг 9. Выгрузить результаты разметки в формате JSON}
Чтобы выгрузить результаты разметки, нажмём на кнопку <<Export>> ("Экспорт") в правом верхнем углу страницы. После этого открывается окно с выбором формата выгрузки. Выбираем JSON и нажимаем на кнопку <<Export>> ("Экспорт") (см. Рис.~\ref{labeling-page-export}). В открывшемся окне проводника можно выбрать папку для сохранения файла.
Теперь мне нужно выгрузить результаты моей работы в формате JSON. Для этого я нажал на кнопку <<Export>> ("Экспорт") в правом верхнем углу страницы. После этого открылось окно с выбором формата выгрузки. В списке есть нужный мне JSON, именно его я и выбрал, а затем нажал на кнопку <<Export>> ("Экспорт") (см. Рис.~\ref{labeling-page-export}). В открывшемся окне проводника выбрал папку для сохранения файла.
\begin{figure}[h!]
\centering