陈祥辉
(四川大学计算机学院,成都 610065)
空间上的一组平行线,在针孔相机的投影下,在图像空间相交于一点,这个点被称为消失点。消失点包含摄像机的姿态信息,因此它被经常用于摄像机定标[1],进而被应用于无源导航[2]、3D重建[3]等领域。消失点的提取首要的步骤是线段的提取,然后是对各条线段进行分类,将其划分为不同集合,每个集合中的线段交点就表示3维场景中不同方向的消失点。
C均值算法是一种应用十分广泛的聚类算法,它通过优化目标函数得到每个样本点对所有类中心的隶属度,从而决定样本点的类属以达到自动对样本数据进行分类的目的。
本文的工作是运用C-均值[4]的方法对所求得的线段进行分类,然后构建能量方程并用最优化的方法对消失点进行优化。
前人在消失点检测方面已经有了很多的工作,其大致可以分为3类:第1类是直接用检测到的线段的信息在图像空间进行消失点的检测。其主要步骤为:(1)提取图像中的线段。(2)求所有直线的交点。(3)取相交点最多的坐标值作为消失点。第2类是空间变换的方法,将线段映射到高斯球上,然后提取消失点,再将消失点映射到原空间。第3类是随机抽样一致性(RANSAC)的方法。不断地从线段中挑选至少2条线段并求得其交点,然后找出与之最一致的线段集合,最后再找出消失点。本文提出的方法属于第一类方法,但与第一类方法不同的是在求完交点后利用C-均值的方法进行线段分类,而非简单地取交点最多的坐标值作为消失点。
我们用大写的英文字母表示集合,用对应的小写字母表示集合的元素,其下标i表示集合的第i个元素算法的具体描述如图1所示:
图1 算法的流程
算法实现过程如下:
然后进行消失点预处理。对VP求直方图,去掉小于一定阈值δ的消失点。最后对集合VP利用C均值进行分类。对已分类的消失点集合,K为聚类的个数,分别找出与VPi相一致的线段集Li,分别对第i个消失点集合构造能量方程:
将C均值得到的结果作为vp的初始值将E(vp)最小化后即得出第i个消失点。
检测到的直线段如图2所示。
最后的结果如图3所示。
本文提出了应用C均值聚类的方法将提取了消失点的算法并通过构造能量方程对结果进行了优化。算法过程已在Mathematica上实现。实验证明该算法可以从图像中准确地提取消失点。但当场景中不存在平行线时该算法就不再适用,这是算法本身的缺点造成的,是下一步解决的重点。
图2 Hough变换得到的线段
图3 不同颜色的点为C均值分类的结果,黑色的点为最优化后的消失点
参考文献:
[1]Caprile B Torre,V.Using Vanishing Points for Camera Calibration[J].International Journal of Computer Vision,1990.
[2]Straforini M,Coelho C,Campani M.Extraction of Vanishing Points from Images of Indoor and Outdoor Scenes.Image and Vision Computing 1993,11(2):91-99.
[3]Criminisi A,Reid I,Zisserman A.Single View Metrology.Proceedings of the 7th International Conference on Computer Vision,Kerkyra,Greece,1999:434-441.
[4]MacQueen,J.B.(1967).Some Methods for Classification and Analysis of Multivariate Observations.Proceedings of 5th Berkeley Symposium on Mathematical Statistics and Probability.1.University of California Press.pp.281-297.