Запуск с Image Labeler

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

  • Вручную пометьте рамку изображения из коллекции изображений.

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

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

ROI и Определение меток сцен

  • ROI label соответствует или прямоугольному, полилинейному, или пиксельной необходимой области. Эти метки содержат два компонента: имя метки, такое как "автомобили" и область вы создаете.

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

Загрузите непомеченные данные

Откройте приложение и загрузите набор изображений. Можно загрузить изображения, сохраненные в datastore, от папки, или загрузить предыдущий сеанс этикетировочной машины. Изображения должны быть читаемыми imread.

imageFolder = fullfile(toolboxdir('vision'),'visiondata','stopSignImages')
imds = imageDatastore(imageFolder)
imageLabeler(imds)
imageFolder = fullfile(toolboxdir('vision'),'visiondata','stopSignImages')
imageLabeler(imageFolder)

В качестве альтернативы откройте приложение от вкладки Apps под Image Processing and Computer Vision. Затем в меню Load загрузите источник данных изображений.

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

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

Создайте метки ROI

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

Метка ROIОписаниеПример: управление сценой
RectangleЧертите прямоугольные (ограничительные рамки) меток ROI вокруг объектов.

Транспортные средства, пешеходы, дорожные знаки

LineЧертите линейные метки ROI, чтобы представлять линии. Чтобы чертить полилинейный ROI, используйте две или больше точки.

Контуры маршрута, ограждения, дорожные ограничения

Pixel labelПрисвойте метки пикселям для семантической сегментации. Можно пометить пиксели вручную с помощью многоугольников, кистей или заливки. Смотрите Пиксели Метки для Семантической Сегментации.

Транспортные средства, дорожное покрытие, деревья, тротуар

В этом примере вы задаете vehicle группа для маркировки типов транспортных средств, и затем создает Rectangle Метка ROI для Car и Truck.

  1. В панели ROI Label Definition слева, нажмите Label.

  2. Создайте Rectangle пометьте названный Car.

  3. От Group выпадающее меню, выберите New Group и назовите группу Vehicle

  4. Нажмите OK.

    Название группы Vehicle появляется в панели ROI Label Definition с созданной меткой Car. Можно переместить метки в различное положение или группу путем щелчка левой кнопкой и перетаскивания метки.

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

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

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

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

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

  1. В панели ROI Label Definition слева, кликните по метке Car.

  2. Нажмите Sublabel.

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

    Подметка headlight появляется в панели ROI Label Definition. Подметка вкладывается под выбранной маркой ROI, Car, и имеет тот же цвет как своя родительская метка.

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

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

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

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

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

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

Создайте атрибуты

attribute обеспечивает дальнейшую классификацию метки ROI или подметки. Атрибуты указывают дополнительную информацию о drawable метке. Например, в ведущей сцене, атрибуты могут включать тип или цвет транспортного средства.

Можно задать эти типы атрибутов.

Припишите типДемонстрационное определение атрибутаДемонстрационные значения по умолчанию

Numeric Value

String

Logical

List

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

  1. В панели ROI Label Definition слева, выберите метку Car и нажмите Attribute.

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

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

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

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

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

  1. В панели ROI Label Definition слева, выберите подметку headlight и нажмите Attribute.

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

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

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

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

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

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

Создайте метку сцены, чтобы использовать в видео.

  1. В панели Scene Label Definition слева, нажмите кнопку Define new scene label и создайте метку сцены, названную sunny. Убедитесь, что Group установлен в None. Нажмите OK.

    Панель Scene Label Definition показывает определение метки сцены. Метки сцены, которые применяются к текущей системе координат, появляются в панели Scene Labels справа. Метка сцены sunny пустой (белый), потому что метка сцены еще не была применена к системе координат.

  2. Целая сцена является солнечной, поэтому задайте, чтобы применить метку сцены sunny по целому временному интервалу. С определением метки сцены sunny, все еще выбранным в панели Scene Label Definition, выберите Time Interval.

  3. Нажмите Add Label.

Метка sunny теперь применяется ко всем системам координат во временном интервале.

Маркируйте Ground Truth

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

Маркируйте Ground Truth Manually

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

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

Маркируйте Ground Truth Using Automation Algorithm

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

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

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

  2. От панели инструментов приложения выберите Select Algorithm> Point Tracker. Этот алгоритм отслеживает один или несколько прямоугольных ROI на коротких интервалах с помощью алгоритма Kanade-Lucas-Tomasi (KLT).

  3. (необязательно) настройте параметры автоматизации. Щелкните Configure Automation. По умолчанию алгоритм автоматизации применяет метки от начала временного интервала до конца. Чтобы изменить направление и время запуска алгоритма, выберите один из вариантов, показанных в этой таблице.

    Направление автоматизацииЗапустите автоматизацию отПример

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

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

  5. Нажмите Run, чтобы отследить выбранные ROI на интервале.

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

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

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

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

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

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

Экспортируйте помеченную основную истину

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

Примечание

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

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

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

gTruth
gTruth = 

  groundTruth with properties:

          DataSource: [1×1 groundTruthDataSource]
    LabelDefinitions: [3×5 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.

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

gTruth.LabelDefinitions
ans =

  3×5 table

     Name        Type         Group      Description     Hierarchy  
    _______    _________    _________    ___________    ____________

    'Car'      Rectangle    'Vehicle'        ''         [1×1 struct]
    'Truck'    Rectangle    'Vehicle'        ''         []          
    'sunny'    Scene        'None'           ''         []  

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

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

gTruth.LabelDefinitions.Hierarchy{1}
ans = 

  struct with fields:

        carType: [1×1 struct]
      headlight: [1×1 struct]
           Type: Rectangle
    Description: ''

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

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

  struct with fields:

           Type: Rectangle
    Description: ''
           isOn: [1×1 struct]

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

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

  struct with fields:

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

Данные Метки

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

Отобразите первые несколько строк расписания. Первые несколько меток времени указывают, что никакие транспортные средства не были обнаружены и что 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.

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

Смотрите также

Приложения

Объекты

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте