File size: 4,866 Bytes
42955e2
 
 
 
 
 
 
 
 
 
 
 
 
d2ab6f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
---
title: Plan Points
emoji: 🏃
colorFrom: gray
colorTo: pink
sdk: gradio
sdk_version: 5.18.0
app_file: app.py
pinned: false
license: apache-2.0
short_description: Получение координат углов  на изображениях планов помещений
---

# Plan Points - Детекция комнат по плану помещения

## Описание проекта

**Plan Points** — это проект, который преобразует планы помещений в координаты опорных точек (углов). С использованием предобученной модели YOLO и Gradio, приложение позволяет:
- Загружать изображение плана помещения
- Выполнять детекцию объектов класса "room"
- Выводить аннотированное изображение с наложенными полигонами
- Отображать список координат углов для каждой обнаруженной комнаты

## Особенности

- **Детекция комнат:** Использование модели YOLO для выявления помещений на плане.
- **Упрощение полигона:** Оптимизация набора точек для выделения действительных углов комнат.
- **Gradio-интерфейс:** Удобное веб-приложение для демонстрации работы модели.
- **Интеграция с Hugging Face Spaces:** Легкое развертывание проекта в облаке.

## Быстрый старт

## Локальный запуск с использованием Docker

Для запуска приложения локально через Docker выполните следующие шаги:

1. **Убедитесь, что у вас установлен Docker.**

2. **Скачайте Docker-образ:**

   ```bash
   docker pull danielnru/plan_points
   ```

3. **Запустите контейнер:**

   Если у вас доступен GPU, используйте команду:
   ```bash
   docker run --gpus all -p 7860:7860 danielnru/plan_points
   ```
   
   Если GPU не используется, запустите контейнер так:
   ```bash
   docker run -p 7860:7860 danielnru/plan_points
   ```

4. **Откройте приложение в браузере:**

   После успешного запуска контейнера откройте браузер и перейдите по адресу:
   ```
   http://localhost:7860
   ```
   Здесь вы сможете воспользоваться Gradio-интерфейсом для загрузки изображений и получения результатов детекции комнат.

### Развертывание на Hugging Face Spaces

Проект уже настроен для работы на Hugging Face Spaces. Для развертывания:
1. Клонируйте репозиторий:
   ```bash
   git clone https://huggingface.co/spaces/DanielNRU/plan_points
   ```
2. Добавьте или обновите файл `app.py` и `requirements.txt` (если необходимо).
3. Разместите файл `model.pt` в корневой директории.
4. Закоммитьте и запушьте изменения:
   ```bash
   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](requirements.txt).

## Контакты

**Разработчик:**  
Мельник Даниил Владимирович  
[GitHub: DanielNRU](https://github.com/DanielNRU)  
[Hugging Face: DanielNRU](https://huggingface.co/DanielNRU)