Данный репозиторий содержит базовое решение и вспомогательные скрипты для задачи "Распознай своё место на Физтехе" хакатона образовательного форума по искусственному интеллекту, математике и физике 2023.
Презентация задачи доступна по ссылке.
Датасет записан на робототехнической платформе Husky на территории кампуса МФТИ и состоит из 5 треков, записанных в разное время суток (день/сумерки/ночь) и разные времена года (зима/весна).
Для обучения предлагается использовать зимние треки (день/сумерки/ночь), а весенние (день/ночь) будут выданы для финального тестирования.
Данные разделены по трекам, длина одного трека порядка 3 км, каждый трек включает в себя порядка
- LiDAR -ный скан
- RGB изобрадения для 2х камер (front/back)
- Семантические маски для изображений каждой камеры
- Текстовое описание для изображений каждой камеры
- 6 DoF позу робота
Подробнее про формат данных и структуру датасета см. itlp_campus_dataset.md.
Данные можно найти/использовать на следующих ресурсах:
sha256: f59cf87bb0ea380431c9dc889cc49d32dd1e985b8c4700b7155629cca34d5da6
public.zip
Видео-демонстрации треков датасета (публичная часть):
Данные можно найти/использовать на следующих ресурсах:
sha256: 25c45eed9ce77a3a4ab9828754fb1945c358c34d67cc241d47ea0c61d236a620
pnvlad_oxford_robotcar.zip
Данные можно найти/использовать на следующих ресурсах:
sha256: 6ca5dc27d4928b1cbe6c1959b87a539f1dd9bc1764220c53b6d5e406e8cef310
NCLT_preprocessed_small.zip
Базовое решение использует библиотеку Open Place Recognition, в которой на текущий момент реализована модель MinkLoc++ и классы для работы с датасетами Oxford RobotCar, NCLT и ITLP-Campus.
Предлагаемые варианты установки зависимостей для работы с кодом:
- Воспользоваться предложенным ноутбуком, в котором продемонстрирован процесс установки зависимостей в Google Colab;
- Воспользоваться docker-образом и инструкциями из репозитория библиотеки Open Place Recognition.
- Установить зависимости в свое окружение вручную, воспользовавшись рекомендациями ниже.
Код базового решения разрабатывался и тестировался на Ubuntu 20.04 с CUDA 11.6, PyTorch 1.13.1 и MinkowskiEngine 0.5.4
-
Установите PyTorch ~= 1.13.1, воспользовавшись официальными инструкциями
-
Установите MinkowskiEngine (https://github.com/NVIDIA/MinkowskiEngine):
# необходимые библиотеки sudo apt install build-essential python3-dev libopenblas-dev pip install ninja # Библиотека MinkowskiEngine должна собираться из исходников с github: pip install -U git+https://github.com/NVIDIA/MinkowskiEngine -v --no-deps \ --install-option="--force_cuda" \ --install-option="--blas=openblas"
Если последняя команда возвращает ошибку, то у вас новая версия pip, где
--install-option
необходимо заменить на--global-option
:pip install -U git+https://github.com/NVIDIA/MinkowskiEngine -v --no-deps \ --global-option="--force_cuda" \ --global-option="--blas=openblas"
-
Склонируйте и установите Open Place Recognition:
git clone https://github.com/alexmelekhin/OpenPlaceRecognition cd OpenPlaceRecognition pip install -e . # флаг -e необходим для возможности редактировать код уже установленной библиотеки
После этого вам станет доступен импорт кода из библиотеки opr
:
from opr.models import minkloc_multimodal
baseline_model = minkloc_multimodal(weights="path_to_checkpoint")
Демонстрация работы с базовым кодом приведена в ноутбуке baseline_demo.ipynb.
Презентация с семинара-демонстрации доступна по ссылке.