Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.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
Opencv 从多个视角匹配边界框_Opencv_Opencv Python - Fatal编程技术网

Opencv 从多个视角匹配边界框

Opencv 从多个视角匹配边界框,opencv,opencv-python,Opencv,Opencv Python,我在冰箱的不同架子上(底部和顶部)安装了两个摄像头,它们面对面。对象检测器接收来自这两个流的两个图像,并独立返回它们的边界框 问题是:给定不同视角的边界框,确定它们的对应关系 我知道,由于深度未知,一个摄像头中的x,y坐标可能对应于另一个摄像头中的多个位置。这就是为什么到目前为止,我们的解决方案都是近似的,取得了不同的成功。天真的解决方案是忽略摄像机坐标之间的任何差异,并使用欧几里得距离来获得对应关系 另一种解决方案是使用基本矩阵,它提供了一种基于极线几何计算对应关系的方法。这种解决方案可能相当

我在冰箱的不同架子上(底部和顶部)安装了两个摄像头,它们面对面。对象检测器接收来自这两个流的两个图像,并独立返回它们的边界框

问题是:给定不同视角的边界框,确定它们的对应关系

我知道,由于深度未知,一个摄像头中的
x,y
坐标可能对应于另一个摄像头中的多个位置。这就是为什么到目前为止,我们的解决方案都是近似的,取得了不同的成功。天真的解决方案是忽略摄像机坐标之间的任何差异,并使用欧几里得距离来获得对应关系

另一种解决方案是使用
基本矩阵
,它提供了一种基于极线几何计算对应关系的方法。这种解决方案可能相当乏味,因为它需要某种形式的校准,结果并不理想。这可能是因为我的校准太草率了

最后一个解决方案效果很差,就是使用边缘och关键点检测并匹配它们。由于边缘、形状等差别很大,我们理解为什么会这样

最后,我想知道您将如何解决这个问题,或者您是否可以为我提供更可靠的解决方案。


在左图中,我们看到了底部视图。此图像已围绕y轴镜像。右边的图像来自顶部的书架。对象检测器已检测到每个视角的两个边界框,总共四个边界框。这些都是在两个摄像头上绘制的。例如,id为16的边界框在顶部定位的摄影机上被检测到,并且也在底部摄影机上绘制以指示其位移。从另一个视角看,属于同一对象的边界框是如何匹配的?

我会安装光幕来检测把手伸进的人的X和Y坐标。我也会在匹配中按对象分类,但我想你已经这样做了。最终我不认为这些相机角度是有用的。请尝试为基本矩阵进行更好的校准。这些角度很难校准,但需要努力才能实现。