Я хочу знать, как мне следует обрабатывать нарисованные от руки изображения принципиальных схем, чтобы оцифровать нарисованную схему и в конечном итоге смоделировать ее.
Вход в мою программу будет обычным изображением (смартфони т. д.) и конечный результат должен быть имитацией всех возможных значений в цепи (здесь не рассматривается / не требуется)
В основном все, что мне нужно было бы обнаружить, это электрические компоненты с фиксированным числомсоединения (2 соединения, например, R, L, C, Diode) и линии, соединяющие их.
У меня уже есть предварительно обученная нейронная сеть для определения типа компонента.Часть, в которой я борюсь, как получить ограничивающие рамки вокруг компонентов, чтобы я мог классифицировать их по своему NN?Я попробовал несколько подходов, используя Contouring и Object Detection с использованием OpenCV (например, FindContours
, ConnectedComponentsWithStats
), но я не могу заставить его обнаруживать только компоненты, а не текст или соединительные линии между компонентами.
В основном я хочу следующее:
Учитывая это Входное изображение (не нарисовано от руки для удобства чтения)
Я бы хотелзнать:
- Сколько там компонентов?
- Где находятся ограничивающие рамки компонентов?
В основном Эти ограничивающие рамки
Используется для извлечения компонентов и их классификации по уже имеющейся модели.
Кроме того, я хотел бы извлечь текст, ближайший к любому компоненту, чтобы я мог прочитать значения каждого компонента.Мне уже удалось сделать OCR с помощью tesseract-ocr
, поэтому, если я могу получить ограничивающие рамки вокруг текста, я могу легко прочитать значения.
Как это
Но часть, с которой я больше всего борюсь, это выяснение того, какой компонент связан с каким другим компонентом, я не уверен, как мне подходить к этому.Очень трудно найти что-то, что ищет мою проблему, и не знаю, как мне описать эту проблему в целом.Но в целом мне нужно достаточно информации, чтобы можно было смоделировать схему с помощью матричного моделирования (базовый анализ постоянного тока).
Мне не требуется явно код, мне нужно общее руководство для решения этой проблемы.Или, может быть, даже ссылки на научные статьи, посвященные аналогичным проблемам.