Привязка аэроснимков к местности
Задача с всероссийского чемпионата 2022
Файлы
champmpti.ipynb
- ноутбук для Kagglemain.py
- та же программа для запуска на сервере с картой.
Запуск ноутбука в Кэггле
я создал публичный датасет "MPTI-champ" который может быть найден поиском на сайте кэггла по датасетам и подключен к ноутбуку. Обязателен режим GPU!
Прогон занимает 4 часа, получаемый результат (с текущими параметрами - 0.968012) Снимки без облаков находятся с точностью 0.999+ Вычисления делаются со снимками, уменьшенными в 4 раза.
Для получения более высокого результата необходимо повторить вычисления с изображениями большего разрешения
(уменьшенными в 2 раза)
Далее описывается процедура запуска main.py
на сервере с картой RTX-3090 24Gb
Установка зависимостей
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Загрузка датасета
Сейчас программа сама загружает датасет (если не находит его), но ранее это делалось скриптом download.sh
.
Он также создавал каталоги.
wget https://lodmedia.hb.bizmrg.com/case_files/768820/train_dataset_train.zip
wget https://lodmedia.hb.bizmrg.com/case_files/768820/test_dataset_test.zip
unzip -q train_dataset_train.zip
mkdir test
unzip -q -d test/img test_dataset_test.zip
mkdir test/json
mkdir submit
В корне рабочего каталога должны быть каталоги train
, test
, submit
.
Внутри первых 2-х должны быть подкаталоги img
и json
Запуск основной программы main.py
В коде необходимо задать параметры, например:
rf = 2 # в сколько раз уменьшаем изображения - resize factor (1, 2, 4)
step = 2 # шаг смещения (Stride of the convolution)
astep = 1 # шаг перебора углов из диапазона 0-360 (1, 2, 3, ...)
Запуск:
python main.py
Создание файла для сабмита результата
Программа создает 400 JSON-файлов в каталоге submit
и упаковывает их в zip-архив.