Общие сведения
Перед началом процесса формирования датасета необходимо подготовить файлы в zip-архив соответствующим образом в зависимости от типа решаемой задачи.
В Терре присутствует встроенный фильтр сортировки файлов, отсеивающий файлы, не подходящие под выбранный тип обработки. Однако, во избежании ошибок при формировании датасета, желательно не допускать случайного попадания, например, в папку с изображениями любого другого файла, не являющегося изображением.
Если есть необходимость использования изображений, видео или аудио с числовыми или текстовыми данными, следует создать csv-таблицу с относительными путями к файлам изображений, видео или аудио в отдельной колонке.
Сбор архива
Структура папок и файлов в архиве не является универсальной и должна соответствовать типу решаемой задачи.
Note
При формировании архива и использовании кириллицы в качестве названия файлов или папок убедитесь, что вы используете кодировку utf-8, иначе, при загрузке архива в Терру,
может возникнуть несоответствие кодировок, и названия файлов станут нечитаемы.
Классификация
Все файлы, принадлежащие одному классу, должны быть помещены в одну общую папку с соответствующим названием класса. При формировании датасета название класса объектам внутри каждой папки будет присвоено исходя из названия самой папки, в которой они лежат.
Ниже приведен пример структуры архива для задачи классификации изображений на три класса - Мерседес, Рено, Феррари (названия файлов внутри папок могут быть произвольными).
- cars.zip
- Мерседес
merc001.jpg
…
- Рено
renault001.jpg
…
- Феррари
fer001.jpg
…
Мерседес |
Рено |
Феррари |
|---|---|---|
merc001.jpg |
renault001.jpg |
ferrari001.jpg |
Сегментация изображений
Для задачи сегментации изображений необходимо отсортировать изображения и маски сегментации по отдельным папкам.
Ниже приведен пример структуры архива для задачи сегментации изображений с файлом аннотации.
- airplane.zip
- Изображения
airplane001.jpg
…
- Маски сегментации
airsegm001.jpg
…
labelmap.txt (необязательно)
Изображения |
Маски сегментации |
|---|---|
airplane001.jpg |
airsegm001.jpg |
Note
Обратите внимание, что индексы в названиях файлов в папках с изображениями и масками сегментации должны совпадать, иначе соответствие изображения к маске сегментации не может быть гарантировано.
Файл аннотации
Терра поддерживает определение цветов в масках сегментации по файлу аннотации, поэтому для удобства рекомендуется создать файл аннотации в блокноте.
# label |
color_rgb |
parts |
actions |
|---|---|---|---|
Небо |
0,0,0 |
||
Самолет |
255,0,0 |
Note
Таблица файла аннотации должна использовать сепапатор :, а файл называться labelmap.txt
Сегментация текстов
Для задачи сегментации текстов необходимо положить в одну общую папку текстовые файлы, размеченные специальными тегами. Допускается принадлежность одного слова к нескольким классам.
Ниже приведен пример структуры архива для задачи сегментации текстов.
- text_segmentation.zip
- Договоры
doc001.txt
…
Note
Теги для сегментации текстов не имеют строгого формата, однако при сегментации текстов желательно использовать такие теги, символы которых не встречаются в тексте.
Пример сегментированного текста: <s1>Hello world!</s1>
Обнаружение объектов
Для разметки изображений можно использовать один из доступных инструментов разметки, например Computer Vision Annotation Tool.
После завершения работы с разметой данных необходимо экспортировать архив, выбрав один из поддерживаемых Террой типов аннотации: Yolo, Yolov1.1, VOC, Kitti, Coco, Udacity.
Регрессия
Для задачи регрессии необходимо подготовить табличный файл с csv расширением. Убедитесь, что в колонке для регрессии нет отсутствующих значений, а также строковых.
При использовании чисел с остатком убедитесь, что разделителем дробного числа является .
Ниже приведен пример структуры архива для задачи регрессии.
- rezume.zip
- jobs
jobs.csv
rezume.csv
Пол |
Возраст |
Город |
Образование |
Должность |
Опыт |
Зарплата |
|---|---|---|---|---|---|---|
Ж |
25 |
Москва |
Высшее |
Руководитель |
59 |
50000 |
М |
33 |
Москва |
Среднее |
Строитель |
122 |
150000 |
Ж |
19 |
Москва |
Высшее |
Менеджер |
17 |
60000 |
Note
При формировании датасета из архива можно выбрать только одну csv-таблицу. Для создания датасета из нескольких таблиц необходимо предварительно объединить эти таблицы в одну.
Временные ряды
Для задачи временных рядов необходимо подготовить табличный файл с csv расширением. Убедитесь, что ячейки не содержат отсутствующих значений, а также строковых.
При использовании чисел с остатком убедитесь, что разделителем дробного числа является .
Ниже приведен пример структуры архива для задачи временных рядов.
- timeseries.zip
ts.csv
DATE |
TIME |
OPEN |
MAX |
MIN |
CLOSE |
VOLUME |
|---|---|---|---|---|---|---|
03.01.2018 |
10:00:00 |
3341.0 |
3356.0 |
3340.0 |
3355.0 |
6088 |
03.01.2018 |
10:01:00 |
3355.0 |
3359.0 |
3353.0 |
3353.0 |
1624 |
03.01.2018 |
10:02:00 |
3351.5 |
3357.5 |
3351.5 |
3357.5 |
722 |
Note
При формировании датасета из архива можно выбрать только одну csv-таблицу. Для создания датасета из нескольких таблиц необходимо предварительно объединить эти таблицы в одну.
Загрузка архива
После загрузки и распаковки архива автоматически откроется страница создания датасетов. В Терре существует два способа загрузки архива для создания датасетов.
Google Drive
Готовый архив необходимо положить в папку в Google drive ./TerraAI/datasets/sources. После этого архив станет доступным к выбору и загрузке в выпадающем списке во вкладке Google drive.
Внешняя ссылка
Допускается использование только абсолютной ссылки, например https://***.com/filename.zip. Использование ссылок на файлообменники (например Google drive, Yandex disk), не имеющие прямого доступа к файлу, не допускается.
Создание датасета
Для начала создания датасета необходимо перетащить из файлового менеджера в поле работы с данными либо одну или несколько папок, либо одну csv-таблицу.
При формировании датасета порядок расположения файлов в папке, а также строки в таблице перемешиваются. Если требуется сохранить этот порядок, включите режим Сохранить последовательность.
В случае создания датасета из исходных данных, занимающих значительное количество оперативной памяти, во избежании обрыва сессии рекомендуется включить режим Использовать генератор.
Таким образом процесс формирование датасета значительно ускорится, так как создание numpy массивов будет происходить во время обучения модели.