Запуск с Video Labeler

Приложение Video Labeler предоставляет простой способ разметки прямоугольных меток видимой области (ROI), меток ROI ломаной линии, пиксельных информаций только для чтения меток и меток сцены в последовательности видео или изображений.

Можно использовать маркированные данные для проверки или обучения алгоритмов, таких как классификаторы изображений, детекторы объектов и сети семантической и образцы. Рассмотрите приложение при выборе инструмента для создания меток информация только для чтения. Дополнительные сведения о том, как выбрать правильный тип метки и инструмент рисования для приложения, см. в разделах Метки информация только для чтения, Подметки и Атрибуты.

Этот пример поможет вам начать использовать приложение, показав, как:

  • Вручную пометьте систему координат изображения из видео.

  • Автоматическая метка между системами координат изображения с помощью алгоритма автоматизации.

  • Экспорт маркированных достоверных данных.

Информации только для чтения и сцен

  • Значение ROI label соответствует либо прямоугольной, либо полилинейной, либо пиксельной области, представляющей интерес. Эти метки содержат два компонента: имя метки, например «автомобили», и область, которую вы создаете.

  • A Scene label описывает характер сцены, например «sunny». Вы можете связать эту метку с системой координат.

Загрузка немаркированных данных

Программно откройте приложение и загрузите видео. Видео должно быть в формате файла, считываемом по VideoReader.

videoLabeler('visiontraffic.avi')
Можно также загрузить видео из приложения Откройте приложение из вкладки Apps, под Image Processing and Computer Vision. Щелкните Import, чтобы загрузить видео или изображение последовательность, или нажатие кнопки Open Session, чтобы загрузить сохраненный сеанс.

Исследуйте видео. Нажмите кнопку «Воспроизведение», чтобы воспроизвести видео целиком, или используйте ползунок для навигации между системами координат.

Чтобы загрузить последовательность изображений с соответствующими временными метками, выберите Import > Image Sequence. Приложение поддерживает все форматы файлов изображений, поддерживаемые imread. Чтобы считать дополнительные форматы файлов, можно создать imageDatastore и используйте ReadFcn свойство.

Чтобы загрузить пользовательский источник данных, который нельзя считать VideoReader или imread, см. «Использование пользовательского средства чтения источников изображений для маркировки».

Создание определений меток

Задайте метки, которые вы хотите нарисовать. В этом примере метки задаются непосредственно в приложении Для определения меток из MATLAB® вместо этого используйте командную строку labelDefinitionCreator.

Установите временной интервал

Вы можете пометить все видео или начать с фрагмента видео. В этом примере вы помечаете пятисекундный временной интервал в загруженном видео. В текстовых полях под видео введите это время в секундах:

  1. В Current Time поле введите 5 и нажмите Enter.

  2. В Start Time поле введите 5 так, чтобы ползунок находился в начале временного интервала.

  3. В End Time поле введите 10.

Чтобы внести изменения во временной интервал, щелкните и перетащите красные флаги интервала.

Теперь все приложение настроено, чтобы фокусироваться на этом конкретном временном интервале. Видео воспроизводится только в течение этого интервала, и алгоритмы маркировки и автоматизации применяются только к этому интервалу. Вы можете изменить интервал в любое время, перемещая флаги.

Чтобы расширить временной интервал, чтобы заполнить весь раздел воспроизведения, нажмите Zoom in Time Interval.

Создание метки информация только для чтения

ROI label является меткой, которая соответствует видимой области (ROI) в изображении. Можно задать эти типы меток информация только для чтения.

  • Rectangle - Нарисуйте 2-D прямоугольные ограничительные прямоугольные метки вокруг объектов на изображении, такие как транспортные средства, лодки, создания.

  • Projected cuboid - Нарисуйте 3-D ограничительные прямоугольные метки вокруг объектов на изображении, такие как транспортные средства, лодки, создания.

  • Line - Нарисуйте линейные ROI для маркировки линий, такие как контуры маршрута.

  • Pixel label - Рисуйте пиксели для маркировки различных классов, таких как дорога или небо, для семантической сегментации. Для получения дополнительной информации о маркировке пикселей смотрите Пиксели меток для семантической сегментации.

  • Polygon - Рисование многоугольников вокруг объектов. Можно пометить отдельные образцы одного и того же класса. Для получения дополнительной информации о чертежах меток ROI многоугольника, например, и семантических сетей сегментации, см. «Маркировка объектов с использованием многоугольников»

