diff --git a/lab2/img/almost-here.png b/lab2/img/almost-here.png new file mode 100644 index 0000000..862549a Binary files /dev/null and b/lab2/img/almost-here.png differ diff --git a/lab2/img/labeling-page-object.png b/lab2/img/labeling-page-object.png index 8ade56a..d82725c 100644 Binary files a/lab2/img/labeling-page-object.png and b/lab2/img/labeling-page-object.png differ diff --git a/lab2/img/labeling-page.png b/lab2/img/labeling-page.png index 90a351a..8c2a978 100644 Binary files a/lab2/img/labeling-page.png and b/lab2/img/labeling-page.png differ diff --git a/lab2/img/project-page-with-images.png b/lab2/img/project-page-with-images.png new file mode 100644 index 0000000..cc21030 Binary files /dev/null and b/lab2/img/project-page-with-images.png differ diff --git a/lab2/img/template-settings-labels-added.png b/lab2/img/template-settings-labels-added.png index 2aa34b2..5d68529 100644 Binary files a/lab2/img/template-settings-labels-added.png and b/lab2/img/template-settings-labels-added.png differ diff --git a/lab2/img/template-settings.png b/lab2/img/template-settings.png index c72b771..d344cc1 100644 Binary files a/lab2/img/template-settings.png and b/lab2/img/template-settings.png differ diff --git a/lab2/img/templates-page.png b/lab2/img/templates-page.png index 0015655..cf73061 100644 Binary files a/lab2/img/templates-page.png and b/lab2/img/templates-page.png differ diff --git a/lab2/report.tex b/lab2/report.tex index cc70dbf..7c20ce3 100644 --- a/lab2/report.tex +++ b/lab2/report.tex @@ -215,55 +215,8 @@ В данной лабораторной будут использованы части 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{Тип пользователя и уровень подготовки} + \newpage + \section{Тип пользователя и уровень подготовки} В рамках данной работы рассматривается \textbf{пользователь-новичок}: @@ -274,27 +227,16 @@ \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}). Название проекта отображается в верхней части страницы. По центру экрана отображается надпись <>, что означает <<Импортируйте данные, чтобы начать проект>>. Я, как пользователь-новичёк, догадался, что на этом этапе можно загрузить исходные изображения. На экране также видно две больших кнопки <> (<<Подключить облачное хранилище>>) и <> (<<Импортировать>>). Мои файлы с изображениями хранятся в папке на моём компьютере, а значит работа с облачным хранилищем мне не подойдёт. Поэтому далее я нажал на кнопку <> (<<Импортировать>>). После чего открылась страница для загрузки файлов (см. Рис.~\ref{upload-files}). \begin{figure}[h!] \centering @@ -402,7 +345,7 @@ \label{upload-files} \end{figure} - На этой странице пользователь может выбрать файлы для загрузки. Для этого нужно нажать на кнопку "Upload files" ("Загрузить файлы") и выбрать файлы с изображениями. Все загруженные файлы будут отображены списком, справа от них указывается их размер и прогресс загрузки. После завершения загрузки появится зелёная полоска (см. Рис.~\ref{upload-files-success}). + По центру открывшейся страницы видна надпись <>, что означает <<Перетащите файлы сюда или нажмите для выбора файлов>>. Далее я просто открыл папку со своими изображениями в соседнем окне Windows, выделил нужные файлы и перетащил мышкой на надпись <>. Это привычная для современного пользователя техника. Выбранные файлы отобразились списком на экране, справа от каждого файла появилась полоска загрузки. После завершения загрузки полоска стала зелёной (см. Рис.~\ref{upload-files-success}). \begin{figure}[h!] \centering @@ -411,7 +354,8 @@ \label{upload-files-success} \end{figure} - Чтобы добавить файлы в проект, пользователю нужно нажать на кнопку "Import" ("Импортировать"). После чего файлы будут добавлены в проект и отображены на странице проекта (см. Рис.~\ref{project-page}). + \newpage + В правом верхнем углу этой страницы видно две кнопки <> (<<Отмена>>) и <> (<<Импортировать>>). Отменять загрузку я не планировал, поэтому нажал на кнопку <> (<<Импортировать>>). После этого автоматически открылась страница проекта, но теперь на ней отображается список из 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}). Теперь я, как пользователь-новичёк, попробовал нажать на первый элемент из списка на экране, чтобы приступить к разметке. Я ожидал, что откроется страница с моей картинкой, но вместо этого появилось окошко с заголовком <> (см. Рис.~\ref{almost-here}) и подписью <>, что означает <<Перед тем, как начать разметку данных, настройте конфигурацию разметки>>. Хоть я и первый раз работал в этой программе, но у меня есть понимание того, что существуют разные типы разметки для разных задач машинного обучения, и скорее всего именно тип разметки и нужно указать, потому что система никак не могла его угадать. На этом же окошке есть две кнопки <> (<<Отмена>>) и <> (<<Настроить>>). Я нажал на кнопку <> (<<Настроить>>), после чего открылась страница с настройками разметки (см. Рис.~\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{Вместо моей картинки появилось окошко с заголовком <>.} + \label{almost-here} \end{figure} - Чтобы выбрать тип разметки, нужно нажать на кнопку <> ("Выбрать шаблоны"), после чего откроется страница с шаблонами разметки (см. Рис.~\ref{templates-page}), на которой сразу виден нужный шаблон "Object Detection with Bounding Boxes" ("Обнаружение объектов с ограничивающими прямоугольниками"). + + Открывшаяся страница сначала немного меня смутила (см. Рис.~\ref{templates-page}), потому что на ней отображается очень много элементов с разными картинками, но не с теми, которые я самостоятельно загружал. Однако я достаточно быстро смог соориентироваться и понять, что эти изображения действительно не мои, а являются лишь иллюстрациями к разным типам разметки. Например, первая картинка, на которой изображены, судя по всему, ноги спортсменов, иллюстрирует тип разметки для задач семантической сегментации изображений с помощью полигонов. В этом также можно убедиться, если прочитать надпись под этой картинкой: <>. В меню слева можно увидеть разные категории для разных типов разметки: <> (<<Компьютерное зрение>>), <> (<<Обработка естественного языка>>), <