Чтобы точно подготовить оценку работ и смету, из плана здания необходимо получить следующую информацию об объекте:
Каждый проект является уникальным, разрабатывается разными подрядчиками на основе различного ПО, поэтому документация не стандартизована:
Готовые решения для распознавания символов не справлялись с должным уровнем погрешности, либо вовсе не могли справиться, поскольку символы, которые было необходимо распознать, представляли собой математические операторы, сокращения и аббревиатуры, а с такими символами аппарат OCR справляется плохо.
Первым шагом в распознавании любого pdf-файла с планом помещений необходимо понять, сколько помещений и этажей отрисовано на одной странице. Например, на одной странице могут присутствовать планы нескольких этажей или помещение в нескольких проекциях. Поэтому на данном этапе мы разделяем pdf-документ на секции, которые затем уже будут анализироваться.
Для определения типа здания и типа чертежа нам было необходимо найти специальную символьную последовательность, указанную на чертеже. Но не все документы относились к формату searchable pdf, поэтому для некоторых документов мы реализовали распознавание текста из изображения (OCR) и поиск совпадений при помощи регулярных выражений. При решении задачи было необходимо учесть, что размеры и шрифты идентификаторов могут быть разными.
В результате мы получили систему, которая быстро определяет тип здания и чертежа у любого документа, безотносительно к шрифтам и положению на чертеже символьного маркера.
Следующим главным параметром любого чертежа является масштаб. Для его определения мы использовали OCR Space и LeadTools, которые были дополнены балансировщиком. Балансировщик распределял нагрузку при обращении к OCR Space. Для дополнительного увеличения точности мы использовали Tesseract, что позволило добиться точности распознавания в 98%.
Следующая важная задача — научиться распознавать объекты на чертежах: двери, схематические изображения розеток, сантехники и пр. Проблема состояла в том, что объекты маркировались специальными символами, а также представляли собой простые фигуры, состоящие из линий и других геометрических фигур, которые трудно отличить от элементов чертежа. Более того, символы могут различаться, поскольку у различных разработчиков чертежей различные обозначения.
OpenCV, стандартный метод для поиска объектов, разработан для распознавания объектов реального мира и дает неудовлетворительный результат при работе с черно-белыми изображениями геометрических начертаний. Тем не менее, мы использовали OpenCV и добавили Deep Learning, мы натренировали нейросеть отсекать ложноположительные результаты, чтобы уменьшить шум, скомбинировав подходы.
Чтобы решить проблему различного символьного обозначения одних и тех же объектов, система изначально запрашивает у пользователя выделить символы, которые будет необходимо найти на чертеже и посчитать для составления сметы.
Часто вместе с чертежом планировки идёт список всех дверей и окон. На языке оригинала это называется ёмким словосочетанием door and window schedule. Это список всех типов дверей и окон, которые встречаются в проекте.
Поэтому первоначальная задача – перевести для расчёта сметы все эти объекты в формат Excel, далее можно будет добавить нужные размерности стен, пола и потолка, чтобы получить финальную смету.
Существует ряд инструментов и решений, которые могут переводить pdf-таблицы в таблицы формата Excel, но такие решения плохо работают со сложными таблицами, в которых есть объединенные ячейки и разделение на страницы:
Объединенные ячейки часто некорректно разделяются на несколько ячеек. Также, когда таблица разделяется на несколько листов, колонки не совпадают между собой, что ведет к некорректному переносу данных, особенно когда текст переносится по строкам.
Мы разработали подсистему, которая сканирует pdf-таблицу и переводит ее в Excel формат без изменения оригинальной структуры таблицы и с сохранением целостности данных.
Задача по распознаванию чертежей и переводу их в электронную таблицу - это сложная задача и качество сильно зависит от входящего документа. Автоматизировать эту работу на 100% не получится в ближайшем будущем, человеческий труд так или иначе будет задействован, однако разработанный способ заметно сокращает ручную оценщика на 70-80%.