DanielNRU/plan_points
Plan Points - Детекция комнат по плану помещения
Описание проекта
Plan Points — это проект, который преобразует планы помещений в координаты опорных точек (углов). С использованием предобученной модели YOLO и Gradio, приложение позволяет:
- Загружать изображение плана помещения
- Выполнять детекцию объектов класса "room"
- Выводить аннотированное изображение с наложенными полигонами
- Отображать список координат углов для каждой обнаруженной комнаты
Особенности
- Детекция комнат: Использование модели YOLO для выявления помещений на плане.
- Упрощение полигона: Оптимизация набора точек для выделения действительных углов комнат.
- Gradio-интерфейс: Удобное веб-приложение для демонстрации работы модели.
- Интеграция с Hugging Face Spaces: Легкое развертывание проекта в облаке.
Быстрый старт
Локальный запуск с использованием Docker
Для запуска приложения локально через Docker выполните следующие шаги:
- Убедитесь, что у вас установлен Docker.
- Скачайте Docker-образ:
docker pull danielnru/plan_points- Запустите контейнер:
Если у вас доступен GPU, используйте команду:
docker run --gpus all -p 7860:7860 danielnru/plan_pointsЕсли GPU не используется, запустите контейнер так:
docker run -p 7860:7860 danielnru/plan_points- Откройте приложение в браузере:
После успешного запуска контейнера откройте браузер и перейдите по адресу:
http://localhost:7860Здесь вы сможете воспользоваться Gradio-интерфейсом для загрузки изображений и получения результатов детекции комнат.
Развертывание на Hugging Face Spaces
Проект уже настроен для работы на Hugging Face Spaces. Для развертывания:
- Клонируйте репозиторий:
git clone https://huggingface.co/spaces/DanielNRU/plan_points- Добавьте или обновите файл
app.pyиrequirements.txt(если необходимо). - Разместите файл
model.ptв корневой директории. - Закоммитьте и запушьте изменения:
git add .
git commit -m "Обновление приложения"
git pushПосле сборки ваш Space будет доступен по соответствующему URL.
Структура проекта
.
├── app.py # Основное приложение Gradio
├── model.pt # Файл весов модели YOLO
├── requirements.txt # Зависимости Python
└── README.md # Описание проектаЗависимости
Проект использует следующие Python-библиотеки:
- gradio – для создания веб-интерфейса
- opencv-python-headless – для работы с изображениями
- numpy – для математических операций
- ultralytics – для работы с моделью YOLO
- torch и torchvision – для работы с deep learning моделями
Все зависимости перечислены в файле requirements.txt.
Контакты
Разработчик: Мельник Даниил Владимирович GitHub: DanielNRU Hugging Face: DanielNRU
