Реализация Телеграмм-бота для определения лесных дорог на космических снимках с применением методов машинного обучения.
Мой бот доступен по этой ссылке.
- Получение снимка по координатам и поиск на нем лесных дорог
- В текстовом виде
- С помощью отправки геопозиции(мобильная версия)
- Ковертация полученных результатов в формат хранение географических объектов(OSM)
- Поиск дорог на отправленной пользователем фотографии
- Возможность отмены поиска дорог при получении снимка по координатам
- Изменение чувствительности модели с помощью команды /set_sensitivity {value}
- Изменение радиуса(в км) снимка с помощью команды /set_radius {value}
- Получение приветственного руководства /start
- Получение исчерпывающего руководства /help
Отправьте координаты, а бот пришлет спутниковый снимок, а затем и найдет на нем лесные дороги!
- Создайте проект Google Cloud
- Подключите к нему Google Earth Engine API через API Library
- Зарегистрируйте вашего бота с помощью BotFather
- Сохраните полученный токен. Он пригодится далее в следующем шаге при генерации реквизитов
-
Склонируйте репозиторий
$ git clone https://github.com/WinstonDovlatov/ForestBot.git
и перейдите к корневую папку
$ cd forestbot
-
Скачайте модель model.onnx и поместите ее в папку "forestbot/processes"
-
Создайте и заполните файл с реквизитами credentials.ini в корневой папке по шаблону credentials_example.ini или с помощью команды:
$ python generate_credentials.py <YOUR_TELEGRAM_TOKEN> <YOUR_G-CLOUD_PROJECT_NAME>
-
Собирите образ
$ docker build -t bot_image .
-
Запустите его
$ docker run -it --name forest_bot bot_image
-
Скачайте образ
$ docker pull ghcr.io/winstondovlatov/forestbot:latest
-
Запустите контейнер
$ docker run -it --name forest_bot ghcr.io/winstondovlatov/forestbot:latest
-
Внутри котнейнера необходимо сгенирировать реквизиты
$ python generate_credentials.py <YOUR_TELEGRAM_TOKEN> <YOUR_G-CLOUD_PROJECT_NAME>
В открывшейся консоли контейнера необходимо выполнить авторизацию в GoogleCloud в интерактивном режиме. Для этого:
-
Установите GCloud выполнив:
$ ./google-cloud-sdk/install.sh
Со всеми пунктами соглашаемся. Путь оставляем пустным
-
Авторизуйтесь
$ ./google-cloud-sdk/bin/gcloud init
Здесь потребуется скопировать ссылку полностью и выполнить авторизацию в браузере на вашей машине. Полученный код вставить в терминал
-
Перезапускаем терминал
$ bash
-
Выполните авторизацию в Earth Engine
$ earthengine authenticate --quiet
Вы получите команду, которую необходимо выполнить на вашей машине, на которой имеется браузер. Перед вставкой в терминал удалите переносы строк. Далее на вашей машине:
- Установите и авторизуйтесь в GCloud, следуя инструкциям
- Выполните скопированную команду и авторизуйтесь в браузере
- Скопируйте ссылку, которая появится в терминале. Не забудьте удалить переносы строк
- Полученную ссылку вставьте в терминал докер-контейнера
-
Запустите бота
$ python entrypoint.py
- Docker
- Ускорить скачивание снимков
- Переписать используя асинхронную реализацию telebot
- Перенести код обучения модели в processes
- Перенести model.onnx в Github Large Files