使用卷积神经网络进行四边形/矩形检测的想法

Posted

技术标签:

【中文标题】使用卷积神经网络进行四边形/矩形检测的想法【英文标题】:ideas on quadrangle/rectangle detection using convolutional neural networks 【发布时间】:2017-11-02 16:02:54 【问题描述】:

几周以来,我一直在尝试进行四边形检测和定位,我的目标是找到一种可靠的方法来获取四边形(矩形)的 4 个点,因此我可以将投影变换应用于图像,然后将其附加到源图像。我尝试了经典的opencv轮廓方法,并且还使用霍夫变换找到线然后计算交点,这两种方法在应用于现实生活图像时是不可用的。

所以我向CNN寻求帮助,但目前我还没有找到任何人尝试使用CNN来解决这个简单的问题。

我的第一次尝试是使用最先进的对象检测和定位方法来获得四边形的边界框,这样我就可以缩小 4 个点的搜索范围,然后使用图像处理和计算机视觉方法进一步搜索 4 个点。但是在尝试了YOLOv2和Faster-RCNN之后,预测精度并不理想。

所以我想知道是否有任何想法我可以使用单个神经网络进行端到端、训练和前馈。它还必须能够很好地处理遮挡。

目前我的想法是移除 fc 层并制作一个与第一个输入层(例如 448x448)具有相同宽度和高度的巨大激活图,然后优化 4 个最高度激活的区域,使用 argmax 获得位置。但是这种方法只适用于一个四边形,它也不适用于角遮挡。

如果有人能提供任何建议,我将不胜感激。非常感谢!

【问题讨论】:

【参考方案1】:

您提到的第一种方法是绝对正确的。霍夫变换之类的方法很旧,对野外的图像没有用处。当然,随着深度学习的兴起,计算机视觉领域也转向了对象检测和识别。

但是,最近出现了一个非常好的讨论。 Have we forgotten about Geometry in Computer Vision?

我的建议是轮廓检测,然后应用霍夫变换(使用最先进的技术)方法来检测你想要的矩形,关于遮挡,你可以设置霍夫变换的参数,以便更宽容地使用参数丢失边缘像素。 例如,您可以检查最近的轮廓检测方法,如最近的CVPR paper。

【讨论】:

感谢您的回答,您提供的 CVPR 论文很有帮助。我发现有人在做similar stuff: "business card scan" 来找到这4个点,他们面临同样的问题,他们的解决方案是先使用截断的VGG网络优化边缘检测,结果还不错,我应该尝试新的轮廓法和新的边缘法。

以上是关于使用卷积神经网络进行四边形/矩形检测的想法的主要内容,如果未能解决你的问题,请参考以下文章

使用卷积神经网络构建图像分类模型检测肺炎

没有完全连接层的卷积神经网络分类器

PART 4 W1 卷积神经网络介绍

基于卷积神经网络(CNN)的深度学习图片分类

基于卷积神经网络(CNN)的中文垃圾邮件检测

卷积神经网络