Skip to content

Manual Ground Plane

bsubbaraman edited this page Oct 31, 2019 · 9 revisions

We have found that in some environments, specifically spaces with reflective or dark-colored floors, the automatic ground plane will not accurately detect the ground. This leads to sparse tracking; the tracks will not be consistent, or there will be no detection or tracks at all. To correct this, the ground plane detection needs to be changed from automatic to manual selection. To do this for each sensor, ground_based_people_detector_kinect2.yaml or ground_based_people_detector_kinect2.yaml, change line 5 from:

 ground_estimation_mode: 3

to:

 ground_estimation_mode: 0

Once this change has been saved to the .yaml file, stop the detection process for the sensor, and then restart it. Once the sensor is restarted, the manual ground plane selection window (titled "Pick three points") should appear after a few moments. If you are connecting remotely via SSH and do not see the window, check that you're using the -XC flag to start SSH with X11 GUI forwarding enabled, e.g., ssh -XC 192.168.100.101. If everything is working properly, a screen like the following should appear:

N.B.: In tracking environments with dark floors, when starting a Kinect v2 camera, we have found it necessary to place a large, flat white object on the floor to create a surface from which the three points can be chosen. This is the white square in the image above.

After the screen appears, it is possible to zoom into the space from where the three points will be selected. This can be done by using the center wheel on the mouse

N.B.: We have found that after zooming in on the spot that will be used to select the three points, the image should be articulated in a way that verifies all pixels are in the ground plane.

Now, use the left mouse button to select the three points. It should look similar to this:

Next, press the shift key while moving your cursor over the three points selected . This saves the manual ground plane. The screen then grays out and looks like this:

The screen can now be minimized, and the ground plane that was selected will be used for the sensor's detection.

N.B.: If the shift key is inadvertently pressed before the three points are selected, the detection process has to be restarted. In some cases, if the process is not done properly, the terminal window will show an error that looks like this:

In such cases restart the detection process and reselect the three points.

After a sensor restart, to reuse the ground plane that was selected, a few changes need to be made to the ground_based_people_detector_kinect2.yaml or ground_based_people_detector_kinect1.yaml, depending on the sensor(s) being used. First change read from ground file to true:

 read_ground_from_file: true

Lastly, change lock ground to true:

 lock_ground: false

If a camera is moved, then the following:

 read_ground_from_file: true

needs to be returned to:

 read_ground_from_file: false

This will allow the ground plane to be reset manually by the user.

Setting Up an OpenPTrack v2 System:

Running OpenPTrack v2:

Tracking GUI

How to receive tracking data in:

  1. Tested Hardware
  2. Network Configuration
  3. Imager Mounting and Placement
  4. Calibration in Practice
  5. Quick Start Example
  6. Imager Settings
  7. Manual Ground Plane
  8. Calibration Refinement (Person-Based)
  9. Calibration Refinement (Manual)

OPT on the NVidia Jetson

Clone this wiki locally