Приложение Video Labeler обеспечивает простой способ отметить прямоугольные метки видимой области (ROI), метки ROI ломаной линии, пиксельные метки ROI и метки сцены в видео или последовательности изображений. Этот пример получает вас, начал использовать приложение путем показа вам как к:
Метка Manually фрейм изображения от видео.
Метка Automatically через фреймы изображения с помощью алгоритма автоматизации.
Экспортируйте маркированные наземные данные об истине.
Откройте приложение и загрузите видео управления автомобилей на магистрали. Видео должны быть в формате файла, читаемом VideoReader
.
videoLabeler('visiontraffic.avi')
Также откройте приложение от вкладки Apps под Image Processing and Computer Vision. Затем из меню Load загрузите источник видеоданных.
Исследуйте видео. Кликните по кнопке воспроизведения, чтобы проигрывать целое видео или использовать ползунок, чтобы перейти между кадрами.
Приложение также позволяет вам загрузить последовательности изображений, с соответствующими метками времени, путем выбора Load> Image Sequence. Изображения должны быть читаемыми imread
.
Чтобы загрузить пользовательский источник данных, который читаем VideoReader
или imread
, смотрите Использование Пользовательский Читатель Источника данных для Разметки достоверных данных.
Можно маркировать целое видео или запуститься с фрагмента видео. В этом примере вы маркируете интервал с пятью вторым разом в загруженном видео. В текстовых полях ниже видео введите эти времена в секундах:
В поле Start Time введите 5
.
В поле Current Time введите 5
так, чтобы ползунок был в начале временного интервала.
В поле End Time введите 10
.
Опционально, чтобы внести изменения во временной интервал, перетащите красные флаги интервала.
Целое приложение теперь настраивается, чтобы фокусироваться на этом определенном временном интервале. Видео вопроизводит только в этом интервале, и алгоритмы маркировки и автоматизации применяются только к этому интервалу. Можно изменить интервал в любое время путем перемещения флагов.
Чтобы расширить временной интервал, чтобы заполнить целый раздел воспроизведения, нажмите Zoom in Time Interval.
Задайте метки, вы намереваетесь привлечь кадры видео. В этом примере вы задаете метки непосредственно в рамках приложения. Чтобы задать метки из командной строки MATLAB® вместо этого, используйте labelDefinitionCreator
.
ROI label является меткой, которая соответствует видимой области (ROI). Можно задать эти типы меток ROI.
Метка ROI | Описание | Пример: управление сценой |
---|---|---|
Rectangle | Чертите прямоугольные (ограничительные рамки) меток ROI вокруг объектов. | Автомобили, пешеходы, дорожные знаки |
Line | Чертите линейные метки ROI, чтобы представлять строки. Чтобы чертить ROI ломаной линии, используйте две или больше точки. | Контуры маршрута, ограждения, дорожные ограничения |
Pixel label | Присвойте метки пикселям для семантической сегментации. Смотрите Пиксели Метки для Семантической Сегментации. | Автомобили, дорожное покрытие, деревья, тротуар |
В этом примере вы задаете группу vehicle
для маркировки типов автомобилей, и затем создаете метку Rectangle
ROI для Car
и Truck
.
В панели ROI Label Definition слева, нажмите Label.
Создайте метку Rectangle
под названием Car
.
Из выпадающего меню Group
выберите New Group ...
и назовите группу Vehicle
Нажмите OK.
Название группы Vehicle появляется в панели ROI Label Definition с созданной меткой Car. Можно переместить метки в различное положение или группу путем щелчка левой кнопкой и перетаскивания метки.
Добавьте вторую метку. Нажмите Label. Назовите метку Truck и убедитесь, что группа Vehicle выбрана. Нажмите OK.
В первом кадре видео во временном интервале используйте мышь, чтобы чертить прямоугольных КОРОЛЕЙ Car вокруг этих двух автомобилей.
sublabel является типом метки ROI, которая соответствует родительской метке ROI. Каждая подметка должна принадлежать или быть дочерним элементом, определенная метка, заданная в панели ROI Label Definition. Например, в ведущей сцене, метка автомобиля может иметь подметки для фар, номерных знаков или колес.
Задайте подметку для фар.
В панели ROI Label Definition слева, кликните по метке Car.
Нажмите Sublabel.
Создайте подметку Rectangle
под названием headlight
и опционально запишите описание. Нажмите OK.
Подметка headlight появляется в панели ROI Label Definition. Подметка вкладывается под выбранной маркой ROI, Car, и имеет тот же цвет как своя родительская метка.
Можно добавить несколько подметок под маркой. Можно также перетащить подметки, чтобы переупорядочить их в списке. Щелкните правой кнопкой по любой метке для дополнительных редактирований.
В панели ROI Label Definition выберите подметку headlight.
В кадре видео выберите метку Car. Метка становится желтой, когда выбрано. Необходимо выбрать метку Car (родительский ROI), прежде чем можно будет добавить подметку в него.
Чертите подметки headlight для каждого из автомобилей.
Повторите предыдущие шаги, чтобы маркировать фары другого автомобиля. Чтобы чертить метки более точно, используйте Pan, Zoom In и опции Zoom Out, доступные от панели инструментов.
Подметки могут только использоваться с прямоугольным или метками ROI ломаной линии и не могут иметь своих собственных подметок. Для получения дополнительной информации при работе с подметками, смотрите Подметки Использования и Атрибуты, чтобы Маркировать Ground Truth Data.
attribute обеспечивает дальнейшую классификацию метки ROI или подметки. Атрибуты указывают дополнительную информацию о drawable метке. Например, в ведущей сцене, атрибуты могут включать тип или цвет автомобиля.
Можно задать эти типы атрибутов.
Припишите тип | Демонстрационное определение атрибута | Демонстрационные значения по умолчанию |
---|---|---|
|
|
|
|
| |
|
| |
|
|
Добавьте атрибут для типа автомобиля.
В панели ROI Label Definition слева, выберите метку Car и нажмите Attribute.
В поле Attribute Name введите carType
. Установите тип атрибута на List
.
В разделе List Items введите различные типы автомобилей, такие как Sedan
, Hatchback
, и Wagon
, каждый на его собственной строке. Опционально дайте атрибуту описание и нажмите OK.
В первом кадре видео выберите метку Car ROI. В панели Attributes and Sublabels выберите соответствующее значение атрибута carType для того автомобиля.
Повторите предыдущий шаг, чтобы присвоить атрибут carType другому автомобилю.
Можно также добавить атрибуты в подметки. Добавьте атрибут для подметки headlight, которая говорит, ли включена фара.
В панели ROI Label Definition слева, выберите подметку headlight и нажмите Attribute.
В поле Attribute Name введите isOn
. Установите тип атрибута на Logical
. Оставьте набор Default Value Empty
, опционально запишите описание и нажмите OK.
Выберите фару в кадре видео. Установите соответствующее значение атрибута isOn или оставьте набор значения атрибута Empty
.
Повторите предыдущий шаг, чтобы установить атрибут isOn для других фар.
Чтобы удалить атрибут, щелкните правой кнопкой по метке ROI или подметке, и выберите атрибут, чтобы удалить. Удаление атрибута удаляет информацию атрибута из всех ранее созданных аннотаций метки ROI.
scene label задает дополнительную информацию для целой сцены. Используйте метки сцены, чтобы описать условия, такие как подсветка и погода, или события, такие как маршрут изменяется.
Создайте метку сцены, чтобы использовать в видео.
В панели Scene Label Definition слева, нажмите кнопку Define new scene label и создайте метку сцены, названную sunny
. Убедитесь, что Group установлен в None
. Нажмите OK.
Панель Scene Label Definition показывает определение метки сцены. Метки сцены, которые применяются к текущему кадру, появляются в панели Scene Labels справа. Метка сцены sunny пустой (белый), потому что метка сцены еще не была применена к кадру.
Целая сцена является солнечной, поэтому задайте, чтобы применить метку сцены sunny по целому временному интервалу. С определением метки сцены sunny, все еще выбранным в панели Scene Label Definition, выберите Time Interval.
Нажмите Add Label.
Метка sunny теперь применяется ко всем кадрам во временном интервале.
До сих пор вы маркировали только один кадр в видео. Чтобы маркировать остающиеся кадры, выберите одну из этих опций.
Когда вы кликаете по клавише со стрелкой вправо, чтобы перейти к следующему кадру, метки ROI от предыдущего кадра не переносят. Только метка сцены sunny применяется к каждому кадру, потому что эта метка была применена по целому временному интервалу.
Усовершенствуйте кадр кадром и чертите метку и подметку ROI вручную. Также обновите информацию атрибута для этих КОРОЛЕЙ.
Чтобы ускорить процесс маркировки, можно использовать алгоритм автоматизации в рамках приложения. Можно или задать собственный алгоритм автоматизации, видеть, Создают Алгоритм Автоматизации для Маркировки и Временные Алгоритмы Автоматизации, или используют встроенный алгоритм автоматизации. В этом примере вы маркируете наземную истину с помощью встроенного алгоритма отслеживания точки.
В этом примере вы автоматизируете маркировку только меток ROI Car. Встроенные алгоритмы автоматизации не поддерживают подметку и приписывают автоматизацию.
Выберите метки, которые вы хотите автоматизировать. В первом кадре видео нажмите Ctrl и нажатие кнопки, чтобы выбрать две аннотации метки Car. Метки подсвечены в желтом.
От панели инструментов приложения выберите Select Algorithm> Point Tracker. Этот алгоритм отслеживает одного или несколько прямоугольных КОРОЛЕЙ на коротких интервалах с помощью алгоритма Kanade-Lucas-Tomasi (KLT).
(дополнительный) Конфигурируют настройки автоматизации. Нажмите Configure Automation. По умолчанию алгоритм автоматизации применяет метки от запуска временного интервала в конец. Чтобы изменить направление и время начала алгоритма, выберите один из вариантов, показавших в этой таблице.
Направление автоматизации | Запустите алгоритм от | Пример |
---|---|---|
|
|
|
|
| |
|
|
|
|
|
Import selected ROIs должен быть выбран так, чтобы Car маркировал вас выбранными, импортируются в сеанс автоматизации.
Нажмите Automate, чтобы открыть сеанс автоматизации. Инструкции по алгоритму появляются на правой панели, и выбранные метки доступны, чтобы автоматизировать.
Нажмите Run, чтобы отследить выбранных КОРОЛЕЙ на интервале.
Исследуйте результаты выполнения алгоритма.
Автомобили, которые вводят сцену позже, не маркированы. Немаркированные автомобили не имели начальной метки ROI, таким образом, алгоритм не отслеживал их. Нажмите Undo Run. Используйте ползунок, чтобы найти кадры, где каждый автомобиль сначала появляется. Чертите КОРОЛЕЙ vehicle вокруг каждого автомобиля, и затем нажмите Run снова.
Усовершенствуйте кадр кадром и вручную переместите, измените размер, удалите или добавьте КОРОЛЕЙ, чтобы улучшить результаты алгоритма автоматизации.
Когда вы будете удовлетворены результатами алгоритма, нажмите Accept. Также, чтобы отбросить метки, сгенерированные во время сеанса и метки вручную вместо этого, нажмите Cancel. Кнопка Cancel отменяет только сеанс алгоритма, не сеанс приложения.
Опционально, можно теперь вручную маркировать остающиеся кадры подметкой и информацией атрибута.
Чтобы далее оценить ваши марки, можно просмотреть визуальные сводные данные маркированной наземной истины. От панели инструментов приложения выберите View Label Summary. Используйте эти сводные данные, чтобы сравнить кадры, частоту меток и условия сцены. Для получения дополнительной информации, Сводные данные вида на море Заземляющих Меток Истины. Эти сводные данные не поддерживают подметки или атрибуты.
Можно экспортировать маркированную наземную истину в MAT-файл или в переменную в рабочем пространстве MATLAB. В обоих случаях маркированная наземная истина хранится как объект groundTruth
. Можно использовать этот объект обучить основанный на глубоком обучении алгоритм компьютерного зрения. Для получения дополнительной информации смотрите Детектор Объекта Train или Семантическую Сеть Сегментации от Наземных Данных об Истине.
Если вы экспортируете пиксельные данные, пиксельные данные о метке и наземные данные об истине сохранены в отдельных файлах, но в той же папке. Для факторов при работе с экспортируемыми пиксельными метками смотрите Как Магазин приложений Этикетировочной машины Экспортируемые Пиксельные Метки.
В этом примере вы экспортируете маркированную наземную истину в рабочее пространство 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.
groundTruth
| groundTruthDataSource
| labelDefinitionCreator
| vision.labeler.AutomationAlgorithm
| vision.labeler.mixin.Temporal