Данное приложение предназначено для разметки плана квартиры и создания ведомости по ее метражу.
По загруженным изображением приложение выдает таблицу с информацией по комнатам, а также сами размеченные изображения.
Poetry
pip install poetry
poetry install
Запустить streamlit модуль
streamlit run app.py
Перейти по локальному URL http://localhost:8501 (должен открыться автоматически)
Нажать кнопку Browse files чтобы загрузить изображения
(можно выбрать несколько изображений из файловой системы с jpeg/jpg/png форматами)
Нажать кнопку Infer чтобы получить результаты работы модели
Нажать Download кнопку, чтобы загрузить результаты в предложенных xlsx или csv форматах
- Детекционная модель: Yolo11.
- OCR модель: EasyOCR.
- Обучение модели на входных данных.
- Предсказание на файле или директории с файлами.
- Возврат массива результатов.
Каждый элемент массива проходит следующие этапы:
-
Получение
boxes(разметка) иclasses(классы объектов). -
Вырезание
boxпо каждому классу и передача в EasyOCR. -
OCR возвращает значение или ничего, если текст не распознан.
-
Данные сохраняются в словарь и добавляются в результирующий массив.
-
Результирующий массив оборачивается в
dataframe. -
Код модели добавлен в
model.py, веса модели в/weigths. -
В
app.pyописаны основные элементы веб-приложения:- Загрузка файлов.
- Отображение загруженных изображений.
- Обработка изображений.
- Вывод полученного датасета.
- Кнопки для скачивания.
- Выдвижной список для изображений.
- Сохранение состояния кнопок и выводов.
ND(Not Detected) – комнату данного класса модель не обнаружила.0– OCR не распознал число внутри комнаты.{Number} est– приблизительная оценка (низкий confidence).{Number}– число, распознанное с высокой уверенностью.
https://www.kaggle.com/code/sensum/floor-scan-yolo11-easyocr
