论文四连读(1)图像中的直线检测 PClines - Line detection using parallel coordinates

最近读了一些论文,其中四篇是直接关联的,顺序下来进行一系列的检测,最后应用到单目图像的检测和识别相关,把这四篇文章记录一下。
这个博客是介绍其中第一篇,也是后面所有文章的基础。论文名为PClines - Line detection using parallel coordinates,链接比较好找,就不贴了。
这是一篇2011年CVPR的论文,包括后续三篇论文,都是出自同一个实验室。这篇文章的目的,是高效、准确的检测照片中的直线。
在这之前,图像中直线检测,大多是通过经典Hough变换,采用极坐标系。所有的Hough变换,都是两个坐标系之间的点-线一一对应。比如直角坐标系中的一个点,在极坐标系下是一条曲线,直角坐标系下的一条直线,到了极坐标系下就是一个点。所以产生了点-线,线-点的一一对应。
极坐标系下的Hough变换的直线检测,就是首先在图片中检测出n个边缘点,将所有的n个边缘点都映射到极坐标系下,得到了n条曲线,在直角坐标系下共线的边缘点,对应的曲线在极坐标系下会交于一个点,这个极坐标系中的点就是我们要得到的原图的直线。
说的比较绕,也很简略,更详细的描述和细节可以参考相关文章,这里给一个其中我觉得讲的比较详细的链接https://blog.csdn.net/u010712012/article/details/86104053

极坐标系的Hough变换检测直线存在一些问题,比如计算量大、时间很慢(涉及到极坐标系的转换、曲线的交点等)。因此这篇文章采用了平行坐标系来代替极坐标系的Hough变换进行直线检测。平行坐标系,通常用来可视化高维向量,每一个坐标轴代表一个维度,坐标轴正方想竖直向上,坐标轴之间两两平行,且间隔相等,因此取名平行坐标系。如下图所示,图中每一条折线代表一个四维(四条坐标轴)向量,折线与坐标轴的交点,就是对应维度的值,例如图中橙黄色折线表示的向量大概是(900,800,550,850)。
在这里插入图片描述
平行坐标系通常用来表示高维(超过三维)的数据的特征、关系、趋势等。本文中,使用两个轴的平行坐标系(屈才了),来和平面直角坐标系,也就是图片的像素坐标一一对应,一个像素点,在平行坐标系中是一条折线;而平行坐标系中的一个点,在直角坐标系中就是一条直线(因为过一个点有无数直线,无数直线代表无数个直角坐标系中的像素点,这些像素点都是共线的)。
这就是这篇论文的核心思想,由于像素点在平行坐标系下是折线,在计算量上比极坐标系的曲线要少很多,因此在速度方便有了很大的提高。

当然,平行坐标系,存在一个显著的不足。拿二维坐标举例,一条直角坐标系的直线y=mx+b,其中m为斜率,当m=1时,在平行坐标系下,这条直线所代表的点不存在(在无穷远处)。因为斜率为1的直线上的点,到了平行坐标系下,对应的直线永远是相互平行的,两两无交点。另外,直线斜率大于零的直线,交点将会落在平行坐标系外部。为了解决这个问题,文章将y轴,做了一个翻转操作,这样平行坐标系下,就有三个轴,分别是-y、x、y轴。
在这里插入图片描述
如图所示,本来直线BC,在平行坐标系下,交点会落在外部,也就是下图CxCy和BxBy延长线的交点,但是把y轴做了一个翻转,对称过来之后,CxC-y和BxB-y的交点就不需要做延长的处理了。同样的,如果是斜率为1的直线上的点,做了-y的反转之后,交点就不是理想的,而是会落在左半区域。

这就是文章检测直线的大体步骤,总结一下:
1、检测出图片中的边缘点。
2、将边缘点投影到平行空间(对y轴做了翻转,这样交点就不会落在平行坐标系之外),一个边缘点对应一条平行坐标系中的直线。
3、对平行空间中的线求交点,并投票,找到直线最多的那个交点,然后在直角坐标系中,把这个交点对应的直线画出来即可(连点就可以了)。
4、可以设置一个阈值,找出图片中的所有直线。

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值