Для получения дополнительной информации об этих информациях только для чтения определениях меток смотрите информацию только для чтения «Метки», «Подметки» и «Атрибуты».

В этом примере вы задаете vehicle группу для маркировки типов транспортных средств, а затем создать две Rectangle Информации только для чтения, Car и Truck. После создания меток можно использовать раскрывающееся меню Show ROI Labels, чтобы выбрать On Hover, Always или Never, чтобы управлять тем, как имена меток информация только для чтения появляются во время маркировки. По умолчанию имена будут появляться при наведении указателя мыши на информация только для чтения.

  1. На панели ROI Labels слева нажмите Label.

  2. Создайте Rectangle метка с именем Car.

  3. Вы можете изменить цвет метки, щелкнув на цвете предварительного просмотра.

  4. Из Group раскрывающееся меню, выберите New Group и назовите группу Vehicle

  5. Нажмите OK.

    Имя Vehicle группы появляется на панели ROI Labels с созданной Car метки. Можно переместить метку в списке в другое положение или группу списка, щелкнув левой кнопкой мыши и перетащив метку вверх или вниз.

  6. Чтобы добавить вторую метку, нажмите Label. Назовите Truck метки и убедитесь, что выбрана Vehicle группа. Нажмите OK.

  7. Используйте мышь, чтобы нарисовать прямоугольные Car ROI вокруг двух транспортных средств.

Создание подметок

sublabel является типом метки информация только для чтения, которая соответствует родительской метке информация только для чтения. Каждая подметка должна принадлежать определенной метке, заданной на панели ROI Labels, или быть дочерним элементом. Например, в ведущей сцене метка автомобиля может иметь подметки для фар, номерных знаков или колес. Для получения дополнительной информации о подметках см. Информацию только для чтения Меток, подметки и атрибуты.

Задайте подметку для фар.

  1. На панели ROI Labels слева щелкните метку Car.

  2. Нажмите Sublabel.

  3. Создайте Rectangle подметка с именем headlight и опционально напишите описание. Нажмите OK.

    Подметка headlight появится на панели ROI Labels. Подметка вложена в выбранную метку информация только для чтения, Car и имеет тот же цвет, что и родительская метка.

    Под меткой можно добавить несколько подметок. Можно также перетащить подметки, чтобы переупорядочить их в списке. Щелкните правой кнопкой мыши любую метку для дополнительных правок.

  4. На панели ROI Labels выберите подметку headlight.

  5. В системе координат изображения выберите метку Car. Метка становится желтой при выборе. Необходимо выбрать метку Car (родительский информация только для чтения), прежде чем добавить к ней подметку.

    Нарисуйте headlight подметки для каждого из автомобилей.

  6. Повторите предыдущие шаги, чтобы пометить фары другого автомобиля. Чтобы нарисовать метки точнее, используйте опции панорамирования и масштабирования, расположенные в правом верхнем углу окна маркировки.

Подметки могут использоваться только с прямоугольными или полилинейными метками ROI и не могут иметь собственных подметок. Для получения дополнительной информации о работе с подметками смотрите Использование подметок и Атрибуты для маркировки Достоверные Данные.

Создание атрибутов

ROI attribute задает дополнительные сведения о метке информация только для чтения или подметке. Для примера в сцене вождения атрибуты могут включать тип или цвет транспортного средства. В океанской сцене атрибуты могут включать тип парусника или количество парусов. Можно задать атрибуты ROI этих типов.

  • Numeric Value - Задайте численный скалярный атрибут, такой как количество дверей на маркированном транспортном средстве или количество парусов на паруснике.

  • String - Задайте строковый скалярный атрибут, такой как цвет транспортного средства или лодки.

  • Logical - Задайте логический атрибут true или false, например, находится ли транспортное средство в движении или лодка пробивается.

  • List - Задайте атрибут раскрывающегося списка предопределенных строк, таких как марка или модель транспортного средства или лодки.

Для получения дополнительной информации об этих типах атрибутов см. «Метки информация только для чтения», «Подметки» и «Атрибуты».

