我的工作是跟踪来自闭路电视摄像机的人,在那里我有来自闭路电视摄像机的视频输入,我有包含所有闭路电视摄像机的建筑的2D顶视图图像。当我在场景中检测到人的时候,我在人周围画了一个边框,这个包围盒有一个中心点,在图像坐标系统中表示为x,y,我想要做的是把这个包围盒中心点转换成另一个二维点来建立图像坐标系统。有人能给我一个提示或想法吗??
这里的图像来自闭路电视摄像机,而建筑物的图像中的红线是我在央视图像中的线条,而在建筑图像中的红线是我想要得到的线。
闭路电视摄像机图像:

建筑形象:

发布于 2020-08-30 06:40:35
因此,因为相机将一个3D世界投射到2D,然后你想从另一个2D角度得到它,所以可能会有误差。例如,人的矩形的中心点可以是离他们所站的地面2.7英尺的地方,也可以是地面,如果那个人不在那里的话。那将是两个非常不同的地方,在你的鸟瞰地图。
然而,因为这是为了跟踪人,你可以假设每个人的身高都差不多,并且假设矩形的中心总是在离地面2.7英尺的地方。如果你做了这个假设,那么问题就更容易处理了。
有了这个假设,你可以做的是有一个校准阶段。所以你可以让那个人站在走廊的尽头,看看相机上的坐标和地图上的坐标。然后让他们走到相机前,看到相机上的坐标和地图上的坐标。有了这两个点,你可以做一个线性插值,以便能够确定在走廊的人是建立在相机的位置。你需要对你拥有的每台相机进行这种校准,但它应该会给出相当准确的结果。
(x1, y1)是大厅末端的相机坐标,(X1, Y1)地图坐标是大厅末端的坐标。然后,让(x2, y2)是相机坐标时,靠近相机和(X2, Y2)地图坐标靠近相机。然后找到一个线性A,这样
A(x1, y1) = (X1, Y1)和A(x2, y2) = (X2, Y2)
你可以用矩阵方程来解决这个问题(这里不知道怎么输入数学)。
A|x1 x2| = |X1 X2|
|y1 y2| |Y1 Y2|
A = |X1 X2||x1 x2|^(-1)
|Y1 Y2||y1 y2|这应该给你一个很好的方法,把相机上的坐标转换成地图上的坐标。
https://stackoverflow.com/questions/63648055
复制相似问题