Этот пример показывает вам, как экспортировать объект основной истины в пользовательский формат данных Объектная нотация JavaScript (JSON) файл, и в формат данных COCO [1] файл JSON.
Можно проанализировать файлы JSON, чтобы использовать для обучения и вывода в средах машинного обучения. Формат пользовательского формата данных файл JSON похож на формат данных COCO. Различие - то, что формат для представления аннотаций метки для файла JSON изменяется, чтобы включать различные типы метки, поддержанные объектом основной истины.
Этот пример использует объект основной истины, который содержит метки, ранее сгенерировал использование приложения Video Labeler.
Чтобы экспортировать объект основной истины от приложения Этикетировочной машины до файла JSON, выполните эти шаги:
Используйте Image Labeler или Приложение Video Labeler, чтобы пометить изображения или видео соответственно.
Экспортируйте метки в файл или рабочую область, чтобы сгенерировать объект основной истины.
Выполните шаги в этом примере.
Загрузите объект основной истины
load("VehicleImageSequenceGroundTruth.mat")
Отобразите определения метки
VehicleImageSequenceGroundTruth.LabelDefinitions
ans=3×6 table
Name Type LabelColor Group Description Hierarchy
_________ _______ _____________________________ ___________ ___________ ____________
{'Car' } Polygon 0.5862 0.8276 0.3103 {'Vehicle'} {0×0 char} {1×1 struct}
{'Lane' } Line 0.49412 0.18431 0.55686 {'Road' } {0×0 char} {0×0 double}
{'Sunny'} Scene 1 0.41176 0.16078 {'None' } {0×0 char} {0×0 double}
Добавьте метаданные в аннотации путем определения Информации и Пар "имя-значение" Лицензии
info = struct( ... 'year', 2020, ... 'version', '1', ... 'description', 'Vehicles Dataset', ... 'date_created', datetime ... ); licenses = struct( ... 'url', {'www.mathworks.com', 'www.mathworks.com'}, ... 'name', {'License 1', 'License 2'} ... );
Используйте exportGroundTruthToJSON
функционируйте, чтобы экспортировать объект основной истины в файл JSON.
exportGroundTruthToJSON
функционируйте анализирует данные в объекте основной истины, кодирует его в пользовательском формате данных, который описан ниже, и затем генерирует файл JSON.
annotationsFileName = 'vehicles_annotations.json'; exportGroundTruthToJSON(VehicleImageSequenceGroundTruth, annotationsFileName, 'Info', info, 'License', licenses)
Используйте exportGroundTruthToJSON
с 'COCO'
Набор значений имени к true
экспортировать данные об обнаружении объектов, которые были помечены с помощью многоугольников для формата данных обнаружения объектов COCO файл JSON.
Чтобы создать основную истину возражают для обнаружения объектов, которое может быть экспортировано в формат данных COCO файл JSON, выполнить эти шаги:
Используйте тип метки Polygon, чтобы пометить экземпляры объектов.
Используйте тип метки Pixel, чтобы пометить области толпы объекта. Это - имя метки, должен быть следующие: polygonLabelName_crowd (Где polygonLabelName является именем метки соответствующей метки многоугольника).
Например:
Аннотировать изображение, которое содержит и экземпляры человека и области толпы,
Создайте метку многоугольника типа с именем как 'person'
для аннотирования экземпляров человека.
Создайте соответствующую метку Pixel с именем 'person_crowd'
аннотировать области толпы человека.
'_crowd'
суффикс используется, чтобы связать две метки. Поэтому гарантируйте, что для каждой пиксельной метки толпы существует соответствующая метка многоугольника.
Примечание: При экспорте в формат данных обнаружения объектов COCO, ожидаемое предупреждение выдано, задав типы метки, которые игнорируются. В этом случае, поскольку объект основной истины имеет метки Линии, они будут проигнорированы.
annotationsFileName = 'vehicles_annotations_coco.json'; exportGroundTruthToJSON(VehicleImageSequenceGroundTruth, annotationsFileName, ... 'Info', info, 'License', licenses, 'COCO', true)
Warning: Label types, Line, Scene, are not supported and are ignored during export to a COCO data format JSON file
Экспортируемый файл JSON содержит эти пять полей:
информация
лицензии
категории
изображения / видео
аннотации
Поле Info задает набор данных и информацию об аннотации при помощи аргумента пары "имя-значение" 'Info'. Значение должно быть скалярной структурой.
Значение по умолчанию:
{ "year": Current year, "version": "1", "description": "Created using MATLAB", "date_created": Current datetime }
Поле Licenses указывает информацию о лицензиях при помощи аргумента пары "имя-значение" License. Значение должно быть массивом структур.
Value: []
по умолчанию
Поле Categories содержит содержимое таблицы определений метки основной истины. Имена переменных в таблице используются в качестве полей и изменяются, чтобы быть похожими на формат данных COCO. Дополнительное поле Id идентифицирует каждое определение метки.
Каждый объект категории содержит следующие два дополнительных поля, которые заменяют переменную 'Hierarchy', если это существует:
Атрибуты: Содержат определения атрибутов метки.
Подметки: Conatins подпомечает определения метки.
Изображения / поле Video содержат список изображений (или видео) объекты и сопутствующая информация.
Формат данных:
{ "id": Unique Image ID, "time_stamp": Time stamp of the image frame (Only applicable to data sources with timestamps), "width": Width of the image/video, "height": Height of the image/video, "file_name": Name of the file, "file_path": Absolute file path, "date_captured": Last modified date of the image/ Current datetime }
Поле Annotations содержит список объектов аннотации. Формат данных объектов аннотации зависит от типа метки и можно следующим образом:
{ "id": Unique Annotation ID, "image_id": Image ID , "category_id": Category ID, "position": [x,y,width,height] bounding box location, "attributes": Contains attributes data, "sublabels": Contains sublabels data }
x
и y
задайте верхний левый угол прямоугольника, и 0-индексируемы.
w
задает ширину прямоугольника, который является его длиной вдоль оси X.
h
задает высоту прямоугольника, который является его длиной вдоль оси Y.
{ "id": Unique Annotation ID, "image_id": Image ID , "category_id": Category ID, "position": [[x1 y1 x2 y2 ... xN yN]] for N points in the polygon, "attributes": Contains attributes data, "sublabels": Contains sublabels data }
{ "id": Unique Annotation ID, "image_id": Image ID, "category_id": Category ID, "position": [x1 y1 x2 y2 ... xN yN] for N points in the polyline., "attributes": Contains attributes data, "sublabels": Contains sublabels data }
x1, y1... задают местоположение точки и 0-индексируемы.
{ "id": Unique Annotation ID, "image_id": Image ID, "category_id": Category ID, "position": List of the form [xctr, yctr, zctr, xlen, ylen, zlen, xrot, yrot, zrot], "attributes": Contains attributes data, "sublabels": Contains sublabels data }
xctr
, yctr
, и zctr
задайте центр спроектированного кубоида, и 0-индексируемы.
xlen
, ylen
, и zlen
задайте длину спроектированного кубоида вдоль оси X, оси Y и оси z, соответственно, прежде чем вращение было применено.
xrot
, yrot
, и zrot
задайте углы поворота для спроектированного кубоида вдоль оси X, оси Y и оси z, соответственно. Эти углы по часовой стрелке положительны при взгляде в прямом направлении их соответствующих осей.
{ "image_id": Image ID, "file_name": Name of the pixel label image file, "file_path": Path to the pixel label image file, "segments_info": List of segment objects }
Формат Объектов сегмента: Каждый сегмент в пиксельном изображении метки является representated как объектом сегмента
{ "id": PixelLabelID of the label or R+G*256+B*256^2 in case if PixeLabelID is an array, "category_id": Category ID, "area": Area covered by the pixels }
{ "id": Unique Annotation ID, "image_id": Image ID, "category_id": Category ID of the scene label applicable to the image }
Пользовательские типы метки не могут быть экспортированы в файл JSON.
Вы не можете экспортировать данные от пользовательского источника данных основной истины читателя до формата файла JSON.
Только Многоугольник и Пиксель толпы Маркируют ROI, может быть экспортирован в формат данных обнаружения объектов COCO.
Файл JSON, сгенерированный "exportGroundTruthToJSON" функцией помощника, не может быть импортирован назад в MATLAB как объект основной истины.
[1] Лин TY. и др. (2014) Microsoft COCO: Общие Объекты в Контексте. \in: Флот D., Пэдждла Т., Шиле Б., Тейтелэарс Т. (редакторы) Компьютерное зрение – ECCV 2014. ECCV 2014. Читайте лекции Примечаниям в Информатике, vol 8693. Спрингер, Хан. https://doi.org/10.1007/978-3-319-10602-1_48