Добавьте атрибут для типа транспортного средства.

  1. На панели ROI Labels слева выберите метку Car и нажмите Attribute.

  2. В Attribute Name поле введите carType. Установите тип атрибута равным List.

  3. В List Items разделе введите различные типы автомобилей, такие как Sedan, Hatchback, SUV, и Wagon, каждый по своей линии. Опционально дайте атрибуту описание и нажатие кнопки OK.

  4. Выберите Car метку информация только для чтения. На панели Attributes and Sublabels выберите соответствующее значение атрибута carType для этого транспортного средства.

  5. Повторите предыдущий шаг, чтобы назначить атрибут carType другому транспортному средству.

Можно также добавить атрибуты в подметки. Добавьте атрибут для подметки headlight, который сообщает, включена ли фара.

  1. На панели ROI Labels слева выберите подметку headlight и нажмите Attribute.

  2. В Attribute Name поле введите isOn. Установите тип атрибута равным Logical. Оставьте набор Default Value равным Empty, опционально напишите описание и нажатие кнопки OK.

  3. Выберите фару в видеокадре. Установите соответствующее значение атрибута isOn или оставьте значение атрибута установленным на Empty.

  4. Повторите предыдущий шаг, чтобы задать атрибут isOn для других фар.

Чтобы удалить атрибут, щелкните правой кнопкой мыши метку информация только для чтения или подметку и выберите атрибут для удаления. Удаление атрибута удаляет информацию атрибута из всех ранее созданных аннотаций метки информация только для чтения.

Создание меток сцен

A scene label определяет дополнительную информацию для всей сцены. Используйте метки сцены, чтобы описать условия, такие как подсветки и погода, или события, такие как изменения маршрута.

Создайте метку сцены для применения к изображению.

  1. На левой панели приложения выберите Scene Labels рядом с вкладкой ROI Labels.

  2. Щелкните Define new scene label и в Label Name поле введите метку сцены с именем daytime.

  3. Измените цвет определения метки на светло-синий, чтобы отразить характер метки сцены. Под параметром Color щелкните предворительный просмотр цвета и выберите стандартные светло-синие цвета. Затем нажмите кнопку OK, чтобы закрыть окно выбора цвета.

  4. Оставьте набор параметров Group по умолчанию None и нажмите OK. На Scene Labels панели показано определение метки сцены.

  5. Нажмите Apply to Image, чтобы применить daytime пометить на сцену. Для метки сцены появляется флажок.

  6. Чтобы отредактировать или удалить метку сцены, щелкните правой кнопкой мыши метку и выберите Edit Label или Delete Label.

Пометьте Основная Истина

Пока вы пометили в видео только одну систему координат. Чтобы пометить оставшиеся системы координат, выберите один из следующих опций.

Пометьте Основная Истина вручную

При нажатии клавиши со стрелой вправо для перехода к следующей системе координат метки информация только для чтения из предыдущей системы координат не переносятся. К каждой системе координат применяется только sunny метка сцены, поскольку эта метка применялась в течение всего временного интервала.

Продвигайтесь система координат за кадром и рисуйте метки и подметки ROIs вручную. Также обновляйте информацию атрибута для этих ROIs.

Пометьте Основная Истина с помощью алгоритма автоматизации

Чтобы ускорить процесс маркировки, вы можете использовать алгоритм автоматизации в приложении. Вы можете либо определить свой собственный алгоритм автоматизации, см., Создают Алгоритм Автоматизации для Маркировки и Временные Алгоритмы Автоматизации, либо использовать встроенный алгоритм автоматизации. В этом примере вы помечаете основную истину, используя встроенный алгоритм отслеживания точек.

В этом примере вы автоматизируете маркировку только Car меток информация только для чтения. Встроенные алгоритмы автоматизации не поддерживают автоматизацию подметок и атрибутов.

  1. Выберите метки, которые необходимо автоматизировать. В первой системе координат видео нажмите Ctrl и щелкните, чтобы выбрать две аннотации с метками Car. Метки выделены желтым цветом.

  2. На панели инструментов приложения выберите Select Algorithm > Point Tracker. Этот алгоритм отслеживает один или несколько прямоугольников ROI за короткие интервалы времени с помощью алгоритма Канаде-Лукаса-Томази (KLT).

  3. (необязательно) настройте параметры автоматизации. Например, убедитесь, что Import selected ROIs выбран так, чтобы выбранные метки Car были импортированы в сеанс автоматизации.

  4. Щелкните Automate, чтобы открыть сеанс автоматизации. Инструкции алгоритма появляются на правой панели, и выбранные метки доступны для автоматизации.

  5. Щелкните Run, чтобы отследить выбранные ROI через интервал.

  6. Исследуйте результаты выполнения алгоритма.

    Транспортные средства, которые поступают на сцену позже, не маркируются. Немаркированные транспортные средства не имели начальной информации только для чтения, поэтому алгоритм не отслеживал их. Нажмите Undo Run. Используйте ползунок, чтобы найти системы координат, где каждое транспортное средство впервые появляется. Нарисуйте vehicle ROIs вокруг каждого транспортного средства, а затем нажмите Run еще раз.

  7. Продвигайтесь система координат за кадром и вручную перемещайте, изменяйте размер, удаляйте или добавляйте ROI, чтобы улучшить результаты алгоритма автоматизации.

    Когда вы удовлетворены результатами алгоритма, нажмите Accept. Кроме того, чтобы сбросить метки, сгенерированные во время сеанса, и пометить вручную, нажмите Cancel. Кнопка Cancel отменяет только сеанс алгоритма, а не сеанс приложения.

