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

Система по распознаванию pdf-файлов для бюро строительной экспертизы

Система по распознаванию pdf-файлов для бюро строительной экспертизы
Наш клиент занимается оценкой строительства и отделки зданий, а также подготовкой смет. Здания могут быть самыми разными: частный дом, многоквартирный дом или офисное здание.

Бизнес-логика

 

Чтобы точно подготовить оценку работ и смету, из плана здания необходимо получить следующую информацию об объекте:

  • Определить тип здания – это офисное здание, торговый центр, квартира или что-то другое.
  • Определить тип чертежа – это электрическая проводка, проводка труб, структурный чертеж с перечислением материалов или что-то другое.
  • Извлечь данные о масштабе.
  • Определить на плане специальные символы, такие как двери, окна, элементы санузлов.

Каждый проект является уникальным, разрабатывается разными подрядчиками на основе различного ПО, поэтому документация не стандартизована:

  • Все pdf-файлы по-разному форматированы;
  • Некоторые планы нарисованы от руки;
  • При разработке планов применяется большое количество шрифтов и специальных символов.

Готовые решения для распознавания символов не справлялись с должным уровнем погрешности, либо вовсе не могли справиться, поскольку символы, которые было необходимо распознать, представляли собой математические операторы, сокращения и аббревиатуры, а с такими символами аппарат OCR справляется плохо.

Распознавание типа плана помещений

Первым шагом в распознавании любого pdf-файла с планом помещений необходимо понять, сколько помещений и этажей отрисовано на одной странице. Например, на одной странице могут присутствовать планы нескольких этажей или помещение в нескольких проекциях. Поэтому на данном этапе мы разделяем pdf-документ на секции, которые затем уже будут анализироваться.

Для определения типа здания и типа чертежа нам было необходимо найти специальную символьную последовательность, указанную на чертеже. Но не все документы относились к формату searchable pdf, поэтому для некоторых документов мы реализовали распознавание текста из изображения (OCR) и поиск совпадений при помощи регулярных выражений. При решении задачи было необходимо учесть, что размеры и шрифты идентификаторов могут быть разными.

В результате мы получили систему, которая быстро определяет тип здания и чертежа у любого документа, безотносительно к шрифтам и положению на чертеже символьного маркера.

Следующим главным параметром любого чертежа является масштаб. Для его определения мы использовали OCR Space и LeadTools, которые были дополнены балансировщиком. Балансировщик распределял нагрузку при обращении к OCR Space. Для дополнительного увеличения точности мы использовали Tesseract, что позволило добиться точности распознавания в 98%.

Распознавание объектов на плане

Следующая важная задача — научиться распознавать объекты на чертежах: двери, схематические изображения розеток, сантехники и пр. Проблема состояла в том, что объекты маркировались специальными символами, а также представляли собой простые фигуры, состоящие из линий и других геометрических фигур, которые трудно отличить от элементов чертежа. Более того, символы могут различаться, поскольку у различных разработчиков чертежей различные обозначения.

OpenCV, стандартный метод для поиска объектов, разработан для распознавания объектов реального мира и дает неудовлетворительный результат при работе с черно-белыми изображениями геометрических начертаний. Тем не менее, мы использовали OpenCV и добавили Deep Learning, мы натренировали нейросеть отсекать ложноположительные результаты, чтобы уменьшить шум, скомбинировав подходы.

Чтобы решить проблему различного символьного обозначения одних и тех же объектов, система изначально запрашивает у пользователя выделить символы, которые будет необходимо найти на чертеже и посчитать для составления сметы.

Расчёт сметы в формате Excel

Часто вместе с чертежом планировки идёт список всех дверей и окон. На языке оригинала это называется ёмким словосочетанием door and window schedule. Это список всех типов дверей и окон, которые встречаются в проекте.

Поэтому первоначальная задача – перевести для расчёта сметы все эти объекты в формат Excel, далее можно будет добавить нужные размерности стен, пола и потолка, чтобы получить финальную смету.

Существует ряд инструментов и решений, которые могут переводить pdf-таблицы в таблицы формата Excel, но такие решения плохо работают со сложными таблицами, в которых есть объединенные ячейки и разделение на страницы:

Объединенные ячейки часто некорректно разделяются на несколько ячеек. Также, когда таблица разделяется на несколько листов, колонки не совпадают между собой, что ведет к некорректному переносу данных, особенно когда текст переносится по строкам.

Мы разработали подсистему, которая сканирует pdf-таблицу и переводит ее в Excel формат без изменения оригинальной структуры таблицы и с сохранением целостности данных.

Бизнес-процесс

  1. Пользователь загружает pdf-файл с чертежом планировки
  2. Система определяет тип здания и тип чертежа, а также масштаб и отсекает чертеж.
  3. Пользователь исправляет ошибки, если те имеются, выделяет объекты, которые необходимо посчитать и жмет «Далее».
  4. Система занимается распознаванием стен, считает выделенные объекты и выдает Excel-файл со сметой и предварительной оценкой работ.

Задача по распознаванию чертежей и переводу их в электронную таблицу - это сложная задача и качество сильно зависит от входящего документа. Автоматизировать эту работу на 100% не получится в ближайшем будущем, человеческий труд так или иначе будет задействован, однако разработанный способ заметно сокращает ручную оценщика на 70-80%.

Хотите обсудить проект?

Напишите нам! Мы поможем найти максимально эффективное решение. В нашем арсенале современные технологии, благодаря которым мы можем реализовать проекты, начиная с простых мобильных приложений и заканчивая многофункциональными корпоративными порталами.