【发布时间】:2019-03-05 04:55:40
【问题描述】:
我想知道,我应该如何处理电路图的手绘图像,以便将绘制的电路数字化并最终对其进行仿真。
我的程序的输入将是一张普通图片(智能手机等),完成的输出应该是电路中所有可能值的模拟(此处未涵盖/不需要)
基本上,我只需要检测具有固定数量连接(2 个连接,例如 R、L、C、二极管)的电气元件和连接它们的线路。
我已经有一个预训练的神经网络来检测它是哪种类型的组件。我挣扎的部分是,我如何在组件周围获得边界框,以便我可以用我的 NN 对它们进行分类?我尝试了几种使用 OpenCV 的轮廓和对象检测的方法(例如FindContours、ConnectedComponentsWithStats),但我似乎无法让它仅检测组件,而不是组件之间的文本或连接线。
基本上我想要的是以下内容:
鉴于此 Input Image (not hand-drawn for sake of readability)
我想知道:
- 有多少个组件?
- 组件的边界框在哪里?
这用于提取组件并使用我已有的模型对它们进行分类。
此外,我想提取最接近任何组件的文本,以便我可以读取每个组件的值。我已经在tesseract-ocr 的帮助下完成了 OCR,所以如果我可以在文本周围设置边界框,我可以轻松读取这些值。
但是我最挣扎的部分是找出哪个组件与哪个其他组件相关联,我不确定我应该如何处理这个问题。真的很难找到用谷歌搜索我的问题的东西,而且不确定我应该如何描述这个问题。但总的来说,我需要足够的信息才能使用矩阵模拟(基本直流分析)来模拟电路。
我没有明确要求代码,我需要一般指导来解决这个问题。或者甚至可能是针对类似问题的研究论文的链接。
【问题讨论】:
-
嗨,我也在做同样的事情,偶然发现了你描述的同样的问题。你能解决边界矩形问题吗?我目前正在做一个有点蹩脚的滑动窗口方法。
标签: opencv image-processing object-detection