Опционально теперь можно вручную пометить оставшиеся системы координат подметкой и информацией атрибута.

Для дальнейшей оценки меток можно просмотреть визуальные сводные данные маркированной основной истины. На панели инструментов приложения выберите View Label Summary. Используйте эти сводные данные для сравнения систем координат, частоты меток и условий сцены. Для получения дополнительной информации смотрите View Summary of Основная Истина Labels. Эти сводные данные не поддерживает подметки или атрибуты.

Экспорт маркированная основная истина

Можно экспортировать помеченную основную истину в MAT-файл или в переменную в рабочем пространстве MATLAB. В обоих случаях маркированная основная истина сохранена как groundTruth объект. Можно использовать этот объект для обучения алгоритма компьютерного зрения на основе глубокого обучения. Для получения дополнительной информации смотрите Обучающие данные для обнаружения объектов и семантической сегментации.

Примечание

Если вы экспортируете пиксельные данные, данные о пиксельных метках и достоверные данные сохраняются в отдельных файлах, но в одной папке. Для факторов о работе с экспортированными метками пикселей см. раздел «Как Приложения Labeler хранят Экспортированные метки пикселей».

В этом примере вы экспортируете метку основная истина в рабочее пространство MATLAB. На панели инструментов приложения выберите Export Labels > To Workspace. Экспортированный переменный MATLAB gTruth.

Отображение свойств экспортированного groundTruth объект. Информация в экспортированном объекте может отличаться от информации, показанной здесь.

gTruth
gTruth = 

  groundTruth with properties:

          DataSource: [1×1 groundTruthDataSource]
    LabelDefinitions: [2x6 table]
           LabelData: [531×3 timetable]

Источник данных

DataSource является groundTruthDataSource объект, содержащий путь к изображениям или видео и временным меткам. Отображение свойств этого объекта.

gTruth.DataSource
ans = 

groundTruthDataSource for a video file with properties

        Source: ...matlab\toolbox\vision\visiondata\visiontraffic.avi
    TimeStamps: [531×1 duration]

Определения меток

LabelDefinitions - таблица, содержащая информацию об определениях меток. Эта таблица не содержит информацию о метках, нарисованных на видеокадрах. Чтобы сохранить определения меток в их собственном MAT-файле, на панели инструментов приложения выберите Save > Label Definitions. Затем можно импортировать эти определения меток в другой сеанс приложения, выбрав Import Files.

Отобразите таблицу определений меток. Каждая строка содержит информацию об определении метки информация только для чтения или о определении метки сцены. Если вы экспортировали данные о пиксельных метках, LabelDefinitions таблица также включает PixelLabelID столбец, содержащий идентификационные номера для каждого определения пиксельной метки.

gTruth.LabelDefinitions
ans =
  3×6 table

      Name         Type        LabelColor        Group       Description     Hierarchy  
    _________    _________    ____________    ___________    ___________    ____________

    {'Car'  }    Rectangle    {1×3 double}    {'Vehicle'}    {0×0 char}     {1×1 struct}
    {'Truck'}    Rectangle    {1×3 double}    {'Vehicle'}    {0×0 char}     {0×0 double}
    {'Sunny'}    Scene        {1×3 double}    {'Weather'}    {0×0 char}     {0×0 double} 

Внутри LabelDefinitions, а Hierarchy в столбце хранится информация о подметке и определениях атрибутов родительской метки информация только для чтения.

