Обнаружение нарисованных от руки компонентов схемы в изображении, определение текста, построение дерева соединений - PullRequest
0 голосов
/ 04 марта 2019

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

Вход в мою программу будет обычным изображением (смартфони т. д.) и конечный результат должен быть имитацией всех возможных значений в цепи (здесь не рассматривается / не требуется)

В основном все, что мне нужно было бы обнаружить, это электрические компоненты с фиксированным числомсоединения (2 соединения, например, R, L, C, Diode) и линии, соединяющие их.

У меня уже есть предварительно обученная нейронная сеть для определения типа компонента.Часть, в которой я борюсь, как получить ограничивающие рамки вокруг компонентов, чтобы я мог классифицировать их по своему NN?Я попробовал несколько подходов, используя Contouring и Object Detection с использованием OpenCV (например, FindContours, ConnectedComponentsWithStats), но я не могу заставить его обнаруживать только компоненты, а не текст или соединительные линии между компонентами.

В основном я хочу следующее:

Учитывая это Входное изображение (не нарисовано от руки для удобства чтения)

Я бы хотелзнать:

  • Сколько там компонентов?
  • Где находятся ограничивающие рамки компонентов?

В основном Эти ограничивающие рамки

Используется для извлечения компонентов и их классификации по уже имеющейся модели.

Кроме того, я хотел бы извлечь текст, ближайший к любому компоненту, чтобы я мог прочитать значения каждого компонента.Мне уже удалось сделать OCR с помощью tesseract-ocr, поэтому, если я могу получить ограничивающие рамки вокруг текста, я могу легко прочитать значения.

Как это

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

Мне не требуется явно код, мне нужно общее руководство для решения этой проблемы.Или, может быть, даже ссылки на научные статьи, посвященные аналогичным проблемам.

1 Ответ

0 голосов
/ 04 марта 2019

"Каждая проблема - это просто хороший набор данных вдали от уничтожения" источник.

Есть несколько электронных символов , которые вам нужно будет обнаружить.Современный подход к классификации символов заключается в использовании нейронной сети.Чтобы обучить эту модель, вам нужно будет создать набор данных из нарисованных от руки электронных символов.Классификация электронных символов будет аналогична классификации рукописных цифр .

Прежде чем символы будут классифицированы моделью нейронной сети, изображение должно быть сегментировано.Отдельные компоненты (диод, конденсатор, резистор и т. Д.) Должны быть идентифицированы и помечены ограничительными рамками.

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

Эта задача может быть выполнена с помощью OpenCV и Python.Это разбивка подзадач:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...