gpt4 book ai didi

c++ - 在交互式地板项目上将顶 View 人体检测与地板投影相匹配

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:17:36 24 4
gpt4 key购买 nike

我正在 build 一个互动楼层。主要思想是将 Xtion 相机进行的检测与我在地板投影中绘制的物体相匹配,并让它们跟随人。

我还检测到地板上转换为多边形的投影区域。相机可以检测到“屏幕”区域之外。

问题是该算法使用深度数据检测其下方人的最顶部,并且由于该点与相机之间的角度,该点不在人脚的正上方。

我知道到地板的距离和检测到的人的高度。而且我知道相机不垂直于地板,但我不知道相机的倾斜角度。

我的问题是如何将该 3D 点投影到地板上的多边形上?

我希望有人能给我指出正确的方向。我一直在阅读有关相机投影的信息,但我没有看到如何在这个特定问题中使用它。

提前致谢

更新:

使用 Diego O.d.L 的遮阳篷,我能够进行近乎完美的检测。我将写下我为那些可能正在寻找相同解决方案的人使用的步骤(我不会详细介绍如何进行检测):

第一步:校准

  • 在这里,我使用 openNI 从相机获取了一些颜色和深度帧,并清除了投影区域。

  • 在彩色帧上检测到投影区域。

  • 然后我将检测点转换为现实世界坐标(使用 OpenNI 的 CoordinateConverter)。通过新的现实世界检测点,我寻找更适合它们的平面。

第二步:检测

  • 我使用检测算法获取新人物检测并使用深度帧跟踪他们。

  • 这些检测点被转换为现实世界坐标并投影到先前计算的平面上。这可以纠正人的高度和地板之间的偏差。

  • 使用透视变换将点映射到屏幕坐标。

希望这对您有所帮助。再次感谢您的遮阳篷。

最佳答案

最初使用相机坐标系。我假设您在从 (row,column,distance) 转换为与相机轴 (x,y,z) 对齐的真实世界系统时没有问题:

  1. 使用三个或更多点(为了稳健性)计算平面相机投影 (x,y,z)。 (选择你最喜欢的算法, i.e

  2. 然后找到你的头点到地板平面的投影( example )

  3. 最后,您可以将其转换为地板坐标系或仅保存在相机系统中

根据您的预期应用程序的描述,我猜想恢复图像坐标可能对您更有用。

关于c++ - 在交互式地板项目上将顶 View 人体检测与地板投影相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31266399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com