我们发现,在一些环境中,特别是有反光或深色地板的空间,自动地平面无法准确地探测到地面。这导致了稀疏跟踪;轨迹将不一致,或者根本没有检测或轨迹。为了纠正这个问题,需要将地面检测从自动选择改为手动选择。要对每个传感器执行此操作,可以使用ground_based_people_detector_kinect2。yaml或ground_based_people_detector_kinect。yaml,把第5行从:
ground_estimation_mode: 3
到:
ground_estimation_mode: 0
保存到.yaml文件后,停止传感器的检测过程,然后重新启动它。一旦传感器重新启动,过一会儿就会出现手动地平面选择窗口(标题为“选择三个点”)。如果您正在通过SSH进行远程连接,但是没有看到窗口,那么首先navitage连接到open_ptrack/detection/conf/ground_based_people_detector_kinect2。并验证:
remote_ground_selection: true
然后,检查是否使用-XC标志在启用X11 GUI转发的情况下启动SSH,例如SSH -XC 192.168.100.101。如果一切正常,应出现以下画面:
注意::在跟踪深色地板的环境中,当启动Kinect v2摄像机时,我们发现有必要在地板上放置一个大的、扁平的白色物体,以创建一个可以选择三个点的表面。这是上图中的白色方块。
当屏幕出现后,我们发现最简单的方法是从三个点被选中的地方开始放大。这可以通过使用鼠标上的中心滚轮来实现,或者使用f键将光标移到这个空间上。现在应该是这样的:
注意::我们发现,在对用于选择三个点的点进行缩放后,图像应该以一种验证所有像素都在地面平面内的方式铰接。
现在,按住shift键,用鼠标左键选择三个点。它应该看起来像这样:
在3D中旋转渲染,以验证您所选择的附近的像素实际上位于地面上,并且您没有在无意中选择另一个平面上的像素。
若要保存所选的三个点 ,请为TX或TK1或q使用鼠标右键单击保存,如果使用任何其他计算机,则保存手动地平面。屏幕将关闭,所选择的地面将用于传感器的检测。
重新启动传感器后,为了重用所选的地面,需要对ground_based_people_detector_kinect2做一些更改。yaml或ground_based_people_detector_kinect1。视使用的传感器而定。第一个改变从地面文件读为真:
read_ground_from_file: true
最后,将lock ground改为true:
lock_ground: true
如果相机移动,则如下:
read_ground_from_file: true
变更为:
read_ground_from_file: false
这将允许用户手动重置地面。