Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 从连续的视频帧行进行单应估计会产生不好的结果_Image Processing_Geometry_Computer Vision_Matlab Cvst - Fatal编程技术网

Image processing 从连续的视频帧行进行单应估计会产生不好的结果

Image processing 从连续的视频帧行进行单应估计会产生不好的结果,image-processing,geometry,computer-vision,matlab-cvst,Image Processing,Geometry,Computer Vision,Matlab Cvst,我试图建立一个程序,检测足球视频序列中的越位情况。为了跟踪更好的球员和球,我需要估计连续帧之间的单应性。我正在用Matlab做这个项目。 我能够在帧之间找到足够多的对应线,但在我看来,结果的单应性是不正确的 我从以下情况开始,其中我有两个处理过的图像(1280x720px)和相应的行: 和 线源于霍夫变换,其形式为交叉(P1,P2),其中p(i)为[x y 1],0

我试图建立一个程序,检测足球视频序列中的越位情况。为了跟踪更好的球员和球,我需要估计连续帧之间的单应性。我正在用Matlab做这个项目。 我能够在帧之间找到足够多的对应线,但在我看来,结果的单应性是不正确的

我从以下情况开始,其中我有两个处理过的图像(1280x720px)和相应的行: 和

线源于霍夫变换,其形式为
交叉(P1,P2)
,其中p(i)为
[x y 1]
,0 在行标准化之前(交叉乘积之后),我有:

第1帧中的行(每行一行)

[-0.9986-0.2992 0.6792
-0.9986   -0.4305    0.5686
-0.8000   -0.4500    0.3613
-0.9986   -0.1609    0.7890
-0.9986   -0.0344    0.9074
-0.2500-0.2164 0.0546]

这些是第2帧中的行:

[-0.9986-0.2984 0.6760
-0.9986   -0.4313    0.5678
-0.7903   -0.4523    0.3587
-0.9986   -0.1609    0.7890
-0.9986   -0.0391    0.9066
-0.2486-0.2148 0.0539]

在对每一个匹配行进行规范化之后(在本例中,所有行都对应),我创建矩阵A(j)
[-u0u*x-v0v*x-10x];
[0-uu*y0-vv*y0-1y]
其中,行(j)_1是
[xy1]'
,行(j)_2是
[uv1]'
。然后我形成整个矩阵A并计算奇异值分解
[~,~,V]=svd(A)。将V的最后一列重新排列为3x3矩阵,则H为:

[0.4234 0.0024-0.3962
-0.3750   -0.0030    0.3503
0.4622 0.0029-0.4322]

这种单应矩阵对于上面的平行线和消失点(这些线的交点)效果很好,但在其他地方效果很差。例如,一个消失点在无标度坐标(1194.2,-607.4)中,它应该保持在那里,事实上,它将被映射到(5~10px)附近的几个像素。但是如果我在(300300)中取一个随机点,它将转到(1174.1,-582.7)


我看不出是我犯了什么大错误,还是因为测量中的噪音。你能帮我吗?

嗯,你计算了一个单应映射,把线映射到线。如果你想要对应的逐点单应,你需要反转和转置它。例如,请参见Hartley和Zisserman的“多视图几何体”的第1.3.1章。从您发布的图像来看,您正在考虑的线在场景中都是平行的。那么这个问题是不适定的,因为有无限多的同音字可以解释由此产生的对应关系。尝试将具有其他方向的线添加到对应关系中。

我遵循了作者在DLT过程中结合点和线的这篇文章。是的,请参阅那篇文章的第5.2节:注意点和线的对称传输误差表达式中的差异?好,但我没有做RANSAC,也没有计算传输错误。我首先找到了行,然后建立了对应关系(它们是正确的)。我按照表达式(10)中的建议计算了A(j),然后计算了SVD。你认为这是概念上的错误,还是仅仅是因为噪音?我相信你的错误是将单应用于点,而单应用于直线。谢谢。现在我更深入地研究了一下,我发现:“一条对应的点或线给出了两个关于单应性元素的线性方程。因此,如果没有三条线是平行的,那么四条对应的线保证了T21的唯一解。”所有线被认为是等距的,这一事实在任何方面都是有用的吗?是的,我想这可能会对解决方案有更多的限制,但还不够。你仍然会有无限多的同音字,这些同音字将这些线映射为彼此平行且间距相等的线。