Отображение подметки и информации атрибута для Car метка.

gTruth.LabelDefinitions.Hierarchy{1}
ans = 

  struct with fields:
       numDoors: [1×1 struct]
          color: [1×1 struct]
       inMotion: [1×1 struct]
        carType: [1×1 struct]
      headlight: [1×1 struct]
           Type: Rectangle
    Description: ''

Отображение информации о headlight подметка.

gTruth.LabelDefinitions.Hierarchy{1}.headlight
ans = 

  struct with fields:
           Type: Rectangle
    Description: ''
          Color: [0.5862 0.8276 0.3103]
           isOn: [1×1 struct]

Отображение информации о carType атрибут.

gTruth.LabelDefinitions.Hierarchy{1}.carType
ans = 

  struct with fields:

      ListItems: {3×1 cell}
    Description: ''

Маркируйте данные

LabelData - расписание, содержащее информацию о метках информация только для чтения, нарисованных в каждой временной метке, по всему видео. Расписание содержит по одному столбцу на метку.

Отображение первых нескольких строк расписания. Первые несколько временных меток указывают, что транспортных средств не было обнаружено и что sunny метка сцены false. Эти результаты связаны с тем, что этот фрагмент видео не была помечаем. Отмечался только временной интервал 5-10 секунд.

labelData = gTruth.labelData;
head(labelData)
ans =

  8×3 timetable

       Time           Car            Truck        sunny
    __________    ____________    ____________    _____

    5.005 sec     [1×2 struct]    [1×0 struct]    true 
    5.0384 sec    [1×2 struct]    [1×0 struct]    true 
    5.0717 sec    [1×2 struct]    [1×0 struct]    true 
    5.1051 sec    [1×2 struct]    [1×0 struct]    true 
    5.1385 sec    [1×2 struct]    [1×0 struct]    true 
    5.1718 sec    [1×2 struct]    [1×0 struct]    true 
    5.2052 sec    [1×2 struct]    [1×0 struct]    true 
    5.2386 sec    [1×2 struct]    [1×0 struct]    true 

Отображение первых нескольких строк расписания с интервалом 5-10 секунд, содержащих метки.

gTruthInterval = labelData(timerange('00:00:05','00:00:10'),:);
head(gTruthInterval)
ans =

  8×3 timetable

       Time           Car            Truck        sunny
    __________    ____________    ____________    _____

    5.005 sec     [1×2 struct]    [1×0 struct]    true 
    5.0384 sec    [1×2 struct]    [1×0 struct]    true 
    5.0717 sec    [1×2 struct]    [1×0 struct]    true 
    5.1051 sec    [1×2 struct]    [1×0 struct]    true 
    5.1385 sec    [1×2 struct]    [1×0 struct]    true 
    5.1718 sec    [1×2 struct]    [1×0 struct]    true 
    5.2052 sec    [1×2 struct]    [1×0 struct]    true 
    5.2386 sec    [1×2 struct]    [1×0 struct]    true 

Для каждого Car метка, структура включает положение ограничивающего прямоугольника и информацию о его подметках и атрибутах.

Отобразите положения ограничительного прямоугольника для транспортных средств в начале временного интервала. Ваши положения ограничивающего прямоугольника могут отличаться от таковых, показанных здесь.

gTruthInterval(1,:).Car{1}.Position % [x y width height], in pixels
ans =

  1×4 single row vector

  415.8962   82.4737  130.8474  129.3805


ans =

  1×4 single row vector

  235.2182    1.0000  117.0611   55.3500

Сохранение сеанса приложения

На панели инструментов приложения выберите Save и сохраните MAT-файл сеанса приложения. Сохраненный сеанс включает источник данных, определения меток и помеченную основную истину. Он также включает настройки вашего сеанса, такие как размещение приложения. Чтобы изменить опции размещения, выберите Layout.

В любое время сеанса можно выбрать New Session, чтобы начать новый сеанс. У вас есть опция сохранить текущий сеанс или отменить.

MAT-файл сеанса приложения отделен от основной истины, который экспортируется при выборе Export > From File. Чтобы поделиться маркированными достоверными данными, как лучшая практика, поделитесь основной истиной MAT-файлом, содержащим groundTruth объект, а не MAT-файл сеанса приложения. Для получения дополнительной информации смотрите Share and Store Labeled Ground Truth Data.

См. также

Приложения

Объекты

Похожие темы