https://github.com/dimflix-hackathons/terrawing
👁 Распознавание препятствий на пути движения БПЛА и их классификация. АПК
https://github.com/dimflix-hackathons/terrawing
ai hackaton python
Last synced: 10 months ago
JSON representation
👁 Распознавание препятствий на пути движения БПЛА и их классификация. АПК
- Host: GitHub
- URL: https://github.com/dimflix-hackathons/terrawing
- Owner: DIMFLIX-Hackathons
- License: other
- Created: 2024-04-13T11:21:02.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2025-01-25T17:59:20.000Z (about 1 year ago)
- Last Synced: 2025-03-21T09:35:57.792Z (11 months ago)
- Topics: ai, hackaton, python
- Language: Jupyter Notebook
- Homepage:
- Size: 58.1 MB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README

# TerraWing - БПЛА в АПК
TerraWing - сервис для распознавания препятствий на пути движения БПЛА и их классификации. Наше решение предназначено для использования в агропромышленном комплексе.
## Уникальность
- Быстродействие работы системы
- Проект доведен до стадии MVP
- Использование
## Перспективы развития
- [ ] Специализированный датасет
- [ ] Плагины ИИ встраиваемые на сервере для возможности работы с разными задачами
- [ ] Автоматическое составление карты рабочей местности для дрона
- [ ] Совместная работа нескольких БПЛА
- [ ] Интеграция с погодными сервисами.
# Начало работы
### Установим pyenv для удобного управления версиями python
- Windows Chocolatey: `choco install pyenv-win`
- Linux/macOS: `curl https://pyenv.run | bash`
Просмотр доступных версий python в pyenv: `pyenv install --list`
Устанавливаем python не ниже версии 3.11: `pyenv install 3.11.8`
### Устанавливаем пакетный менеджер poetry
- Windows Powershell: `(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -`
- Linux/macOS: `curl -sSL https://install.python-poetry.org | python3 -`
### Виртуальное окружение
Если Вы используете `pyenv` выполните следующие команды:
- `poetry config virtualenvs.prefer-active-python true`
- `pyenv local <номер версии python, в нашем случае 3.11.8>`
Подготовка виртуального окружения для poetry: `poetry use env <номер версии python, в нашем случае 3.11.8>`
Входим в виртуальное окружение `poetry shell`
Установка зависимостей: `poetry install`
Копируем шаблон файла настроек:
- Windows: `copy .env.dist .env`
- Linux/macOS: `cp .env.dist .env`
Редактируем в .env наши настройки...
### Запуск сервера
Выполняем команду `python app.py`
# Dev
## Помощь в разработке
- Линтер `ruff`
Для запуска использовать следующую команду `poetry run ruff check src`
- Форматирование кода `black`
Для запуска используем следующую команду: `poetry run black src`
## Тесты сервера
В папке `tests` вы можете найти файл `test_video_stream.py`
Этот файл дает нам возможность эмитировать дрон, посылая в качестве видеопотока на сервер либо любой файл с видео, либо транслировать свою веб-камеру.
Для запуска клиента с трансляцией заранее заготовленного видео используйте эту команду:
`python test_video_stream.py --video_source <путь>`
> [!NOTE]
> Если вы хотите транслировать веб-камеру, то просто удалите аргумент **`video_source`**
## Обучение модели
Ссылка на датасет: https://www.kaggle.com/datasets/dimflix/obstacles-in-flight-for-drones \
По пути `src/neural_network` вы можете найти файл `TrainNeuralNetwork.ipynb`. Как-раз таки он служит для обучения нейронки.
> [!NOTE]
> Датасет должен находиться в папке **`src/data/DATASET`**
> [!WARNING]
> Если вы используете Pycharm и индексацию файлов, советуем вам добавить папку с датасетом в исключение (excluded). Это можно сделать нажатием правой кнопки мыши по папке, после чего выбрав пункт `Mark Directory as`. Там вам нужно выбрать `excluded`.
# Лицензия
Полный текст лицензии доступен здесь: [Юридический кодекс CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/legalcode).
## Вы можете свободно использовать:
- Делиться — копировать и распространять материал на любом носителе или в любом формате
- Адаптировать — переделывать, преобразовывать и дополнять материал Лицензиар не может лишить вас этих прав, пока вы соблюдаете условия лицензии.
## На следующих условиях:
- Указание авторства — Вы должны предоставить соответствующую информацию, ссылку на лицензию и указать, были ли внесены изменения. Вы можете делать это любым разумным способом, но не таким, который предполагает, что лицензиар одобряет вас или ваше использование.
- Некоммерческий — Вы не имеете права использовать материалы в коммерческих целях.
- Никаких дополнительных ограничений — Вы не имеете права применять юридические условия или технологические меры, которые юридически ограничивают действия других лиц, разрешенные лицензией.
Это всего лишь краткая выдержка из основных положений лицензии. Пожалуйста, ознакомьтесь с полным юридическим текстом лицензии для полного понимания ее условий.