大概如图所示的图片。
我希望的是把上图中表格所有线条的交叉点的坐标提取出来。
实际是手机拍照出来的,表格的线条并不理想。用opencv去提取线条不合适。
用卷积能够识别出大概的交叉点。但是获取到的坐标并不精确。
想了很久,没找到思路。请问下大家有没有好的思路分享一下呢。欢迎大家一起讨论
1个回答
按你的描述,只要识别出“十字”的特征就可以找出交点坐标。训练图像来自于手机拍摄,主要问题是形变,比如缩放,旋转,位移和错切等(scale,rotation,translation,shear)。这就要求训练输入数据包含大部分的形变。你可以人造一些形变后的图案片作为训练数据。还需要注意kernel size要和“十字”的patch差不多大;因为不需要太多非线性,激活函数用relu;filter个数要多,越多能学到的形变就越多;问题简单,cnn深度不需要太大。
我感觉,不需要cnn,直接人造一些形变的filter bank,再做模式匹配,最后取输出最大值,也能做出来。
你最好把如何获得训练的输入数据,如何产生训练的输出坐标,“十字”线宽度有多少像素,噪音程度,拍摄角度范围,用彩色还是灰度这些细节都描述下,并给出你以前cnn结构,才能更深入讨论。
------------------------
还可以用2D cross-correlation。这里是Matlab里的例子。这个问题里template是“十字”。
SofaSofa数据科学社区DS面试题库 DS面经